.header-cta,.hero-buttons .button,#quoteForm button[type="submit"],.booking-cta-button,.service-card .service-body .service-cta{position:relative!important;border-radius:999px!important;transform:translateZ(0);transition:transform .18s ease,background-color .18s ease,box-shadow .18s ease!important} .hero-buttons{gap:12px!important} .hero-buttons .button{margin:0!important} .booking-cta-button{flex:0 0 230px!important} .header-cta,.hero-buttons .secondary,.secondary{color:#171717!important;background:#f4f4f4!important} .hero-buttons .primary,#quoteForm button[type="submit"],.booking-cta-button,.service-card .service-body .service-cta{color:#fff!important;background:#111!important;border-color:#111!important;box-shadow:0 8px 20px rgba(0,0,0,.12)!important} @media (hover:hover){.header-cta:hover,.hero-buttons .button:hover,#quoteForm button[type="submit"]:hover:not(:disabled),.booking-cta-button:hover,.service-card .service-body .service-cta:hover{transform:translateY(-1px)!important}} .header-cta:active,.hero-buttons .button:active,#quoteForm button[type="submit"]:active:not(:disabled),.booking-cta-button:active,.service-card .service-body .service-cta:active{transform:translateY(1px) scale(.985)!important} #quoteForm button[type="submit"]:disabled{transform:none!important;box-shadow:none!important} @media(max-width:700px){.mobile-action-bar{position:fixed!important;background:transparent!important;border:0!important;box-shadow:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;padding:0!important;gap:8px!important;width:48px!important;border-radius:0!important;overflow:visible!important} .mobile-action-bar::before{display:none!important;content:none!important} .mobile-action-bar a,.mobile-action-bar button{position:relative!important;width:48px!important;min-width:48px!important;height:48px!important;min-height:48px!important;flex:0 0 48px!important;margin:0!important;border:1px solid #d9d9d9!important;border-radius:15px!important;background:#f7f7f7!important;color:#454545!important;box-shadow:0 6px 16px rgba(0,0,0,.10)!important;overflow:hidden!important;transform:translateZ(0);transition:transform .18s ease,background-color .18s ease,box-shadow .18s ease!important} .mobile-action-bar a::before,.mobile-action-bar button::before,.mobile-action-bar a::after,.mobile-action-bar button::after{display:none!important;content:none!important} .mobile-action-bar a:nth-child(2),.mobile-action-bar button:nth-child(2){background:#111!important;border-color:#111!important;color:#fff!important;box-shadow:0 6px 16px rgba(0,0,0,.14)!important} .mobile-action-bar a:active,.mobile-action-bar button:active{transform:scale(.96)!important}} @media(max-width:390px){.mobile-action-bar{width:46px!important;gap:7px!important} .mobile-action-bar a,.mobile-action-bar button{width:46px!important;min-width:46px!important;height:46px!important;min-height:46px!important;flex-basis:46px!important;border-radius:14px!important}} @media(prefers-reduced-motion:reduce){.header-cta,.hero-buttons .button,#quoteForm button[type="submit"],.booking-cta-button,.service-card .service-body .service-cta,.mobile-action-bar a,.mobile-action-bar button{transition:none!important}} .peek-quote-modal{position:fixed!important;inset:0!important;z-index:2147483644!important;display:none!important;align-items:center!important;justify-content:center!important;padding:16px!important;background:rgba(0,0,0,.55)!important;overflow:auto!important} .peek-quote-modal.is-open{display:flex!important} .peek-quote-modal::before{display:none!important;content:none!important} .peek-quote-modal >#quoteForm{position:relative!important;z-index:1!important;width:min(820px,100%)!important;max-height:calc(100vh - 32px)!important;margin:0!important;padding:18px 22px!important;overflow-y:auto!important;overscroll-behavior:contain!important;background:#fff!important;border:1px solid rgba(17,17,17,.10)!important;border-radius:18px!important;box-shadow:0 20px 60px rgba(0,0,0,.22)!important} .peek-quote-modal .quote-modal-heading{padding:0 34px 5px 0!important} .peek-quote-modal >#quoteForm >.quote-modal-close{all:unset!important;position:absolute!important;inset:12px 16px auto auto!important;z-index:9999!important;display:flex!important;align-items:center!important;justify-content:center!important;width:28px!important;height:28px!important;min-width:28px!important;min-height:28px!important;padding:0!important;margin:0!important;border:0!important;border-radius:0!important;outline:0!important;background:none!important;background-color:transparent!important;background-image:none!important;color:#111!important;font-family:Arial,Helvetica,sans-serif!important;font-size:28px!important;font-weight:400!important;line-height:28px!important;text-align:center!important;cursor:pointer!important;box-shadow:none!important;text-shadow:none!important;transform:none!important;appearance:none!important;-webkit-appearance:none!important} .peek-quote-modal >#quoteForm >.quote-modal-close::before,.peek-quote-modal >#quoteForm >.quote-modal-close::after{content:none!important;display:none!important} .peek-quote-modal >#quoteForm >.quote-modal-close:hover,.peek-quote-modal >#quoteForm >.quote-modal-close:focus,.peek-quote-modal >#quoteForm >.quote-modal-close:focus-visible,.peek-quote-modal >#quoteForm >.quote-modal-close:active{outline:0!important;border:0!important;background:none!important;background-color:transparent!important;box-shadow:none!important;color:#555!important;transform:none!important} .peek-quote-modal .quote-modal-close:hover,.peek-quote-modal .quote-modal-close:focus-visible{background:transparent!important;color:#555!important;box-shadow:none!important;transform:none!important} body.quote-modal-open{overflow:hidden!important} .peek-quote-modal[aria-hidden="true"]{pointer-events:none!important} .peek-quote-modal[aria-hidden="false"]{pointer-events:auto!important} .peek-quote-modal .quote-modal-heading{padding:0 34px 4px 0!important} .peek-quote-modal .quote-modal-heading h2{margin:1px 0 3px!important;font-size:clamp(1.9rem,3.5vw,2.7rem)!important;line-height:.92!important;letter-spacing:-.055em!important} .peek-quote-modal .quote-modal-heading p{margin:0!important;max-width:620px!important;color:#666!important;font-size:.76rem!important;line-height:1.3!important} .peek-quote-modal .quote-step,.peek-quote-modal .quote-address-section,.peek-quote-modal .photo-field,.peek-quote-modal #details{margin-top:8px!important} .peek-quote-modal .quote-step{padding:0!important;border:0!important;min-inline-size:0!important} .peek-quote-modal .quote-step legend,.peek-quote-modal .quote-address-section >label,.peek-quote-modal .photo-field >label:first-child,.peek-quote-modal .form-field >label{display:block!important;margin:0 0 4px!important;color:#555!important;font-size:.58rem!important;line-height:1.1!important;font-weight:700!important;letter-spacing:.09em!important} .peek-quote-modal .service-choice-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:5px!important} .peek-quote-modal .service-choice{min-height:38px!important;padding:7px 9px!important;border:1px solid #ddd!important;border-radius:9px!important;background:#fafafa!important;font-size:.64rem!important} .peek-quote-modal .service-choice b{font-size:.76rem!important} .peek-quote-modal .service-choice:has(input:checked){border-color:#111!important;background:#111!important;color:#fff!important;box-shadow:0 0 0 2px #111!important} .peek-quote-modal .service-choice:has(input:checked) b{color:#fff!important;transform:translateX(3px)!important} .peek-quote-modal .service-choice:has(input:checked):hover{background:#111!important;border-color:#111!important;color:#fff!important} .peek-quote-modal .quote-address-grid{display:grid!important;grid-template-columns:minmax(0,1.8fr) minmax(0,1fr) minmax(90px,.62fr)!important;gap:7px!important} .peek-quote-modal .quote-address-grid .form-field{margin-top:0!important} .peek-quote-modal .quote-address-grid .form-field label,.peek-quote-modal .quote-contact .form-field label{margin-bottom:3px!important;font-size:.53rem!important} .peek-quote-modal .quote-address-grid input,.peek-quote-modal .quote-contact input,.peek-quote-modal #details{min-height:40px!important;height:40px!important;padding:7px 10px!important;border:1px solid #d8d8d8!important;border-radius:8px!important;background:#fafafa!important;font-size:16px!important;line-height:1.25!important} .peek-quote-modal #details{height:58px!important;min-height:58px!important;resize:vertical!important} .peek-quote-modal .form-field:has(>#details){margin-top:8px!important} .peek-quote-modal .quote-contact{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:7px!important;margin-top:8px!important} .peek-quote-modal .quote-contact .form-field{margin-top:0!important} .peek-quote-modal .photo-field{display:grid!important;grid-template-columns:1fr auto!important;align-items:center!important;column-gap:8px!important} .peek-quote-modal .photo-field >label:first-child{grid-column:1/-1!important} .peek-quote-modal .photo-upload{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:8px!important;min-height:38px!important;margin:0!important;padding:6px 9px!important;border:1px dashed #cfcfcf!important;border-radius:8px!important;background:#fafafa!important} .peek-quote-modal .photo-upload strong{font-size:.62rem!important} .peek-quote-modal .photo-upload span{color:#777!important;font-size:.58rem!important} .peek-quote-modal #photos{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important} .peek-quote-modal #quoteForm button[type="submit"]{min-height:44px!important;margin-top:8px!important;font-size:.68rem!important} .peek-quote-modal .form-note{margin-top:4px!important;font-size:.52rem!important;line-height:1.25!important} .peek-quote-modal [data-fs-error]{display:block!important;margin-top:2px!important;font-size:.56rem!important;line-height:1.2!important} @media(max-width:700px){.peek-quote-modal{padding:8px!important;align-items:center!important} .peek-quote-modal >#quoteForm{max-width:34rem!important;max-height:calc(100dvh - 16px)!important;padding:16px!important;border-radius:15px!important} .peek-quote-modal .quote-modal-heading{padding-right:30px!important} .peek-quote-modal .quote-modal-heading h2{font-size:clamp(1.75rem,9vw,2.45rem)!important} .peek-quote-modal .quote-modal-heading p{font-size:.72rem!important;line-height:1.28!important} .peek-quote-modal .quote-step,.peek-quote-modal .quote-address-section,.peek-quote-modal .photo-field,.peek-quote-modal #details{margin-top:7px!important} .peek-quote-modal .quote-address-grid{grid-template-columns:minmax(0,1fr) minmax(90px,.48fr)!important;gap:6px!important} .peek-quote-modal .quote-address-grid .form-field:first-child{grid-column:1/-1!important} .peek-quote-modal .quote-contact{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:6px!important;margin-top:7px!important} .peek-quote-modal .quote-contact .quote-email{grid-column:1/-1!important} .peek-quote-modal .photo-upload{align-items:center!important;flex-direction:row!important;gap:8px!important} .peek-quote-modal .quote-modal-close{font-size:27px!important}} @media(max-width:380px){.peek-quote-modal >#quoteForm{padding:14px!important} .peek-quote-modal .service-choice{min-height:36px!important;padding:6px 7px!important;font-size:.6rem!important} .peek-quote-modal .service-choice b{font-size:.7rem!important} .peek-quote-modal .quote-contact,.peek-quote-modal .quote-address-grid{grid-template-columns:1fr!important} .peek-quote-modal .quote-address-grid .form-field:first-child,.peek-quote-modal .quote-contact .quote-email{grid-column:auto!important} .peek-quote-modal #details{height:52px!important;min-height:52px!important}} @media(prefers-reduced-motion:reduce){.peek-quote-modal >#quoteForm{scroll-behavior:auto!important}} .launch-status{display:inline-flex;align-items:center;gap:7px;margin-top:14px;color:#666;font-size:.56rem;font-weight:700;letter-spacing:.13em;line-height:1.4} .launch-status span{width:6px;height:6px;flex:0 0 6px;border-radius:50%;background:#111} @media(max-width:700px){.launch-status{margin-top:12px;font-size:.52rem;letter-spacing:.11em}}

