/* Lance Osborne Dentistry - self hosted fonts and site styles */
@font-face{font-family:'Inter';font-style:normal;font-weight:300;font-display:swap;src:url('../fonts/inter-300-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Inter';font-style:normal;font-weight:300;font-display:swap;src:url('../fonts/inter-300-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/inter-400-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/inter-400-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/inter-500-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/inter-500-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/inter-600-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/inter-600-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/inter-700-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/inter-700-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Poppins';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/poppins-400-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Poppins';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/poppins-400-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Poppins';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/poppins-500-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Poppins';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/poppins-500-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Poppins';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/poppins-600-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Poppins';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/poppins-600-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Poppins';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/poppins-700-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Poppins';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/poppins-700-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}

/* Lock the palette. Some phones and browsers auto darken pages by time of day,
   which turned the warm off white into brown. */
:root{color-scheme:light;}
@media(prefers-color-scheme:dark){
  :root{color-scheme:light;}
  html,body{background:var(--offwhite);color:var(--text);}
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
:root{
  --navy:#1c3a5e;--navy-deep:#14294a;--navy-soft:#345f92;--steel:#9cbbe0;
  --offwhite:#f1f1ee;--offwhite-2:#e8e8e2;--white:#fff;
  --ink:#191d23;--text:#42484f;--text-dim:#5a616a;--muted:#7c828b;
  --line:#dbdad4;--line-soft:#e9e8e3;
  --head:'Poppins',system-ui,-apple-system,sans-serif;
  --body:'Inter',system-ui,-apple-system,sans-serif;
  --nav-h:62px;--safe:env(safe-area-inset-bottom,0px);--maxw:min(1480px,92vw);
  --sh-sm:0 2px 12px rgba(30,40,60,.08);--sh-md:0 14px 36px rgba(30,40,60,.13);--sh-lg:0 30px 70px rgba(30,40,60,.20);
  --fw-body:400;
}
html{-webkit-tap-highlight-color:transparent;}
body{font-family:var(--body);background:var(--offwhite);color:var(--text);line-height:1.6;font-weight:var(--fw-body);-webkit-font-smoothing:antialiased;overflow-x:hidden;}
img{display:block;max-width:100%;}
a{color:inherit;text-decoration:none;}
:focus-visible{outline:3px solid var(--navy);outline-offset:3px;border-radius:4px;}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 22px;width:100%;}
section{scroll-margin-top:calc(var(--nav-h) + 10px);}
h1,h2,h3,h4{font-family:var(--head);color:var(--ink);font-weight:600;line-height:1.08;letter-spacing:-.022em;}

body.a11y-bold{--fw-body:600;}
body.a11y-bold p,body.a11y-bold span,body.a11y-bold a,body.a11y-bold div,body.a11y-bold label,body.a11y-bold summary,body.a11y-bold li{font-weight:var(--fw-body);}
body.a11y-contrast{--text:#1a1f26;--text-dim:#232830;--muted:#333a43;--line:#8d939b;--line-soft:#9aa0a8;--offwhite:#fff;--offwhite-2:#f2f2ee;}
body.a11y-contrast .scrim{background:rgba(12,12,14,.80);}
body.a11y-contrast .rcard{border-color:var(--ink);}
body.a11y-gray{--navy:#3b3b3b;--navy-deep:#232323;--navy-soft:#585858;--steel:#c9c9c9;}
body.a11y-gray .slide,body.a11y-gray .group-img,body.a11y-gray .doc-photo,body.a11y-gray .tm .tmp,
body.a11y-gray .visit-photo,body.a11y-gray img{filter:grayscale(1);}
body.a11y-gray .lbx img{filter:grayscale(1);}

.up{opacity:0;transform:translateY(34px);transition:opacity 1.25s cubic-bezier(.16,1,.3,1),transform 1.25s cubic-bezier(.16,1,.3,1);}
.up.in{opacity:1;transform:none;}
.d1{transition-delay:.13s;}.d2{transition-delay:.26s;}.d3{transition-delay:.39s;}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto;}.up{opacity:1!important;transform:none!important;transition:none!important;}.mtrack{animation:none!important;}}

/* ===== NAV ===== */
.nav{position:fixed;top:0;left:0;right:0;height:var(--nav-h);z-index:300;display:flex;align-items:center;transition:background .35s,border-color .35s;border-bottom:1px solid transparent;}
.nav.solid{background:rgba(241,241,238,.88);backdrop-filter:blur(18px) saturate(1.4);-webkit-backdrop-filter:blur(18px) saturate(1.4);border-bottom-color:var(--line-soft);}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;}
.brand{display:flex;align-items:center;cursor:pointer;}
.brand img{height:38px;width:auto;}
.navlinks{display:none;align-items:center;gap:2px;}
.navlinks a{font-size:.82rem;font-weight:500;color:var(--text);padding:8px 13px;border-radius:20px;transition:.2s;cursor:pointer;}
.navlinks a:hover,.navlinks a.cur{color:var(--navy);background:rgba(28,58,94,.08);}
.burger{background:none;border:none;cursor:pointer;width:40px;height:40px;display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:5px;}
.burger span{display:block;height:2px;background:var(--ink);border-radius:2px;transition:.3s;}
.burger span:nth-child(1){width:22px;}.burger span:nth-child(2){width:15px;}.burger span:nth-child(3){width:19px;}
body.menu-open .burger span:nth-child(1){transform:translateY(7px) rotate(45deg);width:21px;}
body.menu-open .burger span:nth-child(2){opacity:0;}
body.menu-open .burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg);width:21px;}
.menu-panel{visibility:hidden;position:fixed;inset:0;z-index:295;background:rgba(241,241,238,.99);display:flex;flex-direction:column;justify-content:flex-start;padding:calc(var(--nav-h) + 18px) 26px calc(30px + var(--safe));transform:translateY(-100%);opacity:0;pointer-events:none;transition:transform .62s cubic-bezier(.76,0,.24,1),opacity .4s;overflow-y:auto;overscroll-behavior:contain;}
body.menu-open .menu-panel{transform:translateY(0);opacity:1;pointer-events:auto;visibility:visible;}
.menu-panel .mlink{font-family:var(--head);font-size:1.32rem;font-weight:600;color:var(--ink);padding:11px 0;border-bottom:1px solid var(--line);cursor:pointer;transition:.2s;display:block;}

.menu-panel .mlink:hover{color:var(--navy);padding-left:8px;}
.menu-panel .mlink.accent{color:var(--navy);}
.menu-extra{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;background:none;color:var(--navy);border:none;border-bottom:1px solid var(--line);cursor:pointer;font-family:var(--head);font-size:1.32rem;font-weight:600;padding:11px 0;text-align:left;transition:.2s;}
.menu-extra svg{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:1.7;opacity:.45;flex-shrink:0;}
.menu-foot{margin-top:auto;padding-top:32px;display:flex;flex-direction:column;align-items:center;gap:13px;text-align:center;}
.mf-rule{width:42px;height:1px;background:var(--line);}
.mf-addr{font-size:.9rem;color:var(--text-dim);line-height:1.6;}
.mf-row{display:flex;align-items:center;justify-content:center;gap:13px;}
.mf-row a{font-size:.95rem;font-weight:600;color:var(--navy);}
.mf-dot{width:3px;height:3px;border-radius:50%;background:var(--muted);opacity:.55;}

