/* Center for Dental Sleep Health — design system
   Layout concept: night to morning. Deep navy "night" bands (hero, appointment, closing) frame bright daylight reading bands;
   the practice's sky blue is the single accent, used for actions, rules and the breathing trace. */
:root{
  --night:#070E36;      /* deepest night sky */
  --navy:#122376;       /* brand navy (logo, old site primary) */
  --navy-2:#1B2F96;     /* raised navy */
  --sky:#42A9EB;        /* brand sky blue */
  --sky-soft:#8DCDF2;   /* light sky */
  --blue-ink:#1A5E96;   /* links on light (AA) */
  --pale:#F3F9FD;       /* brand pale blue band */
  --mist:#D9E8F4;       /* hairlines */
  --white:#FFFFFF;
  --text:#141C38;
  --muted:#46526F;
  --on-dark:#FFFFFF;
  --fog:#C9D8F2;        /* secondary on navy */
  --line-dark:rgba(141,205,242,.26);

  --f-head:"Lexend","Verdana","Segoe UI",system-ui,sans-serif;
  --f-body:"Source Sans 3","Source Sans Pro","Segoe UI","Helvetica Neue",Arial,sans-serif;
  --s-label:.9rem; --s-sm:1.0625rem; --s-md:1.1875rem; --s-lg:1.375rem;
  --s-h3:clamp(1.3rem,1.9vw,1.55rem); --s-h2:clamp(1.75rem,3.1vw,2.5rem); --s-h1:clamp(2.2rem,4.6vw,3.6rem);
  --wrap:1200px; --gutter:clamp(16px,4vw,44px);
  --r:18px; --r-sm:12px; --ease:cubic-bezier(.2,.7,.1,1);
  --shadow:0 30px 60px -34px rgba(18,35,118,.38);
  color-scheme:light;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:120px}
body{margin:0;background:var(--white);color:var(--text);font-family:var(--f-body);font-size:var(--s-md);line-height:1.7;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
[hidden]{display:none!important}
a{color:inherit}
h1,h2,h3,h4,h5{font-family:var(--f-head);font-weight:500;line-height:1.2;letter-spacing:-.015em;margin:0;text-wrap:balance;color:var(--navy)}
h1{font-size:var(--s-h1);line-height:1.12;font-weight:600} h2{font-size:var(--s-h2)} h3{font-size:var(--s-h3);line-height:1.3} h4{font-size:1.2rem;line-height:1.35} h5{font-size:1.0625rem}
p{margin:0;text-wrap:pretty}
:focus-visible{outline:3px solid var(--sky);outline-offset:3px;border-radius:6px}
::selection{background:var(--sky-soft);color:var(--night)}
.skip{position:absolute;left:12px;top:-70px;z-index:200;background:var(--sky);color:var(--night);padding:12px 18px;font-weight:700;border-radius:10px;text-decoration:none}
.skip:focus{top:12px}
.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gutter)}
.narrow{max-width:860px;margin-inline:auto;padding-inline:var(--gutter)}
.band{padding-block:clamp(60px,8vw,108px);position:relative}
.band.pale{background:var(--pale)}
.band.navy{background:var(--navy);color:var(--on-dark)}
.band.night{background:var(--night);color:var(--on-dark)}
.navy h1,.navy h2,.navy h3,.navy h4,.night h1,.night h2,.night h3,.night h4,.dk h1,.dk h2,.dk h3,.dk h4{color:#fff}
.eyebrow{font-family:var(--f-body);font-size:var(--s-label);font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--blue-ink);display:inline-flex;align-items:center;gap:12px;line-height:1.3}
.eyebrow::before{content:"";width:28px;height:3px;border-radius:3px;background:var(--sky);flex:none}
.navy .eyebrow,.night .eyebrow,.dk .eyebrow{color:var(--sky-soft)}
.lede{font-size:var(--s-lg);line-height:1.6;color:var(--muted);max-width:62ch}
.navy .lede,.night .lede,.dk .lede{color:var(--fog)}
.stack{display:grid;gap:20px}.stack-lg{display:grid;gap:32px}
.center{text-align:center}.center .lede{margin-inline:auto}
.mt-m{margin-top:36px}.mt-l{margin-top:56px}

