:root{--ink:#1b1a3b;--ink2:#26254d;--cream:#f4efe6;--cream2:#ebe4d6;--sage:#a9c1a4;--sage-d:#52704f;--hair:rgba(169,193,164,.28);--hair-d:rgba(27,26,59,.16);--display:'Bodoni Moda',Georgia,serif;--sans:'Jost',system-ui,sans-serif}
html{scroll-behavior:smooth;scroll-padding-top:120px}
img{max-width:100%;height:auto}
body{font-family:var(--sans);background:var(--cream);color:var(--ink);font-size:1.04rem;line-height:1.75;overflow-x:hidden}
h1,h2,h3,h4{font-family:var(--display);font-weight:400;line-height:1.12}
h2{font-size:clamp(2rem,4.2vw,3.1rem)}
a{color:inherit}
.caps,.eyebrow,.btn,.navbar .nav-link,dt{font-family:var(--sans);font-size:.7rem;font-weight:500;letter-spacing:.26em;text-transform:uppercase}
.eyebrow{color:var(--sage-d);display:block;margin-bottom:1.1rem}
.hero .eyebrow,.dark .eyebrow{color:var(--sage)}
.lede{font-family:var(--display);font-style:italic;font-size:1.3rem;opacity:.85;max-width:720px;line-height:1.5}
section{padding:96px 0}
.dark{background:var(--ink);color:var(--cream)}
.alt{background:var(--cream2)}
.btn{border-radius:0;padding:15px 36px;transition:.3s;border:1px solid transparent}
.btn-sage{background:var(--sage);color:var(--ink);border-color:var(--sage)}
.btn-sage:hover{background:transparent;color:var(--sage);border-color:var(--sage)}
.btn-ghost{border-color:rgba(244,239,230,.35);color:var(--cream)}
.btn-ghost:hover{border-color:var(--sage);color:var(--sage)}
.btn-ghost-d{border-color:var(--hair-d);color:var(--ink)}
.btn-ghost-d:hover{border-color:var(--ink);background:var(--ink);color:var(--cream)}
/* nav (c): centered name stacked over links */
.navbar.hb-nav{background:rgba(27,26,59,.94);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);padding:.9rem 0;border-bottom:1px solid var(--hair)}
.hb-nav .container{flex-wrap:wrap}
.hb-nav .navbar-brand{margin:0 auto;display:block;text-align:center;font-family:var(--display);font-size:1.5rem;letter-spacing:.2em;text-transform:uppercase;color:var(--cream);white-space:normal;line-height:1.1}
.hb-nav .navbar-brand small{display:block;font-family:var(--sans);font-size:.56rem;letter-spacing:.34em;color:var(--sage);margin-top:.3rem}
.hb-nav .navbar-toggler{border:1px solid var(--hair);border-radius:0;padding:.35rem .6rem;position:absolute;right:12px;top:14px}
.hb-nav .navbar-toggler-icon{filter:invert(1)}
.navbar.navbar-expand-lg .navbar-collapse{justify-content:center;width:100%}
.hb-nav .nav-link{color:rgba(244,239,230,.82);padding:.8rem 1.15rem;transition:.3s}
.hb-nav .nav-link:hover{color:var(--sage)}
@media(min-width:992px){.hb-nav .navbar-brand{flex-basis:100%;margin-bottom:.2rem}.navbar.navbar-expand-lg .navbar-collapse{margin-top:.1rem}}
@media(max-width:991px){.hb-nav .navbar-brand{text-align:left;margin:0;font-size:1.15rem;max-width:calc(100% - 70px)}.hb-nav .navbar-collapse{padding:.8rem 0 .4rem;border-top:1px solid var(--hair);margin-top:.7rem}}
/* hero */
.hero{background:var(--ink);color:var(--cream);padding:72px 0 0;position:relative;overflow:hidden}
.hero h1{font-size:clamp(2.6rem,5.5vw,4.6rem);letter-spacing:-.005em}
.hero h1 em{font-style:italic;color:var(--sage)}
.hero .lede{margin:1.6rem 0 2.2rem}
.arches{display:flex;gap:1.2rem;justify-content:center;align-items:flex-end}
.arch{margin:0;text-align:center;width:min(46%,250px)}
.arch img{width:100%;aspect-ratio:3/4;object-fit:cover;object-position:50% 18%;border-radius:999px 999px 0 0;border:1px solid var(--sage);padding:8px;background:transparent;display:block}
.arch:nth-child(2){margin-bottom:2.2rem}
.arch figcaption{font-family:var(--display);font-size:1.05rem;margin-top:.8rem;letter-spacing:.03em}
.arch figcaption small{display:block;font-family:var(--sans);font-size:.6rem;letter-spacing:.24em;text-transform:uppercase;color:var(--sage);margin-top:.1rem}
/* signature: the two-office week */
.week{margin-top:64px;border-top:1px solid var(--hair);padding:28px 0 36px}
.week-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:0;border:1px solid var(--hair)}
.day{padding:1rem .5rem;text-align:center;border-left:1px solid var(--hair);transition:.3s}
.day:first-child{border-left:0}
.day b{display:block;font-family:var(--display);font-weight:400;font-size:1.5rem;line-height:1.1}
.day span{display:block;font-size:.6rem;letter-spacing:.22em;text-transform:uppercase;margin-top:.35rem;color:rgba(244,239,230,.75)}
.day.sh{background:rgba(169,193,164,.0)}
.day.wb{background:rgba(169,193,164,.16)}
.day.today{outline:1px solid var(--sage);outline-offset:-1px}
.day.today span{color:var(--sage)}
.week-key{font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;color:rgba(244,239,230,.7);display:flex;flex-wrap:wrap;gap:.4rem 1.6rem;margin-bottom:1rem}
.week-key i{display:inline-block;width:.8rem;height:.8rem;border:1px solid var(--sage);margin-right:.5rem;vertical-align:-1px}
.week-key i.f{background:rgba(169,193,164,.3)}
.week.light{border-top-color:var(--hair-d)}
.week.light .week-grid,.week.light .day{border-color:var(--hair-d)}
.week.light .day span,.week.light .week-key{color:rgba(27,26,59,.7)}
.week.light .week-key i{border-color:var(--sage-d)}
.week.light .day.wb{background:rgba(82,112,79,.14)}
.week.light .day.today{outline-color:var(--sage-d)}
.week.light .day.today span{color:var(--sage-d)}
/* intro */
.frame{position:relative;display:block}
.frame::before{content:"";position:absolute;inset:14px -14px -14px 14px;border:1px solid var(--sage-d);z-index:0}
.frame img{position:relative;z-index:1;width:100%;display:block}
/* index list */
.index{list-style:none;padding:0;margin:0}
.index li{border-top:1px solid var(--hair-d);padding:1.1rem 0;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:1rem 2rem;align-items:baseline}
.index li:last-child{border-bottom:1px solid var(--hair-d)}
.index h3{font-size:1.65rem;margin:0}
.index p{margin:0;opacity:.85}
@media(max-width:767px){.index li{grid-template-columns:1fr}}
.cond{columns:2;column-gap:3rem;list-style:none;padding:0;margin:0}
.cond li{padding:.55rem 0;border-top:1px solid var(--hair);font-family:var(--display);font-size:1.25rem;break-inside:avoid}
.cond-h{font-size:.7rem;letter-spacing:.26em;text-transform:uppercase;font-family:var(--sans);color:var(--sage);margin:0 0 1rem}
@media(max-width:575px){.cond{columns:1}}
/* ortho-k */
.ortho img.main{width:100%;display:block;aspect-ratio:3/2;object-fit:cover;object-position:50% 35%;border:1px solid var(--sage);padding:8px}
.ortho .strip{margin-top:1rem;width:100%;border:1px solid var(--hair)}
.ortho p{opacity:.88}
.pull{border-left:1px solid var(--sage);padding-left:1.4rem;font-family:var(--display);font-style:italic;font-size:1.3rem;line-height:1.5;margin:1.8rem 0}
/* doctors */
.doc img.p{width:100%;max-width:225px;aspect-ratio:3/4;object-fit:cover;object-position:50% 20%;border-radius:999px 999px 0 0;border:1px solid var(--sage-d);padding:8px;display:block}
.doc h3{font-size:2rem}
.doc .role{display:block;margin:.2rem 0 1.2rem;font-size:.66rem;letter-spacing:.24em;text-transform:uppercase;color:var(--sage-d)}
.doc blockquote{font-family:var(--display);font-style:italic;font-size:1.2rem;line-height:1.5;margin:1rem 0;opacity:.9}
.doc ul{padding-left:1.1rem}
.doc li{margin-bottom:.3rem}
.doc-card{border-top:1px solid var(--hair-d);padding-top:2.4rem}
.cred{font-size:.95rem}
.cred dt{color:var(--sage-d);margin-top:1rem}
.cred dd{margin:.2rem 0 0}
/* gallery */
.gal{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.gal img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;border:1px solid var(--hair-d)}
@media(max-width:767px){.gal{grid-template-columns:repeat(2,1fr);gap:10px}.gal figure:last-child{grid-column:1/-1}.gal figure:last-child img{aspect-ratio:16/9}}
.gal figure{margin:0}
/* insurance */
.carriers{display:flex;flex-wrap:wrap;gap:.6rem .6rem;list-style:none;padding:0;margin:0}
.carriers li{border:1px solid var(--hair);padding:.45rem 1.1rem;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase}
/* promos */
.promo{border:1px solid var(--hair-d);padding:1.6rem 1.8rem;height:100%}
.promo h3{font-size:1.4rem}
.promo small{font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;color:var(--sage-d);display:block;margin-top:.6rem}
/* offices */
.office{border:1px solid var(--hair);padding:2rem;height:100%}
.office .shot{width:100%;aspect-ratio:16/10;object-fit:cover;display:block;margin-bottom:1.6rem}
.office h3{font-size:1.9rem}
.office dl{margin:1.2rem 0 0}
.office dt{color:var(--sage);margin-top:.9rem}
.office dd{margin:.1rem 0 0}
.office a{text-decoration:none;border-bottom:1px solid var(--hair)}
.office a:hover{border-color:var(--sage);color:var(--sage)}
.map{width:100%;height:240px;border:0;margin-top:1.4rem;filter:grayscale(.35)}
/* footer */
footer{background:#12112b;color:rgba(244,239,230,.75);padding:56px 0 36px;font-size:.92rem}
footer .chip{background:var(--cream);padding:8px 10px;display:inline-block}
footer .chip img{display:block;width:190px}
footer a{text-decoration:none}
footer a:hover{color:var(--sage)}
footer .caps{font-size:.62rem}
.powered{border-top:1px solid var(--hair);margin-top:2rem;padding-top:1.4rem;font-size:.66rem;letter-spacing:.22em;text-transform:uppercase}
.powered a{color:var(--sage)}
@media(max-width:767px){section{padding:64px 0}.hero{padding-top:48px}.week-grid .day b{font-size:1.15rem}.day span{letter-spacing:.1em;font-size:.52rem}.arch:nth-child(2){margin-bottom:1.4rem}.office{padding:1.4rem}}
@media(max-width:991px){.frame{margin:0 14px 14px 0}}
