:root{--ink:#241a29;--ink2:#1a121e;--cream:#f4efe6;--sage:#a9bca4;--sage-d:#586b55;--hair:rgba(169,188,164,.28);--haird:rgba(36,26,41,.16);--display:'Bodoni Moda',Georgia,serif;--body:'Karla',system-ui,sans-serif}
img{max-width:100%;height:auto}
html{scroll-behavior:smooth;scroll-padding-top:120px}
body{font-family:var(--body);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}
a{color:var(--ink);transition:opacity .3s,color .3s,border-color .3s,background .3s}
.eyebrow,.btn,.nav-link,.lbl,.insurers li,footer small{font-size:.68rem;letter-spacing:.28em;text-transform:uppercase;font-weight:700}
.eyebrow{display:block;color:var(--sage-d);margin-bottom:1.1rem}
.dark .eyebrow,.hero .eyebrow{color:var(--sage)}
.navbar{background:rgba(26,18,30,.95);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--hair);padding:.9rem 0}
.navbar .container{flex-direction:column}
.navbar-brand{font-family:var(--display);font-size:1.45rem;letter-spacing:.14em;text-transform:uppercase;color:var(--cream);margin:0;text-align:center;white-space:normal;line-height:1.15}
.navbar-brand:hover{color:var(--cream)}
.navbar-brand small{display:block;font-family:var(--body);font-size:.58rem;letter-spacing:.34em;color:var(--sage);margin-top:.3rem;font-weight:700}
.navbar-toggler{border-color:rgba(244,239,230,.4);margin-top:.7rem}
.navbar-toggler-icon{filter:invert(1)}
.navbar.navbar-expand-lg .navbar-collapse{justify-content:center}
.nav-link{color:rgba(244,239,230,.82)!important;padding:.6rem 1.1rem!important}
.nav-link:hover{color:var(--sage)!important}
.btn{border-radius:0;padding:15px 38px;transition:.3s}
.btn-sage{background:var(--sage);color:var(--ink2);border:1px solid var(--sage)}
.btn-sage:hover{background:transparent;color:var(--sage);border-color:var(--sage)}
.btn-ghost{background:transparent;color:var(--cream);border:1px solid rgba(244,239,230,.38)}
.btn-ghost:hover{border-color:var(--sage);color:var(--sage)}
.btn-ink{background:var(--ink);color:var(--cream);border:1px solid var(--ink)}
.btn-ink:hover{background:transparent;color:var(--ink)}
.hero{background:linear-gradient(180deg,#2c2031,var(--ink2));color:var(--cream);padding:110px 0 100px;position:relative;overflow:hidden}
.hero h1{font-size:clamp(2.6rem,5.6vw,4.6rem);max-width:760px;margin-bottom:1.4rem}
.hero .sub{font-family:var(--display);font-style:italic;font-size:1.3rem;opacity:.82;max-width:560px;margin-bottom:2.2rem}
.lens{width:100%;max-width:420px;display:block;margin:0 auto;color:var(--sage)}
.lens-bg{position:absolute;right:-140px;bottom:-140px;width:420px;opacity:.1;color:var(--sage);pointer-events:none}
.sec{padding:96px 0}
.sec h2{font-size:clamp(2.2rem,4.4vw,3.4rem);margin-bottom:1.3rem}
.dark{background:var(--ink);color:var(--cream)}
.lede{font-family:var(--display);font-style:italic;font-size:1.3rem;opacity:.85}
.measure{max-width:820px}
.divider{display:flex;align-items:center;gap:1.2rem;color:var(--sage-d);padding:0 0 0;margin:0 auto;max-width:900px}
.divider:before,.divider:after{content:"";flex:1;border-top:1px solid var(--haird)}
.divider svg{width:30px;height:30px}
.index{list-style:none;padding:0;margin:0;column-count:2;column-gap:64px}
.index li{break-inside:avoid;border-bottom:1px solid var(--hair);padding:.85rem 0;font-family:var(--display);font-size:1.4rem;display:flex;justify-content:space-between;align-items:baseline}
.index li span{font-family:var(--body);font-size:.62rem;letter-spacing:.26em;text-transform:uppercase;color:var(--sage);font-weight:700}
.quote{border-top:1px solid var(--haird);padding:1.5rem 0 0;height:100%}
.quote p{font-family:var(--display);font-style:italic;font-size:1.25rem;line-height:1.45}
.quote .lbl{color:var(--sage-d)}
.band{background:var(--ink2);color:var(--cream);padding:84px 0;text-align:center}
.band blockquote{font-family:var(--display);font-style:italic;font-size:clamp(1.7rem,3.6vw,2.7rem);max-width:900px;margin:0 auto 1.2rem;line-height:1.3}
.office{border-top:1px solid var(--hair);padding-top:1.4rem;height:100%}
.office h3{font-size:1.9rem}
.office a.tel{font-family:var(--display);font-size:1.6rem;text-decoration:none;color:var(--cream)}
.office a.tel:hover{color:var(--sage)}
.office address{margin:.6rem 0 1rem;opacity:.85}
.office .map-link{color:var(--sage);font-size:.68rem;letter-spacing:.26em;text-transform:uppercase;font-weight:700;text-decoration:none;border-bottom:1px solid var(--hair)}
.insurers{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.6rem 0}
.insurers li{width:33.33%;padding:.7rem 1rem .7rem 0;border-bottom:1px solid var(--haird);color:var(--ink)}
.mapwrap iframe{width:100%;height:340px;border:0;filter:grayscale(.5) sepia(.1);border:1px solid var(--hair)}
.areas{columns:3;column-gap:2rem;list-style:none;padding:0;margin:0;opacity:.85}
.areas li{padding:.15rem 0}
footer{background:var(--ink2);color:rgba(244,239,230,.75);padding:56px 0 40px;border-top:1px solid var(--hair)}
footer a{color:var(--sage);text-decoration:none}
footer .wf{display:block;margin-top:.8rem;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase}
@media(max-width:767px){.sec{padding:64px 0}.hero{padding:70px 0 64px}.index{column-count:1}.insurers li{width:50%}.areas{columns:2}.navbar-brand{font-size:1.15rem}.lens{max-width:240px;margin-top:2.5rem}.btn{padding:14px 26px}}
