/* index.css — page-specific layout for the marketing home page (index.html): the
   hero, services, results gallery, why, coverage map, quote form, booking wizard,
   price calculator and the intl-tel-input dark theme. The chrome (nav, footer,
   mobile menu, to-top, body grain/glow), the gold eyebrow base and reveal come
   from the shared layer; this file keeps only page layout plus the few chrome
   overrides the home page needs (translucent hero nav, underlined nav links).
   Cascade: tokens -> base -> site -> animations -> index.css. */

  .container{max-width:1180px;margin:0 auto;padding:0 28px}

  /* ---------- NAV (translucent hero variant) ---------- */
  /* Base nav layout, .brand, .nav-cta and the mobile menu come from site.css.
     The home page opens over the hero with a near-transparent bar that fades in a
     background + border on scroll, and dimmer links that underline on hover. */
  nav{
    background:rgba(15,14,12,.55);
    border-bottom:1px solid transparent;
    transition:border-color .4s,background .4s;
  }
  .nav-links a{color:var(--ink-dim);position:relative}
  .nav-links a.hide-sm::after{
    content:'';position:absolute;left:0;bottom:-2px;
    width:100%;height:1.5px;
    background:var(--gold);
    transform:scaleX(0);transform-origin:center;
    transition:transform .28s cubic-bezier(.4,0,.2,1);
  }
  .nav-links a.hide-sm:hover{color:var(--ink-soft)}
  .nav-links a.hide-sm:hover::after{transform:scaleX(1)}
  @media(prefers-reduced-motion:reduce){.nav-links a.hide-sm::after{transition:none}}

  /* ---------- HERO ---------- */
  header{
    min-height:100vh;display:flex;flex-direction:column;justify-content:center;
    align-items:flex-start;text-align:left;
    padding:140px 0 90px;position:relative;
  }
  header .container{width:100%}
  .eyebrow,.hero-cta,.lede{margin-left:0;margin-right:auto}
  .eyebrow{
    display:inline-flex;align-items:center;gap:12px;
    color:var(--gold);font-size:.74rem;letter-spacing:.34em;text-transform:uppercase;
    margin-bottom:28px;opacity:0;animation:rise .9s .1s forwards;
  }
  .eyebrow::before{content:"";width:38px;height:1px;background:var(--gold)}
  /* site.css gives .eyebrow a trailing ::after rule too; the home hero has only a
     leading rule, so neutralise the shared trailing line here. */
  .eyebrow::after{content:none}
  h1{
    font-family:var(--serif);font-weight:300;
    font-size:clamp(2.9rem,8vw,6.2rem);line-height:.98;letter-spacing:-.015em;
    max-width:14ch;margin-bottom:30px;
  }
  h1 .em{font-style:italic;color:var(--gold-soft)}
  h1 .l{display:block;opacity:0;animation:rise 1s forwards}
  h1 .l:nth-child(1){animation-delay:.18s}
  h1 .l:nth-child(2){animation-delay:.32s}
  h1 .l:nth-child(3){animation-delay:.46s}
  .lede{
    font-size:clamp(1.02rem,2vw,1.22rem);color:var(--ink-soft);max-width:50ch;
    margin-bottom:42px;opacity:0;animation:rise 1s .6s forwards;font-weight:300;
  }
  .hero-cta{display:flex;gap:16px;flex-wrap:wrap;opacity:0;animation:rise 1s .75s forwards}
  .btn{
    font-family:var(--sans);font-size:.86rem;letter-spacing:.08em;text-transform:uppercase;
    padding:16px 32px;border-radius:2px;text-decoration:none;cursor:pointer;
    transition:all .3s;border:1px solid transparent;display:inline-block;
  }
  .btn-gold{background:var(--gold);color:var(--bg);font-weight:500}
  .btn-gold:hover{background:var(--gold-soft);transform:translateY(-2px)}
  .btn-ghost{background:transparent;border-color:var(--line);color:var(--ink)}
  .btn-ghost:hover{border-color:var(--gold);color:var(--gold)}

  .hero-meta{
    position:absolute;bottom:46px;left:28px;right:28px;max-width:1180px;margin:0 auto;
    display:flex;gap:48px;flex-wrap:wrap;
    border-top:1px solid var(--line-soft);padding-top:24px;
    opacity:0;animation:rise 1s .95s forwards;
  }
  .hero-meta div{font-size:.8rem;color:var(--ink-dim);letter-spacing:.05em}
  .hero-meta b{display:block;font-family:var(--serif);color:var(--ink);font-size:1.5rem;font-weight:400;margin-bottom:3px}

  @keyframes rise{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}

  /* ---------- SECTION SHELL ---------- */
  section{padding:110px 0;position:relative}
  .sec-head{margin-bottom:62px}
  .sec-tag{color:var(--gold);font-size:.74rem;letter-spacing:.3em;text-transform:uppercase;display:block;margin-bottom:18px}
  .sec-title{font-family:var(--serif);font-weight:300;font-size:clamp(2rem,4.5vw,3.2rem);line-height:1.05;letter-spacing:-.01em}
  .sec-title .em{font-style:italic;color:var(--gold-soft)}

  /* reveal-on-scroll is shared (animations.css + site.js) */

  /* ---------- SERVICES ---------- */
  .services{background:linear-gradient(180deg,transparent,var(--bg-2))}
  .svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line-soft);border:1px solid var(--line-soft)}
  @media(max-width:820px){.svc-grid{grid-template-columns:1fr}}
  .svc{background:var(--bg);padding:46px 38px;transition:background .4s;position:relative}
  .svc:hover{background:var(--panel)}
  .svc-num{font-family:var(--serif);font-style:italic;color:var(--gold);font-size:1rem;margin-bottom:22px;display:block}
  .svc h3{font-family:var(--serif);font-weight:400;font-size:1.55rem;margin-bottom:14px}
  .svc p{color:var(--ink-soft);font-size:.95rem}
  .svc ul{list-style:none;margin-top:20px}
  .svc li{color:var(--ink-dim);font-size:.86rem;padding:7px 0;border-top:1px solid var(--line-soft)}
  .svc li::before{content:"—  ";color:var(--gold)}

  /* ---------- RESULTS GALLERY ---------- */
  .gallery-grid{
    display:grid;grid-template-columns:repeat(12,1fr);gap:14px;grid-auto-rows:200px;
  }
  .shot{
    position:relative;overflow:hidden;border-radius:3px;background:var(--panel);
    border:1px solid var(--line-soft);
  }
  /* placeholder look until real photos dropped in */
  .shot .ph{
    position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
    color:var(--ink-dim);font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;
    background:
      repeating-linear-gradient(45deg,rgba(201,165,88,.04) 0 14px,transparent 14px 28px),
      var(--panel);
  }
  .shot img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .7s}
  .shot:hover img{transform:scale(1.05)}
  .shot .tag{
    position:absolute;left:14px;bottom:14px;z-index:2;
    font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);
    background:rgba(15,14,12,.6);backdrop-filter:blur(4px);padding:5px 12px;border-radius:2px;
    border:1px solid var(--line);
  }
  .shot::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(15,14,12,.55));z-index:1;pointer-events:none}
  /* layout spans */
  .g1{grid-column:span 5;grid-row:span 2}
  .g2{grid-column:span 4;grid-row:span 1}
  .g3{grid-column:span 3;grid-row:span 1}
  .g4{grid-column:span 4;grid-row:span 1}
  .g5{grid-column:span 3;grid-row:span 1}
  .g6{grid-column:span 4;grid-row:span 1}
  .g7{grid-column:span 8;grid-row:span 1}
  @media(max-width:820px){
    .gallery-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:160px}
    .g1,.g2,.g3,.g4,.g5,.g6,.g7{grid-column:span 1;grid-row:span 1}
    .g1{grid-column:span 2;grid-row:span 2}
  }

  /* ---------- WHY ---------- */
  .why{background:var(--bg-2)}
  .why-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}
  @media(max-width:820px){.why-grid{grid-template-columns:1fr;gap:40px}}
  .why-list{display:flex;flex-direction:column;gap:0}
  .why-item{padding:26px 0;border-top:1px solid var(--line-soft);display:flex;gap:22px}
  .why-item:last-child{border-bottom:1px solid var(--line-soft)}
  .why-item .n{font-family:var(--serif);font-style:italic;color:var(--gold);font-size:1.1rem;min-width:34px}
  .why-item h4{font-family:var(--serif);font-weight:400;font-size:1.25rem;margin-bottom:6px}
  .why-item p{color:var(--ink-soft);font-size:.92rem}

  /* ---------- AREA ---------- */
  .area-chips{display:flex;flex-wrap:wrap;gap:12px;margin-top:10px}
  .chip{
    border:1px solid var(--line);color:var(--ink-soft);
    padding:11px 22px;border-radius:40px;font-size:.85rem;letter-spacing:.04em;
    transition:all .3s;
  }
  .chip:hover{border-color:var(--gold);color:var(--gold)}
  /* coverage map */
  .area-map-wrap{margin:34px 0 30px;border:1px solid var(--line-soft);border-radius:6px;overflow:hidden;position:relative;isolation:isolate}
  #area-map{height:420px;width:100%;background:var(--bg-2)}
  @media(max-width:620px){#area-map{height:320px}}
  .area-map-cap{font-size:.78rem;color:var(--ink-dim);letter-spacing:.03em;margin-top:12px}
  /* dark leaflet skin to match the site */
  .leaflet-container{background:#0f0e0c;font-family:var(--sans)}
  .leaflet-tile{filter:brightness(.72) contrast(1.04) saturate(.78)}
  .leaflet-control-zoom a{background:#16140f!important;color:var(--ink-soft)!important;border-color:var(--line)!important}
  .leaflet-control-zoom a:hover{color:var(--gold)!important}
  .leaflet-bar{border-color:var(--line)!important}
  .leaflet-control-attribution{background:rgba(15,14,12,.5)!important;color:rgba(125,116,100,.55)!important;font-size:9px!important}
  .leaflet-control-attribution a{color:rgba(125,116,100,.7)!important}
  .leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#16140f;color:var(--ink);border:1px solid var(--line)}
  .leaflet-popup-content{font-family:var(--sans);font-size:.84rem}

  /* ---------- QUOTE FORM ---------- */
  .quote{background:linear-gradient(180deg,var(--bg-2),var(--bg))}
  .quote-box{
    display:grid;grid-template-columns:.85fr 1.15fr;gap:0;
    border:1px solid var(--line);border-radius:4px;overflow:hidden;
  }
  @media(max-width:820px){.quote-box{grid-template-columns:1fr}}
  .quote-aside{background:var(--panel);padding:54px 46px;display:flex;flex-direction:column;justify-content:center}
  .quote-aside h3{font-family:var(--serif);font-weight:300;font-size:2rem;line-height:1.1;margin-bottom:18px}
  .quote-aside h3 .em{font-style:italic;color:var(--gold-soft)}
  .quote-aside p{color:var(--ink-soft);font-size:.95rem;margin-bottom:26px}
  .quote-contact{font-size:.9rem;color:var(--ink-dim);line-height:2}
  .quote-contact a{color:var(--gold);text-decoration:none}
  .quote-altcontact{margin-top:20px;font-size:.82rem;color:var(--ink-dim);letter-spacing:.02em}
  .quote-altcontact a{color:var(--ink-soft);text-decoration:none}
  .quote-altcontact a:hover{color:var(--gold)}
  .quote-form{padding:48px 46px;display:flex;flex-direction:column;gap:20px}
  .field label{display:block;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-dim);margin-bottom:9px}
  .field input,.field select,.field textarea{
    width:100%;background:var(--bg);border:1px solid var(--line-soft);
    color:var(--ink);padding:14px 16px;border-radius:2px;font-family:var(--sans);
    font-size:.95rem;transition:border-color .25s;
  }
  .field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--gold)}
  .char-count{font-size:.72rem;color:var(--ink-dim);margin-top:6px;text-align:right;letter-spacing:.02em}
  .char-count.low{color:var(--gold-soft)}
  .field-err{font-size:.78rem;color:#e0846b;margin-top:5px;min-height:1.1em;line-height:1.3}
  .field-hint{font-size:.75rem;color:var(--ink-dim);margin-top:5px;line-height:1.3}
  .field-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
  @media(max-width:520px){.field-row{grid-template-columns:1fr}}
  .quote-form .btn-gold{margin-top:8px;text-align:center;border:none}
  .form-status{margin-top:14px;font-size:.86rem;min-height:1.2em;letter-spacing:.02em}
  .form-status.ok{color:var(--gold-soft)}
  .form-status.err{color:#e0846b}
  .wa-confirm{display:flex;flex-direction:column;gap:6px;margin-top:14px;align-items:flex-start}
  .wa-btn{display:inline-flex;align-items:center;gap:9px;background:#25d366;color:#fff;
    text-decoration:none;font-size:.9rem;font-weight:500;padding:11px 18px;border-radius:4px;
    transition:background .2s}
  .wa-btn:hover{background:#1faa52}
  .wa-btn svg{width:18px;height:18px;fill:#fff;flex:0 0 18px}
  .wa-sub{font-size:.76rem;color:var(--ink-dim)}

  /* footer and .socials are shared (site.css) */

  /* ---------- SOCIAL (quote aside only; .socials is shared) ---------- */
  .quote-socials{display:flex;gap:14px;margin-top:24px}
  .quote-socials a{
    width:40px;height:40px;display:flex;align-items:center;justify-content:center;
    border:1px solid var(--line);border-radius:50%;color:var(--ink-soft);transition:all .3s;
  }
  .quote-socials a:hover{border-color:var(--gold);color:var(--gold)}
  .quote-socials svg{width:18px;height:18px;fill:currentColor}

  /* back-to-top is shared (site.css); the home page sits it a little higher. */
  .to-top{bottom:24px}

  /* notification preference checkboxes */
  .notify-row{display:flex;flex-wrap:wrap;gap:12px}
  .notify-opt{
    display:inline-flex;align-items:center;cursor:pointer;
    border:1px solid var(--line-soft);background:var(--bg);
    padding:12px 18px;border-radius:3px;transition:all .25s;
    font-size:.9rem;color:var(--ink-soft);user-select:none;line-height:1;
  }
  .notify-opt:hover{border-color:var(--line)}
  .notify-opt input{accent-color:var(--gold);width:17px;height:17px;cursor:pointer;flex:0 0 auto;margin:0 10px 0 0}
  .notify-opt span{white-space:nowrap}
  .notify-opt input:checked + span{color:var(--gold-soft)}
  .notify-hint{font-size:.78rem;color:var(--ink-dim);margin-top:8px;min-height:1em}
  .notify-legal{font-size:.72rem;line-height:1.5;color:var(--ink-dim);margin-top:6px;max-width:60ch}
  .notify-opt.disabled{opacity:.4;pointer-events:none}

  /* ---------- BOOKING WIZARD ---------- */
  .wiz{border:1px solid var(--line);border-radius:4px;overflow:clip;background:var(--bg-2)}
  .wiz-steps{display:flex;align-items:center;gap:16px;padding:22px 40px;border-bottom:1px solid var(--line-soft);background:var(--panel)}
  @media(max-width:520px){.wiz-steps{padding:18px 22px;gap:10px}}
  .wiz-step{display:flex;align-items:center;gap:10px;font-size:.84rem;letter-spacing:.04em;color:var(--ink-dim);white-space:nowrap}
  .wiz-step .num{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;border:1px solid var(--line);font-size:.78rem;color:var(--ink-dim)}
  .wiz-step.active{color:var(--ink)}
  .wiz-step.active .num{background:var(--gold);border-color:var(--gold);color:var(--bg)}
  .wiz-step.done .num{border-color:var(--gold);color:var(--gold)}
  .wiz-line{flex:1;height:1px;background:var(--line-soft);min-width:20px}
  @media(max-width:520px){.wiz-step span:not(.num){display:none}}

  .wiz-grid{display:grid;grid-template-columns:1.45fr .85fr}
  @media(max-width:880px){.wiz-grid{grid-template-columns:1fr}}
  .wiz-main{padding:38px 40px;display:flex;flex-direction:column;gap:28px;align-self:start}
  @media(max-width:520px){.wiz-main{padding:28px 22px}}
  .wiz-divider{height:1px;background:var(--line-soft)}
  .wiz-summary-cell{border-left:1px solid var(--line-soft)}
  @media(max-width:880px){.wiz-summary-cell{border-left:none;border-top:1px solid var(--line-soft)}}
  .wiz-summary{
    position:sticky;top:90px;background:var(--panel);padding:38px 34px;
    display:flex;flex-direction:column;justify-content:flex-start;
  }
  @media(max-width:880px){.wiz-summary{position:static}}
  .wiz-summary .btn{text-align:center;width:100%;cursor:pointer;margin-top:6px}
  .wiz-summary .btn-gold{border:none}
  .wiz-summary .btn-ghost{background:transparent;border:1px solid var(--line);color:var(--ink-soft)}
  .wiz-summary .btn-ghost:hover{border-color:var(--gold);color:var(--gold)}
  .pay-later-info{font-size:.82rem;color:var(--ink-dim);margin:14px 0 4px}
  .glabel-hint{text-transform:none;letter-spacing:0;color:var(--ink-dim);font-size:.72rem;margin-left:8px}

  /* calendar + slots */
  .sched{display:grid;grid-template-columns:1.25fr .9fr;gap:22px}
  @media(max-width:620px){.sched{grid-template-columns:1fr;gap:18px}}
  .cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
  .cal-title{font-size:.95rem;color:var(--ink);letter-spacing:.02em}
  .cal-nav{background:transparent;border:1px solid var(--line);color:var(--ink-soft);width:32px;height:32px;border-radius:3px;cursor:pointer;font-size:1rem;line-height:1;transition:all .2s}
  .cal-nav:hover{border-color:var(--gold);color:var(--gold)}
  .cal-dow{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;margin-bottom:6px}
  .cal-dow span{text-align:center;font-size:.66rem;color:var(--ink-dim);letter-spacing:.05em}
  .cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
  .cal-cell{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:.86rem;border-radius:3px;color:var(--ink);cursor:pointer;border:1px solid transparent;transition:all .15s}
  .cal-cell:hover:not(.dis):not(.sel){border-color:var(--line);background:rgba(201,165,88,.06)}
  .cal-cell.dis{color:var(--ink-dim);opacity:.35;cursor:default}
  .cal-cell.sel{background:var(--gold);color:var(--bg);border-color:var(--gold);font-weight:500}
  .cal-cell.empty{cursor:default}

  .slots-label{font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-dim);margin-bottom:12px}
  .slots-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;max-height:230px;overflow-y:auto}
  @media(max-width:620px){.slots-grid{grid-template-columns:repeat(4,1fr);max-height:none}}
  .slot{border:1px solid var(--line-soft);background:var(--bg);border-radius:3px;padding:10px 6px;text-align:center;font-size:.82rem;color:var(--ink-soft);cursor:pointer;transition:all .15s;white-space:nowrap}
  .slot:hover{border-color:var(--line);color:var(--ink)}
  .slot.sel{background:rgba(201,165,88,.12);border-color:var(--gold);color:var(--gold-soft)}
  .slots-empty{font-size:.84rem;color:var(--ink-dim);padding:24px 0;text-align:center;grid-column:1/-1}

  /* ---------- CONFIRM MODAL ---------- */
  .modal-overlay{
    position:fixed;inset:0;z-index:100;display:none;
    align-items:center;justify-content:center;padding:24px;
    background:rgba(8,7,6,.72);backdrop-filter:blur(4px);
  }
  .modal-overlay.open{display:flex}
  .modal{
    background:var(--bg-2);border:1px solid var(--line);border-radius:6px;
    max-width:460px;width:100%;padding:36px 34px;
    box-shadow:0 30px 80px rgba(0,0,0,.55);
    animation:rise .3s forwards;
  }
  .modal h3{font-family:var(--serif);font-weight:300;font-size:1.7rem;margin-bottom:22px}
  .modal-body{display:flex;flex-direction:column;gap:9px;margin-bottom:28px}
  .modal-row{display:flex;justify-content:space-between;gap:18px;font-size:.92rem;border-bottom:1px solid var(--line-soft);padding-bottom:9px}
  .modal-row:last-child{border-bottom:none}
  .modal-row .k{color:var(--ink-dim);letter-spacing:.02em}
  .modal-row .v{color:var(--ink);text-align:right}
  .modal-row.total .k,.modal-row.total .v{color:var(--gold-soft);font-size:1.05rem}
  .modal-actions{display:flex;gap:12px;justify-content:flex-end}
  .modal-actions .btn{cursor:pointer}
  .modal-actions .btn-ghost{background:transparent;border:1px solid var(--line);color:var(--ink-soft)}
  .modal-actions .btn-ghost:hover{border-color:var(--gold);color:var(--gold)}
  @media(max-width:520px){.modal-actions{flex-direction:column-reverse}.modal-actions .btn{width:100%;text-align:center}}

  /* ---------- CALCULATOR ---------- */
  .calc{background:linear-gradient(180deg,var(--bg),var(--bg-2))}
  .calc-box{display:grid;grid-template-columns:1.3fr .9fr;gap:0;border:1px solid var(--line);border-radius:4px;overflow:hidden}
  @media(max-width:860px){.calc-box{grid-template-columns:1fr}}
  .calc-form{padding:42px 40px;display:flex;flex-direction:column;gap:30px}
  @media(max-width:520px){.calc-form{padding:30px 22px}}
  .calc-group .glabel{display:block;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin-bottom:16px}
  .opt-grid{display:flex;flex-wrap:wrap;gap:10px}
  .opt{
    border:1px solid var(--line-soft);background:var(--bg);color:var(--ink-soft);
    padding:11px 18px;border-radius:3px;font-size:.88rem;cursor:pointer;
    transition:all .25s;user-select:none;font-family:var(--sans);
  }
  .opt:hover{border-color:var(--line);color:var(--ink)}
  .opt.active{border-color:var(--gold);background:rgba(201,165,88,.08);color:var(--gold-soft)}
  .freq-note{font-size:.8rem;color:var(--ink-dim);margin-top:10px;line-height:1.5}
  .freq-note b{color:var(--gold-soft);font-weight:500}
  .addon-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  @media(max-width:520px){.addon-grid{grid-template-columns:1fr}}
  .addon{
    display:flex;align-items:center;gap:10px;
    border:1px solid var(--line-soft);background:var(--bg);border-radius:3px;
    padding:13px 15px;cursor:pointer;transition:all .25s;
  }
  .addon:hover{border-color:var(--line)}
  .addon.active{border-color:var(--gold);background:rgba(201,165,88,.06)}
  .addon .ai{width:20px;height:20px;flex:0 0 20px;fill:var(--ink-dim);transition:fill .25s}
  .addon.active .ai{fill:var(--gold)}
  .addon .nm{font-size:.88rem;color:var(--ink)}
  .addon .pr{font-size:.82rem;color:var(--ink-dim);margin-left:auto}
  .addon.active .pr{color:var(--gold)}
  .pets-row{display:flex;align-items:center;gap:14px}
  .pets-row .q{font-size:.88rem;color:var(--ink-soft)}

  .calc-summary{
    background:var(--panel);padding:42px 36px;display:flex;flex-direction:column;
    justify-content:center;border-left:1px solid var(--line-soft);
  }
  @media(max-width:860px){.calc-summary{border-left:none;border-top:1px solid var(--line-soft)}}
  .est-label{font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-dim);margin-bottom:10px}
  .est-price{font-family:var(--serif);font-weight:300;font-size:3rem;color:var(--gold-soft);line-height:1;margin-bottom:6px}
  .est-sub{font-size:.82rem;color:var(--ink-dim);margin-bottom:24px;line-height:1.5}
  .calc-lines{border-top:1px solid var(--line-soft);padding-top:18px;margin-bottom:24px;display:flex;flex-direction:column;gap:8px;min-height:20px}
  .calc-lines .ln{display:flex;justify-content:space-between;font-size:.84rem;color:var(--ink-soft)}
  .calc-lines .ln span:last-child{color:var(--ink)}
  .calc-summary .btn-gold{text-align:center;border:none;width:100%;cursor:pointer}
  .calc-note{font-size:.74rem;color:var(--ink-dim);margin-top:16px;line-height:1.5;text-align:center}

  /* ---------- INTL-TEL-INPUT DARK THEME ---------- */
  :root{
    --iti-path-flags-1x:url("/static/vendor/intl-tel-input/img/flags.webp");
    --iti-path-flags-2x:url("/static/vendor/intl-tel-input/img/flags@2x.webp");
    --iti-path-globe-1x:url("/static/vendor/intl-tel-input/img/globe.webp");
    --iti-path-globe-2x:url("/static/vendor/intl-tel-input/img/globe@2x.webp");
    --iti-border-color:rgba(201,165,88,.18);
    --iti-dropdown-bg:#1a1815;
    --iti-hover-color:rgba(201,165,88,.08);
    --iti-text-gray:#7d7464;
    --iti-dialcode-color:#b3aa98;
    --iti-arrow-color:#7d7464;
  }
  .iti{display:block}
  .iti__country-name{color:var(--ink-soft)}
  .iti__search-input{background:var(--bg);color:var(--ink);border-color:var(--line)!important}

  /* ---------- SIZE+BATHS ROW (desktop only) ---------- */
  .size-baths-row{display:grid;grid-template-columns:1fr 1fr;gap:24px}
  #opt-size,#opt-baths{display:grid;grid-template-columns:repeat(3,1fr)}
  #opt-service{display:grid;grid-template-columns:repeat(3,1fr)}
  #opt-freq{display:grid;grid-template-columns:repeat(4,1fr)}
  #opt-size .opt,#opt-baths .opt{display:flex;align-items:center;justify-content:center;gap:5px}
  .oi{width:13px;height:13px;fill:currentColor;flex-shrink:0;opacity:.6}
  .opt.active .oi{opacity:1}
  .mo-m{display:none}

  /* ---------- PT TOOLTIP ---------- */
  .pt-label{cursor:help;position:relative}
  .pt-label::after{
    content:'All times are Pacific Time (PT)';
    position:absolute;top:calc(100% + 4px);left:0;
    background:var(--panel);border:1px solid var(--line);
    color:var(--ink-soft);font-size:.75rem;white-space:nowrap;
    text-transform:none;letter-spacing:0;
    padding:5px 11px;border-radius:3px;z-index:10;
    pointer-events:none;opacity:0;transition:opacity .15s;
  }
  .pt-label:hover::after{opacity:1}

  /* ---------- MOBILE FIXES ---------- */
  @media(max-width:760px){
    header{min-height:auto;padding:120px 0 64px}
    .hero-meta{position:static;left:auto;right:auto;bottom:auto;margin-top:40px;gap:24px;width:100%;padding:0 28px}
    section{padding:60px 0}
    .sec-head{margin-bottom:38px}
  }
  @media(max-width:620px){
    .area-chips{display:grid;grid-template-columns:1fr 1fr;gap:10px}
    .chip{text-align:center;justify-content:center}
    .size-baths-row{display:contents}
    #opt-size,#opt-baths,#opt-service{display:grid;grid-template-columns:repeat(3,1fr)}
    #opt-freq{display:grid;grid-template-columns:repeat(2,1fr)}
    .mo-m{display:inline}.mo-d{display:none}
    .opt{text-align:center;padding:10px 10px}
  }