/* Mobile contact bar: four equal, thumb-friendly actions across the bottom. */
@media (max-width:700px){
  .peek-floating-actions{
    position:fixed!important;
    inset:auto 10px calc(10px + env(safe-area-inset-bottom)) 10px!important;
    display:flex!important;
    flex-direction:row!important;
    align-items:stretch!important;
    justify-content:space-between!important;
    gap:0!important;
    width:auto!important;
    max-width:560px!important;
    margin-inline:auto!important;
    padding:4px!important;
    border:1px solid rgba(17,17,17,.12)!important;
    border-radius:18px!important;
    background:rgba(255,255,255,.97)!important;
    box-shadow:0 8px 28px rgba(0,0,0,.13)!important;
    -webkit-backdrop-filter:blur(14px) saturate(140%)!important;
    backdrop-filter:blur(14px) saturate(140%)!important;
    overflow:hidden!important;
  }
  .peek-floating-action{
    flex:1 1 0!important;
    width:auto!important;
    min-width:0!important;
    min-height:50px!important;
    height:auto!important;
    margin:0!important;
    padding:5px 2px!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    gap:4px!important;
    border:0!important;
    border-right:1px solid rgba(17,17,17,.09)!important;
    border-radius:12px!important;
    background:transparent!important;
    color:#454545!important;
    box-shadow:none!important;
    font-size:.58rem!important;
    line-height:1.1!important;
    letter-spacing:.07em!important;
    white-space:nowrap!important;
    overflow:hidden!important;
  }
  .peek-floating-action:last-child{border-right:0!important}
  .peek-floating-icon{
    flex:0 0 18px!important;
    width:18px!important;
    height:18px!important;
  }
  .peek-floating-icon svg{width:18px!important;height:18px!important}
  .peek-floating-action:nth-child(2){
    background:#111!important;
    color:#fff!important;
    border-radius:12px!important;
  }
  .peek-floating-action:focus-visible{
    outline:2px solid #111!important;
    outline-offset:-3px!important;
  }
}
@media(max-width:360px){
  .peek-floating-actions{inset-inline:6px!important;padding:3px!important}
  .peek-floating-action{min-height:48px!important;font-size:.54rem!important;letter-spacing:.04em!important}
}


/* Mobile layout hardening: one action bar, predictable safe-area spacing, and an unobstructed Lucy panel. */
@media (max-width:700px){
  /* Keep the legacy proxy bar in the DOM for compatibility, but never show duplicate controls. */
  .mobile-action-bar{
    display:none!important;
  }

  .peek-floating-actions{
    inset:auto 10px calc(10px + env(safe-area-inset-bottom, 0px)) 10px!important;
    width:auto!important;
    max-width:none!important;
    margin-inline:0!important;
    padding:4px!important;
    gap:0!important;
  }

  .peek-floating-action{
    flex:1 1 0!important;
    min-width:0!important;
    min-height:50px!important;
    padding:5px 2px!important;
    font-size:11px!important;
    line-height:1.2!important;
    letter-spacing:.035em!important;
    white-space:nowrap!important;
    -webkit-tap-highlight-color:transparent;
    touch-action:manipulation;
  }

  .peek-floating-icon,
  .peek-floating-icon svg{
    width:18px!important;
    height:18px!important;
  }

  /* Chat is already open, so remove the bar rather than let it cover Lucy's composer. */
  .peek-floating-actions.is-chat-open{
    display:none!important;
  }

  .peek-floating-actions.is-email-open{
    z-index:2147483645!important;
  }

  .peek-floating-action:focus-visible{
    outline:2px solid #111!important;
    outline-offset:-3px!important;
  }

  /* Reserve room at the end of the document so the fixed bar never hides page content. */
  body{
    padding-bottom:calc(78px + env(safe-area-inset-bottom, 0px));
  }
}

@media(max-width:360px){
  .peek-floating-actions{
    inset-inline:6px!important;
    padding:3px!important;
  }
  .peek-floating-action{
    min-height:48px!important;
    font-size:10.5px!important;
    letter-spacing:.015em!important;
  }
}

/* In landscape/short viewports, let Lucy use the available height without page scrolling. */
@media(max-width:700px) and (max-height:520px){
  .peek-chat{
    top:8px!important;
    bottom:8px!important;
    height:auto!important;
    max-height:none!important;
  }
}


/* PEEK PRESSURE — unified mobile typography system.
   Mobile-only by design; desktop typography is untouched. */
