:root{--cob:#1d3a8f;--cob-dk:#142a6b;--butter:#f6e4a0;--butter-dk:#e9cf6b;--paper:#fffdf7;--sky:#e8edf9;--ink:#141a33;--mute:#4a5273}
html{scroll-behavior:smooth;scroll-padding-top:80px}
body{font-family:'DM Sans',system-ui,sans-serif;color:var(--ink);background:var(--paper);font-size:1.075rem;line-height:1.65}
h1,h2,h3,h4,.serif{font-family:'Fraunces',Georgia,serif;font-weight:600;line-height:1.08;letter-spacing:-.01em}
.eyebrow{font-family:'DM Mono',monospace;font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--cob);display:block;margin-bottom:.8rem}
.eyebrow.lt{color:var(--butter)}
a{color:var(--cob)}
.topo{position:absolute;pointer-events:none;color:var(--cob);opacity:.16}
.topo.lt{color:var(--butter);opacity:.2}
/* nav */
.bar{position:sticky;top:0;z-index:1030;background:var(--paper);border-bottom:2px solid var(--cob)}
.bar .container{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-top:.7rem;padding-bottom:.7rem}
.brand{text-decoration:none;color:var(--cob);font-family:'Fraunces',serif;font-weight:700;font-size:1.5rem;line-height:1;display:block}
.brand small{display:block;font-family:'DM Mono',monospace;font-weight:500;font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:var(--mute);margin-top:.3rem}
.bar-r{display:flex;align-items:center;gap:.8rem}
.bar-call{color:var(--cob);font-weight:700;text-decoration:none;white-space:nowrap}
.menu-btn{background:var(--cob);color:#fff;border:0;border-radius:50px;padding:.55rem 1.1rem;font-family:'DM Mono',monospace;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase}
.menu-btn:hover{background:var(--cob-dk)}
.offcanvas.ov{background:var(--cob);color:#fff;--bs-offcanvas-width:100vw;width:100vw!important;height:100vh!important;top:0;border:0}
.ov .btn-close{filter:invert(1);opacity:1;font-size:1.3rem}
.ov-list{list-style:none;padding:0;margin:0}
.ov-list a{display:block;font-family:'Fraunces',serif;font-size:clamp(2rem,5vw,3.4rem);font-weight:600;color:#fff;text-decoration:none;line-height:1.25}
.ov-list a:hover{color:var(--butter)}
.ov .ov-meta{font-family:'DM Mono',monospace;font-size:.85rem;letter-spacing:.06em;color:#cdd7f5}
.ov .ov-meta a{color:var(--butter)}
/* hero */
.hero{position:relative;overflow:hidden;background:var(--sky);padding:4.5rem 0 5rem}
.hero h1{font-size:clamp(2.8rem,7vw,5.6rem);color:var(--cob-dk);font-weight:700}
.hero h1 em{font-style:italic;font-weight:500;color:var(--cob)}
.hero p.lead{font-size:1.2rem;color:var(--mute);max-width:34rem}
.btn-cob{background:var(--cob);color:#fff;border-radius:50px;padding:.85rem 1.8rem;font-weight:700;border:2px solid var(--cob)}
.btn-cob:hover{background:var(--cob-dk);color:#fff;border-color:var(--cob-dk)}
.btn-line{background:transparent;color:var(--cob);border-radius:50px;padding:.85rem 1.8rem;font-weight:700;border:2px solid var(--cob)}
.btn-line:hover{background:var(--cob);color:#fff}
.btn-but{background:var(--butter);color:var(--cob-dk);border-radius:50px;padding:.85rem 1.8rem;font-weight:700;border:2px solid var(--butter)}
.btn-but:hover{background:#fff;color:var(--cob-dk);border-color:#fff}
.arch{border-radius:999px 999px 18px 18px;overflow:hidden;box-shadow:14px 14px 0 var(--butter);border:3px solid var(--cob)}
.arch img{display:block;width:100%;height:auto}
.hero .arch{max-width:420px;margin-left:auto}
.stamp{position:absolute;right:-10px;bottom:30px;background:var(--butter);color:var(--cob-dk);border:2px solid var(--cob);border-radius:50%;width:118px;height:118px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;font-family:'DM Mono',monospace;font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;line-height:1.2;transform:rotate(-9deg)}
.stamp b{font-family:'Fraunces',serif;font-size:1.9rem;letter-spacing:0;line-height:1}
/* stats */
.stats{background:var(--cob);color:#fff;padding:1.6rem 0}
.stats .n{font-family:'Fraunces',serif;font-size:2rem;font-weight:700;color:var(--butter);line-height:1}
.stats .l{font-size:.88rem;color:#cdd7f5}
/* sections */
section{padding:5rem 0;position:relative}
h2.sec{font-size:clamp(2rem,4.4vw,3.3rem);color:var(--cob-dk);margin-bottom:1.2rem}
/* practice index */
.idx{list-style:none;padding:0;margin:0;border-top:2px solid var(--cob)}
.idx li{display:flex;gap:1.2rem;align-items:baseline;border-bottom:1px solid #c9d1ea;padding:1rem .2rem;transition:background .2s}
.idx li:hover{background:var(--butter)}
.idx h3{font-size:1.5rem;margin:0;flex:0 0 46%;color:var(--cob-dk)}
.idx p{margin:0;color:var(--mute);font-size:1rem}
.photo-row{display:grid;grid-template-columns:repeat(5,1fr);gap:1rem;margin-top:3rem}
.photo-row .arch{box-shadow:6px 6px 0 var(--butter);border-width:2px}
.photo-row figure{margin:0}
.photo-row img{aspect-ratio:284/488;object-fit:cover}
.photo-row figcaption{font-family:'DM Mono',monospace;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);text-align:center;margin-top:.9rem}
/* about */
.about{background:var(--sky);overflow:hidden}
.about .arch{max-width:400px}
.cred{list-style:none;padding:0;margin:1.2rem 0 0}
.cred li{padding:.45rem 0 .45rem 1.6rem;position:relative;border-bottom:1px dashed #b5c0e3}
.cred li:before{content:"";position:absolute;left:0;top:1.05rem;width:.7rem;height:.7rem;border:2px solid var(--cob);border-radius:50%}
/* quote band */
.band{position:relative;background:var(--butter);padding:5rem 0;overflow:hidden}
.band blockquote{font-family:'Fraunces',serif;font-style:italic;font-size:clamp(1.7rem,3.6vw,2.8rem);line-height:1.2;color:var(--cob-dk);margin:0;position:relative;z-index:1}
.band cite{display:block;margin-top:1.2rem;font-family:'DM Mono',monospace;font-style:normal;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--cob)}
/* reviews */
.rev{display:flex;gap:1.2rem;overflow-x:auto;scroll-snap-type:x mandatory;padding:.5rem .2rem 1.5rem}
.rev article{flex:0 0 min(340px,82%);scroll-snap-align:start;background:#fff;border:2px solid var(--cob);border-radius:18px;padding:1.5rem;box-shadow:6px 6px 0 var(--butter)}
.rev .st{color:var(--butter-dk);letter-spacing:.15em;-webkit-text-stroke:.5px var(--cob)}
.rev p{margin:.5rem 0 1rem;font-size:1rem}
.rev .who{font-family:'DM Mono',monospace;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--mute)}
/* offices / route */
.route{position:relative}
.route:before{content:"";position:absolute;left:1.05rem;top:.6rem;bottom:.6rem;border-left:3px dotted var(--cob)}
.stop{position:relative;padding:0 0 1.6rem 3.2rem}
.stop:before{content:"";position:absolute;left:.4rem;top:.35rem;width:1.4rem;height:1.4rem;border-radius:50%;background:var(--butter);border:3px solid var(--cob)}
.stop.main:before{background:var(--cob)}
.stop h3{font-size:1.4rem;margin:0}
.stop h3 span{font-family:'DM Mono',monospace;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:#fff;background:var(--cob);border-radius:50px;padding:.15rem .6rem;vertical-align:middle;margin-left:.4rem}
.stop address{margin:.2rem 0 0;color:var(--mute)}
.map{border:3px solid var(--cob);border-radius:18px;overflow:hidden;box-shadow:10px 10px 0 var(--butter);height:100%;min-height:380px}
.map iframe{width:100%;height:100%;min-height:380px;border:0;display:block}
.areas{display:flex;flex-wrap:wrap;gap:.5rem}
.areas span{border:1.5px solid var(--cob);color:var(--cob-dk);border-radius:50px;padding:.25rem .9rem;font-size:.95rem;background:#fff}
/* contact */
.contact{background:var(--cob);color:#fff;overflow:hidden}
.contact h2{color:#fff}
.contact .big{font-family:'Fraunces',serif;font-weight:700;font-size:clamp(2.2rem,6vw,4.4rem);color:var(--butter);text-decoration:none;line-height:1}
footer{background:var(--cob-dk);color:#cdd7f5;padding:2rem 0;font-size:.92rem}
footer a{color:var(--butter)}
footer .note{color:#aab6e0;font-size:.82rem;margin-top:.6rem}
.pw{font-family:'DM Mono',monospace;font-size:.8rem;letter-spacing:.06em}
@media(max-width:991px){.hero .arch{margin:2rem auto 0;max-width:320px}.idx h3{flex:0 0 100%}.idx li{flex-wrap:wrap;gap:.2rem}.bar-call{display:none}}
@media(max-width:767px){section{padding:3.5rem 0}.photo-row{grid-template-columns:repeat(2,1fr)}.photo-row figure:last-child{grid-column:1/-1;max-width:50%;justify-self:center}.hero{padding:3rem 0 3.5rem}.stamp{right:0;width:96px;height:96px}.stamp b{font-size:1.5rem}.brand{font-size:1.2rem}}
body{overflow-x:clip}
@media(max-width:767px){.stats .n{font-size:1.35rem}}
