:root{--ink:#0e3b43;--ink2:#165560;--mist:#eef4f2;--paper:#fbfdfc;--amber:#f2a33a;--amber-d:#b8690a;--line:#cfdedb;--txt:#1d3135}
html{scroll-behavior:smooth;scroll-padding-top:110px}
body{font-family:'Hanken Grotesk',system-ui,sans-serif;color:var(--txt);background:var(--paper);font-size:1.05rem;line-height:1.65}
h1,h2,h3,h4{font-family:'Instrument Serif',Georgia,serif;font-weight:400;color:var(--ink);line-height:1.05}
.eyebrow{font-family:'DM Mono',monospace;font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--amber-d);margin-bottom:.8rem}
.bg-ink .eyebrow{color:var(--amber)}
.util{background:var(--ink);color:#d8e9e6;font-size:.88rem;padding:.4rem 0}
.util a{color:#fff;text-decoration:none;font-weight:600}.util a:hover{color:var(--amber)}
.util .sep{opacity:.4;margin:0 .6rem}
.navbar{background:rgba(251,253,252,.97);border-bottom:1px solid var(--line);padding:.5rem 0}
.navbar-brand{display:flex;align-items:center;gap:.7rem;font-family:'Instrument Serif',serif;font-size:1.55rem;color:var(--ink)!important;line-height:1}
.navbar-brand img{height:44px;width:auto}
.navbar .nav-link{color:var(--ink);font-weight:600;font-size:.95rem;padding:.5rem .8rem}
.navbar .nav-link:hover{color:var(--amber-d)}
.btn-amber{background:var(--amber);color:#2b1a00;font-weight:700;border:0;border-radius:999px;padding:.7rem 1.5rem}
.btn-amber:hover{background:#ffb751;color:#2b1a00}
.btn-ghost{border:2px solid var(--ink);color:var(--ink);font-weight:700;border-radius:999px;padding:.62rem 1.5rem}
.btn-ghost:hover{background:var(--ink);color:#fff}
/* hero */
.hero{background:var(--mist);position:relative;overflow:hidden;padding:4.5rem 0 4rem}
.snellen{position:absolute;right:-1rem;top:.5rem;font-family:'DM Mono',monospace;color:var(--ink);opacity:.06;text-align:right;line-height:1;pointer-events:none;user-select:none}
.snellen span{display:block}
.hero h1{font-size:clamp(2.8rem,6.4vw,5.2rem);letter-spacing:-.01em}
.hero h1 em{color:var(--ink2);font-style:italic}
.hero .lead{max-width:34rem;font-size:1.15rem}
.hero-mosaic{display:grid;grid-template-columns:1fr 1fr;gap:14px;position:relative}
.hero-mosaic figure{margin:0;border-radius:999px 999px 18px 18px;overflow:hidden;background:#fff;border:6px solid #fff;box-shadow:8px 8px 0 var(--amber)}
.hero-mosaic figure:nth-child(even){transform:translateY(28px);box-shadow:8px 8px 0 var(--ink2)}
.hero-mosaic img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;object-position:50% 20%}
.hero-mosaic figcaption{position:absolute}
.acuity{display:inline-flex;align-items:baseline;gap:.5rem;font-family:'DM Mono',monospace;font-size:.8rem;color:var(--ink2);margin-top:1.6rem}
.acuity b{font-size:1.4rem;color:var(--ink)}
/* ticker */
.ticker{background:var(--ink);color:#fff;overflow:hidden;white-space:nowrap;padding:.8rem 0;font-family:'DM Mono',monospace;font-size:.85rem;letter-spacing:.12em;text-transform:uppercase}
.ticker div{display:inline-block;animation:tick 40s linear infinite}
.ticker span{margin:0 1.6rem}.ticker i{color:var(--amber);font-style:normal}
@keyframes tick{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.ticker div{animation:none}}
section{padding:5rem 0}
h2{font-size:clamp(2.2rem,4.5vw,3.4rem);margin-bottom:1rem}
/* services index */
.svc-list{list-style:none;padding:0;margin:0;border-top:1px solid var(--line)}
.svc-list li{display:grid;grid-template-columns:3.2rem 1fr;gap:.2rem 1rem;padding:1.1rem 0;border-bottom:1px solid var(--line)}
.svc-list .ratio{font-family:'DM Mono',monospace;color:var(--amber-d);font-size:.8rem;padding-top:.5rem}
.svc-list h3{font-size:1.7rem;margin:0}
.svc-list p{margin:.2rem 0 0;color:#47605f;font-size:.98rem}
.svc-photo{border-radius:18px;overflow:hidden;box-shadow:10px 10px 0 var(--amber)}
.svc-photo img{width:100%;display:block}
.sticky-col{position:sticky;top:130px}
/* IOL band */
.bg-ink{background:var(--ink);color:#dcebe8}
.bg-ink h2,.bg-ink h3{color:#fff}
.iol img{border-radius:18px;width:100%;box-shadow:-10px 10px 0 var(--amber)}
/* doctors */
.doc{text-align:center}
.doc img{width:100%;max-width:200px;aspect-ratio:1/1.15;object-fit:cover;object-position:50% 18%;border-radius:999px 999px 14px 14px;border:5px solid #fff;box-shadow:0 0 0 1px var(--line),6px 6px 0 var(--amber);margin-bottom:1.1rem}
.doc h3{font-size:1.5rem;margin:0}
.doc p{margin:.1rem 0 0;font-family:'DM Mono',monospace;font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;color:var(--ink2)}
.doc-grid{--bs-gutter-y:2.4rem}
.history{border-left:3px solid var(--amber);padding-left:1.3rem}
.tl{display:flex;gap:1.5rem;flex-wrap:wrap;margin-top:1.4rem}
.tl div{font-size:.92rem;max-width:11rem}.tl b{display:block;font-family:'Instrument Serif',serif;font-size:2.2rem;color:var(--ink);font-weight:400;line-height:1}
/* optical */
.optical{background:var(--mist)}
.price{font-family:'Instrument Serif',serif;font-size:4.5rem;color:var(--ink);line-height:1}
.price small{font-size:1.2rem;font-family:'Hanken Grotesk',sans-serif;color:var(--ink2);font-weight:600;margin-right:.3rem}
.ins-chip{display:inline-block;border:1.5px solid var(--ink2);border-radius:999px;padding:.2rem .9rem;margin:.25rem .2rem 0 0;font-weight:600;font-size:.92rem;color:var(--ink)}
.accordion-item{background:transparent;border:0;border-bottom:1px solid var(--line)}
.accordion-button{background:transparent!important;font-family:'Instrument Serif',serif;font-size:1.4rem;color:var(--ink);box-shadow:none!important;padding-left:0}
.accordion-body{padding-left:0}
/* reviews */
.quote-band{background:var(--amber);padding:4.5rem 0}
.quote-band blockquote{font-family:'Instrument Serif',serif;font-size:clamp(1.7rem,3.6vw,2.8rem);line-height:1.15;color:#2b1a00;margin:0}
.quote-band cite{display:block;margin-top:1rem;font-family:'DM Mono',monospace;font-style:normal;font-size:.85rem;letter-spacing:.1em;text-transform:uppercase;color:#4a3000}
.rev{background:#fff;border:1px solid var(--line);border-radius:16px;padding:1.5rem;height:100%}
.rev p{margin:0 0 .8rem}.rev b{font-family:'DM Mono',monospace;font-size:.8rem;letter-spacing:.08em;color:var(--ink2)}
/* locations */
.loc{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;height:100%}
.loc .body{padding:1.6rem}
.loc h3{font-size:2rem}
.loc iframe{width:100%;height:260px;border:0;display:block}
.loc .tel{font-size:1.5rem;font-weight:700;color:var(--ink);text-decoration:none}
.loc .tel:hover{color:var(--amber-d)}
.loc-photo{width:100%;height:210px;object-fit:cover;display:block}
footer{background:var(--ink);color:#b9d2cf;padding:3rem 0 1.5rem;font-size:.95rem}
footer a{color:#fff;text-decoration:none}footer a:hover{color:var(--amber)}
footer .brand{font-family:'Instrument Serif',serif;font-size:1.8rem;color:#fff}
.badge-logo{background:#fff;border-radius:10px;padding:.5rem .8rem;display:inline-block}
.badge-logo img{height:40px;width:auto;display:block}
.powered{border-top:1px solid rgba(255,255,255,.15);margin-top:2rem;padding-top:1.2rem;font-size:.85rem}
@media(max-width:991px){section{padding:3.5rem 0}.hero{padding:2.5rem 0 3rem}.hero-mosaic{margin-top:2rem;max-width:420px}.sticky-col{position:static}.snellen{font-size:.8em}.navbar-brand{font-size:1.25rem}.navbar-brand img{height:36px}}
.navbar .nav-link,.navbar .btn{white-space:nowrap}
.navbar .btn-amber{padding:.5rem 1.1rem;font-size:.92rem}
.navbar-brand img{display:none}
@media(min-width:1200px){.navbar-brand img{display:block}}
@media(max-width:1199px) and (min-width:992px){.navbar .nav-link{padding:.5rem .45rem;font-size:.88rem}}