@media (max-width:700px) {
  html { font-size:16px!important; }
  body { font-size:16px!important; line-height:1.6!important; }

  /* Core reading text: consistent, comfortable, and never micro-sized. */
  .hero-copy>p,
  .about p,
  .process-header p,
  .process-step p,
  .service p,
  .proof-header p,
  .contact-container>h2+p,
  .booking-cta-copy p,
  .faq-list details p,
  .service-zip-copy p,
  .peek-text-heading p {
    font-size:16px!important;
    line-height:1.6!important;
  }

  /* Display headings: editorial but controlled on small screens. */
  .hero-copy h1 {
    font-size:clamp(2.65rem,11.8vw,3.65rem)!important;
    line-height:.91!important;
    letter-spacing:-.075em!important;
  }
  .about h2,
  .about-grid h2,
  .process-header h2,
  main>h2,
  .why-peek-intro h2,
  .service-area h2,
  .contact-container>h2,
  .proof-header h2,
  .booking-cta-copy h3,
  .peek-text-heading h2 {
    font-size:clamp(2rem,8.5vw,2.9rem)!important;
    line-height:.98!important;
    letter-spacing:-.065em!important;
  }
  .service h2,
  .service-card .service-body h2 {
    font-size:1.35rem!important;
    line-height:1.12!important;
    letter-spacing:-.035em!important;
  }
  .process-step h3 {
    font-size:.9rem!important;
    line-height:1.35!important;
    letter-spacing:.035em!important;
  }
  .faq-list summary {
    font-size:1rem!important;
    line-height:1.45!important;
  }

  /* Labels and metadata: small, but no longer difficult to read. */
  .eyebrow,
  .label,
  .launch-status,
  .hero-proof,
  .number,
  .step-number,
  .booking-cta-copy .label,
  .booking-action-label,
  .service-zip-success strong {
    font-size:11px!important;
    line-height:1.45!important;
    letter-spacing:.09em!important;
  }
  .service-image-credit,
  .service-zip-result,
  .service-zip-success small,
  .form-note,
  .footer-inner p,
  footer .footer-inner,
  footer .footer-inner p,
  .footer-signature {
    font-size:12px!important;
    line-height:1.5!important;
  }

  /* Navigation and actions: readable without making the header bulky. */
  .logo { font-size:15px!important; }
  .header-phone { font-size:12px!important; }
  .header-cta,
  .hero-buttons .button,
  .button,
  .booking-cta-button,
  .service-card .service-body .service-cta,
  #quoteForm button[type="submit"],
  .service-zip-form button {
    font-size:12px!important;
    line-height:1.3!important;
    letter-spacing:.07em!important;
  }
  .hero-buttons .button { min-height:48px!important; }
  .peek-side-menu-head .label { font-size:12px!important; }
  .peek-side-menu-panel h2 { font-size:clamp(3rem,15vw,4rem)!important; }
  .peek-side-menu-links a { font-size:17px!important; }
  .peek-side-menu-footer a { font-size:14px!important; }

  /* Quote form: 16px controls prevent iOS auto-zoom; labels/options stay legible. */
  .form-field label,
  .quote-step legend,
  .quote-address-section>label,
  .photo-field>label:first-child,
  .peek-quote-modal .quote-step legend,
  .peek-quote-modal .quote-address-section>label,
  .peek-quote-modal .photo-field>label:first-child,
  .peek-quote-modal .form-field>label,
  .peek-quote-modal .quote-address-grid .form-field label,
  .peek-quote-modal .quote-contact .form-field label {
    font-size:12px!important;
    line-height:1.35!important;
    letter-spacing:.045em!important;
  }
  #quoteForm input,
  #quoteForm select,
  #quoteForm textarea,
  .form-field input,
  .form-field select,
  .form-field textarea,
  .service-zip-form input,
  .peek-quote-modal .quote-address-grid input,
  .peek-quote-modal .quote-contact input,
  .peek-quote-modal #details,
  .peek-text-form textarea {
    font-size:16px!important;
    line-height:1.4!important;
  }
  .peek-quote-modal .quote-modal-heading h2 {
    font-size:clamp(1.7rem,8vw,2.25rem)!important;
    line-height:1!important;
  }
  .peek-quote-modal .quote-modal-heading p { font-size:14px!important; line-height:1.45!important; }
  .peek-quote-modal .service-choice { font-size:13px!important; line-height:1.3!important; }
  .peek-quote-modal .service-choice b { font-size:14px!important; }
  .peek-quote-modal .photo-upload strong { font-size:13px!important; }
  .peek-quote-modal .photo-upload span { font-size:12px!important; }
  .peek-quote-modal .form-note,
  .peek-quote-modal [data-fs-error] { font-size:12px!important; line-height:1.4!important; }
  .peek-text-form label { font-size:12px!important; line-height:1.4!important; }
  .peek-text-consent { font-size:12px!important; line-height:1.5!important; }

  /* Lucy: body copy and controls share the site's reading scale. */
  .peek-chat-message,
  .peek-chat-message p,
  .peek-chat-form textarea { font-size:16px!important; line-height:1.5!important; }
  .peek-chat-quick button { font-size:13px!important; line-height:1.3!important; }
  .peek-chat-note { font-size:12px!important; line-height:1.45!important; }
  .peek-chat-attachment { font-size:12px!important; }
  .peek-chat-attachment button { font-size:16px!important; }

  /* Persistent bottom actions remain compact, but their labels are readable. */
  .peek-floating-action {
    font-size:11px!important;
    line-height:1.25!important;
    letter-spacing:0!important;
  }
}

@media (max-width:380px) {
  .hero-copy h1 { font-size:clamp(2.45rem,11.2vw,3rem)!important; }
  .about h2,
  .about-grid h2,
  .process-header h2,
  main>h2,
  .why-peek-intro h2,
  .service-area h2,
  .contact-container>h2,
  .proof-header h2,
  .booking-cta-copy h3,
  .peek-text-heading h2 {
    font-size:clamp(1.85rem,8.2vw,2.35rem)!important;
  }
  .peek-floating-action { font-size:10.5px!important; }
}

@media (prefers-reduced-motion:reduce) {
  .hero-copy h1,
  .about h2,
  .process-header h2,
  .service-area h2,
  .contact-container>h2 { scroll-behavior:auto!important; }
}


/* PEEK PRESSURE — mobile text wrapping pass.
   Prevent awkward wraps/clipping without changing desktop layout. */
@media (max-width:700px) {
  html, body, main, section, article, header, footer, form, fieldset, div {
    min-width:0;
  }

  /* Never let ordinary words split into ugly fragments. */
  h1, h2, h3, h4, p, li, label, legend, summary, a, button, span {
    overflow-wrap:normal;
    word-break:normal;
    hyphens:auto;
  }

  /* Display copy: keep the measure intentional so headings wrap by words. */
  .hero-copy h1 {
    max-width:11ch!important;
    text-wrap:balance;
  }
  .about h2,
  .about-grid h2,
  .process-header h2,
  main>h2,
  .why-peek-intro h2,
  .service-area h2,
  .contact-container>h2,
  .proof-header h2,
  .booking-cta-copy h3,
  .peek-text-heading h2 {
    max-width:14ch!important;
    text-wrap:balance;
  }

  .hero-copy>p,
  .about p,
  .process-header p,
  .process-step p,
  .service p,
  .proof-header p,
  .contact-container>h2+p,
  .booking-cta-copy p,
  .faq-list details p,
  .service-zip-copy p,
  .peek-text-heading p {
    max-width:42rem!important;
    text-wrap:pretty;
  }

  /* Don't let labels/metadata create accidental overflow. */
  .eyebrow,
  .label,
  .launch-status,
  .hero-proof,
  .number,
  .step-number,
  .booking-cta-copy .label,
  .booking-action-label {
    white-space:normal!important;
    overflow-wrap:normal!important;
    text-wrap:balance;
  }

  /* Navigation and buttons: wrap only when necessary, never clip text. */
  .header-cta,
  .hero-buttons .button,
  .button,
  .booking-cta-button,
  .service-card .service-body .service-cta,
  #quoteForm button[type="submit"],
  .service-zip-form button {
    white-space:normal!important;
    text-align:center;
    text-wrap:balance;
  }

  .hero-buttons .button {
    max-width:100%;
  }

  .service h2,
  .service-card .service-body h2,
  .process-step h3,
  .faq-list summary {
    text-wrap:balance;
    overflow-wrap:normal;
  }

  /* Cards/grids must be able to shrink around their text. */
  .services-grid,
  .service,
  .service-card,
  .service-body,
  .process-grid,
  .process-step,
  .about-grid,
  .why-peek-grid,
  .service-area,
  .contact-container,
  .booking-cta,
  .booking-cta-copy,
  .proof-section,
  .faq-list {
    min-width:0!important;
  }

  /* Addresses, emails and URLs are the legitimate exception: break safely. */
  .peek-side-menu-footer a,
  .service-zip-result,
  .service-zip-success,
  .form-note,
  .peek-text-consent,
  .peek-chat-message,
  .peek-chat-message a,
  .peek-chat-note,
  .peek-chat-attachment,
  .footer-inner p,
  .footer-signature {
    overflow-wrap:anywhere!important;
    word-break:normal!important;
  }

  /* Lucy: long addresses/emails must never force the chat shell wider. */
  .peek-chat,
  .peek-chat *,
  .peek-chat-message,
  .peek-chat-form {
    min-width:0!important;
    max-width:100%;
  }
  .peek-chat-message {
    white-space:pre-wrap;
    text-wrap:pretty;
  }
  .peek-chat-message a {
    overflow-wrap:anywhere!important;
  }

  /* Form fields and controls: text may wrap, controls themselves stay contained. */
  .form-field,
  .quote-step,
  .quote-address-section,
  .quote-contact,
  .photo-field,
  .service-choice,
  .photo-upload,
  .service-zip-form {
    min-width:0!important;
    max-width:100%;
  }
  .service-choice,
  .photo-upload {
    white-space:normal!important;
    text-wrap:pretty;
  }
  .service-choice b {
    overflow-wrap:normal;
    text-wrap:balance;
  }

  input, select, textarea {
    max-width:100%;
  }

  /* Keep horizontal scrolling out of the document itself. */
  body {
    overflow-x:hidden!important;
  }
}

