:root{--ink:#0d3b3f;--ink2:#134e53;--sand:#f6f1e7;--sage:#dce8e1;--amber:#f2a541;--text:#1f2d2e;--muted:#5b6b6c}
html{scroll-behavior:smooth;scroll-padding-top:84px}
body{font-family:'DM Sans',system-ui,sans-serif;color:var(--text);background:#fff;font-size:1.05rem;line-height:1.7}
h1,h2,h3,h4,.navbar-brand,.fbrand{font-family:'Fraunces',Georgia,serif}
h2{font-size:clamp(2rem,4vw,3rem);font-weight:600;line-height:1.1;letter-spacing:-.01em}
.sec{padding:clamp(4rem,9vw,7.5rem) 0}
.sec-ink{background:var(--ink);color:#e9f1ee}.sec-ink h2,.sec-ink .dr{color:#fff}
.sec-sage{background:var(--sage)}.sec-sand{background:var(--sand)}
.kicker{text-transform:uppercase;letter-spacing:.18em;font-size:.78rem;font-weight:700;color:var(--ink2);margin-bottom:.8rem}
.sec-ink .kicker{color:var(--amber)}
.prose p{margin-bottom:1.1rem}.dr{font-size:1.7rem;font-weight:600;margin-bottom:1rem}
.lib-h{font-size:1.15rem;font-weight:600;margin:1.4rem 0 .5rem;color:var(--ink)}
.sec-ink .lib-h{color:var(--amber)}
/* nav */
.navbar{background:rgba(13,59,63,.97);padding:.7rem 0;box-shadow:0 2px 14px rgba(0,0,0,.15)}
.navbar-brand{color:#fff!important;font-size:1.45rem;font-weight:600}
.navbar .nav-link{color:#e9f1ee;font-weight:500;font-size:.95rem;padding:.5rem .75rem}
.navbar .nav-link:hover,.navbar .nav-link.active{color:var(--amber)}
.navbar-toggler{border-color:rgba(255,255,255,.5);filter:invert(1)}
.btn-call,.btn-amber{background:var(--amber);color:#1b2a2b;font-weight:700;border:0;border-radius:999px}
.btn-call{padding:.45rem 1.1rem;font-size:.95rem}
.btn-call:hover,.btn-amber:hover{background:#ffb95c;color:#1b2a2b}
.btn-lg{border-radius:999px;padding:.8rem 1.7rem;font-size:1rem}
/* hero: typographic-forward on ink panel with beach photo */
.hero{background:radial-gradient(ellipse 60% 70% at 85% 40%,#1c6a6b 0%,transparent 70%),linear-gradient(160deg,#0d3b3f,#0a2e32);color:#fff;padding:9rem 0 6rem;min-height:92vh;display:flex;align-items:center;clip-path:polygon(0 0,100% 0,100% 94%,0 100%);margin-bottom:-1px}
.eyebrow{text-transform:uppercase;letter-spacing:.2em;font-size:.8rem;font-weight:700;color:var(--amber)}
.hero-title{font-size:clamp(3.4rem,10vw,7.5rem);font-weight:800;line-height:.95;letter-spacing:-.03em;margin:.5rem 0 1.5rem}
.hero-sub{font-size:1.25rem;max-width:34rem;color:#dcebe7}
.hero-note{margin-top:2rem;max-width:34rem;font-size:.9rem;color:#a9c7c2;border-left:3px solid var(--amber);padding-left:1rem}
.hero-photo{height:68vh;min-height:420px;max-height:640px;border-radius:24px;background:url('img/hero.webp') 22% center/cover no-repeat;box-shadow:0 30px 60px -20px rgba(0,0,0,.5);border:1px solid rgba(242,165,65,.35)}
.photo-credit{margin-top:.6rem;text-align:center;font-size:.72rem;color:#7fa39e}
.photo-credit a{color:#a9c7c2}
/* stats */
.stats{background:var(--sand);padding:3rem 0}
.stat{padding:1rem}.stat b{display:block;font-family:Fraunces,serif;font-size:2.6rem;color:var(--ink);line-height:1.1}
.stat span{font-size:.9rem;color:var(--muted)}
.ins{background:var(--sage);padding:1rem 1.25rem;border-radius:12px;font-weight:500}
.ins i{color:var(--ink2);margin-right:.4rem}
/* services */
.svc{border:1px solid #d6e2dc;border-radius:16px;padding:1.6rem;height:100%;background:#fff;transition:transform .2s,box-shadow .2s}
.svc:hover{transform:translateY(-3px);box-shadow:0 10px 24px rgba(13,59,63,.12)}
.svc span{font-family:Fraunces,serif;color:var(--amber);font-weight:800;font-size:1.4rem}
.svc h3{font-size:1.25rem;margin:.3rem 0 0;font-weight:600;color:var(--ink)}
/* forms */
.forms{background:#fff;border-radius:16px;padding:1.4rem}
.forms h3{font-size:1.15rem;font-weight:600}
.forms a{display:block;padding:.7rem 0;border-top:1px solid #e3ece7;color:var(--ink);font-weight:500;text-decoration:none}
.forms a:hover{color:#0a2e32;text-decoration:underline}.forms i{margin-right:.5rem;color:var(--ink2)}
/* accordion */
.accordion-item{border:0;border-bottom:1px solid #d6e2dc;background:transparent}
.accordion-button{font-family:Fraunces,serif;font-size:1.35rem;font-weight:600;color:var(--ink);background:transparent;padding:1.3rem .25rem;box-shadow:none!important}
.accordion-button:not(.collapsed){color:var(--ink);background:var(--sand)}
.lib-num{font-family:'DM Sans';font-size:.8rem;font-weight:700;color:var(--amber);margin-right:1rem;letter-spacing:.1em}
.lib-body{max-width:60rem;padding:1.5rem .5rem 2rem}
.nerve-table{font-size:.9rem}.nerve-table th{color:var(--ink)}.nerve-table thead th{background:var(--ink);color:#fff}
.experts h3,.sub-h{font-size:1.7rem;font-weight:600;color:var(--ink)}
.ex{background:var(--sage);border-radius:16px;padding:1.5rem;height:100%}
.ex i{font-size:1.6rem;color:var(--ink2)}.ex h4{font-size:1.1rem;font-weight:600;margin:.5rem 0}.ex p{font-size:.92rem;margin:0}
.acard{border-top:3px solid var(--amber);padding-top:1rem;height:100%}
.acard h4{font-size:1.1rem;font-weight:600;color:var(--ink)}.acard p{font-size:.92rem;color:var(--muted)}
.small-note{font-size:.88rem;color:var(--muted)}
/* testimonials */
.tgrid{column-count:2;column-gap:1.5rem}
.tcard{break-inside:avoid;background:#fff;border-radius:16px;padding:1.6rem;margin:0 0 1.5rem;box-shadow:0 4px 18px rgba(13,59,63,.08)}
.tcard p{font-size:.97rem;margin-bottom:.8rem}
.tlabel{text-transform:uppercase;letter-spacing:.14em;font-size:.7rem!important;font-weight:700;color:var(--ink2);margin-bottom:.2rem!important}
.tcard figcaption{font-family:Fraunces,serif;font-weight:600;color:var(--ink)}
/* contact */
.addr{font-style:normal;font-size:1.15rem;margin:1.2rem 0}
.contact-list{list-style:none;padding:0}.contact-list li{margin:.4rem 0}
.contact-list i{color:var(--ink2);margin-right:.7rem}.contact-list a{color:var(--ink);font-weight:700;text-decoration:none;word-break:break-all}
.hrs-h{font-size:1.2rem;margin-top:1.5rem}
.hours{width:100%;max-width:22rem}.hours th,.hours td{padding:.35rem 0;border-bottom:1px solid #e3ece7}.hours td{text-align:right;font-weight:500}.hours .closed{color:var(--muted);font-weight:400}
.map iframe{width:100%;height:100%;min-height:440px;border:0;border-radius:18px}
/* footer */
.foot{background:var(--ink);color:#cfe1dc;padding:3.5rem 0 2rem}
.fbrand{font-size:1.6rem;color:#fff;margin:0}.fsub{margin:0;font-size:.92rem}
.foot a{color:#fff;margin-left:1.2rem;text-decoration:none}.foot a:hover{color:var(--amber)}
.powered{margin-top:2rem;padding-top:1.4rem;border-top:1px solid rgba(255,255,255,.15);text-align:center;font-size:.9rem}
.powered a{margin:0;color:var(--amber);font-weight:700}.powered span{opacity:.7}
@media(max-width:991px){.hero{padding:7.5rem 0 5rem;min-height:auto}.tgrid{column-count:1}.navbar-collapse{padding:1rem 0}}
@media(max-width:575px){.navbar-brand{font-size:1.2rem}.foot a{margin:0 1rem 0 0}.stat b{font-size:2rem}}
.container-xl{padding-left:1.5rem;padding-right:1.5rem}
.map{height:100%;min-height:440px}