/* ===== HERO ===== */
.hero{position:relative;padding-top:var(--nav-h);}
.stage{position:relative;height:calc(100vh - var(--nav-h));height:calc(100svh - var(--nav-h));min-height:520px;overflow:hidden;background:#dfe4ea;}
.slide{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transform:scale(1.06) rotate(1.2deg);transition:opacity 1.7s ease,transform 2.1s cubic-bezier(.22,1,.36,1);}
.slide.on{opacity:1;transform:scale(1) rotate(0);z-index:2;}
.slide.out{opacity:0;transform:scale(.86) rotate(-2.2deg);z-index:1;}
.scrim{position:absolute;inset:0;z-index:3;background:radial-gradient(125% 78% at 50% 46%,rgba(18,18,20,.50) 0%,rgba(18,18,20,.28) 58%,rgba(18,18,20,0) 100%),linear-gradient(to bottom,rgba(16,17,19,.62) 0%,rgba(16,17,19,.46) 40%,rgba(16,17,19,.56) 72%,rgba(16,17,19,.82) 100%);}
.hero-copy{position:absolute;inset:0;z-index:4;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px 22px 92px;color:#fff;pointer-events:none;}
.hero-copy .eye{font-size:.68rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--steel);margin-bottom:16px;}
.hero-copy h1{font-size:clamp(2.05rem,6.6vw,4.2rem);color:#fff;font-weight:600;letter-spacing:-.03em;line-height:1.03;max-width:17ch;margin-bottom:12px;text-shadow:0 2px 22px rgba(0,0,0,.62),0 1px 4px rgba(0,0,0,.5);}
.hloc{font-size:clamp(.9rem,2.2vw,1.1rem);font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:#e4f0fd;margin-bottom:18px;text-shadow:0 1px 14px rgba(0,0,0,.66);}
.hero-copy p{font-size:clamp(1rem,2.3vw,1.22rem);color:rgba(255,255,255,.95);font-weight:400;max-width:46ch;line-height:1.6;margin-bottom:26px;text-shadow:0 1px 16px rgba(0,0,0,.62);}
body.a11y-bold .hero-copy p{font-weight:500;}
.hero-cta{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;position:relative;z-index:8;pointer-events:auto;}
/* iOS style glass: specular highlight + slight shade shift on hover and press */
.pill,.mchip,.fab,.x,.lsoc a,.zoomctl button,.menu-extra,.toggle,.flinks a,.navlinks a{
  transition:background-color .34s ease,border-color .34s ease,box-shadow .34s ease,color .3s ease,transform .3s cubic-bezier(.22,1,.36,1);}
.pill,.mchip,.fab,.x,.lsoc a,.zoomctl button{position:relative;isolation:isolate;}
.pill::after,.mchip::after,.fab::after,.lsoc a::after,.zoomctl button::after{
  content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:-1;
  background:linear-gradient(to bottom,rgba(255,255,255,.26),rgba(255,255,255,.06) 42%,rgba(255,255,255,0) 62%);
  opacity:.85;transition:opacity .24s ease;}
.pill:hover::after,.mchip:hover::after,.fab:hover::after,.lsoc a:hover::after,.zoomctl button:hover::after{opacity:1;}
.pill:active,.mchip:active,.fab:active,.x:active,.lsoc a:active,.zoomctl button:active{transform:scale(.965);}
.navlinks a:hover,.flinks a:hover{background:rgba(28,58,94,.09);border-radius:20px;}
.pill{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-family:var(--body);font-size:.94rem;font-weight:600;padding:14px 27px;border-radius:40px;border:none;cursor:pointer;transition:all .25s;line-height:1;}
.pill svg{width:15px;height:15px;flex-shrink:0;}
.pill-solid{background:var(--navy);color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.16);}
.pill-solid:hover{background:#24486f;transform:translateY(-2px);box-shadow:var(--sh-md),inset 0 1px 0 rgba(255,255,255,.22);}
.pill-white{background:rgba(255,255,255,.94);color:var(--navy);backdrop-filter:blur(12px) saturate(1.5);-webkit-backdrop-filter:blur(12px) saturate(1.5);box-shadow:inset 0 1px 1px rgba(255,255,255,.9);}
.pill-white:hover{background:#fff;transform:translateY(-2px);box-shadow:0 14px 34px rgba(0,0,0,.25),inset 0 1px 1px rgba(255,255,255,.9);}
.pill-glass{background:rgba(255,255,255,.16);color:#fff;border:1.5px solid rgba(255,255,255,.5);backdrop-filter:blur(16px) saturate(1.8);-webkit-backdrop-filter:blur(16px) saturate(1.8);box-shadow:inset 0 1px 1px rgba(255,255,255,.4);}
.pill-glass:hover{background:rgba(255,255,255,.3);border-color:rgba(255,255,255,.75);}
.pill-line{background:rgba(255,255,255,.5);color:var(--navy);border:1.5px solid var(--line);backdrop-filter:blur(10px) saturate(1.4);-webkit-backdrop-filter:blur(10px) saturate(1.4);}
.pill-line:hover{border-color:var(--navy);background:rgba(28,58,94,.09);}
.slide-cap{position:absolute;left:0;right:0;bottom:0;z-index:7;padding:26px 18px calc(14px + var(--safe));background:linear-gradient(to top,rgba(14,15,17,.74),transparent);display:flex;align-items:center;gap:11px;pointer-events:none;}
.viewbtn{pointer-events:auto;flex-shrink:0;width:36px;height:36px;border-radius:12px;display:flex;align-items:center;justify-content:center;cursor:pointer;
  background:rgba(255,255,255,.16);backdrop-filter:blur(14px) saturate(1.7);-webkit-backdrop-filter:blur(14px) saturate(1.7);
  border:1px solid rgba(255,255,255,.34);box-shadow:0 4px 14px rgba(0,0,0,.25),inset 0 1px 1px rgba(255,255,255,.5);
  transition:background-color .22s,transform .2s cubic-bezier(.22,1,.36,1);}
.viewbtn svg{width:16px;height:16px;stroke:#fff;fill:none;stroke-width:2.1;stroke-linecap:round;stroke-linejoin:round;}
.viewbtn:hover{background:rgba(255,255,255,.3);}
.viewbtn:active{transform:scale(.93);}
.lbx{visibility:hidden;position:fixed;inset:0;z-index:400;background:rgba(8,9,11,.95);display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;pointer-events:none;transition:opacity .45s ease;}
body.lbx-open .lbx{opacity:1;pointer-events:auto;visibility:visible;}
body.lbx-open{overflow:hidden;}
.lbx img{max-width:100%;max-height:100%;object-fit:contain;border-radius:10px;box-shadow:0 30px 80px rgba(0,0,0,.65);filter:none!important;}
.lbx-cap{position:absolute;left:0;right:0;bottom:calc(16px + var(--safe));text-align:center;color:rgba(255,255,255,.82);font-size:.82rem;padding:0 20px;z-index:4;pointer-events:none;}
.lbx-edge{position:absolute;top:0;bottom:0;width:32%;min-width:64px;z-index:3;background:none;border:none;margin:0;padding:0 0 4vh;cursor:pointer;display:flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent;}
.lbx-l{left:0;} .lbx-r{right:0;}
.lbx-edge .edge-g{opacity:.55;transform:scale(1);transition:opacity .18s ease,transform .18s cubic-bezier(.22,1,.36,1),background-color .15s ease;}
.lbx-edge:hover .edge-g,.lbx-edge:focus-visible .edge-g,.lbx-edge.press .edge-g{opacity:.85;transform:scale(1);}
.lbx-edge:active .edge-g{opacity:1;transform:scale(.92);background:rgba(255,255,255,.34);}
.lbx-x{position:absolute;z-index:5;top:calc(14px + env(safe-area-inset-top,0px));right:14px;width:44px;height:44px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.16);backdrop-filter:blur(16px) saturate(1.8);-webkit-backdrop-filter:blur(16px) saturate(1.8);
  border:1px solid rgba(255,255,255,.34);box-shadow:inset 0 1px 1px rgba(255,255,255,.5);transition:background-color .2s,transform .2s;}
.lbx-x svg{width:19px;height:19px;stroke:#fff;fill:none;stroke-width:2.2;stroke-linecap:round;}
.lbx-x:hover{background:rgba(255,255,255,.3);}
.lbx-x:active{transform:scale(.93);}
.slide-cap .txt{font-size:.79rem;color:rgba(255,255,255,.96);font-weight:500;text-shadow:0 1px 10px rgba(0,0,0,.76);}
.edge{position:absolute;top:auto;bottom:calc(clamp(92px,18vh,155px) - 26px);width:100px;height:100px;min-width:0;z-index:6;background:none;border:none;margin:0;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;-webkit-tap-highlight-color:transparent;}
.edge-l{left:0;} .edge-r{right:0;}
.edge-g{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.16);
  backdrop-filter:blur(16px) saturate(1.8);-webkit-backdrop-filter:blur(16px) saturate(1.8);
  border:1px solid rgba(255,255,255,.38);
  box-shadow:0 8px 24px rgba(0,0,0,.28),inset 0 1px 1px rgba(255,255,255,.55),inset 0 -6px 12px rgba(255,255,255,.08);
  opacity:0;transform:scale(.82);
  transition:opacity .45s ease,transform .55s cubic-bezier(.22,1,.36,1),background-color .3s ease;}
.edge-g svg{width:20px;height:20px;stroke:#fff;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;
  filter:drop-shadow(0 1px 3px rgba(0,0,0,.4));}
.edge:hover .edge-g,.edge:focus-visible .edge-g,.edge.press .edge-g{opacity:.5;transform:scale(1);}
.edge:active .edge-g{opacity:.72;transform:scale(.92);background:rgba(255,255,255,.3);}
@media(prefers-reduced-motion:reduce){.edge-g{transition:opacity .12s ease,transform .18s cubic-bezier(.22,1,.36,1),background-color .12s ease;}}

/* ===== BLOCKS ===== */
.block{padding:clamp(54px,8vh,88px) 0;}
.block.white{background:var(--white);}
.block.gray{background:var(--offwhite-2);}
.head{max-width:620px;margin-bottom:30px;}
.head .eye{font-size:.68rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--navy);display:inline-block;margin-bottom:13px;}
.head h2{font-size:clamp(1.7rem,4.5vw,2.5rem);margin-bottom:11px;}
.head p{font-size:.99rem;color:var(--text);font-weight:300;line-height:1.7;}
body.a11y-bold .head p{font-weight:500;}

/* ===== SERVICES MARQUEE ===== */
.marquee{position:relative;overflow-x:auto;overflow-y:hidden;padding:4px 0 10px;cursor:grab;scrollbar-width:none;-ms-overflow-style:none;touch-action:pan-x pan-y;-webkit-overflow-scrolling:touch;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);}
.marquee::-webkit-scrollbar{display:none;}
.marquee.dragging{cursor:grabbing;}
.marquee.dragging .mchip{pointer-events:none;}
.mtrack{display:flex;gap:10px;width:max-content;}
.mchip{display:inline-flex;align-items:center;gap:10px;background:#fff;border:1.5px solid var(--line-soft);border-radius:40px;padding:10px 18px 10px 12px;cursor:pointer;transition:border-color .2s,transform .2s,box-shadow .2s;white-space:nowrap;font-family:var(--body);}
.mchip:hover{border-color:var(--navy);background:rgba(28,58,94,.06);transform:translateY(-2px);box-shadow:var(--sh-sm);}
.mchip.on{border-color:var(--navy);background:var(--navy);}
.mchip.on .mtxt{color:#fff;}
.mchip.on .mic{background:rgba(255,255,255,.18);}
.mic{width:32px;height:32px;border-radius:50%;background:linear-gradient(145deg,var(--navy),var(--navy-soft));display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.mic svg{width:17px;height:17px;stroke:#fff;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;}
.mtxt{font-size:.88rem;font-weight:600;color:var(--ink);}
.svc-detail{margin-top:18px;background:#fff;border:1px solid var(--line-soft);border-radius:20px;padding:26px 24px;box-shadow:var(--sh-sm);min-height:150px;}
.svc-detail .cat{font-size:.64rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--navy);margin-bottom:9px;}
.svc-detail h3{font-size:1.4rem;margin-bottom:10px;}
.svc-detail p{font-size:.95rem;color:var(--text);line-height:1.72;font-weight:300;max-width:66ch;}
body.a11y-bold .svc-detail p{font-weight:500;}
.svc-detail .facts{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px;}
.svc-detail .fact{font-size:.74rem;font-weight:600;color:var(--navy);background:rgba(28,58,94,.07);border-radius:30px;padding:6px 13px;}
.fadein{animation:fadeUp .8s cubic-bezier(.22,1,.36,1);}
@keyframes fadeUp{from{opacity:0;transform:translateY(12px);}to{opacity:1;transform:none;}}
.mhint{font-size:.7rem;color:var(--muted);font-weight:600;letter-spacing:.06em;text-transform:uppercase;margin-bottom:10px;}
.mchip{user-select:none;-webkit-user-select:none;}

/* ===== TEAM ===== */
.group{position:relative;border-radius:22px;overflow:hidden;box-shadow:var(--sh-md);margin-bottom:22px;}
img.group-img{display:block;width:100%;height:clamp(185px,59vw,400px);object-fit:cover;object-position:center 64%;background-color:#e7edf4;}
/* On a wide screen the banner would be a thin strip and would cut heads off,
   so it gets taller as the column gets wider. */
@media(min-width:900px){img.group-img{height:clamp(380px,38vw,620px);}}
.group-cap{position:absolute;left:0;right:0;bottom:0;color:#fff;font-family:var(--head);font-weight:500;font-size:.96rem;padding:24px 24px 16px;background:linear-gradient(to top,rgba(15,30,55,.75),transparent);}
.doc{display:grid;grid-template-columns:1fr;background:#fff;border:1px solid var(--line-soft);border-radius:22px;overflow:hidden;box-shadow:var(--sh-md);margin-bottom:24px;}
.doc-photo{min-height:440px;background-color:#e9eef5;background-size:cover;background-repeat:no-repeat;background-position:center 8%;}
.doc-b{padding:28px 24px;}
.doc-b .role{font-size:.65rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--navy);margin-bottom:11px;}
.doc-b h3{font-size:clamp(1.55rem,4.2vw,2.1rem);margin-bottom:13px;}
.doc-b p{color:var(--text);font-weight:300;line-height:1.75;margin-bottom:12px;font-size:.96rem;}
body.a11y-bold .doc-b p{font-weight:500;}
.team-sub{font-size:1.15rem;margin:2px 0 15px;}
.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(8px,1.6vw,16px);align-items:start;}
.tm{position:relative;background:#e7edf4;border:none;border-radius:16px;overflow:hidden;box-shadow:var(--sh-sm);transition:transform .3s,box-shadow .3s;}
.tm:hover{transform:translateY(-4px);box-shadow:var(--sh-md);}
.tm img.tmp{display:block;width:100%;height:clamp(200px,46vw,290px);object-fit:cover;object-position:center 18%;background-color:#e7edf4;}
@supports (aspect-ratio:1/1){.tm img.tmp{height:auto;aspect-ratio:4/5;}}
.tmp-w{display:block;}
.tm{width:100%;padding:0;text-align:left;font:inherit;color:inherit;}
.tm:hover{transform:translateY(-3px);box-shadow:var(--sh-md);}

.trole{display:block;font-size:.66rem;line-height:1.3;color:rgba(255,255,255,.92);margin-top:3px;text-shadow:0 1px 4px rgba(0,0,0,.55);}
.tm .tb{position:absolute;left:0;right:0;bottom:0;padding:30px 10px 11px;text-align:center;pointer-events:none;
  background:linear-gradient(to top,rgba(9,17,30,.88) 0%,rgba(9,17,30,.70) 38%,rgba(9,17,30,.28) 70%,rgba(9,17,30,0) 100%);}
.tb h4{margin:0;color:#fff;font-size:.95rem;line-height:1.2;letter-spacing:.01em;text-shadow:0 1px 4px rgba(0,0,0,.55);}
.tm h4{font-size:clamp(.8rem,2vw,.98rem);margin:0;}
.tm p{font-size:.77rem;color:var(--text-dim);font-weight:300;line-height:1.55;}
body.a11y-bold .tm p{font-weight:500;}

/* ===== REVIEWS, GLASS SHUFFLE ===== */
.revslider{position:relative;display:flex;align-items:center;gap:10px;}
.revtrack{flex:1;min-width:0;display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;
  scroll-behavior:smooth;padding:4px 4px 14px;-webkit-overflow-scrolling:touch;
  scrollbar-width:none;-ms-overflow-style:none;cursor:grab;}
.revtrack.grabbing{cursor:grabbing;scroll-snap-type:none;}
.revtrack::-webkit-scrollbar{display:none;}
.revtrack .rcard{flex:0 0 78%;scroll-snap-align:start;}
@media(min-width:560px){.revtrack .rcard{flex:0 0 46%;}}
@media(min-width:900px){.revtrack .rcard{flex:0 0 31.3%;}}
.revnav{flex-shrink:0;width:44px;height:44px;border-radius:50%;background:var(--navy);color:#fff;
  border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;
  box-shadow:0 8px 20px rgba(20,41,74,.22);transition:background-color .25s,transform .25s,opacity .25s;}
.revnav svg{width:20px;height:20px;stroke:#fff;fill:none;stroke-width:2.3;stroke-linecap:round;stroke-linejoin:round;}
.revnav:hover{background:var(--navy-soft);}
.revnav:active{transform:scale(.92);}
.revnav[disabled]{opacity:.32;cursor:default;pointer-events:none;}
.revdots{display:flex;justify-content:center;gap:7px;margin-top:6px;}
.revdots span{width:7px;height:7px;border-radius:50%;background:var(--line);transition:background-color .3s,transform .3s;}
.revdots span.on{background:var(--navy);transform:scale(1.25);}
@media(max-width:559px){.revnav{display:none;}}
.rcard{position:relative;background:var(--white);border:1px solid var(--line-soft);border-radius:18px;padding:30px 26px 22px;box-shadow:0 10px 26px rgba(20,41,74,.06);transition:transform .45s cubic-bezier(.22,1,.36,1),box-shadow .45s;}
.rcard:hover{transform:translateY(-5px);box-shadow:0 20px 44px rgba(20,41,74,.11);}
.rcard .rquote{display:block;font-family:Georgia,'Times New Roman',serif;font-size:2.7rem;line-height:.6;height:.6em;color:var(--navy);opacity:.15;margin-bottom:14px;}
.rcard .stars{color:#b9902e;font-size:.7rem;letter-spacing:.15em;margin-bottom:13px;}
.rcard blockquote{margin:0 0 20px;font-family:var(--head);font-weight:500;font-size:1rem;line-height:1.58;color:var(--ink);}
.rcard .rfoot{display:flex;align-items:center;gap:11px;padding-top:15px;border-top:1px solid var(--line-soft);}
.rcard .rinit{width:32px;height:32px;border-radius:50%;background:linear-gradient(145deg,var(--navy),var(--navy-soft));color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--head);font-weight:600;font-size:.76rem;flex-shrink:0;}
.rcard .rwho{display:flex;flex-direction:column;gap:2px;min-width:0;}
.rcard .who{display:block;font-size:.84rem;font-weight:700;color:var(--ink);line-height:1.3;}
.rcard .src{display:block;font-size:.63rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);line-height:1.35;}
body.a11y-bold .rcard blockquote{font-weight:600;}
/* ===== PATIENT / CONTACT ===== */
.two{display:grid;grid-template-columns:1fr;gap:16px;}
.two>*{min-width:0;}
p,h1,h2,h3,h4,span,a,div{overflow-wrap:break-word;}
.icard{background:#fff;border:1px solid var(--line-soft);border-radius:20px;padding:26px 24px;box-shadow:var(--sh-sm);}
.icard h3{font-size:.67rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--navy);padding-bottom:14px;border-bottom:1px solid var(--line-soft);margin-bottom:4px;}
.ir{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 14px;padding:12px 0;border-bottom:1px solid var(--line-soft);}
.ir:last-child{border-bottom:none;}
.ir .k{font-size:.87rem;color:var(--text);}
.ir .v{font-size:.87rem;font-weight:600;color:var(--ink);white-space:normal;}
.ir .v.cl{color:var(--muted);font-weight:500;}
.ir .v.tick{color:var(--navy);font-size:1rem;}
.note{font-size:.78rem;color:var(--text-dim);margin-top:12px;line-height:1.6;}
.mapbtns{display:flex;flex-direction:column;gap:9px;margin-top:16px;}
.mapbtns .pill{width:100%;}
.visit{background:#fff;border:1px solid var(--line-soft);border-radius:24px;overflow:hidden;box-shadow:var(--sh-md);}
.visit-photo{position:relative;height:clamp(190px,32vh,330px);background-size:cover;background-position:center;background-color:#dfe4ea;display:flex;align-items:flex-end;}
.visit-photo::after{content:'';position:absolute;inset:0;background:linear-gradient(to top,rgba(14,28,52,.84),rgba(14,28,52,.18) 58%,rgba(14,28,52,.04));}
.visit-photo-in{position:relative;z-index:2;padding:20px 24px;display:flex;flex-direction:column;gap:3px;}
.vp-name{font-family:var(--head);font-weight:600;font-size:clamp(1.15rem,3.4vw,1.6rem);color:#fff;letter-spacing:-.02em;}
.vp-addr{font-size:.84rem;color:rgba(255,255,255,.9);}
body.a11y-bold .vp-addr{font-weight:600;}
.visit-body{display:grid;grid-template-columns:1fr;}
.visit-col{padding:22px 24px 18px;min-width:0;}
.visit-col+.visit-col{border-top:1px solid var(--line-soft);}
.visit-col h3{font-size:.66rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--navy);padding-bottom:12px;border-bottom:1px solid var(--line-soft);margin-bottom:2px;}
.lr{display:flex;gap:13px;align-items:flex-start;padding:13px 0;border-bottom:1px solid var(--line-soft);}
.lr:last-of-type{border-bottom:none;}
.lr svg{width:18px;height:18px;stroke:var(--navy);fill:none;stroke-width:1.8;flex-shrink:0;margin-top:3px;}
.lr .lk{font-size:.6rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:3px;}
.lr .lv{font-size:.9rem;color:var(--ink);font-weight:600;line-height:1.5;overflow-wrap:anywhere;display:block;}
.lr a.lv:hover{color:var(--navy);}
.lsoc{display:flex;gap:10px;margin-top:14px;}
.lsoc a{width:42px;height:42px;border:1.5px solid var(--line);border-radius:12px;display:flex;align-items:center;justify-content:center;transition:.2s;}
.lsoc a:hover{border-color:var(--navy);background:rgba(28,58,94,.1);transform:translateY(-2px);}
.lsoc svg{width:18px;height:18px;fill:var(--navy);}
.visit-actions{display:flex;flex-direction:column;gap:10px;padding:4px 24px 24px;}
.visit-actions .pill{width:100%;}

/* ===== FLOATING ACCESSIBILITY ===== */
.fab{position:fixed;right:16px;bottom:calc(16px + var(--safe));z-index:280;width:62px;height:62px;border-radius:20px;background:var(--navy);border:none;cursor:pointer;box-shadow:0 10px 30px rgba(20,41,74,.42);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:#fff;transition:transform .25s cubic-bezier(.22,1,.36,1),opacity .25s,box-shadow .25s;}
.fab:hover{transform:translateY(-3px) scale(1.04);background:#24486f;box-shadow:0 14px 36px rgba(20,41,74,.5);}
.fab:active,body.a11y-open .fab{
  background:rgba(28,58,94,.42);
  backdrop-filter:blur(20px) saturate(1.9);-webkit-backdrop-filter:blur(20px) saturate(1.9);
  box-shadow:0 10px 30px rgba(20,41,74,.32),inset 0 0 0 1px rgba(255,255,255,.42),inset 0 1px 1px rgba(255,255,255,.55);}
.fab:active{transform:scale(.95);}
.fab svg{width:23px;height:23px;stroke:#fff;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
.fab .fl{font-size:.47rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;}
.fab .ic-x{display:none;}
body.a11y-open .fab{opacity:0;pointer-events:none;transform:scale(.9);}

.pbg{position:fixed;inset:0;z-index:310;background:rgba(15,25,45,.34);opacity:0;pointer-events:none;transition:opacity .3s;}
body.a11y-open .pbg-a{opacity:1;pointer-events:auto;}
body.a11y-open,body.help-open{overflow:hidden;}
.dock{visibility:hidden;position:fixed;z-index:320;left:0;right:0;bottom:0;height:70vh;height:70svh;background:var(--offwhite);border-radius:22px 22px 0 0;box-shadow:0 -12px 40px rgba(15,25,45,.28);display:flex;flex-direction:column;overflow:hidden;transform:translateY(103%);pointer-events:none;transition:transform .58s cubic-bezier(.22,1,.36,1);}
body.a11y-open .dock-a,body.help-open .dock-h{transform:translateY(0);pointer-events:auto;visibility:visible;}
.grab{width:38px;height:4px;border-radius:4px;background:var(--line);margin:9px auto 0;flex-shrink:0;}
.dock-head{padding:14px 22px 13px;border-bottom:1px solid var(--line-soft);display:flex;align-items:center;justify-content:space-between;gap:14px;background:#fff;}
.dock-head h3{font-size:1.1rem;}
.dock-head .sub{font-size:.74rem;color:var(--text-dim);margin-top:2px;}
.x{background:none;border:none;cursor:pointer;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:.2s;}
.x:hover{background:rgba(28,58,94,.09);}
.x svg{width:18px;height:18px;stroke:var(--ink);stroke-width:2;fill:none;}
.dock-body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:18px 22px calc(24px + var(--safe));}
body.choice-open .dock-c,body.dform-open .dock-f,body.send-open .dock-s{transform:translateY(0);pointer-events:auto;visibility:visible;}
.sendsum{background:var(--offwhite);border:1px solid var(--line-soft);border-radius:14px;padding:14px 16px;}
.sendsum .sr{display:flex;justify-content:space-between;gap:14px;padding:7px 0;font-size:.85rem;border-bottom:1px solid var(--line-soft);}
.sendsum .sr:last-child{border-bottom:none;}
.sendsum .sk{color:var(--text-dim);flex-shrink:0;}
.sendsum .sv{color:var(--ink);font-weight:600;text-align:right;overflow-wrap:anywhere;}
.sendsum .miss{color:#b4442e;font-weight:600;}
.sendnote{margin-top:14px;font-size:.82rem;line-height:1.6;text-align:center;color:var(--text-dim);min-height:20px;}
.sendnote.ok{color:#1e6b45;font-weight:600;}
.sendnote.bad{color:#b4442e;font-weight:600;}
.req{color:#c0392b;font-weight:700;margin-left:3px;}
.fg.bad label{color:#c0392b;}
.fg.bad input,.fg.bad textarea{border-color:#c0392b;background:#fdf4f2;}
.qwrap{display:block;}
.qwrap .emg{margin-bottom:18px;}
.credit{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:7px;
  margin-top:20px;padding-top:18px;border-top:1px solid var(--line-soft);}
.credit-lbl{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);}
.credit-mark{display:inline-flex;align-items:center;gap:6px;transition:opacity .3s,transform .3s cubic-bezier(.22,1,.36,1);}
.credit-mark:hover{opacity:.82;transform:translateY(-1px);}
.credit-mark img{display:block;width:18px;height:18px;object-fit:contain;flex-shrink:0;}
.credit-url{font-size:.78rem;font-weight:600;color:var(--navy);}
.fsec{border:1px solid var(--line-soft);border-radius:14px;margin-bottom:10px;overflow:hidden;background:#fff;}
.fsec-h{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--offwhite);border:none;
  font-family:var(--head);font-size:.95rem;font-weight:600;color:var(--navy);text-align:left;padding:14px 15px;cursor:pointer;}
.fsec-h svg{width:17px;height:17px;stroke:var(--navy);fill:none;stroke-width:2;flex-shrink:0;transition:transform .3s cubic-bezier(.22,1,.36,1);}
.fsec-h.open svg{transform:rotate(180deg);}
.fsec-b{padding:15px 15px 6px;}
.fsec-b[hidden]{display:none;}
.fg2>.fg{margin-bottom:0;}
.fg2{margin-bottom:14px;}
.fg select{width:100%;background:#fff;border:1.5px solid var(--line);border-radius:11px;padding:12px 14px;
  font-family:var(--body);font-size:.92rem;color:var(--ink);-webkit-appearance:none;appearance:none;
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231c3a5e' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 12px center;background-size:16px;padding-right:38px;}
.fg select:focus{outline:none;border-color:var(--navy);}
.fyn{display:flex;gap:8px;}
.ynb{flex:1;background:#fff;border:1.5px solid var(--line);border-radius:11px;padding:11px 0;cursor:pointer;
  font-family:var(--body);font-size:.9rem;font-weight:600;color:var(--text-dim);transition:.2s;}
.ynb.on{background:var(--navy);border-color:var(--navy);color:#fff;}
.fchk{margin-bottom:16px;}
.fchk-t{font-size:.78rem;font-weight:600;color:var(--text);line-height:1.5;margin-bottom:10px;}
.fchk-g{display:grid;grid-template-columns:1fr 1fr;gap:7px 10px;}
.fchk-i{display:flex;align-items:flex-start;gap:8px;font-size:.79rem;color:var(--text-dim);line-height:1.35;cursor:pointer;}
.fchk-i input{width:17px;height:17px;flex-shrink:0;accent-color:var(--navy);margin:0;}
.fnote{background:var(--offwhite);border:1px solid var(--line-soft);border-radius:12px;padding:13px 14px;margin-bottom:15px;}
.fnote p{font-size:.78rem;color:var(--text-dim);line-height:1.6;margin:0 0 9px;}
.fnote p:last-child{margin-bottom:0;}
.fagree{display:flex;align-items:flex-start;gap:10px;font-size:.8rem;color:var(--text);line-height:1.55;cursor:pointer;
  background:#fff;border:1.5px solid var(--line);border-radius:12px;padding:13px 14px;margin-bottom:6px;}
.fagree input{width:19px;height:19px;flex-shrink:0;accent-color:var(--navy);margin:1px 0 0;}
.fagree.bad{border-color:#c0392b;background:#fdf4f2;}
.fgerr{display:none;font-size:.72rem;font-weight:600;color:#c0392b;margin-top:6px;}
.fg.bad .fgerr,.fagree.bad+.fgerr{display:block;}
@media(min-width:560px){ .fchk-g{grid-template-columns:1fr 1fr 1fr;} }
.sigwrap.bad{border-color:#c0392b;background:#fdf4f2;}
.dlnote{margin-top:12px;text-align:center;min-height:18px;}
.dlnote a{display:inline-block;font-size:.82rem;font-weight:600;color:var(--navy);text-decoration:underline;padding:8px 4px;}
.ctr{text-align:center;}
.mt16{margin-top:16px;}
.w100{width:100%;margin-top:16px;}
.sendq{font-size:.86rem;color:var(--text-dim);line-height:1.6;margin:14px 0 18px;}
.sighelp{font-size:.75rem;color:var(--muted);}
.accent-lite{color:#e4f0fd;}
.intro{display:none;}
html.intro-run .intro{display:block;position:fixed;inset:0;z-index:600;pointer-events:none;}
.intro-panel{position:absolute;left:0;right:0;height:50.5%;background:var(--offwhite-2);will-change:transform;}
.intro-panel.top{top:0;animation:introTop .92s cubic-bezier(.76,0,.24,1) .62s forwards;}
.intro-panel.bot{bottom:0;animation:introBot .92s cubic-bezier(.76,0,.24,1) .62s forwards;}
.intro-logo{position:absolute;left:50%;top:50%;width:min(226px,52vw);opacity:0;animation:introMark 1.45s ease forwards;}
@keyframes introTop{to{transform:translateY(-100%);}}
@keyframes introBot{to{transform:translateY(100%);}}
@keyframes introMark{
  0%{opacity:0;transform:translate(-50%,-46%) scale(.975);}
  26%{opacity:1;transform:translate(-50%,-50%) scale(1);}
  40%{opacity:1;transform:translate(-50%,-50%) scale(1);}
  56%{opacity:0;transform:translate(-50%,-52%) scale(1.012);}
  100%{opacity:0;transform:translate(-50%,-52%) scale(1.012);}}
html.intro-run .hero-copy h1,html.intro-run .hero-copy .hloc,html.intro-run .hero-copy p,html.intro-run .hero-copy .hero-cta{opacity:0;transform:translateY(17px);animation:heroRise 1s cubic-bezier(.22,1,.36,1) forwards;}
html.intro-run .hero-copy h1{animation-delay:.82s;}
html.intro-run .hero-copy .hloc{animation-delay:.92s;}
html.intro-run .hero-copy p{animation-delay:1s;}
html.intro-run .hero-copy .hero-cta{animation-delay:1.08s;}
@keyframes heroRise{to{opacity:1;transform:none;}}
html.intro-lock,html.intro-lock body{overflow:hidden;}
body.choice-open,body.dform-open,body.send-open{overflow:hidden;}
body.choice-open .pbg-c,body.dform-open .pbg-f,body.send-open .pbg-s{opacity:1;pointer-events:auto;}
.dock-f{height:88vh;height:88svh;}
.opt{width:100%;display:flex;gap:14px;align-items:flex-start;text-align:left;background:#fff;border:1.5px solid var(--line);border-radius:16px;padding:16px;cursor:pointer;margin-bottom:11px;transition:border-color .3s,background-color .3s,transform .3s cubic-bezier(.22,1,.36,1);}
.opt:hover{border-color:var(--navy);background:rgba(28,58,94,.05);}
.opt:active{transform:scale(.98);}
.opt .oi{width:40px;height:40px;border-radius:12px;background:linear-gradient(145deg,var(--navy),var(--navy-soft));display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.opt .oi svg{width:20px;height:20px;stroke:#fff;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
.opt .ot{display:block;font-family:var(--head);font-size:1rem;font-weight:600;color:var(--ink);margin-bottom:3px;}
.opt .od{display:block;font-size:.82rem;color:var(--text-dim);line-height:1.5;}
.emailrow{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin-top:14px;padding:12px 14px;background:var(--offwhite);border:1px solid var(--line-soft);border-radius:12px;font-size:.82rem;color:var(--text);}
.emailrow svg{width:15px;height:15px;stroke:var(--navy);fill:none;stroke-width:1.8;flex-shrink:0;}
.emailrow a{color:var(--navy);font-weight:600;overflow-wrap:anywhere;}
a[href^='tel:']{white-space:nowrap;}
.sigwrap{border:1.5px dashed var(--line);border-radius:14px;background:#fff;position:relative;overflow:hidden;}
canvas.sigpad{display:block;width:100%;height:150px;touch-action:none;cursor:crosshair;}
.sighint{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:.85rem;color:var(--muted);pointer-events:none;}
.sigwrap.inked .sighint{display:none;}
.sigbar{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:8px;}
.fgrp{font-size:.66rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--navy);margin:20px 0 12px;padding-bottom:9px;border-bottom:1px solid var(--line-soft);}
.sheet-actions{display:flex;flex-direction:column;gap:9px;}
.sheet-actions .pill{width:100%;}
.linkbtn{background:none;border:none;color:var(--muted);font-family:var(--body);font-size:.78rem;font-weight:600;cursor:pointer;text-decoration:underline;padding:6px;}
.fg{margin-bottom:14px;}
.fg label{display:block;font-size:.63rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--text-dim);margin-bottom:7px;}
.fg input,.fg textarea{width:100%;background:#fff;border:1.5px solid var(--line);border-radius:11px;padding:12px 14px;font-family:var(--body);font-size:.92rem;color:var(--ink);transition:border-color .3s;-webkit-appearance:none;}
.fg input:focus,.fg textarea:focus{outline:none;border-color:var(--navy);}
.fg textarea{height:84px;resize:none;}
.fg2{display:grid;grid-template-columns:1fr 1fr;gap:11px;}
.arow{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px 0;border-bottom:1px solid var(--line-soft);}
.arow .at{font-size:.92rem;font-weight:600;color:var(--ink);}
.arow .as{font-size:.75rem;color:var(--text-dim);margin-top:2px;}
.zoomctl{display:flex;align-items:center;gap:8px;}
.zoomctl button{width:40px;height:40px;border-radius:12px;border:1.5px solid var(--line);background:#fff;color:var(--navy);font-size:1.2rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:.2s;}
.zoomctl button:hover:not(:disabled){border-color:var(--navy);background:rgba(28,58,94,.06);}
.zoomctl button:disabled{opacity:.35;cursor:not-allowed;}
.zoomctl .zval{font-size:.86rem;font-weight:700;color:var(--ink);min-width:54px;text-align:center;}
.toggle{position:relative;width:52px;height:30px;border-radius:30px;background:var(--line);border:none;cursor:pointer;transition:background .25s;flex-shrink:0;}
.toggle::after{content:'';position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 2px 6px rgba(0,0,0,.2);transition:transform .25s;}
.toggle.on{background:var(--navy);}
.toggle.on::after{transform:translateX(22px);}
.faq details{border-bottom:1px solid var(--line);}
.faq summary{padding:15px 0;font-family:var(--head);font-size:.95rem;font-weight:500;color:var(--ink);cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:14px;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:'+';font-size:1.3rem;font-weight:300;color:var(--navy);transition:transform .25s;}
.faq details[open] summary::after{transform:rotate(45deg);}
.faq details>div{padding:0 0 15px;font-size:.89rem;color:var(--text);font-weight:300;line-height:1.72;}
body.a11y-bold .faq details>div{font-weight:500;}
.emg{background:var(--navy-deep);border-radius:16px;padding:20px;display:flex;gap:14px;align-items:flex-start;margin-bottom:18px;}
.emg .ei{width:38px;height:38px;border-radius:10px;background:rgba(255,255,255,.13);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.emg .ei svg{width:19px;height:19px;stroke:var(--steel);fill:none;stroke-width:1.8;}
.emg h4{font-size:.8rem;font-weight:700;color:#fff;margin-bottom:4px;}
.emg p{font-size:.83rem;color:rgba(255,255,255,.8);font-weight:300;line-height:1.55;}
.emg .ep{font-size:1.02rem;font-weight:700;color:var(--steel);margin-top:7px;display:inline-block;}

/* ===== FOOTER ===== */
footer{background:var(--offwhite-2);color:var(--text);border-top:1px solid var(--line);}
footer .wrap{padding-top:38px;padding-bottom:calc(30px + var(--safe));}
.fcenter{display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px;}
.flogo-img{height:38px;width:auto;}
.ftag{font-size:.82rem;color:var(--text-dim);font-weight:300;max-width:44ch;}
body.a11y-bold .ftag{font-weight:500;}
.flinks{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px 20px;max-width:760px;}
.flinks a{font-size:.83rem;color:var(--text);font-weight:500;cursor:pointer;transition:.2s;padding:3px 0;}
.flinks a:hover{color:var(--navy);}
.flinks.sub a{font-size:.79rem;color:var(--text-dim);font-weight:400;}
.fmeta{font-size:.73rem;color:var(--muted);font-weight:300;margin-top:8px;border-top:1px solid var(--line);padding-top:16px;width:100%;max-width:760px;}
.credit{font-size:.73rem;color:var(--text-dim);}
.credit a{color:var(--navy);font-weight:600;}

@media(min-width:560px){
  .team-grid{grid-template-columns:repeat(3,1fr);gap:16px;}
}
@media(min-width:760px){
  .two{grid-template-columns:1fr 1fr;}
  .mapbtns{flex-direction:row;}
  .visit-body{grid-template-columns:1fr 1fr;}
  .visit-col+.visit-col{border-top:none;border-left:1px solid var(--line-soft);}
  .visit-actions{flex-direction:row;padding:4px 24px 26px;}
}
@media(min-width:900px){
  .wrap{padding:0 40px;}
  .navlinks{display:flex;}
  .doc{grid-template-columns:.75fr 1.25fr;}
  .doc-photo{min-height:560px;}
  .doc-b{padding:44px 42px;display:flex;flex-direction:column;justify-content:center;}
  .fab{right:26px;bottom:26px;}
  body.a11y-open,body.help-open{overflow:auto;}
  .pbg{background:transparent;}
  .grab{display:none;}
  .dock.dock-f{width:min(780px,90vw);height:min(920px,92vh);right:auto;left:50%;bottom:4vh;
    transform:translateX(-50%) translateY(18px) scale(.97);}
  body.dform-open .dock.dock-f{transform:translateX(-50%) translateY(0) scale(1);opacity:1;}
  .menu-panel{inset:auto;top:calc(var(--nav-h) + 12px);right:26px;left:auto;width:360px;
    max-height:calc(100vh - var(--nav-h) - 46px);border-radius:20px;padding:20px 24px 22px;
    box-shadow:0 30px 70px rgba(20,41,74,.22),0 0 0 1px rgba(20,41,74,.07);
    background:rgba(248,248,246,.99);transform:translateY(-14px) scale(.98);transform-origin:100% 0;}
  body.menu-open .menu-panel{transform:translateY(0) scale(1);}
  .menu-panel .mlink{font-size:1.05rem;padding:10px 0;}
  .menu-foot{padding-top:22px;}
  .qwrap{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:26px;align-items:start;}
  .dock{left:auto;right:26px;bottom:104px;width:390px;height:min(600px,72vh);border-radius:20px;box-shadow:0 22px 60px rgba(15,25,45,.3);transform:translateY(18px) scale(.97);opacity:0;transition:transform .48s cubic-bezier(.22,1,.36,1),opacity .36s;}
  body.a11y-open .dock-a{transform:none;opacity:1;}
  body.choice-open .dock-c,body.dform-open .dock-f,body.send-open .dock-s{transform:none;opacity:1;}
}



@media(prefers-reduced-motion:reduce){}

/* ---- the app style popup ---- */

@media(min-width:900px){}

/* ================= Otis easter egg =================
   A head shaped button that only appears while you are between the team photos
   and the Visit Us section. Tapping it grows the head into the full card. */
.otis-egg-wrap{position:fixed;left:clamp(14px,4vw,30px);bottom:clamp(90px,16vh,140px);z-index:300;
  display:flex;flex-direction:column;align-items:center;gap:6px;
  opacity:0;visibility:hidden;transform:translateY(16px) scale(.7);pointer-events:none;
  transition:opacity .5s ease,transform .6s cubic-bezier(.34,1.56,.64,1),visibility .5s;}
body.otis-here .otis-egg-wrap{opacity:1;visibility:visible;transform:translateY(0) scale(1);pointer-events:auto;}
body.otis-gone .otis-egg-wrap{opacity:0!important;visibility:hidden!important;pointer-events:none!important;transform:translateY(10px) scale(.6)!important;}

.otis-egg{width:clamp(66px,15vw,86px);height:clamp(66px,15vw,86px);padding:0;border:none;background:none;
  cursor:pointer;-webkit-tap-highlight-color:transparent;animation:otisBob 3.2s ease-in-out infinite;
  transition:transform .3s cubic-bezier(.22,1,.36,1);filter:drop-shadow(0 8px 16px rgba(20,41,74,.32));}
.otis-egg img{width:100%;height:100%;object-fit:contain;display:block;pointer-events:none;}
.otis-egg:hover{transform:scale(1.08) rotate(-4deg);}
.otis-egg:active{transform:scale(.94);}
@keyframes otisBob{0%,100%{transform:translateY(0) rotate(-1deg);}50%{transform:translateY(-7px) rotate(2deg);}}

/* comic speech cloud */
.otis-bubble{position:relative;background:#fff;color:var(--ink);font-family:var(--head);font-weight:700;
  font-size:.78rem;padding:8px 14px;border-radius:18px;border:2px solid var(--ink);white-space:nowrap;
  box-shadow:2px 3px 0 var(--ink);opacity:0;transform:translateY(6px) scale(.86);
  transition:opacity .3s,transform .4s cubic-bezier(.34,1.56,.64,1);}
body.otis-here .otis-bubble{opacity:1;transform:translateY(0) scale(1);animation:otisPop 2.8s ease-in-out infinite;}
.otis-bubble::after{content:'';position:absolute;left:50%;bottom:-9px;margin-left:-7px;width:0;height:0;
  border-left:7px solid transparent;border-right:7px solid transparent;border-top:9px solid var(--ink);}
.otis-bubble::before{content:'';position:absolute;left:50%;bottom:-6px;margin-left:-5px;z-index:2;width:0;height:0;
  border-left:5px solid transparent;border-right:5px solid transparent;border-top:7px solid #fff;}
@keyframes otisPop{0%,72%,100%{transform:translateY(0) scale(1);}80%{transform:translateY(-3px) scale(1.07);}88%{transform:translateY(0) scale(1);}}

/* the card grows out of the head, so no backdrop click to dismiss */
.otis-veil{position:fixed;inset:0;z-index:344;background:rgba(10,17,30,.62);opacity:0;visibility:hidden;
  transition:opacity .4s,visibility .4s;}
body.otis-open .otis-veil{opacity:1;visibility:visible;}
.otisapp{position:fixed;z-index:346;left:50%;top:50%;width:min(390px,92vw);max-height:94vh;
  transform:translate(-50%,-50%) scale(.12);transform-origin:center;opacity:0;visibility:hidden;pointer-events:none;
  display:flex;flex-direction:column;align-items:center;gap:16px;
  transition:transform .62s cubic-bezier(.34,1.42,.5,1),opacity .38s ease,visibility .62s;}
body.otis-open .otisapp{transform:translate(-50%,-50%) scale(1);opacity:1;visibility:visible;pointer-events:auto;}
.otis-card{position:relative;width:100%;min-height:0;border-radius:24px;overflow:hidden;
  background:#0d1626;box-shadow:0 26px 70px rgba(6,12,24,.55);display:flex;flex-direction:column;}
.otis-hero{display:block;width:100%;height:clamp(150px,24vh,215px);min-height:82px;object-fit:cover;object-position:56% 22%;flex:0 1 auto;}
.otis-sheet{position:relative;z-index:2;min-height:0;background:#0b1220;
  border-top:1px solid rgba(255,255,255,.15);box-shadow:0 -14px 34px rgba(0,0,0,.5);
  padding:15px 20px 19px;display:flex;flex-direction:column;}
.otis-eye{font-size:.58rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.6);}
.otis-sheet h3{font-family:var(--head);font-size:.98rem;font-weight:600;color:#fff;margin:3px 0 7px;line-height:1.25;}
.otis-scroll{min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;}
.otis-scroll::-webkit-scrollbar{width:4px;}
.otis-scroll::-webkit-scrollbar-thumb{background:rgba(255,255,255,.3);border-radius:4px;}
/* On a short screen, such as a phone held sideways, the photo sits beside the
   writing instead of above it, so longer translations still fit without cutting. */
@media(max-height:560px) and (orientation:landscape){
  .otisapp{width:min(680px,96vw);gap:10px;}
  .otis-card{flex-direction:row;height:min(88vh,360px);}
  .otis-hero{width:33%;height:100%;min-height:0;flex:0 0 33%;}
  .otis-sheet{width:67%;flex:1 1 67%;border-top:none;border-left:1px solid rgba(255,255,255,.15);
    box-shadow:-14px 0 34px rgba(0,0,0,.45);padding:11px 15px 12px;}
  .otis-eye{font-size:.54rem;}
  .otis-sheet h3{font-size:.86rem;margin:2px 0 5px;}
  .otis-scroll p{font-size:.72rem;line-height:1.45;margin:0 0 6px;}
  .otis-feed{width:140px;height:52px;font-size:.82rem;}
}
.otis-scroll::-webkit-scrollbar{width:4px;}
.otis-scroll::-webkit-scrollbar-thumb{background:rgba(255,255,255,.32);border-radius:4px;}
.otis-scroll p{font-size:.8rem;line-height:1.6;color:rgba(255,255,255,.88);margin:0 0 9px;}
.otis-scroll p:last-child{margin-bottom:0;}

/* milk bone */
.otis-feed-wrap{position:relative;display:flex;flex-direction:column;align-items:center;gap:9px;}
.otis-feed{position:relative;width:168px;height:62px;border:none;cursor:pointer;background:none;
  font-family:var(--head);font-size:.92rem;font-weight:700;color:#6b4f22;letter-spacing:.01em;
  transition:transform .25s cubic-bezier(.22,1,.36,1),filter .25s;
  filter:drop-shadow(0 8px 18px rgba(0,0,0,.35));}
.otis-feed::before{content:'';position:absolute;inset:0;z-index:-1;background-repeat:no-repeat;background-size:100% 100%;
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 168 62'%3E%3Cg fill='%23f0dfb8' stroke='%23d9c091' stroke-width='2'%3E%3Ccircle cx='27' cy='19' r='16'/%3E%3Ccircle cx='27' cy='43' r='16'/%3E%3Ccircle cx='141' cy='19' r='16'/%3E%3Ccircle cx='141' cy='43' r='16'/%3E%3Crect x='23' y='15' width='122' height='32' rx='16'/%3E%3C/g%3E%3C/svg%3E");}
.otis-feed:hover{transform:translateY(-3px) scale(1.03);}
.otis-feed:active{transform:scale(.95);}
.otis-feed-wrap{z-index:4;}

@media(prefers-reduced-motion:reduce){
  .otis-egg,.otis-bubble{animation:none!important;}
  .otisapp{transition:opacity .25s ease,visibility .25s;transform:translate(-50%,-50%) scale(1);}
}