@media (max-width:380px) {
  .hero-copy h1 {
    max-width:10ch!important;
  }
  .about h2,
  .about-grid h2,
  .process-header h2,
  main>h2,
  .why-peek-intro h2,
  .service-area h2,
  .contact-container>h2,
  .proof-header h2,
  .booking-cta-copy h3,
  .peek-text-heading h2 {
    max-width:13ch!important;
  }
}


/* =========================================================
   PEEK PRESSURE — MOBILE DESIGN SYSTEM
   Research-informed, mobile-first behavior layer.
   Desktop styles are intentionally left unchanged.
   ========================================================= */
@media (max-width:700px) {
  :root {
    --mobile-gutter:20px;
    --mobile-gutter-tight:16px;
    --mobile-section:72px;
    --mobile-radius:18px;
    --mobile-control:48px;
    --mobile-header:60px;
  }

  html {
    scroll-padding-top:calc(var(--mobile-header) + 14px);
  }

  body {
    font-size:16px!important;
    line-height:1.55!important;
    overflow-x:hidden!important;
    -webkit-text-size-adjust:100%;
  }

  /* ---------- GLOBAL MOBILE GRID ---------- */
  .container {
    width:auto!important;
    max-width:none!important;
    margin-inline:var(--mobile-gutter)!important;
  }

  main > section,
  .hero,
  .services,
  .process,
  .about,
  .proof-section,
  .service-area,
  .contact-section,
  .booking-section {
    overflow:clip;
  }

  section {
    scroll-margin-top:calc(var(--mobile-header) + 14px);
  }

  /* ---------- HEADER / NAV ---------- */
  .header {
    min-height:var(--mobile-header);
    padding-top:max(7px, env(safe-area-inset-top, 0px))!important;
    padding-bottom:7px!important;
    background:rgba(255,255,255,.92)!important;
    -webkit-backdrop-filter:blur(18px) saturate(150%)!important;
    backdrop-filter:blur(18px) saturate(150%)!important;
  }

  .header-inner {
    width:auto!important;
    margin-inline:var(--mobile-gutter)!important;
    min-height:44px!important;
    gap:8px!important;
  }

  .logo {
    font-size:15px!important;
    line-height:1!important;
  }

  .header-phone {
    font-size:12px!important;
    line-height:1!important;
    white-space:nowrap!important;
  }

  .header-cta,
  .peek-menu-toggle {
    min-width:44px!important;
    min-height:44px!important;
  }

  .header-cta {
    padding:0 12px!important;
    font-size:11px!important;
    letter-spacing:.06em!important;
    white-space:nowrap!important;
  }

  .peek-menu-toggle {
    flex:0 0 44px!important;
    width:44px!important;
    height:44px!important;
    margin-left:0!important;
  }

  /* ---------- HERO ---------- */
  .hero {
    min-height:auto!important;
    padding-top:calc(var(--mobile-header) + 48px)!important;
    padding-bottom:64px!important;
    display:block!important;
  }

  .hero-grid {
    display:block!important;
  }

  .hero-copy {
    width:100%!important;
    max-width:520px!important;
  }

  .hero-copy .eyebrow {
    font-size:11px!important;
    letter-spacing:.12em!important;
    line-height:1.4!important;
  }

  .launch-status {
    max-width:34ch!important;
    margin-top:10px!important;
    font-size:10px!important;
    line-height:1.4!important;
    letter-spacing:.08em!important;
  }

  .hero-copy h1 {
    width:100%!important;
    max-width:12ch!important;
    margin-top:24px!important;
    font-size:clamp(3rem,14vw,4.35rem)!important;
    line-height:.88!important;
    letter-spacing:-.075em!important;
    text-wrap:balance;
  }

  .hero-copy>p {
    max-width:34rem!important;
    margin-top:22px!important;
    font-size:16px!important;
    line-height:1.55!important;
    letter-spacing:-.01em!important;
  }

  .hero-proof {
    display:flex!important;
    flex-wrap:wrap!important;
    align-items:center!important;
    gap:7px!important;
    margin-top:18px!important;
    font-size:10px!important;
    line-height:1.35!important;
    letter-spacing:.06em!important;
  }

  .hero-buttons {
    width:100%!important;
    margin-top:24px!important;
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:10px!important;
  }

  .hero-buttons .button {
    width:100%!important;
    min-height:48px!important;
    padding:12px 18px!important;
    font-size:12px!important;
    line-height:1.25!important;
    letter-spacing:.07em!important;
  }

  /* ---------- SECTION RHYTHM ---------- */
  .services,
  .process,
  .about,
  .proof-section,
  .service-area,
  .contact-section {
    padding-block:var(--mobile-section)!important;
  }

  .section-top {
    margin-bottom:28px!important;
  }

  .section-top .label,
  .label {
    font-size:11px!important;
    line-height:1.35!important;
    letter-spacing:.1em!important;
  }

  /* Headings should feel large, but never consume the whole viewport. */
  .section-top h2:not(.sr-only),
  .process-header h2,
  .about h2,
  .proof-header h2,
  .service-area h2,
  .contact-container>h2,
  .booking-cta-copy h3 {
    max-width:13ch!important;
    font-size:clamp(2rem,9vw,2.8rem)!important;
    line-height:.96!important;
    letter-spacing:-.06em!important;
    text-wrap:balance!important;
  }

  .process-header,
  .proof-header,
  .contact-container {
    max-width:100%!important;
  }

  .process-header p,
  .proof-header p,
  .about p,
  .service-area p,
  .contact-container>h2+p {
    max-width:42rem!important;
    margin-top:18px!important;
    font-size:16px!important;
    line-height:1.6!important;
  }

  /* ---------- SERVICE CARDS ---------- */
  .services-grid {
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:16px!important;
  }

  .service-card,
  .service {
    width:100%!important;
    min-width:0!important;
    border-radius:var(--mobile-radius)!important;
    overflow:hidden!important;
  }

  .service-image {
    aspect-ratio:16/10!important;
    min-height:0!important;
    overflow:hidden!important;
  }

  .service-image img {
    width:100%!important;
    height:100%!important;
    object-fit:cover!important;
  }

  .service-body,
  .service-card .service-body {
    padding:20px!important;
  }

  .service h2,
  .service-card .service-body h2 {
    max-width:20ch!important;
    font-size:21px!important;
    line-height:1.1!important;
    letter-spacing:-.035em!important;
    text-wrap:balance!important;
  }

  .service p {
    margin-top:10px!important;
    font-size:15px!important;
    line-height:1.55!important;
  }

  .service-card .service-body .service-cta {
    width:100%!important;
    min-height:48px!important;
    margin-top:18px!important;
    font-size:11px!important;
    letter-spacing:.06em!important;
  }

  /* ---------- PROCESS ---------- */
  .process-grid {
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:0!important;
  }

  .process-step {
    min-width:0!important;
    padding:22px 0!important;
    border-bottom:1px solid rgba(17,17,17,.10)!important;
  }

  .process-step:first-child {
    border-top:1px solid rgba(17,17,17,.10)!important;
  }

  .process-step h3 {
    max-width:28ch!important;
    font-size:15px!important;
    line-height:1.35!important;
    letter-spacing:.02em!important;
  }

  .process-step p {
    max-width:42rem!important;
    margin-top:8px!important;
    font-size:15px!important;
    line-height:1.55!important;
  }

  /* ---------- ABOUT / CONTENT CARDS ---------- */
  .about-grid,
  .why-peek-grid {
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:24px!important;
  }

  .about-grid > *,
  .why-peek-grid > * {
    min-width:0!important;
  }

  /* ---------- FAQ ---------- */
  .faq-list {
    width:100%!important;
    border-top:1px solid rgba(17,17,17,.12)!important;
  }

  .faq-list details {
    padding:0!important;
    border-bottom:1px solid rgba(17,17,17,.12)!important;
  }

  .faq-list summary {
    min-height:56px!important;
    padding:17px 34px 17px 0!important;
    display:flex!important;
    align-items:center!important;
    font-size:16px!important;
    line-height:1.4!important;
    text-wrap:pretty!important;
    cursor:pointer;
  }

  .faq-list details p {
    padding:0 0 18px!important;
    font-size:15px!important;
    line-height:1.6!important;
  }

  /* ---------- SERVICE AREA ---------- */
  .service-area {
    min-width:0!important;
  }

  .service-area-grid,
  .service-area-inner {
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:24px!important;
  }

  /* ---------- BOOKING CTA ---------- */
  .booking-cta {
    width:auto!important;
    min-height:0!important;
    margin-inline:var(--mobile-gutter)!important;
    margin-bottom:64px!important;
    padding:0!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    gap:24px!important;
  }

  .booking-cta-copy h3 {
    max-width:11ch!important;
    font-size:clamp(2.6rem,12vw,3.7rem)!important;
    line-height:.9!important;
  }

  .booking-cta-copy p {
    max-width:36rem!important;
    margin-top:16px!important;
    font-size:16px!important;
    line-height:1.6!important;
  }

  .booking-cta-button {
    width:100%!important;
    min-width:0!important;
    min-height:52px!important;
    height:auto!important;
    padding:14px 18px!important;
    flex:0 0 auto!important;
    font-size:12px!important;
    line-height:1.25!important;
    white-space:normal!important;
    text-wrap:balance!important;
  }

  /* ---------- FORMS ---------- */
  .quote-address-grid,
  .quote-contact,
  .service-choice-grid {
    min-width:0!important;
  }

  .quote-address-grid {
    grid-template-columns:1fr!important;
  }

  .quote-address-grid .form-field:first-child {
    grid-column:auto!important;
  }

  .quote-contact {
    grid-template-columns:1fr!important;
  }

  .quote-contact .quote-email {
    grid-column:auto!important;
  }

  .service-choice-grid {
    grid-template-columns:1fr!important;
    gap:8px!important;
  }

  .service-choice {
    min-height:48px!important;
    padding:12px 13px!important;
    display:flex!important;
    align-items:center!important;
    gap:10px!important;
    font-size:14px!important;
    line-height:1.35!important;
  }

  .service-choice b {
    font-size:15px!important;
    line-height:1.25!important;
  }

  .form-field label,
  .quote-step legend,
  .quote-address-section>label,
  .photo-field>label:first-child {
    margin-bottom:6px!important;
    font-size:12px!important;
    line-height:1.35!important;
    letter-spacing:.04em!important;
  }

  input, select, textarea,
  #quoteForm input,
  #quoteForm select,
  #quoteForm textarea {
    width:100%!important;
    min-height:48px!important;
    font-size:16px!important;
    line-height:1.4!important;
  }

  textarea {
    min-height:112px!important;
  }

  /* ---------- MODALS: MOBILE SHEET, NOT DESKTOP SHRUNK DOWN ---------- */
  .peek-quote-modal {
    padding:0!important;
    align-items:flex-end!important;
  }

  .peek-quote-modal > #quoteForm {
    width:100%!important;
    max-width:none!important;
    max-height:calc(100dvh - 8px)!important;
    margin:0!important;
    padding:20px var(--mobile-gutter) max(20px, env(safe-area-inset-bottom, 0px))!important;
    border-radius:22px 22px 0 0!important;
    border-bottom:0!important;
    box-shadow:0 -18px 55px rgba(0,0,0,.18)!important;
  }

  .peek-quote-modal .quote-modal-heading h2 {
    max-width:12ch!important;
    font-size:clamp(1.9rem,9vw,2.6rem)!important;
    line-height:.98!important;
    text-wrap:balance!important;
  }

  .peek-quote-modal .quote-modal-heading p {
    max-width:40rem!important;
    font-size:15px!important;
    line-height:1.5!important;
  }

  .peek-quote-modal > #quoteForm > .quote-modal-close {
    width:44px!important;
    height:44px!important;
    min-width:44px!important;
    min-height:44px!important;
    inset:10px 12px auto auto!important;
    font-size:28px!important;
  }

  /* ---------- CALENDLY: TRUE MOBILE TASK SURFACE ---------- */
  .peek-calendly-modal {
    padding:0!important;
    align-items:stretch!important;
  }

  .peek-calendly-dialog {
    width:100%!important;
    max-height:none!important;
    height:100dvh!important;
    border-radius:0!important;
  }

  .peek-calendly-heading {
    padding:calc(14px + env(safe-area-inset-top,0px)) 60px 10px var(--mobile-gutter)!important;
  }

  .peek-calendly-heading h2 {
    font-size:22px!important;
    line-height:1.1!important;
  }

  .peek-calendly-heading p {
    font-size:14px!important;
    line-height:1.4!important;
  }

  .peek-calendly-close {
    top:max(10px, env(safe-area-inset-top,0px))!important;
    right:12px!important;
    width:44px!important;
    height:44px!important;
    min-width:44px!important;
    min-height:44px!important;
  }

  .peek-calendly-widget {
    min-width:0!important;
    height:calc(100dvh - 104px)!important;
    flex:1 1 auto!important;
    overflow:auto!important;
    -webkit-overflow-scrolling:touch!important;
  }

  /* ---------- LUCY: FULL-HEIGHT MOBILE WORKSPACE ---------- */
  .peek-chat {
    min-width:0!important;
  }

  .peek-chat-message,
  .peek-chat-message p {
    max-width:100%!important;
    font-size:16px!important;
    line-height:1.5!important;
    overflow-wrap:anywhere!important;
    word-break:normal!important;
  }

  .peek-chat-form textarea {
    min-height:48px!important;
    max-height:140px!important;
    padding:13px 14px!important;
    font-size:16px!important;
    line-height:1.4!important;
  }

  .peek-chat-quick button {
    min-height:44px!important;
    padding:9px 12px!important;
    font-size:13px!important;
    line-height:1.25!important;
    white-space:normal!important;
  }

  /* ---------- BOTTOM ACTIONS ---------- */
  .peek-floating-actions {
    left:var(--mobile-gutter)!important;
    right:var(--mobile-gutter)!important;
    bottom:calc(10px + env(safe-area-inset-bottom,0px))!important;
    width:auto!important;
    max-width:none!important;
    border-radius:18px!important;
  }

  .peek-floating-action {
    min-height:50px!important;
    min-width:0!important;
    padding:5px 3px!important;
    font-size:11px!important;
    line-height:1.15!important;
    letter-spacing:0!important;
    white-space:normal!important;
    text-align:center!important;
  }

  /* ---------- INTERACTION / ACCESSIBILITY ---------- */
  a,
  button,
  summary,
  input,
  select,
  textarea {
    -webkit-tap-highlight-color:transparent;
  }

  button,
  .button,
  .header-cta,
  .peek-menu-toggle,
  .peek-side-menu-close,
  .peek-calendly-close,
  .peek-quote-modal .quote-modal-close,
  .peek-floating-action {
    touch-action:manipulation;
  }

  .button,
  button,
  .header-cta,
  .peek-menu-toggle,
  .peek-side-menu-close,
  .peek-calendly-close,
  .peek-quote-modal .quote-modal-close,
  .peek-floating-action {
    min-height:44px;
  }

  /* Remove hover-only motion on touch devices. */
  @media (hover:none) {
    .button:hover,
    .service-card:hover,
    .booking-cta:hover,
    .peek-floating-action:hover {
      transform:none!important;
    }
  }

  /* ---------- IMAGE / MEDIA PERFORMANCE ---------- */
  img,
  video,
  iframe {
    max-width:100%;
  }

  /* Keep media from creating accidental horizontal scroll. */
  .service-image,
  .service-image img,
  .peek-calendly-widget,
  .peek-chat {
    min-width:0!important;
  }
}