/* Buttons */
.btn{--bg:var(--navy);--fg:#fff;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:54px;padding:14px 26px;background:var(--bg);color:var(--fg);font:600 1.0625rem/1.2 var(--f-head);text-decoration:none;border:2px solid var(--bg);border-radius:999px;cursor:pointer;transition:background .25s,border-color .25s,color .25s,transform .25s var(--ease)}
.btn svg{width:18px;height:18px;flex:none}
.btn:hover{--bg:var(--navy-2);transform:translateY(-2px)}
.btn.sky{--bg:var(--sky);--fg:var(--night)} .btn.sky:hover{--bg:var(--sky-soft)}
.btn.ghost{background:transparent;color:var(--navy);border-color:var(--mist)} .btn.ghost:hover{border-color:var(--navy);background:transparent}
.navy .btn.ghost,.night .btn.ghost,.dk .btn.ghost{color:#fff;border-color:rgba(255,255,255,.45)} .navy .btn.ghost:hover,.night .btn.ghost:hover,.dk .btn.ghost:hover{border-color:#fff;background:rgba(255,255,255,.08)}
.navy .btn:not(.ghost):not(.sky),.night .btn:not(.ghost):not(.sky){--bg:#fff;--fg:var(--navy)}
.actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.tlink{font-family:var(--f-head);font-weight:600;font-size:1.0625rem;color:var(--blue-ink);text-decoration:none;display:inline-flex;align-items:center;gap:8px}
.tlink svg{width:16px;height:16px;transition:transform .25s}
.tlink:hover{text-decoration:underline;text-underline-offset:5px} .tlink:hover svg{transform:translateX(4px)}

/* Top bar + header */
.topbar{background:var(--night);color:var(--fog);font-size:1rem}
.topbar .wrap{display:flex;justify-content:space-between;gap:18px;align-items:center;min-height:44px;flex-wrap:wrap;padding-block:6px}
.topbar a{color:#fff;text-decoration:none;font-weight:700} .topbar a:hover{text-decoration:underline}
.topbar .tb-info{display:flex;gap:8px 22px;flex-wrap:wrap}
.topbar .tb-info span{display:inline-flex;gap:8px;align-items:center}
.topbar svg{width:16px;height:16px;color:var(--sky-soft)}
.site-header{position:sticky;top:env(safe-area-inset-top,0px);z-index:60;background:rgba(255,255,255,.97);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--mist);transition:box-shadow .3s}
.site-header.solid{box-shadow:0 14px 34px -24px rgba(18,35,118,.45)}
.site-header > .wrap{max-width:1340px}
.nav{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:86px}
.brand{display:flex;align-items:center;flex:none;text-decoration:none}
.brand img{width:150px;height:auto}
.menu{display:flex;align-items:center;gap:2px;list-style:none;margin:0;padding:0}
.menu > li > a,.menu > li > button{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;font:500 1.0625rem/1 var(--f-head);color:var(--text);text-decoration:none;background:none;border:0;padding:14px 13px;border-radius:10px;cursor:pointer}
.menu > li > a:hover,.menu > li > button:hover,.menu > li.open > button{background:var(--pale);color:var(--navy)}
.menu > li > a[aria-current="page"],.menu > li.current > button{color:var(--blue-ink);font-weight:600}
.menu .chev{width:12px;height:12px;transition:transform .25s}
.menu li.open .chev{transform:rotate(180deg)}
.has-sub{position:static}
.mega{position:absolute;left:0;right:0;top:100%;background:#fff;border-top:1px solid var(--mist);box-shadow:0 40px 60px -30px rgba(18,35,118,.4);opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .2s,transform .25s var(--ease),visibility .2s;max-height:calc(100vh - 150px);overflow-y:auto}
.has-sub.open .mega{opacity:1;visibility:visible;transform:none}
@media (hover:hover) and (min-width:1101px){.has-sub:hover .mega,.has-sub:focus-within .mega{opacity:1;visibility:visible;transform:none}}
.mega-in{max-width:var(--wrap);margin-inline:auto;padding:30px var(--gutter) 36px;display:grid;grid-template-columns:minmax(0,300px) minmax(0,1fr);gap:40px}
.mega-lead{background:var(--pale);border-radius:var(--r);padding:26px;display:grid;gap:12px;align-content:start}
.mega-lead h3{font-size:1.35rem}
.mega-lead p{color:var(--muted);font-size:1.0625rem}
.mega-links{display:grid;grid-template-columns:repeat(var(--cols,3),minmax(0,1fr));gap:4px 22px;align-content:start}
.mega-links a{display:block;padding:10px 12px;border-radius:10px;text-decoration:none;color:var(--text);font-size:1.0625rem;line-height:1.35}
.mega-links a:hover{background:var(--pale);color:var(--navy)}
.mega-links a[aria-current="page"]{color:var(--blue-ink);font-weight:700;background:var(--pale)}
.nav-cta{display:flex;gap:10px;align-items:center}
.nav .btn{min-height:48px;padding:11px 20px;font-size:1rem}
.burger{display:none;width:50px;height:50px;border:1px solid var(--mist);border-radius:12px;background:#fff;color:var(--navy);align-items:center;justify-content:center;cursor:pointer}
.burger svg{width:24px;height:24px}
.m-only{display:none!important}
@media (max-width:1100px){
  .burger{display:inline-flex}
  .nav .btn{display:none}
  .nav{min-height:72px}
  .brand img{width:124px}
  nav.primary{position:fixed;inset:0;top:0;background:#fff;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .25s,visibility .25s;overflow-y:auto;padding:calc(88px + env(safe-area-inset-top,0px)) var(--gutter) 40px;z-index:-1}
  body.menu-open nav.primary{opacity:1;visibility:visible;pointer-events:auto}
  body.menu-open{overflow:hidden}
  .menu{flex-direction:column;align-items:stretch;gap:0}
  .menu > li{border-bottom:1px solid var(--mist)}
  .menu > li > a,.menu > li > button{width:100%;justify-content:space-between;font-size:1.25rem;padding:18px 4px;border-radius:0}
  .mega{position:static;box-shadow:none;border:0;opacity:1;visibility:visible;transform:none;display:none;max-height:none}
  .has-sub.open .mega{display:block}
  .mega-in{grid-template-columns:1fr;padding:0 0 18px;gap:10px}
  .mega-lead{display:none}
  .mega-links{grid-template-columns:1fr}
  .m-only{display:block!important}
  .topbar .tb-info .hide-m{display:none}
}

/* Home hero (night) */
.hero{background:radial-gradient(1200px 600px at 85% -10%,rgba(66,169,235,.28),transparent 60%),linear-gradient(160deg,var(--night),var(--navy) 85%);color:#fff;position:relative;overflow:hidden;padding-block:clamp(48px,6vw,84px) clamp(150px,13vw,180px)}
.hero h1{color:#fff}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:clamp(30px,5vw,70px);align-items:center;position:relative;z-index:1}
.hero-copy{display:grid;gap:22px;min-width:0}
.hero .sub{font-family:var(--f-head);font-size:clamp(1.1rem,1.6vw,1.3rem);color:var(--sky-soft);line-height:1.45}
.hero .tag{font-size:var(--s-lg);color:var(--fog)}
.hero-figure{position:relative;min-width:0}
.hero-figure .frame{border-radius:200px 200px var(--r) var(--r);overflow:hidden;aspect-ratio:5/5.4;background:var(--navy-2);box-shadow:0 50px 90px -40px rgba(0,0,0,.6)}
.hero-figure .frame img{width:100%;height:100%;object-fit:cover}
.badge{position:absolute;background:#fff;color:var(--text);border-radius:var(--r);padding:16px 18px;box-shadow:0 26px 50px -22px rgba(0,0,0,.5);display:flex;gap:14px;align-items:center}
.badge strong{font-family:var(--f-head);font-size:2rem;line-height:1;color:var(--navy);font-weight:600}
.badge span{font-size:1rem;line-height:1.35;color:var(--muted)}
.badge.b1{left:-22px;bottom:34px;max-width:240px}
.badge.b2{right:-10px;top:26px;padding:12px 16px}
.badge.b2 img{width:92px;height:auto}
.stars{position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(1.5px 1.5px at 12% 22%,rgba(255,255,255,.7),transparent 60%),radial-gradient(1.5px 1.5px at 28% 68%,rgba(255,255,255,.5),transparent 60%),radial-gradient(2px 2px at 46% 14%,rgba(255,255,255,.6),transparent 60%),radial-gradient(1.5px 1.5px at 63% 80%,rgba(255,255,255,.35),transparent 60%),radial-gradient(1.5px 1.5px at 78% 30%,rgba(255,255,255,.55),transparent 60%),radial-gradient(2px 2px at 91% 62%,rgba(255,255,255,.45),transparent 60%),radial-gradient(1.5px 1.5px at 6% 84%,rgba(255,255,255,.4),transparent 60%),radial-gradient(1.5px 1.5px at 54% 44%,rgba(255,255,255,.3),transparent 60%)}
@media (max-width:900px){.hero-grid{grid-template-columns:1fr}.hero-figure{max-width:430px;margin-inline:auto;width:100%}.badge.b1{left:0}.badge.b2{right:0}}

/* Airflow trace */
.trace{position:absolute;left:0;right:0;bottom:0;height:140px;pointer-events:none}
.trace canvas{width:100%;height:100%;display:block}
.trace-label{position:absolute;right:var(--gutter);bottom:14px;display:flex;gap:14px;font-size:1rem;font-weight:600;color:var(--fog)}
.trace-label b{color:var(--sky-soft)}

/* Appointment band */
.appt{background:var(--navy);color:#fff}
.appt-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(30px,5vw,70px);align-items:start}
.appt h2{color:#fff}
.appt h2 span{display:block;color:var(--sky-soft);font-weight:400}
.contact-rows{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:8px}
.contact-rows div{border-top:2px solid var(--line-dark);padding-top:14px;display:grid;gap:4px}
.contact-rows dt,.contact-rows .k{font-family:var(--f-head);font-weight:600;color:var(--sky-soft);font-size:1rem}
.contact-rows a{color:#fff;text-decoration:none;font-size:1.25rem;font-weight:700} .contact-rows a:hover{text-decoration:underline}
.form-card{background:#fff;color:var(--text);border-radius:var(--r);padding:clamp(22px,3vw,34px);box-shadow:0 40px 80px -40px rgba(0,0,0,.55);margin-top:calc(-1 * clamp(110px,10vw,150px));position:relative;z-index:3}
.form-card.flat{margin-top:0;box-shadow:var(--shadow);border:1px solid var(--mist)}
.form-card h3{font-size:1.4rem;margin-bottom:6px}
.form{display:grid;gap:16px}
.row2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.field{display:grid;gap:6px}
.field label,.field legend{font-weight:700;font-size:1.0625rem;color:var(--text);padding:0}
.field input[type=text],.field input[type=email],.field input[type=tel],.field textarea{width:100%;font:inherit;font-size:1.125rem;color:var(--text);background:var(--pale);border:1.5px solid var(--mist);border-radius:var(--r-sm);padding:13px 15px}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--sky);background:#fff}
.field textarea{min-height:110px;resize:vertical}
fieldset.field{border:0;margin:0;padding:0}
.radios{display:flex;gap:10px;flex-wrap:wrap}
.radios label{display:inline-flex;align-items:center;gap:10px;border:1.5px solid var(--mist);border-radius:999px;padding:10px 20px;font-weight:600;cursor:pointer;background:var(--pale)}
.radios input{width:18px;height:18px;accent-color:var(--navy)}
.radios label:has(input:checked){border-color:var(--navy);background:#fff}
.err{font-size:1rem;font-weight:600;color:#A2301F;min-height:1em}
.success{display:grid;gap:10px;padding:24px;border:2px solid var(--sky);border-radius:var(--r);background:var(--pale)}
@media (max-width:900px){.appt-grid{grid-template-columns:1fr}.form-card{margin-top:0}}
@media (max-width:560px){.row2,.contact-rows{grid-template-columns:1fr}}

/* Quick tiles */
.tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.tile{position:relative;overflow:hidden;border-radius:var(--r);min-height:320px;display:flex;align-items:flex-end;text-decoration:none;color:#fff;isolation:isolate;background:var(--navy)}
.tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform 1s var(--ease)}
.tile::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(7,14,54,.05) 10%,rgba(7,14,54,.55) 52%,rgba(7,14,54,.94))}
.tile:hover img{transform:scale(1.05)}
.tile .t-body{padding:26px;display:grid;gap:8px}
.tile h3{color:#fff;font-size:1.6rem}
.tile p{color:#E4ECFA;font-size:1.0625rem}
.tile .go{display:inline-flex;gap:8px;align-items:center;font-family:var(--f-head);font-weight:600;color:var(--sky-soft);margin-top:4px}
.tile .go svg{width:16px;height:16px;transition:transform .25s} .tile:hover .go svg{transform:translateX(5px)}
@media (max-width:860px){.tiles{grid-template-columns:1fr}.tile{min-height:260px}}

/* Big quote */
.bigquote{position:relative;isolation:isolate;color:#fff;overflow:hidden;background:var(--night)}
.bigquote .bq-bg{position:absolute;inset:0;z-index:-1}
.bigquote .bq-bg img{width:100%;height:100%;object-fit:cover}
.bigquote .bq-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,14,54,.94),rgba(18,35,118,.78))}
.bigquote blockquote{margin:0;font-family:var(--f-head);font-weight:400;font-size:clamp(1.5rem,2.8vw,2.3rem);line-height:1.35;max-width:22em}
.bigquote cite{display:block;margin-top:18px;font-style:normal;font-weight:700;color:var(--sky-soft);font-size:var(--s-md)}
.bigquote .mark{font-family:Georgia,serif;font-size:6rem;line-height:.6;color:var(--sky);display:block;margin-bottom:8px}

/* Split sections */
.split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(30px,6vw,84px);align-items:center}
.split.top{align-items:start}
.split > *{min-width:0}
.split.flip > .media{order:2}
.media{position:relative}
.media img{width:100%;border-radius:var(--r);box-shadow:var(--shadow);object-fit:cover;aspect-ratio:4/3}
.media.natural img{aspect-ratio:auto}
.media.plain img{box-shadow:none;aspect-ratio:auto;object-fit:contain;border-radius:0}
.media::before{content:"";position:absolute;inset:auto auto -18px -18px;width:46%;height:46%;border-radius:var(--r);background:var(--sky-soft);opacity:.45;z-index:-1}
.split.flip > .media::before{inset:auto -18px -18px auto}
.media.plain::before{display:none}
.media{z-index:0}
.sticky{position:sticky;top:130px}
@media (max-width:900px){.split{grid-template-columns:1fr}.split.flip > .media{order:0}.sticky{position:static}.media::before{display:none}}

/* Prose */
.prose{font-size:var(--s-md);color:var(--text);min-width:0}
.prose > * + *{margin-top:1em}
.prose h2{margin-top:1.5em} .prose h2:first-child,.prose h3:first-child,.prose h4:first-child{margin-top:0}
.prose h3{margin-top:1.5em;color:var(--navy)}
.prose h4{margin-top:1.4em;color:var(--blue-ink);font-weight:600}
.prose h2 + *,.prose h3 + *,.prose h4 + *{margin-top:.6em}
.prose ul,.prose ol{margin:1em 0 0;padding-left:0;list-style:none;display:grid;gap:.55em}
.prose ul > li{position:relative;padding-left:1.9em}
.prose ul > li::before{content:"";position:absolute;left:.15em;top:.5em;width:.95em;height:.95em;border-radius:50%;background:var(--pale);border:2px solid var(--sky)}
.prose ul > li::after{content:"";position:absolute;left:.48em;top:.83em;width:.3em;height:.3em;border-radius:50%;background:var(--navy)}
.prose ol{counter-reset:o}
.prose ol > li{position:relative;padding-left:2.3em;counter-increment:o}
.prose ol > li::before{content:counter(o);position:absolute;left:0;top:.1em;width:1.6em;height:1.6em;border-radius:50%;background:var(--navy);color:#fff;font:600 .85em/1.6em var(--f-head);text-align:center}
.prose li ul,.prose li ol{margin-top:.5em}
.prose a{color:var(--blue-ink);font-weight:600;text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:4px}
.prose a:hover{color:var(--navy)}
.prose strong{font-weight:700;color:var(--navy)}
.prose table{width:100%;border-collapse:collapse;font-size:1.0625rem}
.prose th,.prose td{text-align:left;padding:14px 16px;border-bottom:1px solid var(--mist);vertical-align:top}
.prose tr:first-child td,.prose th{background:var(--navy);color:#fff;font-family:var(--f-head);font-weight:500}
.prose tr:first-child td strong,.prose th strong{color:#fff}
.prose tr:nth-child(even) td{background:var(--pale)}
.table-wrap{overflow-x:auto;border-radius:var(--r-sm);border:1px solid var(--mist);margin-top:1.2em}
.table-wrap table{min-width:560px}
.navy .prose,.night .prose,.dk .prose{color:#fff}
.navy .prose a,.night .prose a,.dk .prose a{color:var(--sky-soft)} .navy .prose strong,.night .prose strong,.dk .prose strong{color:#fff}
.dk .form-card,.dk .form-card h3,.dk .success h3{color:var(--text)} .dk .form-card h3,.dk .success h3{color:var(--navy)}
.prose.center{text-align:center}
.prose.center ul{text-align:left;display:inline-grid}
.sec-head{display:grid;gap:14px;margin-bottom:clamp(26px,3.6vw,44px);max-width:860px}
.sec-head.center{margin-inline:auto;justify-items:center}

/* Two text columns / cards */
.cols{display:grid;grid-template-columns:repeat(var(--n,2),minmax(0,1fr));gap:22px}
.cols > *{min-width:0}
.pcard{background:#fff;border:1px solid var(--mist);border-radius:var(--r);padding:clamp(22px,3vw,34px);display:grid;gap:16px;align-content:start}
.pale .pcard{box-shadow:0 20px 40px -34px rgba(18,35,118,.4)}
.pcard > img,.pcard figure img{border-radius:var(--r-sm);width:100%;aspect-ratio:16/10;object-fit:cover}
.pcard.logo-card > img{aspect-ratio:auto;object-fit:contain;max-height:90px;width:auto;max-width:260px}
@media (max-width:860px){.cols{grid-template-columns:1fr}}

/* Tabs */
.tabs{display:grid;grid-template-columns:minmax(0,300px) minmax(0,1fr);gap:26px;align-items:start}
.tab-list{display:grid;gap:8px;position:sticky;top:130px}
.tab-btn{text-align:left;font:500 1.0625rem/1.35 var(--f-head);color:var(--text);background:#fff;border:1.5px solid var(--mist);border-radius:var(--r-sm);padding:16px 18px;cursor:pointer;display:flex;justify-content:space-between;gap:12px;align-items:center;transition:border-color .2s,background .2s,color .2s}
.tab-btn svg{width:16px;height:16px;flex:none;opacity:.5}
.tab-btn:hover{border-color:var(--sky)}
.tab-btn[aria-selected="true"]{background:var(--navy);border-color:var(--navy);color:#fff}
.tab-btn[aria-selected="true"] svg{opacity:1}
.tab-panels{min-width:0;display:grid;gap:16px}
.tab-panel{background:#fff;border:1px solid var(--mist);border-radius:var(--r);padding:clamp(22px,3vw,36px)}
.tab-panel > h3{margin-bottom:.6em}
.js .tabs.on .tab-panel[hidden]{display:none}
.js .tabs.on .tab-panel > h3.tab-title{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.tabs:not(.on) .tab-list{display:none}
.tabs:not(.on){grid-template-columns:1fr}
@media (max-width:900px){.tabs{grid-template-columns:1fr}.tabs .tab-list{display:none}.js .tabs.on .tab-panel[hidden]{display:block}.js .tabs.on .tab-panel > h3.tab-title{position:static;width:auto;height:auto;clip:auto}}

/* Accordion */
.acc{display:grid;gap:12px}
.acc details{background:#fff;border:1.5px solid var(--mist);border-radius:var(--r-sm);transition:border-color .2s,box-shadow .2s}
.acc details[open]{border-color:var(--sky);box-shadow:0 18px 36px -30px rgba(18,35,118,.5)}
.acc summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center;padding:20px 22px}
.acc summary::-webkit-details-marker{display:none}
.acc summary h3{font-size:1.2rem;font-weight:500;line-height:1.4}
.acc .pm{width:36px;height:36px;border-radius:50%;background:var(--pale);display:grid;place-items:center;color:var(--navy);transition:transform .3s var(--ease),background .2s,color .2s}
.acc .pm svg{width:14px;height:14px}
.acc details[open] .pm{transform:rotate(45deg);background:var(--navy);color:#fff}
.acc .a-body{padding:0 22px 22px}

/* Flow chart */
.flow{display:grid;gap:0;justify-items:center}
.f-row{display:grid;grid-template-columns:repeat(var(--n,3),minmax(0,1fr));gap:22px;width:100%;position:relative}
.f-node{background:#fff;border:1.5px solid var(--mist);border-radius:var(--r);padding:22px;display:grid;gap:8px;align-content:start;position:relative;text-decoration:none;color:var(--text);box-shadow:0 22px 40px -34px rgba(18,35,118,.45)}
a.f-node:hover{border-color:var(--sky);transform:translateY(-3px)} a.f-node{transition:transform .25s var(--ease),border-color .2s}
.f-node .n{font:600 .95rem/1 var(--f-head);color:#fff;background:var(--navy);width:34px;height:34px;border-radius:50%;display:grid;place-items:center}
.f-node h3{font-size:1.2rem}
.f-node p{font-size:1.0625rem;color:var(--muted);line-height:1.55}
.f-node .more{font-family:var(--f-head);font-weight:600;font-size:1rem;color:var(--blue-ink);display:inline-flex;gap:6px;align-items:center}
.f-node .more svg{width:14px;height:14px}
.f-node.start{background:var(--navy);border-color:var(--navy);color:#fff} .f-node.start h3{color:#fff} .f-node.start p{color:var(--fog)} .f-node.start .n{background:var(--sky);color:var(--night)}
.f-node.end{background:linear-gradient(140deg,#EAF6FE,#fff);border-color:var(--sky)}
.f-node.alt{border-style:dashed}
.f-row .f-node + .f-node::before{content:"";position:absolute;left:-23px;top:38px;width:22px;height:2px;background:var(--sky)}
.f-row .f-node + .f-node::after{content:"";position:absolute;left:-9px;top:33px;width:10px;height:10px;border-top:2px solid var(--sky);border-right:2px solid var(--sky);transform:rotate(45deg)}
.f-down{width:2px;height:34px;background:var(--sky);position:relative}
.f-down::after{content:"";position:absolute;left:-4px;bottom:0;width:10px;height:10px;border-right:2px solid var(--sky);border-bottom:2px solid var(--sky);transform:rotate(45deg)}
.f-decision{background:var(--night);color:#fff;border-radius:999px;padding:16px 30px;font:500 1.125rem/1.3 var(--f-head);text-align:center;max-width:560px}
.f-branches{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;width:100%;position:relative;padding-top:34px}
.f-branches::before{content:"";position:absolute;top:0;left:25%;right:25%;height:34px;border:2px solid var(--sky);border-bottom:0;border-radius:14px 14px 0 0}
.f-branch{display:grid;gap:0;justify-items:center;align-content:start}
.f-label{font:600 .95rem/1.2 var(--f-head);background:var(--sky-soft);color:var(--night);border-radius:999px;padding:8px 16px;margin-bottom:12px;text-align:center}
.f-branch .f-node{width:100%}
.flow-note{font-size:1rem;color:var(--muted);margin-top:22px;text-align:center;max-width:70ch;margin-inline:auto}
@media (max-width:900px){
  .f-row{grid-template-columns:1fr;gap:34px}
  .f-row .f-node + .f-node::before{left:50%;top:-34px;width:2px;height:32px}
  .f-row .f-node + .f-node::after{left:calc(50% - 4px);top:-12px;transform:rotate(135deg)}
  .f-branches{grid-template-columns:1fr;padding-top:0;gap:26px}
  .f-branches::before{display:none}
}

/* Page hero */
.page-hero{background:radial-gradient(900px 480px at 88% -20%,rgba(66,169,235,.3),transparent 62%),linear-gradient(150deg,var(--night),var(--navy) 90%);color:#fff;position:relative;overflow:hidden;padding-block:clamp(40px,5vw,64px) clamp(120px,11vw,150px)}
.page-hero h1{color:#fff;font-size:clamp(2rem,4vw,3.2rem)}
.ph-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(28px,5vw,64px);align-items:center;position:relative;z-index:1}
.ph-copy{display:grid;gap:20px;min-width:0}
.ph-photo{border-radius:var(--r);overflow:hidden;aspect-ratio:4/3;box-shadow:0 40px 80px -40px rgba(0,0,0,.6);background:var(--navy-2)}
.ph-photo img{width:100%;height:100%;object-fit:cover}
.crumbs{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 8px;font-size:1rem;color:var(--fog)}
.crumbs li + li::before{content:"›";margin-right:8px;color:var(--sky-soft)}
.crumbs a{color:var(--fog);text-decoration:none} .crumbs a:hover{color:#fff;text-decoration:underline}
.crumbs [aria-current]{color:#fff;font-weight:600}
@media (max-width:900px){.ph-grid{grid-template-columns:1fr}.ph-photo{aspect-ratio:16/9}}

/* Jump nav */
.jump{background:#fff;border-bottom:1px solid var(--mist)}
.jump .wrap{display:flex;gap:10px;align-items:center;overflow-x:auto;padding-block:14px;scrollbar-width:thin}
.jump b{font-family:var(--f-head);font-weight:600;color:var(--navy);white-space:nowrap;font-size:1rem}
.jump a{white-space:nowrap;text-decoration:none;font-size:1rem;font-weight:600;color:var(--blue-ink);background:var(--pale);border:1px solid var(--mist);border-radius:999px;padding:8px 16px}
.jump a:hover{border-color:var(--sky);color:var(--navy)}

/* Testimonials */
.quotes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.quote{margin:0;background:#fff;border:1px solid var(--mist);border-radius:var(--r);padding:clamp(24px,3vw,36px);display:grid;gap:16px;align-content:space-between;box-shadow:0 22px 40px -36px rgba(18,35,118,.5)}
.quote.wide{grid-column:1/-1;background:var(--navy);color:#fff;border-color:var(--navy)}
.quote .stars5{color:#F5B301;letter-spacing:3px;font-size:1.2rem}
.quote p{font-size:1.2rem;line-height:1.6}
.quote.wide p{font-family:var(--f-head);font-weight:400;font-size:clamp(1.2rem,2vw,1.5rem);line-height:1.5}
.quote cite{font-style:normal;font-family:var(--f-head);font-weight:600;color:var(--blue-ink)}
.quote.wide cite{color:var(--sky-soft)}
@media (max-width:820px){.quotes{grid-template-columns:1fr}}

/* Link grid (hubs, related) */
.lgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.lcard{display:flex;justify-content:space-between;align-items:center;gap:14px;background:#fff;border:1.5px solid var(--mist);border-radius:var(--r-sm);padding:18px 20px;text-decoration:none;color:var(--text);font-family:var(--f-head);font-weight:500;font-size:1.0625rem;line-height:1.35;transition:border-color .2s,transform .25s var(--ease)}
.lcard:hover{border-color:var(--sky);transform:translateY(-2px);color:var(--navy)}
.lcard svg{width:16px;height:16px;flex:none;color:var(--sky)}
@media (max-width:900px){.lgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.lgrid{grid-template-columns:1fr}}

/* Areas + map */
.chips{display:flex;flex-wrap:wrap;gap:10px}
.chip{display:inline-flex;align-items:center;gap:8px;border:1.5px solid var(--mist);background:#fff;border-radius:999px;padding:10px 18px;font-weight:600;text-decoration:none;color:var(--text)}
a.chip{color:var(--blue-ink)} a.chip:hover{border-color:var(--sky)}
.chip svg{width:16px;height:16px;color:var(--sky)}
.map-card{border-radius:var(--r);overflow:hidden;border:1px solid var(--mist);background:linear-gradient(140deg,#E8F4FD,#F7FBFE);min-height:340px;display:grid;position:relative}
.map-card iframe{width:100%;height:100%;min-height:380px;border:0;display:block}
.map-ph{display:grid;place-content:center;justify-items:center;gap:14px;text-align:center;padding:30px;background-image:linear-gradient(rgba(18,35,118,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(18,35,118,.06) 1px,transparent 1px);background-size:44px 44px}
.map-ph .pin{width:64px;height:64px;border-radius:50% 50% 50% 0;background:var(--navy);transform:rotate(-45deg);display:grid;place-items:center;box-shadow:0 18px 30px -14px rgba(18,35,118,.6)}
.map-ph .pin::after{content:"";width:22px;height:22px;border-radius:50%;background:var(--sky-soft)}
.info-list{display:grid;gap:0;margin:0}
.info-list > div{display:grid;grid-template-columns:36px minmax(0,1fr);gap:14px;padding:16px 0;border-bottom:1px solid var(--mist)}
.info-list svg{width:24px;height:24px;color:var(--sky);margin-top:3px}
.info-list dt{font-family:var(--f-head);font-weight:600;color:var(--navy)}
.info-list dd{margin:2px 0 0;color:var(--muted)}
.info-list a{color:var(--blue-ink);font-weight:700;text-decoration:none} .info-list a:hover{text-decoration:underline}
.hours{display:grid;gap:4px;font-variant-numeric:tabular-nums}
.hours > span{display:flex;justify-content:space-between;gap:20px;max-width:330px}

/* CTA band */
.cta{background:radial-gradient(800px 400px at 90% 0,rgba(66,169,235,.3),transparent 60%),linear-gradient(150deg,var(--night),var(--navy));color:#fff;overflow:hidden;position:relative}
.cta .cta-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,.8fr);gap:40px;align-items:center;position:relative;z-index:1}
.cta-card{background:rgba(255,255,255,.08);border:1px solid var(--line-dark);border-radius:var(--r);padding:26px;display:grid;gap:14px}
.cta-card .phone{font-family:var(--f-head);font-weight:600;font-size:1.9rem;color:#fff;text-decoration:none}
.cta-card p{color:var(--fog);font-size:1.0625rem}
@media (max-width:900px){.cta .cta-grid{grid-template-columns:1fr}}

/* Footer */
.site-footer{background:var(--night);color:var(--fog);padding-block:clamp(56px,7vw,88px) calc(30px + env(safe-area-inset-bottom,0px));font-size:1.0625rem}
.f-top{display:grid;grid-template-columns:1.25fr 1fr 1fr 1fr;gap:36px;padding-bottom:44px;border-bottom:1px solid var(--line-dark)}
.f-brand{display:grid;gap:16px;align-content:start}
.f-brand .logo-chip{background:#fff;border-radius:var(--r-sm);padding:10px 14px;width:max-content}
.f-brand .logo-chip img{width:150px}
.f-col{display:grid;gap:10px;align-content:start}
.f-col h2{font:600 1rem/1.3 var(--f-body);letter-spacing:.1em;text-transform:uppercase;color:var(--sky-soft);margin-bottom:6px}
.f-col a{color:var(--fog);text-decoration:none} .f-col a:hover{color:#fff;text-decoration:underline}
.f-bottom{display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between;padding-top:24px;font-size:1rem}
.f-bottom a{color:var(--fog)}
@media (max-width:980px){.f-top{grid-template-columns:1fr 1fr}.f-brand{grid-column:1/-1}}
@media (max-width:540px){.f-top{grid-template-columns:1fr}}
.callbar{display:none}
@media (max-width:700px){.callbar{display:grid;grid-template-columns:1fr 1fr;position:fixed;left:0;right:0;bottom:0;z-index:55;background:#fff;border-top:1px solid var(--mist);padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px));gap:10px}.callbar .btn{min-height:50px;padding:10px 12px;font-size:1rem}body{padding-bottom:76px}}

/* Motion */
@media (prefers-reduced-motion:no-preference){.js .rv{transform:translateY(18px);transition:transform .9s var(--ease)}.js .rv.in{transform:none}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

@media (max-width:1240px) and (min-width:1101px){.menu > li > a,.menu > li > button{padding:14px 8px;font-size:1rem}.brand img{width:128px}}
.tabs > *,.tab-panel,.tab-panels > *,.acc details,.a-body,.pcard,.stack > *,.stack-lg > *{min-width:0}
.table-wrap{max-width:100%}
.media.plain img{border-radius:var(--r-sm)}
