:root{--navy:#0f2f55;--ink:#101c2b;--fog:#eef2f5;--paper:#fbfcfd;--red:#c8372d;--red-d:#a52a21;--mute:#5a6878;--line:#d5dde5}
html{scroll-behavior:smooth;scroll-padding-top:120px}
body{font-family:'Public Sans',system-ui,sans-serif;color:var(--ink);background:var(--paper);font-size:1.05rem;line-height:1.65}
h1,h2,h3,h4,.brand-name{font-family:'Fraunces',Georgia,serif;font-weight:600;line-height:1.08;color:var(--navy);letter-spacing:-.01em}
.eyebrow{font-family:'DM Mono',monospace;font-size:.76rem;letter-spacing:.16em;text-transform:uppercase;color:var(--red);font-weight:500}
a{color:var(--navy)}
.btn-red{background:var(--red);border:2px solid var(--red);color:#fff;font-weight:700;border-radius:2px;padding:.8rem 1.5rem;letter-spacing:.01em}
.btn-red:hover{background:var(--red-d);border-color:var(--red-d);color:#fff}
.btn-line{border:2px solid #fff;color:#fff;font-weight:700;border-radius:2px;padding:.8rem 1.5rem}
.btn-line:hover{background:#fff;color:var(--navy)}
.btn-navy{background:var(--navy);border:2px solid var(--navy);color:#fff;font-weight:700;border-radius:2px;padding:.8rem 1.5rem}
.btn-navy:hover{background:var(--ink);color:#fff}
/* utility bar */
.util{background:var(--navy);color:#dbe6f3;font-size:.86rem;padding:.4rem 0}
.util a{color:#fff;text-decoration:none;font-weight:700}
.util .pt{opacity:.85}
.navbar{background:#fff;border-bottom:1px solid var(--line);padding:.55rem 0}
.navbar-brand img{height:44px;width:auto}
.nav-link{font-weight:600;font-size:.93rem;color:var(--ink)!important;padding:.5rem .8rem!important}
.nav-link:hover{color:var(--red)!important}
.navbar-toggler{border-color:var(--navy)}
/* hero */
.hero{position:relative;background:var(--navy);color:#fff;overflow:hidden}
.hero-photo{position:absolute;inset:0;background:url('img/hero.webp') 78% center/cover no-repeat}
.hero-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,26,48,.78) 0%,rgba(8,26,48,.5) 42%,rgba(8,26,48,0) 66%)}
.beam{position:absolute;left:19%;top:36%;width:170%;height:18px;transform-origin:0 50%;background:linear-gradient(90deg,rgba(255,244,200,.55),rgba(255,244,200,0) 55%);filter:blur(8px);animation:sweep 9s ease-in-out infinite;pointer-events:none;mix-blend-mode:screen}
@keyframes sweep{0%,100%{transform:rotate(-7deg);opacity:.15}50%{transform:rotate(7deg);opacity:.5}}
.hero .container{position:relative;z-index:2;min-height:min(78vh,640px);display:flex;align-items:center;padding-top:3rem;padding-bottom:3rem}
.hero-copy{max-width:560px}
.hero h1{color:#fff;font-size:clamp(2.6rem,6.4vw,4.9rem);text-shadow:0 0 4px rgba(0,0,0,.9),0 2px 20px rgba(0,0,0,.7)}
.hero h1 em{font-style:italic;font-weight:400;color:#ffd9d4}
.hero .eyebrow{color:#ffd9d4;text-shadow:0 0 3px #000,0 1px 12px rgba(0,0,0,.9)}
.hero p.lead{text-shadow:0 0 3px #000,0 2px 14px rgba(0,0,0,.9);font-size:1.15rem}
.pills{display:flex;flex-wrap:wrap;gap:.5rem 1.2rem;margin-top:1.6rem;font-family:'DM Mono',monospace;font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;text-shadow:0 0 3px #000,0 1px 8px #000}
.pills span::before{content:"✓ ";color:#ffb3aa}
/* tide board ticker */
.board{background:var(--ink);color:#fff;overflow:hidden;white-space:nowrap;border-top:3px solid var(--red)}
.board .track{display:inline-block;padding:.9rem 0;animation:tick 70s linear infinite}
.board:hover .track{animation-play-state:paused}
.board .t{display:inline-block;margin:0 2rem}
.board b{font-family:'Fraunces',serif;font-weight:600;font-size:1.5rem;color:#ffd9d4}
.board small{font-family:'DM Mono',monospace;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:#aebdcf;margin-left:.6rem}
@keyframes tick{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.board .track,.beam{animation:none}.board{overflow-x:auto}}
/* sections */
section{padding:5.5rem 0}
.sec-h{font-size:clamp(2rem,4.4vw,3.2rem);margin:.4rem 0 1rem}
.intro{background:var(--paper)}
.intro .lead-p{font-size:1.2rem;color:#2b3a4b}
.stat{border-left:4px solid var(--red);padding:.2rem 0 .2rem 1rem;margin-top:1.5rem}
.stat b{display:block;font-family:'Fraunces',serif;font-size:2.4rem;color:var(--navy);line-height:1}
.stat span{font-size:.9rem;color:var(--mute)}
/* practice */
.practice{background:var(--fog)}
.pcard{background:#fff;height:100%;display:flex;flex-direction:column;border:1px solid var(--line);border-bottom:4px solid var(--navy);transition:transform .2s,border-color .2s}
.pcard:hover{transform:translateY(-4px);border-bottom-color:var(--red)}
.pcard img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block}
.pcard .b{padding:1.4rem 1.4rem 1.6rem}
.pcard h3{font-size:1.5rem;margin-bottom:.6rem}
.pcard p{font-size:.96rem;color:#33424f;margin:0}
.also{margin-top:2.5rem;padding:1.6rem 1.8rem;background:var(--navy);color:#e4edf7;display:flex;flex-wrap:wrap;gap:.6rem 2rem;align-items:center}
.also b{font-family:'Fraunces',serif;font-size:1.3rem;color:#fff}
.also span{font-family:'DM Mono',monospace;font-size:.8rem;letter-spacing:.06em;text-transform:uppercase}
/* process */
.process{background:var(--navy);color:#fff;position:relative;overflow:hidden}
.process h2{color:#fff}
.process .eyebrow{color:#ffb3aa}
.process::before{content:"";position:absolute;right:-120px;top:50%;width:900px;height:260px;transform:translateY(-50%) rotate(-8deg);background:linear-gradient(90deg,rgba(255,244,200,.0),rgba(255,244,200,.12));filter:blur(12px);pointer-events:none}
.step{display:flex;gap:1.2rem;align-items:flex-start;padding:1.3rem 0;border-bottom:1px solid rgba(255,255,255,.18)}
.step:last-child{border-bottom:0}
.step i{font-family:'Fraunces',serif;font-style:normal;font-size:2.6rem;color:#ffb3aa;line-height:1;min-width:2.4rem}
.step b{font-family:'Fraunces',serif;font-size:1.5rem;font-weight:600}
.step p{margin:.2rem 0 0;color:#c9d7e6}
/* attorneys */
.team{background:var(--paper)}
.person{text-align:left}
.person img{width:100%;aspect-ratio:1/1;object-fit:cover;object-position:center 20%;display:block;border-radius:2px;box-shadow:10px 10px 0 var(--fog)}
.person h3{font-size:1.2rem;margin:1.2rem 0 .1rem}
.person span{font-family:'DM Mono',monospace;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--mute)}
.person.lead img{box-shadow:10px 10px 0 var(--red)}
/* reviews */
.reviews{background:var(--fog)}
.rv{background:#fff;padding:1.8rem;height:100%;border-top:4px solid var(--red)}
.rv .st{color:var(--red);letter-spacing:.15em;font-size:1rem}
.rv p{font-size:1rem;margin:.6rem 0 1rem;color:#26343f}
.rv b{font-family:'DM Mono',monospace;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:var(--navy)}
/* resources */
.res a{display:block;padding:1.5rem 0;border-bottom:1px solid var(--line);text-decoration:none;color:inherit}
.res h3{font-size:1.4rem;margin-bottom:.3rem}
.res p{margin:0;color:var(--mute);font-size:.97rem}
/* contact */
.contact{background:var(--ink);color:#e4edf7}
.contact h2{color:#fff}
.contact .eyebrow{color:#ffb3aa}
.bigphone{font-family:'Fraunces',serif;font-size:clamp(2.4rem,6vw,4rem);color:#fff;text-decoration:none;font-weight:600;display:inline-block;margin:.4rem 0 1rem}
.bigphone:hover{color:#ffb3aa}
.office{border-left:3px solid var(--red);padding-left:1rem;margin-bottom:1.4rem}
.office b{font-family:'Fraunces',serif;font-size:1.3rem;color:#fff;display:block}
.office a{color:#fff}
.phones{columns:2;column-gap:2rem;font-size:.92rem;padding:0;list-style:none;margin:0}
.phones li{break-inside:avoid;margin-bottom:.35rem}
.phones span{color:#aebdcf}
.map{width:100%;height:340px;border:0;display:block;margin-top:1.5rem;filter:grayscale(.3)}
.served{font-size:.9rem;color:#aebdcf;margin-top:1.5rem}
footer{background:#0a1320;color:#aebdcf;padding:3rem 0 1.5rem;font-size:.92rem}
footer .chip{display:inline-block;background:#fff;padding:.7rem 1rem;border-radius:4px}
footer .chip img{height:40px;width:auto;display:block}
footer a{color:#dbe6f3}
footer .legal{font-size:.8rem;border-top:1px solid rgba(255,255,255,.12);margin-top:2rem;padding-top:1.2rem}
.callbar{display:none}
@media(max-width:991px){
 section{padding:3.8rem 0}
 .navbar-brand img{height:38px}
 .hero-photo{position:relative;height:340px;inset:auto;background-position:80% 20%}
 .hero-photo::after{background:linear-gradient(0deg,rgba(15,47,85,1) 0%,rgba(15,47,85,0) 40%)}
 .beam{display:none}
 .hero .container{min-height:0;padding-top:0}
 .hero-copy{max-width:none}
 .phones{columns:1}
 .util .pt{display:none}
 .callbar{display:block;position:sticky;bottom:0;z-index:50;background:var(--red);text-align:center}
 .callbar a{display:block;color:#fff;font-weight:700;padding:.85rem;text-decoration:none}
}