@media (max-width:390px) {
  :root {
    --mobile-gutter:16px;
  }

  .hero {
    padding-top:calc(var(--mobile-header) + 40px)!important;
    padding-bottom:54px!important;
  }

  .hero-copy h1 {
    font-size:clamp(2.75rem,14vw,3.7rem)!important;
    max-width:11ch!important;
  }

  .section-top h2:not(.sr-only),
  .process-header h2,
  .about h2,
  .proof-header h2,
  .service-area h2,
  .contact-container>h2 {
    font-size:clamp(1.9rem,9vw,2.45rem)!important;
  }

  .service-body,
  .service-card .service-body {
    padding:18px!important;
  }

  .peek-floating-actions {
    left:var(--mobile-gutter)!important;
    right:var(--mobile-gutter)!important;
  }

  .peek-floating-action {
    min-height:48px!important;
    font-size:10.5px!important;
  }
}

@media (prefers-reduced-motion:reduce) {
  .header,
  .peek-side-menu-panel,
  .peek-menu-toggle span,
  .button,
  .service-card,
  .booking-cta,
  .peek-floating-action {
    transition:none!important;
  }
}


/* =========================================================
   PEEK PRESSURE — MOBILE SENIOR-FRIENDLY UX PASS
   Larger type, clearer actions, forgiving touch targets.
   Mobile only; desktop remains unchanged.
   ========================================================= */
