:root{
  --navy:#0f2e4d;
  --navy-2:#173e66;
  --blue:#1f6fb2;
  --sky:#eaf3fb;
  --paper:#fbfcfd;
  --ink:#16222e;
  --muted:#52606e;
  --sun:#ffc247;
  --sun-2:#f5ad1c;
  --line:#d6e2ee;
  --nav-h:68px;
}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-h) + 8px)}
body{font-family:'Figtree',system-ui,sans-serif;color:var(--ink);background:var(--paper);font-size:1.05rem;line-height:1.7;padding-top:var(--nav-h)}
h1,h2,h3,h4,.navbar-brand,.foot-brand,.offer-amt{font-family:'DM Serif Display',Georgia,serif;font-weight:400;letter-spacing:.005em}
a{color:var(--blue)}
img{max-width:100%;height:auto}
.skip-link{position:absolute;left:-999px;top:0;background:var(--sun);color:var(--navy);padding:.5rem 1rem;z-index:2000}
.skip-link:focus{left:0}

/* nav */
.site-nav{background:var(--navy);height:auto;min-height:var(--nav-h);box-shadow:0 2px 14px rgba(15,46,77,.25)}
.site-nav .navbar-brand{color:#fff;font-size:1.15rem;white-space:normal;line-height:1.15;margin-right:1rem}
.site-nav .nav-link{color:#dbe7f3;font-size:.92rem;font-weight:500;padding:.5rem .6rem}
.site-nav .nav-link:hover,.site-nav .nav-link:focus{color:var(--sun)}
.site-nav .navbar-toggler{border-color:rgba(255,255,255,.4)}
.site-nav .navbar-toggler-icon{filter:invert(1)}
@media (max-width:1199.98px){
  .site-nav .navbar-collapse{padding:.5rem 0 1rem;max-height:calc(100vh - var(--nav-h));overflow:auto}
  .site-nav .nav-link{padding:.6rem 0;font-size:1rem}
}
@media (min-width:1200px){.site-nav .nav-link{padding:.5rem .45rem;font-size:.88rem}}
@media (min-width:1400px){.site-nav .nav-link{padding:.5rem .6rem;font-size:.92rem}}

/* buttons */
.btn{border-radius:999px;font-weight:600;padding:.6rem 1.4rem}
.btn-sm{padding:.35rem 1rem}
.btn-sun{background:var(--sun);color:var(--navy);border:2px solid var(--sun)}
.btn-sun:hover,.btn-sun:focus{background:var(--sun-2);border-color:var(--sun-2);color:var(--navy)}
.btn-ghost{background:transparent;color:#fff;border:2px solid rgba(255,255,255,.65)}
.btn-ghost:hover,.btn-ghost:focus{background:#fff;color:var(--navy)}
.btn-deep{background:var(--navy);color:#fff;border:2px solid var(--navy)}
.btn-deep:hover,.btn-deep:focus{background:var(--blue);border-color:var(--blue);color:#fff}
.btn-outline-deep{background:transparent;color:var(--navy);border:2px solid var(--navy)}
.btn-outline-deep:hover{background:var(--navy);color:#fff}

/* hero: split panel */
.hero{display:grid;grid-template-columns:1.1fr .9fr;min-height:calc(100vh - var(--nav-h));min-height:calc(100svh - var(--nav-h));max-height:1000px}
.hero-panel{background:var(--navy);color:#fff;display:flex;align-items:center;padding:4rem clamp(1.5rem,5vw,5rem);position:relative}
.hero-panel::after{content:"";position:absolute;right:-1px;top:0;bottom:0;width:14px;background:var(--sun)}
.hero-copy{max-width:640px}
.hero-eyebrow{font-weight:700;letter-spacing:.16em;text-transform:uppercase;font-size:.82rem;color:var(--sun);margin-bottom:1rem}
.hero-title{font-size:clamp(2.5rem,5.4vw,4.7rem);line-height:1.04;margin-bottom:1.25rem}
.hero-subtitle{font-size:clamp(1.15rem,1.8vw,1.45rem);color:#e3eefa;margin-bottom:.5rem;line-height:1.45}
.hero-tagline{color:#a9c3de;margin-bottom:2rem}
.hero-cta{display:flex;flex-wrap:wrap;gap:.75rem}
.hero-photo{background:url('img/hero.webp') center 60%/cover no-repeat;min-height:320px}
@media (max-width:991.98px){
  .hero{grid-template-columns:1fr;max-height:none;min-height:0}
  .hero-panel{padding:3rem 1.5rem 3.25rem}
  .hero-panel::after{top:auto;left:0;right:0;bottom:-1px;width:auto;height:10px}
  .hero-photo{min-height:52vw;max-height:420px;background-position:center 55%}
}

/* sections */
.section{padding:clamp(4rem,8vw,7rem) 0}
.section-sky{background:var(--sky)}
.section-deep{background:var(--navy);color:#e8f1fa}
.section-deep a{color:var(--sun)}
.kicker{font-weight:700;letter-spacing:.16em;text-transform:uppercase;font-size:.8rem;color:var(--blue);margin-bottom:.6rem}
.kicker-light{color:var(--sun)}
.display-h{font-size:clamp(2rem,4vw,3.1rem);line-height:1.12;margin-bottom:1.75rem;max-width:22ch}
.display-h[id="services-h"],.display-h[id="fv-h"]{max-width:26ch}
.section-deep .display-h{color:#fff}
.section-lead{max-width:62ch;color:var(--muted);margin-bottom:2rem}
.section-deep .section-lead{color:#c3d6ea}
.lead-p{font-size:1.18rem;color:#243445}
.sub-h{color:#fff;font-size:1.8rem;margin:4rem 0 1.5rem}

/* offer */
.offer{background:var(--sun);padding:2.25rem 0;color:var(--navy)}
.offer-card{display:grid;grid-template-columns:auto 1fr;gap:2rem 3rem;align-items:center}
.offer-price{display:flex;flex-direction:column;align-items:center;text-align:center;background:var(--navy);color:#fff;border-radius:1.25rem;padding:1.1rem 2.2rem}
.offer-amt{font-size:clamp(3.4rem,7vw,5rem);line-height:1;color:var(--sun)}
.offer-small{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700}
.offer-body h2{font-size:clamp(1.5rem,2.6vw,2.2rem);margin-bottom:.5rem}
.offer-list{list-style:none;padding:0;margin:0 0 .6rem;display:flex;flex-wrap:wrap;gap:.35rem 1.25rem;font-weight:600}
.offer-list li::before{content:"\2713";margin-right:.4rem;font-weight:800}
.offer-body p{margin:0}
.offer-body a{color:var(--navy);font-weight:700}
@media (max-width:767.98px){.offer-card{grid-template-columns:1fr;justify-items:center;text-align:center}.offer-list{justify-content:center}}

/* about facts: 2x2 */
.facts{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.fact{background:var(--sky);border-radius:1.1rem;padding:1.4rem 1.2rem;display:flex;flex-direction:column;gap:.15rem;border:1px solid var(--line)}
.fact i{font-size:1.8rem;color:var(--blue);line-height:1}
.fact strong{font-family:'DM Serif Display',serif;font-weight:400;font-size:1.55rem;color:var(--navy);line-height:1.15;margin-top:.4rem}
.fact span{font-size:.9rem;color:var(--muted);line-height:1.4}
.insurance{font-weight:700;color:var(--navy);background:var(--sky);display:inline-block;padding:.45rem 1rem;border-radius:999px}
.insurance i{color:var(--blue);margin-right:.35rem}

/* doctor */
.portrait{margin:0;position:relative}
.portrait img{width:100%;height:auto;border-radius:1.25rem;display:block;box-shadow:0 18px 40px -18px rgba(15,46,77,.45)}
.portrait figcaption{font-family:'DM Serif Display',serif;font-size:1.25rem;color:var(--navy);margin-top:.75rem}
.portrait-sm figcaption{display:none}
.pull{margin:2rem 0 0;padding:1.5rem 1.75rem;border-left:5px solid var(--sun);background:#fff;border-radius:0 1rem 1rem 0;font-size:1.05rem;color:#243445}
.pull cite{display:block;margin-top:.7rem;font-style:normal;font-weight:700;color:var(--navy)}
.staff{margin-top:4rem;padding-top:3rem;border-top:1px solid var(--line)}
.staff-h{font-size:2rem;margin-bottom:.5rem}
.staff-intro{color:var(--muted);max-width:60ch;margin-bottom:1.75rem}
.staff h4{font-size:1.5rem;margin-bottom:0}
.role{color:var(--blue);font-weight:700;margin-bottom:.75rem}

/* services: 2x2 */
.svc{height:100%;background:#fff;border:1px solid var(--line);border-radius:1.25rem;padding:2rem;transition:transform .2s,box-shadow .2s}
.svc:hover{transform:translateY(-3px);box-shadow:0 16px 34px -20px rgba(15,46,77,.5)}
.svc>i,.svc-img i{font-size:2rem;color:var(--blue)}
.svc h3{font-size:1.5rem;margin:.6rem 0 .5rem}
.svc-link{font-weight:700;text-decoration:none}
.svc-link:hover{text-decoration:underline}
.svc-img{display:flex;gap:1.25rem;align-items:center}
.svc-photo{flex:0 0 38%}
.svc-photo img{width:100%;height:auto;border-radius:.9rem;display:block}
@media (max-width:575.98px){.svc-img{flex-direction:column;align-items:flex-start}.svc-photo{flex-basis:auto;width:100%}}

/* first visit */
.section-deep p{color:#d5e3f1}
.xray{margin:0 0 1.75rem}
.xray img{width:100%;height:auto;border-radius:1rem;display:block}
.forms{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.18);border-radius:1.1rem;padding:1.5rem}
.forms h3{font-size:1.4rem;color:#fff;margin-bottom:1rem}
.forms ul{list-style:none;margin:0;padding:0}
.forms li+li{margin-top:.55rem}
.forms a{text-decoration:none;font-weight:600}
.forms a:hover{text-decoration:underline}

/* library accordion */
.lib-acc .accordion-item{border:1px solid var(--line);border-radius:1rem!important;overflow:hidden;margin-bottom:.8rem;background:#fff}
.lib-acc .accordion-button{font-family:'DM Serif Display',serif;font-size:1.25rem;color:var(--navy);padding:1.1rem 1.4rem;background:#fff;gap:.8rem;line-height:1.3}
.lib-acc .accordion-button i{color:var(--blue);font-size:1.3rem;flex:none}
.lib-acc .accordion-button:not(.collapsed){background:var(--sky);color:var(--navy);box-shadow:none}
.lib-acc .accordion-button:focus{box-shadow:0 0 0 .2rem rgba(31,111,178,.3)}
.lib-body{padding:1.75rem 1.4rem 2rem}
.lib-body h4{font-size:1.35rem;margin:1.6rem 0 .5rem;color:var(--navy)}
.lib-body h4:first-child{margin-top:0}
.lib-fig{margin:0 0 1.5rem}
.lib-fig img{border-radius:.9rem;display:block;max-width:min(100%,520px);height:auto;width:auto}
.q-list{columns:2 280px;column-gap:2rem}
.nerve-table{font-size:.92rem;margin:0}
.nerve-table th,.nerve-table td{vertical-align:top}
.nerve-table thead th{background:var(--navy);color:#fff;white-space:nowrap}
.nerve-table tbody th{white-space:nowrap;color:var(--navy)}
.art-wrap{display:grid;grid-template-columns:200px 1fr;gap:1.5rem;align-items:start}
.art-thumb img{width:100%;height:auto;border-radius:.8rem;display:block}
@media (max-width:575.98px){.art-wrap{grid-template-columns:1fr}.art-thumb{max-width:240px}}

/* video facade */
.vid{margin:0}
.yt{display:block;position:relative;width:100%;padding:0;border:0;background:#000;border-radius:.9rem;overflow:hidden;cursor:pointer;aspect-ratio:16/9}
.yt img{width:100%;height:100%;object-fit:cover;transform:scale(1.28);display:block;transition:transform .3s,opacity .3s;opacity:.92}
.yt:hover img,.yt:focus-visible img{transform:scale(1.34);opacity:1}
.yt .play{position:absolute;inset:0;margin:auto;width:58px;height:58px;border-radius:50%;background:var(--sun);color:var(--navy);display:grid;place-items:center;font-size:1.9rem;box-shadow:0 6px 18px rgba(0,0,0,.4)}
.vid iframe{width:100%;aspect-ratio:16/9;border:0;border-radius:.9rem;display:block}
.vid figcaption{font-size:.92rem;font-weight:600;margin-top:.6rem;line-height:1.35;color:var(--navy)}

/* testimonials */
.q-card{margin:0;height:100%;background:#fff;color:var(--ink);border-radius:1.25rem;overflow:hidden;display:flex;flex-direction:column}
.q-photo{aspect-ratio:4/3;overflow:hidden;background:var(--sky)}
.q-photo img{width:100%;height:100%;object-fit:cover;object-position:center 16%;display:block}
.q-card blockquote{margin:0;padding:1.25rem 1.4rem .5rem;flex:1}
.q-card blockquote p{margin:0;font-size:1rem;color:#243445}
.q-card figcaption{padding:.25rem 1.4rem 1.3rem;font-weight:700;color:var(--blue);font-size:.95rem}
.q-text{justify-content:center;background:var(--sky)}
.q-text blockquote{flex:none;padding-top:2rem}
.q-text blockquote p{font-family:'DM Serif Display',serif;font-size:1.35rem;line-height:1.35;color:var(--navy)}
.q-cta{background:var(--sun);color:var(--navy);padding:2rem 1.75rem;justify-content:center;align-items:flex-start;gap:.4rem}
.q-cta i{font-size:2rem}
.q-cta h3{font-size:1.9rem;margin:0}
.q-cta p{color:var(--navy)!important;margin:0 0 .75rem}
.q-cta .btn-sun{background:var(--navy);border-color:var(--navy);color:#fff}
.q-cta .btn-sun:hover{background:#fff;color:var(--navy);border-color:#fff}
.poster{display:block;background:#fff;border-radius:1rem;overflow:hidden;text-decoration:none;height:100%}
.poster img{width:100%;aspect-ratio:4/3;object-fit:contain;background:#fff;display:block;height:auto}
.poster span{display:block;padding:.55rem .9rem .8rem;color:var(--navy);font-weight:700;font-size:.88rem;line-height:1.3;border-top:1px solid var(--line)}
.poster:hover span{color:var(--blue)}

/* contact */
.info-block{margin-bottom:1.75rem}
.info-block h3{font-size:1.5rem;margin-bottom:.75rem}
.info-block h3 i{color:var(--blue);margin-right:.4rem}
.info-block address{margin-bottom:.6rem}
.info-block p{margin-bottom:.3rem}
.info-block p i{color:var(--blue);margin-right:.4rem}
.hours{width:100%;max-width:380px}
.hours th{font-weight:600;padding:.4rem 0;border-bottom:1px solid var(--line);width:45%}
.hours td{padding:.4rem 0;border-bottom:1px solid var(--line);color:var(--muted)}
.map-wrap{border-radius:1.25rem;overflow:hidden;height:100%;min-height:380px;box-shadow:0 18px 40px -22px rgba(15,46,77,.5)}
.map-wrap iframe{width:100%;height:100%;min-height:380px;border:0;display:block}
.req-form{background:var(--sky);border-radius:1.25rem;padding:1.75rem;height:100%;border:1px solid var(--line)}
.req-form h3{font-size:1.7rem;margin-bottom:.5rem}
.req-form legend{font-size:1rem;padding:0;float:none}
.form-control{border-radius:.7rem;border-color:#b9cde0}
.form-control:focus{border-color:var(--blue);box-shadow:0 0 0 .2rem rgba(31,111,178,.2)}

/* footer */
.site-footer{background:#0a2037;color:#b8cbe0;padding:4rem 0 2rem}
.site-footer a{color:#e8f1fa;text-decoration:none}
.site-footer a:hover{color:var(--sun)}
.foot-brand{color:#fff;font-size:1.6rem;margin-bottom:.5rem}
.foot-h{color:var(--sun);font-weight:700;letter-spacing:.14em;text-transform:uppercase;font-size:.78rem;margin-bottom:.8rem}
.foot-links{list-style:none;margin:0;padding:0}
.foot-links li{margin-bottom:.4rem}
.foot-bottom{margin-top:3rem;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.14);display:flex;flex-wrap:wrap;gap:.75rem 1.5rem;justify-content:space-between;align-items:center;font-size:.9rem}
.powered{background:rgba(255,194,71,.12);border:1px solid rgba(255,194,71,.5);padding:.4rem 1rem;border-radius:999px;font-weight:600;color:var(--sun)!important}
.powered:hover{background:var(--sun);color:var(--navy)!important}

@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.svc,.yt img{transition:none}}
