:root{
  --gn-ink:#1B1916;--gn-ink2:#423C33;--gn-soft:#6E675C;
  --gn-line:#E7E1D4;--gn-line2:#D6CEBE;--gn-paper:#FAF8F3;
  --gn-accent:#F08647;--gn-accentd:#BC5C20;--gn-white:#fff;
  --gn-h:104px;--gn-shadow:0 28px 64px -24px rgba(40,30,15,.34);
}
/* topbar */
.g-topbar{background:#0E0D0B;color:rgba(243,236,221,.6);font-size:13.5px}
.g-topbar .g-w{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:9px 40px;max-width:1320px;margin:0 auto}
.g-topbar .g-soc{display:flex;gap:20px}
.g-topbar a{color:rgba(243,236,221,.6);text-decoration:none;transition:color .15s}
.g-topbar a:hover{color:var(--gn-accent)}
.g-topbar .g-ph{display:flex;align-items:center;gap:9px;font-weight:700;font-size:15.5px;color:#F2E9D9;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex-shrink:1}
.g-dot{width:7px;height:7px;border-radius:50%;--g-status:#F08647;--g-ring:rgba(240,134,71,.46);background:var(--g-status);flex-shrink:0;display:inline-block;transition:background-color .2s ease}
.g-dot.is-open{--g-status:#2D7DD2;--g-ring:rgba(45,125,210,.46)}
.g-dot.is-closed{--g-status:#F08647;--g-ring:rgba(240,134,71,.46)}
/* sticky nav */
.g-nav{position:sticky;top:0;z-index:90;background:#fff;backdrop-filter:none;-webkit-backdrop-filter:none;border-bottom:1px solid transparent;transition:border-color .25s,background .25s;overflow:visible}
.g-nav.scrolled{border-bottom-color:var(--gn-line);background:#fff}
.g-ni{display:grid;grid-template-columns:max-content minmax(0,1fr) max-content;align-items:center;gap:20px;padding:0 40px;height:var(--gn-h);max-width:1320px;margin:0 auto}
.g-logo img{height:94px;width:auto;max-width:none;display:block;flex-shrink:0}
.g-logo{text-decoration:none;flex-shrink:0}
@media (min-width:1041px){.g-logo{margin-right:14px}}
/* primary list */
.g-ul{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:2px;justify-content:center}
.g-ul>li{position:relative}
.g-ul>li>a{display:inline-flex;align-items:center;gap:5px;padding:10px 10px;font-size:13.5px;font-weight:700;color:var(--gn-ink2);text-decoration:none;white-space:nowrap;border-radius:8px;transition:color .14s;position:relative;line-height:1.2}
.g-ul>li>a::after{content:"";position:absolute;bottom:3px;left:10px;right:10px;height:1.5px;background:var(--gn-accent);transform:scaleX(0);transition:transform .2s ease}
.g-ul>li.cur>a::after{transform:scaleX(1)}
.g-ul>li.cur>a{color:var(--gn-accent)}
.g-ul>li>a:hover{color:var(--gn-ink)}
.g-cv{display:inline-block;width:5px;height:5px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);margin-top:-2px;opacity:.45;transition:transform .2s;flex-shrink:0}
.g-ul>li:focus-within .g-cv{transform:rotate(-135deg);opacity:.85}
/* dropdowns */
.g-drop{position:absolute;top:calc(100% + 2px);left:0;background:#fff;border:1px solid var(--gn-line);border-radius:16px;padding:14px;box-shadow:var(--gn-shadow);display:flex;opacity:0;visibility:hidden;pointer-events:none;z-index:200;transform:translateY(-6px) scale(.95);transform-origin:top left;transition:opacity .16s ease-out,transform .2s cubic-bezier(.16,1,.3,1),visibility 0s linear .2s}
.g-drop::before{content:"";position:absolute;top:-12px;left:0;right:0;height:14px}
.g-ul>li.is-open>.g-drop{opacity:1;visibility:visible;pointer-events:auto;transform:none;transition-delay:0s}
.g-drop.c{left:50%;transform:translateX(-50%) translateY(-6px) scale(.95);transform-origin:top center}
.g-ul>li.is-open>.g-drop.c{transform:translateX(-50%)}
/* ── Bulletproof desktop dropdown ──────────────────────────────────────
   1. overflow:visible !important on the nav chain - sticky+backdrop-filter
      can create a clipping context in some browsers; this forces it open.
   2. Both CSS :hover AND JS .is-open show the menu, so hover works even if
      there is a JS race condition or the class never gets added.               */
@media(min-width:1391px){
  .g-nav,.g-ni,.g-ul,.g-ul>li{overflow:visible !important;clip-path:none !important}
  .g-ul>li.is-open>.g-drop{display:flex !important;opacity:1 !important;visibility:visible !important;pointer-events:auto !important;transform:none !important;transition-delay:0s !important}
  .g-ul>li.is-open>.g-drop.c{transform:translateX(-50%) !important}
  .g-ul>li.is-open .g-cv{transform:rotate(-135deg) !important;opacity:.85 !important}
}
@media(min-width:1391px) and (hover:hover) and (pointer:fine){
  .g-ul>li:hover>a::after{transform:scaleX(1)}
  .g-ul>li:hover>.g-drop{display:flex !important;opacity:1 !important;visibility:visible !important;pointer-events:auto !important;transform:none !important;transition-delay:0s !important}
  .g-ul>li:hover>.g-drop.c{transform:translateX(-50%) !important}
  .g-ul>li:hover .g-cv{transform:rotate(-135deg) !important;opacity:.85 !important}
}
.g-drop.r{left:auto;right:0;transform-origin:top right}
.g-ul>li.is-open .g-cv{transform:rotate(-135deg);opacity:.85}
/* simple drop */
.g-ds{min-width:230px;flex-direction:column;gap:1px}
.g-ds a{display:block;padding:9px 12px;border-radius:9px;font-size:14px;font-weight:600;color:var(--gn-ink2);text-decoration:none;transition:background .14s,color .14s}
.g-ds a:hover{background:var(--gn-paper);color:var(--gn-accentd)}
/* mega drop */
.g-dm{flex-wrap:wrap;align-items:flex-start;gap:14px 26px;padding:20px 22px;max-width:min(780px,94vw)}
.g-grp{display:flex;flex-direction:column;min-width:158px}
.g-grp-2{display:grid;grid-template-columns:1fr 1fr;gap:0 12px;align-content:start;min-width:200px}
.g-grp-2 .g-gl{grid-column:1/-1}
.g-gl{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--gn-accent);font-weight:600;margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid var(--gn-line)}
.g-grp a,.g-grp-2 a{display:block;padding:5px 0;font-size:13.5px;font-weight:600;color:var(--gn-ink2);text-decoration:none;line-height:1.35;transition:color .14s}
.g-grp a:hover,.g-grp-2 a:hover{color:var(--gn-accentd)}
/* CTA cluster */
.g-cta{display:flex;align-items:center;gap:10px;flex-shrink:0}
.g-sbtn{width:42px;height:42px;border-radius:50%;border:1px solid var(--gn-line2);display:grid;place-items:center;background:transparent;color:var(--gn-ink);cursor:pointer;transition:background .18s,color .18s,border-color .18s;flex-shrink:0;padding:0}
.g-sbtn:hover{background:var(--gn-ink);color:#fff;border-color:var(--gn-ink)}
.g-sbtn svg{width:17px;height:17px}
.g-book{display:inline-flex;align-items:center;gap:8px;padding:15px 24px;background:var(--gn-accent);color:#fff;border-radius:16px;font-size:15px;font-weight:700;text-decoration:none;transition:background .2s,transform .2s,box-shadow .2s;box-shadow:0 8px 22px -8px rgba(240,134,71,.55);white-space:nowrap;flex-shrink:0}
.g-book:hover{background:#E9772E;box-shadow:0 12px 28px -8px rgba(240,134,71,.65)}
.g-call{display:inline-flex;align-items:center;gap:8px;padding:13px 17px;background:#fff;color:var(--gn-ink);border:1.5px solid var(--gn-ink);border-radius:16px;font-size:14px;font-weight:800;text-decoration:none;white-space:nowrap;flex-shrink:0;transition:background .18s,color .18s,border-color .18s,transform .18s}
.g-call:hover{background:var(--gn-ink);color:#fff;border-color:var(--gn-ink)}
.g-call svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.g-call-label{color:var(--gn-accentd)}
.g-call:hover .g-call-label{color:var(--gn-accent)}
.g-mobile-callbar{display:none}
.g-book .arr{transition:transform .2s}
@media(hover:hover) and (pointer:fine){.g-book:hover,.g-call:hover{transform:translateY(-1px)}.g-book:hover .arr{transform:translateX(3px)}}
.g-hbg{width:44px;height:44px;border:1px solid var(--gn-line2);border-radius:50%;display:none;align-items:center;justify-content:center;background:transparent;cursor:pointer;flex-shrink:0;transition:border-color .2s,background .2s;padding:0}
.g-hbg:hover{background:var(--gn-ink);border-color:var(--gn-ink)}
.g-hbg:hover .g-bar,.g-hbg:hover .g-bar::before,.g-hbg:hover .g-bar::after{background:#fff}
.g-bar{position:relative;display:block;width:18px;height:2px;background:var(--gn-ink);border-radius:2px;transition:background .2s}
.g-bar::before,.g-bar::after{content:"";position:absolute;left:0;width:18px;height:2px;background:var(--gn-ink);border-radius:2px;transition:transform .25s ease,background .2s}
.g-bar::before{top:-6px}
.g-bar::after{top:6px}
.g-sbtn:active,.g-book:active,.g-call:active,.g-hbg:active,.g-scl:active,.g-drx:active,.g-drf .g-ghost:active,.g-fbt:active{transform:scale(.97)!important;transition-duration:.12s}
body.g-open .g-bar{background:transparent}
body.g-open .g-bar::before{transform:translateY(6px) rotate(45deg)}
body.g-open .g-bar::after{transform:translateY(-6px) rotate(-45deg)}
body.g-open{overflow:hidden}
/* search overlay */
.g-sov{position:fixed;inset:0;z-index:300;display:block;background:rgba(14,13,11,.6);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s ease-out,visibility 0s linear .2s}
.g-sov.on{opacity:1;visibility:visible;pointer-events:auto;transition-delay:0s}
.g-sp{max-width:680px;margin:9vh auto 0;background:#fff;border:1px solid var(--gn-line);border-radius:20px;box-shadow:0 40px 90px -30px rgba(20,15,8,.5);overflow:hidden;transform:translateY(-12px) scale(.98);transform-origin:top center;opacity:0;transition:transform .2s cubic-bezier(.16,1,.3,1),opacity .16s ease-out}
.g-sov.on .g-sp{transform:none;opacity:1}
.g-st{display:flex;align-items:center;gap:14px;padding:18px 22px;border-bottom:1px solid var(--gn-line)}
.g-st svg{width:20px;height:20px;color:var(--gn-accent);flex-shrink:0}
.g-sinp{flex:1;border:0;outline:0;font-family:inherit;font-size:19px;color:var(--gn-ink);background:transparent}
.g-sinp::placeholder{color:var(--gn-soft)}
.g-scl{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--gn-soft);font-weight:700;border:1px solid var(--gn-line2);border-radius:8px;padding:6px 10px;cursor:pointer;background:transparent;transition:background .14s,color .14s}
.g-scl:hover{background:var(--gn-ink);color:#fff;border-color:var(--gn-ink)}
.g-sres{max-height:56vh;overflow-y:auto;padding:8px}
.g-sres a{display:block;padding:11px 15px;border-radius:10px;text-decoration:none;transition:background .13s}
.g-sres a:hover,.g-sres a.sel{background:var(--gn-paper)}
.g-sres .rt{font-family:'Barlow Condensed',sans-serif;font-weight:700;text-transform:uppercase;font-size:19px;letter-spacing:-.005em;color:var(--gn-ink);display:flex;align-items:center;gap:8px}
.g-sres .rt .arr{color:var(--gn-accent)}
.g-sres .rd{font-size:13.5px;color:var(--gn-soft);margin-top:2px}
.g-sempty{padding:30px 22px;text-align:center;color:var(--gn-soft);font-size:15px}
.g-shint{padding:10px 22px 14px;color:var(--gn-soft);font-size:11.5px;border-top:1px solid var(--gn-line);display:flex;gap:18px;justify-content:center}
.g-shint b{color:var(--gn-ink2);font-weight:700}
/* mobile drawer */
.g-dr{position:fixed;inset:0;z-index:200;background:var(--gn-paper);transform:translateX(100%);transition:transform .35s cubic-bezier(.32,.72,0,1);display:flex;flex-direction:column;overflow:hidden}
.g-dr.on{transform:none}
.g-drh{display:flex;align-items:center;justify-content:space-between;padding:16px 22px;border-bottom:1px solid var(--gn-line);flex-shrink:0}
.g-drh img{height:56px;width:auto}
.g-drx{width:44px;height:44px;border:1px solid var(--gn-line2);border-radius:50%;background:#fff;font-size:22px;color:var(--gn-ink);cursor:pointer;display:grid;place-items:center;transition:background .14s,border-color .14s;padding:0}
.g-drx:hover{background:var(--gn-ink);color:#fff;border-color:var(--gn-ink)}
.g-drnav{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:10px 22px 0}
.g-da{display:block;padding:13px 0;border-bottom:1px solid var(--gn-line);font-family:'Barlow Condensed',sans-serif;font-weight:700;text-transform:uppercase;font-size:24px;letter-spacing:-.01em;color:var(--gn-ink);text-decoration:none}
.g-dsec{border-bottom:1px solid var(--gn-line)}
.g-dacc{display:flex;align-items:center;justify-content:space-between;width:100%;padding:13px 0;background:none;border:0;font-family:'Barlow Condensed',sans-serif;font-weight:700;text-transform:uppercase;font-size:24px;letter-spacing:-.01em;color:var(--gn-ink);cursor:pointer;text-align:left}
.g-dch{width:10px;height:10px;border-right:2px solid var(--gn-accent);border-bottom:2px solid var(--gn-accent);transform:rotate(45deg);transition:transform .22s;flex-shrink:0}
.g-dacc[aria-expanded="true"] .g-dch{transform:rotate(-135deg)}
.g-dpan{display:block;box-sizing:border-box;height:0;overflow:hidden;opacity:0;visibility:hidden;padding:0 0 0 10px;transition:height .2s cubic-bezier(.16,1,.3,1),opacity .15s ease-out,padding .2s cubic-bezier(.16,1,.3,1),visibility 0s linear .2s}
.g-dsec.on .g-dpan{opacity:1;visibility:visible;padding:4px 0 14px 10px;transition-delay:0s}
.g-dpan a{display:block;padding:7px 0;font-size:16px;font-weight:600;color:var(--gn-ink2);text-decoration:none;transition:color .13s}
.g-dpan a:hover{color:var(--gn-accentd)}
.g-dgrp{display:block;font-family:'JetBrains Mono',ui-monospace,monospace;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--gn-accent);margin:12px 0 4px;font-weight:600}
.g-drf{padding:14px 22px;border-top:1px solid var(--gn-line);display:flex;flex-direction:column;gap:10px;flex-shrink:0;background:var(--gn-paper)}
.g-drf .g-book{justify-content:center;padding:14px}
.g-drf .g-ghost{display:block;text-align:center;padding:13px;border:1.5px solid var(--gn-line2);color:var(--gn-ink);border-radius:14px;font-size:15px;font-weight:700;text-decoration:none;transition:background .14s}
.g-drf .g-ghost:hover{background:var(--gn-ink);color:#fff;border-color:var(--gn-ink)}
/* scroll progress */
.g-prog{position:fixed;top:0;left:0;height:3px;width:100%;background:var(--gn-accent);z-index:500;transform:scaleX(0);transform-origin:left center;will-change:transform;box-shadow:0 0 10px rgba(240,134,71,.65)}
/* footer */
.g-footer{background:#0E0D0B;color:rgba(243,236,221,.78);padding:64px 0 28px}
.g-fw{max-width:1320px;margin:0 auto;padding:0 40px}
.g-fg{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr 1.1fr;gap:40px;margin-bottom:44px}
.g-flogo{display:inline-block;max-width:100%;margin:0 0 20px;line-height:0}
.g-fb .g-flogo img{display:block;width:210px!important;max-width:100%!important;height:auto!important;margin:0!important;filter:none!important;opacity:1!important}
.g-fb p{color:rgba(243,236,221,.52);font-size:15px;line-height:1.65;max-width:36ch;margin:0 0 18px}
.g-hrs{padding-top:16px;border-top:1px solid rgba(243,236,221,.1);font-size:13px;color:rgba(243,236,221,.48);line-height:1.85}
.g-hrs strong{display:block;color:rgba(243,236,221,.8);font-weight:600;font-size:11px;letter-spacing:.1em;text-transform:uppercase;margin:11px 0 2px}
.g-hrs strong:first-child{margin-top:0}
.g-footer h5{font-size:11px;text-transform:uppercase;letter-spacing:.22em;color:rgba(243,236,221,.42);margin:0 0 16px;font-weight:600}
.g-footer ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}
.g-footer ul a{color:rgba(243,236,221,.68);text-decoration:none;font-size:15px;transition:color .13s}
.g-footer ul a:hover{color:var(--gn-accent)}
.g-fca a{display:block;margin-bottom:9px;font-size:15px;color:rgba(243,236,221,.78);text-decoration:none;transition:color .13s}
.g-fca a:hover{color:var(--gn-accent)}
.g-fadr{font-size:13px;color:rgba(243,236,221,.46);line-height:1.7;margin-top:12px}
.g-fbt{display:inline-block;margin-top:16px;padding:12px 20px;background:var(--gn-accent);color:#fff;border-radius:14px;font-size:13.5px;font-weight:700;text-decoration:none;transition:background .2s}
.g-fbt:hover{background:#E9772E}
.g-fapp{display:flex;align-items:center;gap:12px;margin-top:10px;padding:10px 16px 10px 10px;background:transparent;color:rgba(243,236,221,.9);border:1px solid rgba(243,236,221,.24);border-radius:12px;text-decoration:none;transition:background .2s,border-color .2s}
.g-fapp:hover{background:rgba(243,236,221,.07);border-color:rgba(243,236,221,.5)}
.g-fapp-icon{width:40px;height:40px;background:#F8F3EA;border-radius:9px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.g-fapp-icon img{width:30px;height:30px;object-fit:contain}
.g-fapp-txt{display:flex;flex-direction:column;line-height:1.2;flex:1;min-width:0}
.g-fapp-small{font-family:'JetBrains Mono',monospace;font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:rgba(243,236,221,.48);font-weight:600}
.g-fapp-big{font-family:'Barlow Condensed',sans-serif;font-weight:800;text-transform:uppercase;font-size:15px;letter-spacing:.04em;color:#F2E9D9;white-space:nowrap}
.g-fapp-arr{color:var(--gn-accent);font-size:16px;flex-shrink:0}
.g-fbot{border-top:1px solid rgba(243,236,221,.09);padding-top:22px;display:flex;justify-content:space-between;align-items:center;gap:16px;font-size:13px;color:rgba(243,236,221,.38);flex-wrap:wrap}
.g-fsoc{display:flex;gap:16px}
.g-fsoc a{color:rgba(243,236,221,.52);text-decoration:none;font-size:13px;transition:color .13s}
.g-fsoc a:hover{color:var(--gn-accent)}
.g-fleg a{color:rgba(243,236,221,.38);text-decoration:none;margin-left:14px;font-size:12px;transition:color .13s}
.g-fleg a:hover{color:rgba(243,236,221,.6)}
/* responsive */
/* Tight-desktop range: full nav is shown only on genuinely wide screens; reduce side
   padding and inter-item gap so all 8 items + CTAs fit without clipping Contact. */
@media(min-width:1391px) and (max-width:1540px){.g-ni{padding:0 20px;gap:12px}.g-ul>li>a{padding:10px 8px;font-size:13px}.g-book{padding:11px 15px}}
@media(max-width:1390px){.g-ul{display:none}.g-cta{grid-column:3;justify-self:end}.g-sbtn{order:1;width:42px;height:42px}.g-hbg{display:inline-flex;order:2;width:42px;height:42px}.g-book{padding:11px 16px;font-size:13px;order:3}.g-call{order:4}.g-ni{gap:12px}}
body[style*="zoom"] .g-ul{display:none}
body[style*="zoom"] .g-cta{grid-column:3;justify-self:end}
body[style*="zoom"] .g-sbtn{order:1;width:42px;height:42px}
body[style*="zoom"] .g-hbg{display:inline-flex;order:2;width:42px;height:42px}
body[style*="zoom"] .g-book{padding:11px 16px;font-size:13px;order:3}
body[style*="zoom"] .g-call{order:4}
body[style*="zoom"] .g-ni{gap:12px}
@media(max-width:1040px){.g-logo img{height:78px !important}.g-ni{padding:0 24px;gap:14px}.g-topbar .g-w{padding:9px 24px}}
@media(min-width:1391px) and (max-width:1540px){.g-call{padding:11px 13px}.g-call-label{display:none}}
@media(max-width:1390px){.g-call{padding:11px 14px;font-size:13px}}
@media(max-width:860px){.g-fg{grid-template-columns:1fr 1fr;gap:28px}.g-fw{padding:0 24px}.g-topbar .g-w{padding:9px 24px}}
@media(max-width:760px){
  .g-call{display:none}
  .g-mobile-callbar{display:flex;align-items:center;justify-content:center;gap:9px;min-height:45px;padding:9px 16px;background:#0E0D0B;color:#fff;text-decoration:none;font-size:14px;letter-spacing:.01em;border-top:1px solid rgba(255,255,255,.08)}
  .g-mobile-callbar svg{width:17px;height:17px;fill:none;stroke:var(--gn-accent);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
  .g-mobile-callbar span{font-weight:600;color:rgba(255,255,255,.72)}
  .g-mobile-callbar strong{font-weight:800;color:#fff}
  .g-scl{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:10px}
  .g-fsoc,.g-fleg{display:flex;flex-wrap:wrap;gap:6px 12px}
  .g-fsoc a,.g-fleg a{display:inline-flex;align-items:center;min-height:44px;padding:8px 2px;margin-left:0}
}
@media(max-width:560px){.g-logo img{height:64px !important}.g-hbg{width:42px;height:42px}.g-sbtn{width:42px;height:42px}.g-ni{padding:0 16px;gap:10px}.g-topbar .g-w{padding:9px 16px;justify-content:center}.g-topbar .g-soc{display:none}.g-fw{padding:0 16px}.g-fg{grid-template-columns:1fr}.g-sp{margin:0;border-radius:0;min-height:100vh}.g-shint{display:none}}
/* On narrow phones the persistent call bar and Schedule dock carry the two
   primary actions; removing the long booking pill prevents header crowding. */
@media(max-width:440px){
  .g-book{display:none!important}
  .g-ni{grid-template-columns:minmax(0,1fr) max-content!important;padding-inline:14px!important;gap:8px!important}
  .g-logo img{height:56px!important;max-width:96px!important}
  .g-cta{gap:8px!important}
}
@media(max-width:375px){.g-dacc,.g-da{font-size:21px}}
/* ── Responsive safety ── */
/* Prevent any nav child from causing horizontal overflow.
   NOTE: .g-nav intentionally excluded - overflow-x:hidden on a sticky element
   forces overflow-y:auto (CSS spec), which clips absolutely-positioned dropdowns. */
.g-nav{max-width:100vw}
/* Ultra-small screens: shorten Book button */
@media(max-width:400px){
  .g-book{padding:11px 13px;font-size:12.5px}
  .g-book .arr{display:none}
  .g-ni{gap:8px}
}
/* Ensure dropdowns never overflow right edge */
@media(min-width:1391px){
  .g-drop.r{left:auto;right:0}
  .g-ul>li:last-child>.g-drop{left:auto;right:0}
}
/* Mobile drawer safe area (iOS notch) */
.g-drf{padding-bottom:max(14px,env(safe-area-inset-bottom))}
/* Topbar: wrap phone on very small screens */
@media(max-width:480px){
  .g-topbar .g-ph{font-size:11.5px}
  .g-topbar .g-ph::after{content:"";display:none}
}
@media(max-width:400px){
  .g-topbar .g-ph{font-size:11px;gap:6px}
}
/* Footer mobile stacking */
@media(max-width:480px){
  .g-fg{grid-template-columns:1fr}
  .g-fbot{flex-direction:column;align-items:flex-start;gap:10px}
}
/* Prevent logo squish on all screen sizes */
.g-logo{flex-shrink:0;line-height:0}
.g-logo img{flex-shrink:0}

/* ── g-polish (sitewide refinement pass, 2026-07-06) ──
   Accessibility + typographic polish applied on every page via partials.js.
   Conservative: fixes ragged wraps, adds visible keyboard focus, respects
   reduced-motion. No layout or brand changes. */
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:2px solid #F08647;outline-offset:3px;border-radius:4px}
.btn:focus-visible,.chip:focus-visible{outline-offset:2px}
.loc-hours .d,.hours-table td:first-child{white-space:nowrap}
.loc-hours .t,.hours-table td:last-child{white-space:nowrap;font-variant-numeric:tabular-nums}
.lede,.prose p,.cov p,.step p,.faq-item .ans,.intro-card p{text-wrap:pretty}
.display,.h1,.h2{text-wrap:balance}
::selection{background:rgba(240,134,71,.28)}
/* Phone CTA contrast: outlined phone actions must stay legible on both light
   and dark sections. White at rest creates a dependable high-contrast target;
   Pinnacle orange on hover keeps the action unmistakably branded. */
a.btn.ghost[href^="tel:"],a[href^="tel:"][class~="ghost"]{
  background:#fff!important;color:#1B1916!important;border-color:#fff!important;
  box-shadow:0 10px 28px -14px rgba(0,0,0,.55)
}
a.btn.ghost[href^="tel:"]:hover,a.btn.ghost[href^="tel:"]:focus-visible,
a[href^="tel:"][class~="ghost"]:hover,a[href^="tel:"][class~="ghost"]:focus-visible{
  background:#F08647!important;color:#181511!important;border-color:#F08647!important
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important}
  .g-drop,.g-sov,.g-sp,.g-dpan{animation:none!important;transition:opacity .12s linear,visibility 0s linear .12s!important}
  .g-ul>li.is-open>.g-drop,.g-sov.on,.g-dsec.on .g-dpan{transition-delay:0s!important}
  .g-drop,.g-sp{transform:none!important}
  .g-drop.c,.g-ul>li.is-open>.g-drop.c{transform:translateX(-50%)!important}
  .g-dr{animation:none!important;transform:none!important;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .12s linear,visibility 0s linear .12s!important}
  .g-dr.on{opacity:1;visibility:visible;pointer-events:auto;transition-delay:0s!important}
  .g-cv,.g-bar::before,.g-bar::after{animation:none!important;transition:opacity .12s linear,background-color .12s linear!important}
  .g-book:hover,.g-call:hover,.g-book:active,.g-call:active,.g-sbtn:active,.g-hbg:active,.g-scl:active,.g-drx:active,.g-drf .g-ghost:active,.g-fbt:active,.g-book:hover .arr{transform:none!important}
}

/* ── Mobile composition system (Jul 2026) ──────────────────────────────
   Mobile is intentionally re-composed: single-column narrative flow,
   full-width actions, compact section rhythm, readable type, and safe media.
   This layer targets shared semantic classes while preserving page-specific art. */
@media(max-width:760px){
  html,body{overflow-x:clip}
  main{overflow:clip}
  main img,main picture,main video,main svg{max-width:100%}
  main .wrap,main .container,main .inner{
    width:100%!important;
    max-width:100%!important;
    padding-left:max(20px,env(safe-area-inset-left))!important;
    padding-right:max(20px,env(safe-area-inset-right))!important
  }
  main .sec{padding-top:56px!important;padding-bottom:56px!important}
  main .sec-head{display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:10px!important;margin-bottom:34px!important}
  main .sec-cap{text-align:left!important;max-width:34ch}
  main .hero-grid,
  main .about-grid,
  main .services-grid,
  main .service-grid,
  main .feature-grid,
  main .benefit-grid,
  main .team-grid,
  main .loc-grid,
  main .location-grid,
  main .faq-grid,
  main .ins-grid,
  main .pricing-grid,
  main .content-grid{
    grid-template-columns:minmax(0,1fr)!important
  }
  main .hero-copy{order:1}
  main .portrait,main .hero-media,main .hero-visual,main .hero-image,main .clinical-team-panel{order:2;min-width:0!important;max-width:100%!important}
  main .display,main h1.display{font-size:clamp(42px,13vw,62px)!important;line-height:.9!important;letter-spacing:-.02em!important;overflow-wrap:normal}
  main .h1{font-size:clamp(34px,10vw,46px)!important;line-height:.96!important}
  main .lede,main .intro{font-size:16px!important;line-height:1.68!important;max-width:38ch}
  main .hero-cta,
  main .cta-row,
  main .about-actions,
  main .loc-actions{
    display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:12px!important;width:100%!important
  }
  main .hero-cta .btn,
  main .cta-row .btn,
  main .about-actions .btn,
  main .loc-actions .btn{
    width:100%!important;min-height:50px!important;justify-content:center!important;text-align:center!important;white-space:normal!important
  }
  main .ix{grid-template-columns:minmax(0,1fr)!important;gap:14px!important}
  main .ix-row{min-width:0!important}
  main .card,main .panel,main .tile{min-width:0}
  main table{display:block;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
  main p,main li{overflow-wrap:break-word}
}
@media(min-width:761px) and (max-width:1080px){
  main .hero-grid{grid-template-columns:minmax(0,1fr)!important}
  main .portrait,main .hero-media,main .hero-visual{justify-self:center;max-width:min(520px,82vw)}
}