@media (max-width:700px) {
  :root {
    --mobile-gutter:20px;
    --mobile-control:52px;
  }

  body {
    font-size:18px!important;
    line-height:1.6!important;
  }

  /* Reading text should be comfortable without zooming. */
  p,
  li,
  .hero-copy>p,
  .process-step p,
  .service p,
  .proof-header p,
  .about p,
  .service-area p,
  .faq-list details p,
  .booking-cta-copy p {
    font-size:17px!important;
    line-height:1.62!important;
  }

  /* Labels stay readable instead of looking like microcopy. */
  .eyebrow,
  .section-top .label,
  .label,
  .launch-status,
  .hero-proof,
  .form-field label,
  .quote-step legend,
  .quote-address-section>label,
  .photo-field>label:first-child {
    font-size:13px!important;
    line-height:1.4!important;
    letter-spacing:.045em!important;
  }

  /* Large, obvious section hierarchy. */
  .section-top h2:not(.sr-only),
  .process-header h2,
  .about h2,
  .proof-header h2,
  .service-area h2,
  .contact-container>h2 {
    font-size:clamp(2.15rem,10vw,2.85rem)!important;
    line-height:1.02!important;
  }

  .service h2,
  .service-card .service-body h2 {
    font-size:22px!important;
    line-height:1.18!important;
  }

  .process-step h3 {
    font-size:17px!important;
    line-height:1.4!important;
  }

  /* Controls: forgiving hit areas and plain readable labels. */
  button,
  .button,
  .header-cta,
  .peek-menu-toggle,
  .peek-side-menu-close,
  .peek-calendly-close,
  .peek-quote-modal .quote-modal-close,
  .peek-floating-action,
  .service-card .service-body .service-cta,
  .booking-cta-button,
  #quoteForm button[type="submit"] {
    min-height:52px!important;
    font-size:14px!important;
    line-height:1.25!important;
  }

  .hero-buttons {
    gap:12px!important;
  }

  .hero-buttons .button {
    padding:14px 20px!important;
    font-size:15px!important;
    letter-spacing:.035em!important;
  }

  .header-cta {
    padding-inline:14px!important;
    font-size:13px!important;
    letter-spacing:.035em!important;
  }

  /* Don't make users precisely hit tiny menu rows. */
  .peek-side-menu a,
  .peek-side-menu-link {
    min-height:52px!important;
    padding-block:14px!important;
    font-size:17px!important;
    line-height:1.35!important;
  }

  /* Forms become easy to scan and hard to mis-tap. */
  .form-field {
    margin-bottom:16px!important;
  }

  input,
  select,
  textarea,
  #quoteForm input,
  #quoteForm select,
  #quoteForm textarea {
    min-height:52px!important;
    padding:13px 14px!important;
    font-size:17px!important;
    line-height:1.4!important;
  }

  textarea {
    min-height:120px!important;
  }

  .service-choice {
    min-height:54px!important;
    padding:13px 14px!important;
    font-size:16px!important;
    line-height:1.35!important;
  }

  .service-choice b {
    font-size:16px!important;
  }

  /* FAQ rows should be unmistakably tappable. */
  .faq-list summary {
    min-height:64px!important;
    padding:18px 40px 18px 0!important;
    font-size:17px!important;
    line-height:1.4!important;
  }

  /* Lucy: readable conversation + obvious controls. */
  .peek-chat-message,
  .peek-chat-message p {
    font-size:17px!important;
    line-height:1.58!important;
  }

  .peek-chat-form textarea {
    min-height:52px!important;
    padding:13px 14px!important;
    font-size:17px!important;
  }

  .peek-chat-quick button {
    min-height:48px!important;
    padding:10px 14px!important;
    font-size:14px!important;
  }

  /* Floating actions are labels, not tiny app icons. */
  .peek-floating-action {
    min-height:52px!important;
    padding:6px 4px!important;
    font-size:12px!important;
    line-height:1.2!important;
    font-weight:600;
  }

  /* Keep important phone/contact text together. */
  .header-phone {
    font-size:13px!important;
  }

  /* Larger focus indication for keyboard/switch access. */
  :focus-visible {
    outline-width:3px!important;
    outline-offset:3px!important;
  }
}

@media (max-width:390px) {
  body {
    font-size:17px!important;
  }

  p,
  li,
  .hero-copy>p,
  .process-step p,
  .service p,
  .proof-header p,
  .about p,
  .service-area p,
  .faq-list details p,
  .booking-cta-copy p {
    font-size:16px!important;
  }

  .hero-buttons .button,
  button,
  .button {
    font-size:14px!important;
  }

  .peek-floating-action {
    font-size:11.5px!important;
  }
}


/* =========================================================
   PEEK PRESSURE — VISUAL POLISH / MOBILE BEAUTY PASS
   Keeps the premium editorial direction while restoring
   depth, rhythm, contrast, and intentional whitespace.
   ========================================================= */
@media (max-width:700px) {
  :root {
    --peek-mobile-ink:#111;
    --peek-mobile-muted:#666;
    --peek-mobile-line:#e4e4e4;
    --peek-mobile-soft:#f6f6f4;
  }

  body {
    background:#fff!important;
    color:var(--peek-mobile-ink)!important;
  }

  .container {
    width:min(calc(100% - 40px),680px)!important;
  }

  /* Header: crisp, premium, never visually heavy. */
  .header,
  .header.scrolled {
    border-bottom:1px solid rgba(17,17,17,.08)!important;
    box-shadow:0 4px 22px rgba(0,0,0,.035)!important;
  }

  .header-inner {
    min-height:52px!important;
  }

  .logo {
    font-size:1rem!important;
    letter-spacing:-.055em!important;
  }

  /* Hero: stronger composition and breathing room. */
  .hero {
    min-height:calc(100svh - 52px)!important;
    display:flex!important;
    align-items:center!important;
    padding-top:calc(52px + 42px)!important;
    padding-bottom:64px!important;
    background:
      radial-gradient(circle at 92% 16%,rgba(17,17,17,.055),transparent 30%),
      linear-gradient(180deg,#fff 0%,#f7f7f5 100%)!important;
  }

  .hero-copy {
    max-width:34rem!important;
  }

  .hero-copy h1 {
    margin-top:18px!important;
    font-size:clamp(3.05rem,13.5vw,4.55rem)!important;
    line-height:.86!important;
    letter-spacing:-.075em!important;
    max-width:9.5ch!important;
  }

  .hero-copy>p {
    max-width:32rem!important;
    margin-top:22px!important;
    color:#555!important;
    font-size:17px!important;
    line-height:1.58!important;
  }

  .hero-proof {
    margin-top:20px!important;
    color:#777!important;
    font-size:11px!important;
    letter-spacing:.12em!important;
  }

  .hero-buttons {
    margin-top:26px!important;
  }

  .hero-buttons .button {
    width:100%!important;
    min-height:56px!important;
    border-radius:16px!important;
    font-size:14px!important;
    font-weight:650!important;
    letter-spacing:.08em!important;
    box-shadow:0 8px 24px rgba(0,0,0,.07)!important;
  }

  /* Sections: alternating surfaces create visual rhythm without gimmicks. */
  .services,
  .proof-section {
    background:#f7f7f5!important;
    border-color:#e7e7e4!important;
  }

  .about,
  .service-area {
    background:#f1f1ef!important;
  }

  .process,
  .why-peek {
    background:#fff!important;
  }

  .services,
  .about,
  .process,
  .why-peek,
  .proof-section,
  .service-area {
    padding-top:72px!important;
    padding-bottom:72px!important;
  }

  .section-top {
    margin-bottom:28px!important;
  }

  .label,
  .eyebrow {
    color:#777!important;
    font-size:11px!important;
    letter-spacing:.16em!important;
  }

  /* Service cards: tactile, clean, editorial. */
  .services-grid {
    gap:16px!important;
  }

  .service {
    border:1px solid rgba(17,17,17,.09)!important;
    border-radius:20px!important;
    background:#fff!important;
    box-shadow:0 14px 40px rgba(17,17,17,.055)!important;
  }

  .service-image {
    height:auto!important;
    aspect-ratio:16/10!important;
  }

  .service-image img {
    object-position:center!important;
  }

  .service-body,
  .service-card .service-body {
    min-height:0!important;
    padding:22px!important;
  }

  .service-body .number {
    margin-bottom:13px!important;
    color:#888!important;
    font-size:11px!important;
  }

  .service h2,
  .service-card .service-body h2 {
    font-size:22px!important;
    line-height:1.05!important;
    letter-spacing:-.045em!important;
  }

  .service p {
    margin-top:11px!important;
    color:#5f5f5f!important;
    font-size:16px!important;
    line-height:1.58!important;
  }

  /* About/process: give the oversized type room to breathe. */
  .about-grid {
    gap:24px!important;
    min-height:0!important;
    padding-top:0!important;
    padding-bottom:0!important;
  }

  .about-grid h2,
  .process-header h2,
  .why-peek-intro h2,
  .service-area h2,
  .proof-header h2,
  .contact-container>h2,
  .booking-cta-copy h3 {
    font-size:clamp(2.55rem,11vw,3.75rem)!important;
    line-height:.9!important;
    letter-spacing:-.065em!important;
  }

  .about p,
  .process-header p,
  .proof-header p,
  .booking-cta-copy p {
    margin-top:18px!important;
    color:#5f5f5f!important;
    font-size:17px!important;
    line-height:1.62!important;
  }

  .process-header {
    gap:20px!important;
    margin-bottom:34px!important;
  }

  .process-grid {
    border-top:1px solid #ddd!important;
  }

  .process-step {
    min-height:0!important;
    padding:24px 0!important;
    border-right:0!important;
    border-bottom:1px solid #e1e1e1!important;
  }

  .step-number {
    margin-bottom:22px!important;
    font-size:11px!important;
  }

  .process-step h3 {
    margin-bottom:8px!important;
    font-size:16px!important;
    letter-spacing:.06em!important;
  }

  .process-step p {
    max-width:none!important;
    color:#666!important;
    font-size:16px!important;
  }

  /* Why PEEK becomes a premium checklist, not a wall of text. */
  .why-peek-point {
    padding:20px 0!important;
    border-bottom:1px solid #e2e2e2!important;
  }

  .why-peek-point>span {
    font-size:11px!important;
    color:#888!important;
  }

  .why-peek-point h3 {
    font-size:15px!important;
    line-height:1.3!important;
    letter-spacing:.07em!important;
  }

  .why-peek-point p {
    margin-top:7px!important;
    color:#666!important;
    font-size:16px!important;
    line-height:1.55!important;
  }

  /* Proof: honest launch state, but visually intentional. */
  .proof-header {
    gap:20px!important;
  }

  .before-after-card,
  .review-card {
    border:1px solid #dededb!important;
    border-radius:20px!important;
    background:#fff!important;
    box-shadow:0 12px 36px rgba(17,17,17,.045)!important;
    overflow:hidden!important;
  }

  .proof-placeholder {
    min-height:230px!important;
  }

  .review-card {
    padding:22px!important;
  }

  /* Service area / map: make the utility feel like part of the design. */
  .service-area-lead {
    max-width:34rem!important;
  }

  .service-zip-check {
    background:#fff!important;
    border:1px solid #dededb!important;
    box-shadow:0 10px 30px rgba(17,17,17,.045)!important;
  }

  .service-map-wrap {
    border-radius:20px!important;
    overflow:hidden!important;
    border:1px solid #ddd!important;
    box-shadow:0 14px 38px rgba(17,17,17,.06)!important;
  }

  /* Booking / contact: make the conversion moment feel premium. */
  .contact-section {
    margin-block:64px!important;
    width:min(calc(100% - 40px),680px)!important;
  }

  .contact-container {
    padding:24px!important;
    border-radius:22px!important;
    border:1px solid #dededb!important;
    background:#fafaf8!important;
    box-shadow:0 18px 50px rgba(17,17,17,.065)!important;
  }

  .contact-container .booking-cta {
    margin:24px 0 0!important;
  }

  .contact-container .booking-cta-inner {
    padding:20px!important;
    border-radius:18px!important;
    border:1px solid #dededb!important;
    background:#f2f2f0!important;
    box-shadow:none!important;
  }

  .booking-cta-button,
  #quoteForm button[type="submit"] {
    min-height:56px!important;
    border-radius:16px!important;
    font-size:14px!important;
    letter-spacing:.08em!important;
  }

  /* Forms: beautiful and calm rather than clinical. */
  main>form#quoteForm input,
  main>form#quoteForm select,
  main>form#quoteForm textarea,
  .form-field input,
  .form-field select,
  .form-field textarea {
    border:1px solid #d8d8d5!important;
    border-radius:14px!important;
    background:#fff!important;
    padding:14px!important;
    box-shadow:0 1px 2px rgba(0,0,0,.02)!important;
  }

  main>form#quoteForm input:focus,
  main>form#quoteForm select:focus,
  main>form#quoteForm textarea:focus,
  .form-field input:focus,
  .form-field select:focus,
  .form-field textarea:focus {
    border-color:#111!important;
    background:#fff!important;
    box-shadow:0 0 0 3px rgba(17,17,17,.07)!important;
    transform:none!important;
  }

  /* Footer: strong visual finish. */
  footer {
    background:#101010!important;
    padding-top:48px!important;
    padding-bottom:calc(40px + env(safe-area-inset-bottom))!important;
  }

  .footer-inner {
    padding-bottom:0!important;
  }

  .footer-inner p {
    color:#aaa!important;
    font-size:14px!important;
    line-height:1.6!important;
  }

  /* Floating rail: compact but premium, never cramped. */
  .peek-floating-actions {
    background:rgba(17,17,17,.96)!important;
    border:1px solid rgba(255,255,255,.12)!important;
    box-shadow:0 14px 38px rgba(0,0,0,.2)!important;
  }

  .peek-floating-action {
    color:#fff!important;
    min-height:52px!important;
    font-size:11px!important;
  }

  .peek-floating-icon {
    opacity:.9;
  }

  /* Keep the layout fluid on very small phones. */
  .container {
    width:calc(100% - 32px)!important;
  }

  .hero {
    padding-left:0!important;
    padding-right:0!important;
  }
}

