:root{
  --navy:#003955;--navy-deep:#00203c;--navy-ink:#0b1e2e;--red:#9e0000;--red-dark:#850000;
  --paper:#ffffff;--cream:#f6f3ee;--line:#dfe3e8;--muted:#56657a;--text:#14202e;
  --serif:"Domine",Georgia,"Times New Roman",serif;--sans:"Lato",system-ui,-apple-system,"Segoe UI",sans-serif;
  --wrap:1200px;--r:4px;
  --sec:clamp(56px,8vw,112px);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;font-family:var(--sans);font-size:17px;line-height:1.65;color:var(--text);background:var(--paper);-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:var(--navy)}
h1,h2,h3{font-family:var(--serif);font-weight:700;line-height:1.18;color:var(--navy-ink);margin:0 0 .5em;text-wrap:balance}
h2{font-size:clamp(1.6rem,1.2rem + 1.6vw,2.4rem)}
h3{font-size:1.25rem}
p{margin:0 0 1em;max-width:70ch}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px;top:0;background:var(--red);color:#fff;padding:10px 16px;z-index:100}
.skip:focus{left:8px;top:8px}
:focus-visible{outline:3px solid #f2b705;outline-offset:2px}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 clamp(20px,4vw,40px)}
.narrow{max-width:860px}
.kicker{font-family:var(--sans);font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;font-weight:900;color:var(--red);margin:0 0 .9em;display:flex;align-items:center;gap:.7em}
.kicker::before{content:"";width:28px;height:3px;background:var(--red);flex:none}
.kicker.light{color:#fff}
.kicker.light::before{background:var(--red)}
.lead{font-size:clamp(1.05rem,1rem + .3vw,1.25rem);line-height:1.6}
.tldr{font-size:1.08rem;color:var(--navy-ink)}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;font-family:var(--sans);font-weight:900;font-size:.88rem;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;padding:15px 26px;border-radius:var(--r);border:2px solid transparent;transition:background .2s,color .2s,border-color .2s,transform .2s;min-height:48px}
.btn:hover{transform:translateY(-1px)}
.btn-red{background:var(--red);color:#fff}
.btn-red:hover{background:var(--red-dark)}
.btn-navy{background:var(--navy);color:#fff}
.btn-navy:hover{background:var(--navy-deep)}
.btn-ghost{border-color:rgba(255,255,255,.7);color:#fff}
.btn-ghost:hover{background:#fff;color:var(--navy)}
.btn.full{width:100%;margin-top:8px}
.btn-row{display:flex;flex-wrap:wrap;gap:14px;margin-top:28px}
.text-link{font-weight:900;text-decoration:none;color:var(--red);font-size:.95rem;letter-spacing:.02em}
.text-link:hover{text-decoration:underline}

/* header */
.site-header{background:var(--navy);position:sticky;top:0;z-index:50;box-shadow:0 1px 0 rgba(255,255,255,.08)}
.header-inner{display:flex;align-items:center;justify-content:space-between;min-height:84px;gap:24px}
.brand img{width:120px;height:auto}
.site-nav{display:flex;align-items:center;gap:28px}
.site-nav ul{display:flex;gap:26px;list-style:none;margin:0;padding:0}
.site-nav ul a{color:#fff;text-decoration:none;font-weight:700;font-size:.93rem;letter-spacing:.02em;padding:6px 0;border-bottom:2px solid transparent}
.site-nav ul a:hover,.site-nav ul a[aria-current]{border-bottom-color:var(--red)}
.nav-cta{padding:11px 20px;min-height:44px}
.nav-toggle{display:none;background:none;border:0;width:48px;height:48px;cursor:pointer;position:relative}
.bars,.bars::before,.bars::after{position:absolute;left:12px;width:24px;height:2px;background:#fff;transition:transform .2s}
.bars{top:23px}.bars::before{content:"";top:-8px;left:0}.bars::after{content:"";top:8px;left:0}
.nav-toggle[aria-expanded=true] .bars{background:transparent}
.nav-toggle[aria-expanded=true] .bars::before{transform:translateY(8px) rotate(45deg)}
.nav-toggle[aria-expanded=true] .bars::after{transform:translateY(-8px) rotate(-45deg)}
@media (max-width:960px){
  .nav-toggle{display:block}
  .site-nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--navy-deep);flex-direction:column;align-items:stretch;padding:12px 24px 28px;gap:12px}
  .site-nav.open{display:flex}
  .site-nav ul{flex-direction:column;gap:0}
  .site-nav ul a{display:block;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.1)}
  .header-inner{min-height:72px}.brand img{width:100px}
}

/* hero */
.hero{position:relative;background:var(--navy-deep);color:#fff;overflow:hidden;min-height:min(86vh,760px);display:flex;align-items:center}
.hero-img{position:absolute;right:0;top:0;height:100%;width:62%;object-fit:cover;object-position:60% 30%}
.hero::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--navy-deep) 36%,rgba(0,32,60,.7) 52%,rgba(0,32,60,.05) 80%);z-index:1}
.hero-inner{position:relative;z-index:2;padding-top:80px;padding-bottom:96px;width:100%}
.hero h1{color:#fff;font-size:clamp(2.6rem,1.6rem + 4.4vw,5.2rem);max-width:12ch;margin-bottom:.35em;letter-spacing:-.01em}
.hero h1 em{font-style:normal;display:block;color:#fff;border-bottom:6px solid var(--red);width:max-content;max-width:100%;padding-bottom:.08em}
.hero .lead{max-width:52ch;color:#dbe5ee}
@media (max-width:760px){
  .hero{min-height:auto;align-items:flex-end}
  .hero-img{width:100%;opacity:.38}
  .hero::before{background:linear-gradient(180deg,rgba(0,32,60,.55),var(--navy-deep) 80%)}
  .hero-inner{padding-top:120px;padding-bottom:64px}
  .hero h1 em{width:auto}
}

/* stats */
.stats{background:var(--red);color:#fff}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr)}
.stat{padding:30px 24px;border-left:1px solid rgba(255,255,255,.22)}
.stat:first-child{border-left:0;padding-left:0}
.stat .num{display:block;font-family:var(--serif);font-size:clamp(2rem,1.5rem + 1.6vw,2.9rem);font-weight:700;line-height:1}
.stat .lbl{display:block;font-size:.88rem;margin-top:8px;line-height:1.4;color:#ffe9e9}
@media (max-width:860px){.stats-grid{grid-template-columns:1fr 1fr}.stat{padding:22px 16px}.stat:nth-child(3){border-left:0;padding-left:0}.stat:nth-child(n+3){border-top:1px solid rgba(255,255,255,.22)}}

/* sections */
.section{padding:var(--sec) 0}
.section.alt,.news-sec,.faq-sec{background:var(--cream)}
.sec-head{margin-bottom:44px}
.sec-head.row{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap}
.split{display:grid;grid-template-columns:5fr 7fr;gap:clamp(32px,6vw,96px);align-items:center}
.split.rev{grid-template-columns:6fr 6fr}
.answer-sec .split{align-items:start}
@media (max-width:860px){.split,.split.rev{grid-template-columns:1fr}}

/* service cards */
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.svc-card a{display:flex;flex-direction:column;height:100%;text-decoration:none;color:inherit;background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;transition:box-shadow .25s,transform .25s}
.svc-card a:hover{box-shadow:0 18px 40px -18px rgba(0,32,60,.35);transform:translateY(-3px)}
.svc-img{aspect-ratio:3/2;overflow:hidden}
.svc-img img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.svc-card a:hover .svc-img img{transform:scale(1.04)}
.svc-body{padding:26px 26px 30px;display:flex;flex-direction:column;flex:1;border-top:4px solid var(--navy)}
.svc-body p{color:var(--muted);font-size:.98rem}
.svc-num{font-family:var(--serif);color:var(--red);font-weight:700;font-size:.95rem;display:block;margin-bottom:6px}
.more{margin-top:auto;font-weight:900;color:var(--red);font-size:.9rem}
@media (max-width:900px){.svc-grid{grid-template-columns:1fr}}

/* news */
.news-grid{display:grid;grid-template-columns:7fr 5fr;gap:28px}
.news-card{background:#fff;border:1px solid var(--line);border-radius:var(--r);display:grid;grid-template-columns:200px 1fr;gap:26px;padding:26px;align-items:start}
.news-card img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:2px}
.news-card:not(.feature){grid-template-columns:120px 1fr}
.news-card:not(.feature) img{aspect-ratio:1}
.meta{font-size:.78rem;text-transform:uppercase;letter-spacing:.12em;font-weight:900;color:var(--muted);margin-bottom:.6em}
@media (max-width:960px){.news-grid{grid-template-columns:1fr}}
@media (max-width:560px){.news-card,.news-card:not(.feature){grid-template-columns:1fr}.news-card img{max-width:200px}}

.case-img img{border-radius:var(--r);width:100%;aspect-ratio:3/2;object-fit:cover;box-shadow:18px 18px 0 var(--navy)}

/* trail strip */
.trail-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.trail-strip figure{margin:0;aspect-ratio:1;overflow:hidden;border-radius:var(--r)}
.trail-strip img{width:100%;height:100%;object-fit:cover}
@media (max-width:760px){.trail-strip{grid-template-columns:1fr 1fr}}

/* faq */
.faq-list{border-top:1px solid var(--line);margin-top:28px}
.faq-list details{border-bottom:1px solid var(--line)}
.faq-list summary{list-style:none;cursor:pointer;padding:22px 44px 22px 0;position:relative}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary h3{margin:0;font-size:1.12rem}
.faq-list summary::after{content:"+";position:absolute;right:6px;top:50%;transform:translateY(-50%);font-size:1.8rem;color:var(--red);font-weight:400;line-height:1}
.faq-list details[open] summary::after{content:"−"}
.faq-list .ans{padding:0 0 22px}
.faq-list .ans p{color:#34445a}

/* cta band */
.cta-band{position:relative;background:var(--navy);color:#fff;padding:var(--sec) 0;overflow:hidden;text-align:left}
.cta-band>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.12;filter:grayscale(1)}
.cta-band .wrap{position:relative}
.cta-band h2{color:#fff;max-width:20ch}
.cta-band p{color:#d4e0ea;max-width:56ch}

/* page hero */
.page-hero{position:relative;background:var(--navy-deep);color:#fff;padding:clamp(56px,7vw,96px) 0 clamp(56px,7vw,88px);overflow:hidden}
.ph-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.2}
.page-hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:6px;background:var(--red)}
.page-hero .wrap{position:relative}
.page-hero h1{color:#fff;font-size:clamp(2.1rem,1.5rem + 2.6vw,3.6rem);max-width:22ch}
.page-hero .lead{color:#d4e0ea;max-width:62ch}
.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:8px;padding:0;margin:0 0 26px;font-size:.84rem}
.crumbs li{color:#9fb6c9}
.crumbs li+li::before{content:"/";margin-right:8px;color:#6f8aa1}
.crumbs a{color:#fff;text-decoration:none}
.crumbs a:hover{text-decoration:underline}

/* bios */
.bio{display:grid;grid-template-columns:4fr 7fr;gap:clamp(32px,6vw,88px);align-items:start;scroll-margin-top:110px}
.bio.rev .bio-photo{order:2}
.bio-photo{position:sticky;top:120px}
.bio-photo img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center top;border-radius:var(--r);box-shadow:-16px 16px 0 var(--red);background:#e9edf1}
.bio.rev .bio-photo img{box-shadow:16px 16px 0 var(--navy)}
.facts{list-style:none;padding:0;margin:28px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:0;border-top:1px solid var(--line)}
.facts li{padding:14px 16px 14px 0;border-bottom:1px solid var(--line);font-size:.95rem}
.facts span{display:block;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;font-weight:900;color:var(--red);margin-bottom:2px}
.facts.tight{grid-template-columns:1fr;margin-top:8px}
@media (max-width:860px){.bio{grid-template-columns:1fr}.bio.rev .bio-photo{order:0}.bio-photo{position:static;max-width:380px}.facts{grid-template-columns:1fr}}

/* service rows */
.svc-rows{display:grid;gap:clamp(56px,8vw,104px)}
.svc-row{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,72px);align-items:center;scroll-margin-top:110px}
.svc-row.rev .svc-row-img{order:2}
.svc-row-img img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:var(--r)}
@media (max-width:860px){.svc-row{grid-template-columns:1fr}.svc-row.rev .svc-row-img{order:0}}

.svc-detail{display:grid;grid-template-columns:7fr 4fr;gap:clamp(32px,5vw,72px);align-items:start}
.svc-aside{position:sticky;top:110px;display:grid;gap:20px}
.aside-card{background:var(--cream);border-radius:var(--r);padding:28px;border-top:4px solid var(--red)}
.aside-card.navy{background:var(--navy);color:#fff;border-top-color:var(--red)}
.aside-card.navy p{color:#d4e0ea}
.aside-h{font-size:1.15rem;margin-bottom:14px}
.aside-card.navy .aside-h{color:#fff}
.checks{list-style:none;padding:0;margin:0}
.checks li{padding:9px 0 9px 28px;position:relative;border-bottom:1px solid var(--line);font-size:.96rem}
.checks li::before{content:"";position:absolute;left:2px;top:17px;width:12px;height:7px;border-left:3px solid var(--red);border-bottom:3px solid var(--red);transform:rotate(-45deg)}
.links{list-style:none;padding:0;margin:0 0 12px}
.links a{color:#fff;text-decoration:none;display:block;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.15);font-weight:700}
.links a:hover{color:#ffd1d1}
.proof{margin:32px 0;padding:24px 28px;border-left:5px solid var(--red);background:var(--cream);font-family:var(--serif);font-size:1.12rem;line-height:1.55;color:var(--navy-ink)}
.proof p{margin:0}
.proof cite{display:block;margin-top:12px;font-family:var(--sans);font-style:normal;font-size:.85rem;color:var(--muted)}
.prose h2{font-size:clamp(1.4rem,1.2rem + .8vw,1.85rem);margin-top:1.6em}
.prose h2:first-child{margin-top:0}
.kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:28px 0 8px}
.kpis div{background:var(--navy);color:#fff;padding:22px;border-radius:var(--r)}
.kpis .num{display:block;font-family:var(--serif);font-size:2.2rem;font-weight:700;line-height:1}
.kpis .lbl{font-size:.85rem;color:#d4e0ea}
@media (max-width:900px){.svc-detail{grid-template-columns:1fr}.svc-aside{position:static}}
@media (max-width:520px){.kpis{grid-template-columns:1fr}}

/* gallery */
.case-banner{display:block;text-decoration:none;background:var(--red);color:#fff;padding:32px 36px;border-radius:var(--r);margin-bottom:40px;transition:background .2s}
.case-banner:hover{background:var(--red-dark)}
.cb-title{display:block;font-family:var(--serif);font-size:clamp(1.3rem,1rem + 1.2vw,2rem);font-weight:700;line-height:1.2}
.cb-meta{display:block;margin-top:10px;font-weight:700;color:#ffe2e2}
.gallery{columns:3 280px;column-gap:18px}
.gallery figure{margin:0 0 18px;break-inside:avoid;position:relative;overflow:hidden;border-radius:var(--r)}
.gallery img{width:100%}
.gallery figcaption{position:absolute;left:0;right:0;bottom:0;padding:36px 16px 14px;background:linear-gradient(transparent,rgba(0,20,40,.85));color:#fff;font-size:.88rem;font-weight:700}

/* posts */
.posts{display:grid;gap:56px}
.post{display:grid;grid-template-columns:200px 1fr;gap:36px;padding-bottom:56px;border-bottom:1px solid var(--line);scroll-margin-top:110px}
.post img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:var(--r)}
.post h2{font-size:clamp(1.4rem,1.2rem + .8vw,1.9rem)}
@media (max-width:640px){.post{grid-template-columns:1fr}.post img{max-width:220px}}

/* contact */
.contact-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:24px}
.contact-card{background:var(--cream);padding:32px;border-radius:var(--r);border-top:4px solid var(--navy);scroll-margin-top:110px}
.contact-card.primary{background:var(--navy);color:#fff;border-top-color:var(--red)}
.contact-card.primary h2{color:#fff}
.contact-card.primary p{color:#d4e0ea}
.contact-card h2{font-size:1.4rem}
.big-phone{display:block;font-family:var(--serif);font-size:clamp(1.8rem,1.4rem + 1.4vw,2.5rem);color:#fff;text-decoration:none;font-weight:700;margin:6px 0 22px}
address{font-style:normal;margin-bottom:16px;line-height:1.7}
.hours-list{margin:0 0 20px}
.hours-list div{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}
.hours-list dt{font-weight:700}.hours-list dd{margin:0}
.small-h{font-family:var(--sans);font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--red);margin:0 0 8px}
.social.inline{display:flex;gap:18px;list-style:none;padding:0;margin:0}
.social.inline a{font-weight:700}
@media (max-width:960px){.contact-grid{grid-template-columns:1fr}}

/* footer */
.site-footer{background:var(--navy-deep);color:#c6d3de;padding:72px 0 0;font-size:.94rem}
.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:40px;padding-bottom:48px}
.footer-about img{width:130px;margin-bottom:18px}
.footer-h{font-family:var(--sans);font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;color:#fff;margin:0 0 14px}
.footer-h+ul+.footer-h,ul+.footer-h{margin-top:26px}
.site-footer ul{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.site-footer a{color:#fff;text-decoration:none}
.site-footer a:hover{text-decoration:underline}
.site-footer strong{color:#fff}
.hours{color:#9fb6c9}
.footer-base{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;border-top:1px solid rgba(255,255,255,.12);padding-top:22px;padding-bottom:28px;font-size:.84rem;color:#9fb6c9}
.footer-base p{margin:0}
@media (max-width:860px){.footer-grid{grid-template-columns:1fr 1fr}.footer-about{grid-column:1/-1}}
@media (max-width:520px){.footer-grid{grid-template-columns:1fr}}

@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* CMS-driven elements */
.announce{color:#fff;font-size:.95rem}
.announce-red{background:var(--red)}.announce-navy{background:var(--navy-ink);border-bottom:3px solid var(--red)}
.announce-inner{display:flex;align-items:center;justify-content:center;gap:8px 18px;flex-wrap:wrap;padding-top:11px;padding-bottom:11px;text-align:center}
.announce p{margin:0;font-weight:700}
.announce a{color:#fff;font-weight:900;text-decoration:underline;text-underline-offset:3px;white-space:nowrap}
a.plain{color:inherit;text-decoration:none}
a.plain:hover{color:var(--red)}
.news-sec .text-link{display:inline-block;margin-top:28px}
.post-noimg{aspect-ratio:3/4;background:var(--navy);color:#fff;display:grid;place-items:center;font-family:var(--serif);font-size:2rem;border-radius:var(--r)}
.article-img{margin:0 0 32px}
.article-img img{width:100%;max-height:560px;object-fit:cover;border-radius:var(--r)}
.article-body p{font-size:1.04rem}
.article-body .back{margin-top:40px}
.related{list-style:none;padding:0;margin:0}
.related li{padding:12px 0;border-bottom:1px solid var(--line)}
.related a{font-weight:700;text-decoration:none;display:block;line-height:1.35}
.related a:hover{color:var(--red)}
.related span{font-size:.8rem;color:var(--muted)}
.page-hero .kicker{color:#fff}

/* Contact form */
.form-layout{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:56px;align-items:start}
.form-intro h2{margin-top:0}
.form-intro .fine{font-size:.88rem;color:var(--muted)}
.cform{background:#fff;border:1px solid var(--line);border-top:4px solid var(--red);border-radius:var(--r);padding:32px;box-shadow:0 10px 30px rgba(0,32,60,.07)}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}
.field{margin-bottom:18px}
.field label{display:block;font-weight:700;font-size:.92rem;margin-bottom:6px;color:var(--text)}
.field .req{color:var(--red)}
.field input,.field select,.field textarea{width:100%;font:inherit;font-size:1rem;color:var(--text);background:#fff;border:1px solid #b9c2cd;border-radius:var(--r);padding:12px 14px;min-height:48px}
.field textarea{resize:vertical;min-height:150px}
.field input:focus,.field select:focus,.field textarea:focus{outline:3px solid rgba(0,57,85,.25);border-color:var(--navy)}
.field [aria-invalid=true]{border-color:var(--red)}
.ferr{color:var(--red);font-size:.85rem;margin:6px 0 0;min-height:0}
.ferr:empty{display:none}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.cform .btn{min-width:200px}
.cform .btn[disabled]{opacity:.7;cursor:progress}
.fstatus{margin:16px 0 0;font-weight:700}
.fstatus:empty{display:none}
.fstatus.ok{color:#0b6b3a;background:#e8f5ee;border-left:4px solid #0b6b3a;padding:12px 14px}
.fstatus.bad{color:var(--red);background:#fbeaea;border-left:4px solid var(--red);padding:12px 14px}
@media (max-width:900px){.form-layout{grid-template-columns:1fr;gap:28px}}
@media (max-width:600px){.field-row{grid-template-columns:1fr}.cform{padding:22px 18px}.cform .btn{width:100%}}
.form-intro a[href^="tel"]{white-space:nowrap}