@media (max-width:390px) {
  .hero-copy h1 {
    font-size:clamp(2.8rem,13.5vw,3.65rem)!important;
  }

  .hero-copy>p {
    font-size:16px!important;
  }

  .services,
  .about,
  .process,
  .why-peek,
  .proof-section,
  .service-area {
    padding-top:60px!important;
    padding-bottom:60px!important;
  }

  .service-body,
  .service-card .service-body {
    padding:19px!important;
  }

  .contact-container {
    padding:20px!important;
  }
}

/* =========================================================
   PEEK PRESSURE — ABOUT / CLEAN SINGLE-SOURCE LAYOUT
   One authoritative rule set. Keep this block last.
   ========================================================= */
.about{background:#f4f4f1!important;color:#111!important;overflow:visible!important}
.about-grid{position:relative!important;display:grid!important;grid-template-columns:minmax(160px,.24fr) minmax(0,.76fr)!important;gap:clamp(2rem,4vw,4rem)!important;align-items:start!important;min-height:0!important;padding-block:clamp(3.5rem,5vw,5rem)!important}
.about-grid>.label{padding-top:.35rem!important;color:#777!important;font-size:.55rem!important;font-weight:700!important;letter-spacing:.16em!important}
.about-grid>div{min-width:0!important}
.about h2,.about-grid h2{max-width:9ch!important;margin:0!important;color:#111!important;font-size:clamp(3rem,4.8vw,4.8rem)!important;font-weight:600!important;line-height:.84!important;letter-spacing:-.075em!important;text-wrap:balance!important}
.about-grid>div>p{max-width:36rem!important;margin:1.25rem 0 0!important;color:#555!important;font-size:.82rem!important;line-height:1.7!important}
.about-expertise{position:relative!important;width:100%!important;max-width:none!important;margin-top:clamp(2.25rem,3.5vw,3.25rem)!important;border-top:1px solid rgba(0,0,0,.13)!important}
.about-expertise-head{display:grid!important;grid-template-columns:minmax(110px,.25fr) minmax(0,.75fr)!important;gap:1.5rem!important;padding:.9rem 0!important}
.about-kicker{display:block!important;color:#111!important;font-size:.5rem!important;font-weight:800!important;letter-spacing:.15em!important;line-height:1.4!important}
.about-expertise-head p{max-width:38rem!important;margin:0!important;color:#666!important;font-size:.72rem!important;line-height:1.65!important}
.about-expertise-list{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;width:100%!important;border-top:1px solid rgba(0,0,0,.09)!important;border-bottom:1px solid rgba(0,0,0,.12)!important}
.about-expertise-trigger{appearance:none!important;display:flex!important;align-items:center!important;min-height:3.35rem!important;padding:.7rem .65rem!important;border:0!important;border-right:1px solid rgba(0,0,0,.1)!important;background:transparent!important;color:#30302e!important;font:inherit!important;font-size:.48rem!important;font-weight:800!important;letter-spacing:.095em!important;line-height:1.3!important;text-align:left!important;cursor:pointer!important;transition:background-color .2s ease,color .2s ease!important}
.about-expertise-trigger:last-child{border-right:0!important}
.about-expertise-trigger:hover,.about-expertise-trigger:focus-visible,.about-expertise-trigger.is-active{color:#111!important;background:#eaeae6!important}
.about-expertise-trigger:focus-visible{outline:2px solid #111!important;outline-offset:-2px!important}
.about-expertise-trigger.is-active{box-shadow:inset 0 -2px #111!important}
.about-expertise-detail{position:absolute!important;z-index:12!important;right:0!important;bottom:0!important;left:auto!important;top:auto!important;width:min(360px,34vw)!important;min-height:0!important;box-sizing:border-box!important;margin:0!important;padding:1.15rem 2.7rem 1.2rem 1.25rem!important;border:1px solid rgba(0,0,0,.13)!important;border-radius:0!important;background:#fafaf7!important;box-shadow:0 14px 34px rgba(0,0,0,.06)!important;opacity:0!important;transform:translateY(8px)!important;pointer-events:none!important;transition:opacity .28s ease,transform .32s cubic-bezier(.22,1,.36,1)!important}
.about-expertise-detail:not([hidden]){opacity:1!important;transform:translateY(0)!important;pointer-events:auto!important}
.about-detail-label{display:block!important;margin-bottom:.55rem!important;color:#777!important;font-size:.47rem!important;font-weight:800!important;letter-spacing:.15em!important}
.about-expertise-detail h3{max-width:18ch!important;margin:0 0 .45rem!important;color:#111!important;font-size:clamp(1.25rem,1.7vw,1.7rem)!important;font-weight:600!important;line-height:.96!important;letter-spacing:-.05em!important}
.about-expertise-detail p{max-width:28rem!important;margin:0!important;color:#60605c!important;font-size:.67rem!important;line-height:1.6!important}
.about-detail-close{position:absolute!important;top:.85rem!important;right:.9rem!important;border:0!important;background:transparent!important;color:#777!important;font:inherit!important;font-size:.46rem!important;font-weight:800!important;letter-spacing:.08em!important;text-transform:uppercase!important;cursor:pointer!important}
.about-detail-close:hover{color:#111!important}
@media (min-width:901px) and (max-width:1150px){.about-expertise-list{width:calc(100% - 330px)!important}.about-expertise-detail{width:310px!important}}
@media (max-width:900px){
 .about-grid{grid-template-columns:1fr!important;gap:0!important;width:calc(100% - 2rem)!important;padding-block:3.5rem!important}
 .about-grid>.label{margin-bottom:2rem!important}
 .about h2,.about-grid h2{max-width:9ch!important;font-size:clamp(3rem,10vw,4.8rem)!important}
 .about-grid>div>p{font-size:.8rem!important}
 .about-expertise{margin-top:2.75rem!important}
 .about-expertise-head{grid-template-columns:1fr!important;gap:.5rem!important}
 .about-expertise-list{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 .about-expertise-trigger{min-height:3.5rem!important}
 .about-expertise-trigger:nth-child(2){border-right:0!important}
 .about-expertise-trigger:nth-child(3),.about-expertise-trigger:nth-child(4){border-top:1px solid rgba(0,0,0,.1)!important}
 .about-expertise-trigger:nth-child(3){padding-left:.65rem!important}
 .about-expertise-detail{position:relative!important;right:auto!important;bottom:auto!important;left:auto!important;top:auto!important;width:100%!important;margin:.65rem 0 0!important;padding:1.1rem 2.75rem 1.2rem 1.1rem!important;box-shadow:none!important;transform:translateY(6px)!important}
 .about-expertise-detail:not([hidden]){transform:translateY(0)!important}
}
@media (max-width:520px){.about-grid{width:calc(100% - 1.5rem)!important;padding-block:3rem!important}.about h2,.about-grid h2{font-size:clamp(2.8rem,13vw,4.25rem)!important}}
@media (prefers-reduced-motion:reduce){.about-expertise-detail,.about-expertise-trigger{transition:none!important}}


/* PEEK PRESSURE — About editorial layout
   Final visual layer: compact expertise row + lower-right detail note. */
.about{
  position:relative!important;
  overflow:visible!important;
  isolation:isolate!important;
  background:#f4f4f1!important;
}
.about-grid{
  position:relative!important;
  display:grid!important;
  grid-template-columns:minmax(7rem,.24fr) minmax(0,.76fr)!important;
  gap:clamp(2.5rem,6vw,6rem)!important;
  align-items:start!important;
  min-height:0!important;
  padding-block:clamp(4.5rem,7vw,6.5rem)!important;
}
.about h2{
  margin:0!important;
  max-width:9ch!important;
  font-size:clamp(3rem,4.8vw,4.8rem)!important;
  line-height:.84!important;
  letter-spacing:-.075em!important;
  font-weight:700!important;
}
.about > .about-grid > div > p{
  width:min(100%,36rem)!important;
  margin:1.75rem 0 0!important;
  color:#666!important;
  font-size:.82rem!important;
  line-height:1.7!important;
}
.about-expertise{
  position:relative!important;
  margin-top:clamp(3rem,5vw,4.5rem)!important;
  padding-top:1.25rem!important;
  border-top:1px solid #d8d8d3!important;
}
.about-expertise-head{
  display:grid!important;
  grid-template-columns:minmax(8rem,.28fr) minmax(0,.72fr)!important;
  gap:2rem!important;
  align-items:start!important;
}
.about-kicker{
  color:#777!important;
  font-size:.56rem!important;
  line-height:1.3!important;
  font-weight:700!important;
  letter-spacing:.14em!important;
}
.about-expertise-head p{
  max-width:30rem!important;
  margin:0!important;
  color:#666!important;
  font-size:.72rem!important;
  line-height:1.6!important;
}
.about-expertise-list{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  margin-top:2rem!important;
  border-top:1px solid #deded9!important;
  border-bottom:1px solid #deded9!important;
}
.about-expertise-trigger{
  position:relative!important;
  min-height:3.8rem!important;
  padding:0 .9rem!important;
  border:0!important;
  border-right:1px solid #deded9!important;
  background:transparent!important;
  color:#777!important;
  font:700 .58rem/1.35 inherit!important;
  letter-spacing:.09em!important;
  text-align:left!important;
  cursor:pointer!important;
  transition:color .2s ease,background-color .2s ease!important;
}
.about-expertise-trigger:first-child{padding-left:0!important}
.about-expertise-trigger:last-child{border-right:0!important}
.about-expertise-trigger:hover,
.about-expertise-trigger:focus-visible,
.about-expertise-trigger.is-active{
  color:#111!important;
  background:#efefeb!important;
}
.about-expertise-trigger.is-active::after{
  content:""!important;
  position:absolute!important;
  left:0!important;
  right:0!important;
  bottom:-1px!important;
  height:2px!important;
  background:#111!important;
}
.about-expertise-detail{
  position:absolute!important;
  z-index:5!important;
  right:0!important;
  bottom:calc(100% + 1rem)!important;
  width:min(520px,48vw)!important;
  transform:translateY(8px)!important;
  padding:1.35rem 3.25rem 1.35rem 1.5rem!important;
  background:#fff!important;
  border:1px solid #d8d8d3!important;
  box-shadow:0 18px 45px rgba(0,0,0,.10)!important;
}
.about-expertise-detail[hidden]{display:none!important}
.about-detail-label{
  display:block!important;
  margin-bottom:.65rem!important;
  color:#777!important;
  font-size:.58rem!important;
  line-height:1.3!important;
  font-weight:700!important;
  letter-spacing:.13em!important;
}
.about-expertise-detail h3{
  margin:0!important;
  color:#111!important;
  font-size:clamp(1.15rem,1.7vw,1.45rem)!important;
  line-height:1.15!important;
  letter-spacing:-.025em!important;
}
.about-expertise-detail p{
  width:auto!important;
  max-width:42rem!important;
  margin:.7rem 0 0!important;
  color:#555!important;
  font-size:.82rem!important;
  line-height:1.65!important;
}
.about-detail-close{
  position:absolute!important;
  top:.7rem!important;
  right:.75rem!important;
  padding:.25rem!important;
  border:0!important;
  background:transparent!important;
  color:#777!important;
  font:600 .56rem/1 inherit!important;
  cursor:pointer!important;
}
.about-detail-close span{font-size:.9rem!important;margin-left:.2rem!important}

@media (max-width:900px){
  .about-expertise-detail{
    position:relative!important;
    right:auto!important;
    bottom:auto!important;
    width:100%!important;
    transform:none!important;
    margin-top:1rem!important;
    box-shadow:none!important;
  }
  .about-grid{
    grid-template-columns:1fr!important;
    gap:1.5rem!important;
    padding-block:4rem!important;
  }
  .about h2{
    max-width:none!important;
    font-size:clamp(2.65rem,10vw,3.8rem)!important;
  }
  .about > .about-grid > div > p{
    max-width:36rem!important;
    margin-top:1.5rem!important;
  }
  .about-expertise{
    margin-top:3rem!important;
  }
  .about-expertise-head{
    grid-template-columns:1fr!important;
    gap:.65rem!important;
  }
  .about-expertise-list{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  .about-expertise-trigger{
    min-height:3.5rem!important;
    padding:.7rem 0!important;
    border-right:0!important;
    border-bottom:1px solid #deded9!important;
  }
  .about-expertise-trigger:nth-child(odd){padding-right:.75rem!important;border-right:1px solid #deded9!important}
  .about-expertise-trigger:nth-child(3),
  .about-expertise-trigger:nth-child(4){border-bottom:0!important}
  .about-expertise-trigger.is-active::after{
    bottom:auto!important;
    top:0!important;
    height:1px!important;
  }
  .about-expertise-detail{
    position:relative!important;
    right:auto!important;
    bottom:auto!important;
    width:auto!important;
    transform:none!important;
    margin-top:1rem!important;
    box-shadow:none!important;
  }
}

@media (prefers-reduced-motion:reduce){
  .about-expertise-trigger{transition:none!important}
}
