/* Website Design & SEO Solutions — site.css */
@font-face{font-family:"Bricolage Grotesque";src:url(/fonts/bricolage-grotesque-latin-wght.woff2) format("woff2");font-weight:200 800;font-display:swap}
@font-face{font-family:"Source Serif 4";src:url(/fonts/source-serif-4-latin-wght.woff2) format("woff2");font-weight:200 900;font-style:normal;font-display:swap}
@font-face{font-family:"Source Serif 4";src:url(/fonts/source-serif-4-latin-wght-italic.woff2) format("woff2");font-weight:200 900;font-style:italic;font-display:swap}

:root{
  --navy:#002B53; --night:#001A33; --orange:#FF8900; --orange-ink:#A85500;
  --ice:#EDF2F6; --ink:#15222F; --steel:#4F6072; --rule:#CCD8E2; --white:#fff;
  --serp-blue:#1A0DAB; --serp-url:#4D5156;
  --display:"Bricolage Grotesque",ui-sans-serif,system-ui,sans-serif;
  --text:"Source Serif 4",Georgia,"Times New Roman",serif;
  --wrap:1240px; --gut:clamp(20px,4vw,48px);
  --s1:.5rem; --s2:1rem; --s3:1.5rem; --s4:2.5rem; --s5:4rem; --s6:clamp(4rem,9vw,7.5rem);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:96px}
body{margin:0;background:var(--white);color:var(--ink);font:400 1.125rem/1.68 var(--text);font-optical-sizing:auto;text-rendering:optimizeLegibility}
img{max-width:100%;height:auto;display:block}
a{color:var(--navy);text-decoration-color:var(--orange);text-decoration-thickness:2px;text-underline-offset:.2em}
a:hover{color:var(--orange-ink)}
:focus-visible{outline:3px solid var(--orange);outline-offset:3px;border-radius:2px}
h1,h2,h3{font-family:var(--display);color:var(--navy);margin:0;text-wrap:balance}
h1{font-size:clamp(2.6rem,5.6vw,4.75rem);line-height:.98;font-weight:780;letter-spacing:-.035em}
h2{font-size:clamp(1.85rem,3.1vw,2.7rem);line-height:1.05;font-weight:720;letter-spacing:-.025em}
h3{font-size:1.25rem;line-height:1.2;font-weight:680;letter-spacing:-.01em}
p{margin:0 0 1.1em}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gut)}
.sr,.skip{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip:focus{position:fixed;left:12px;top:12px;width:auto;height:auto;clip:auto;z-index:100;background:var(--white);padding:.6rem 1rem;font-family:var(--display)}

/* ---------- buttons */
.btn{display:inline-flex;align-items:center;gap:.55rem;font:650 1rem/1 var(--display);padding:.95rem 1.35rem;border-radius:6px;text-decoration:none;border:2px solid transparent;transition:background-color .15s,color .15s,border-color .15s}
.btn svg{width:1.05em;height:1.05em;flex:none}
.btn-primary{background:var(--orange);color:var(--night)}
.btn-primary:hover{background:#FFA033;color:var(--night)}
.btn-ghost{border-color:var(--navy);color:var(--navy)}
.btn-ghost:hover{background:var(--navy);color:var(--white)}
.btn-ghost-light{border-color:rgba(255,255,255,.55);color:var(--white)}
.btn-ghost-light:hover{background:var(--white);color:var(--navy)}
.actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:var(--s3)}

/* ---------- header */
.utility{background:var(--navy);color:#CFE0EE;font:500 .85rem/1 var(--display);border-bottom:3px solid var(--orange)}
.utility .wrap{display:flex;justify-content:space-between;gap:1rem;padding-top:.6rem;padding-bottom:.6rem}
.utility p{margin:0}
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.97);backdrop-filter:saturate(1.4) blur(8px);border-bottom:1px solid var(--rule)}
.site-header .wrap{display:flex;align-items:center;gap:1.5rem;min-height:76px}
.logo img{width:clamp(220px,24vw,300px)}
.nav{margin-left:auto}
.nav-list{display:flex;align-items:center;gap:.25rem;list-style:none;margin:0;padding:0}
.nav-group{position:relative}
.nav summary,.nav-link{display:flex;align-items:center;gap:.35rem;cursor:pointer;list-style:none;font:600 .98rem/1 var(--display);color:var(--navy);padding:.7rem .75rem;border-radius:6px;text-decoration:none}
.nav summary::-webkit-details-marker{display:none}
.nav summary svg{width:.75rem;height:.75rem;transition:transform .15s}
.nav details[open] summary svg{transform:rotate(180deg)}
.nav summary:hover,.nav-link:hover,.nav details[open] summary{background:var(--ice)}
.nav details[data-active] summary,.nav-link[aria-current]{box-shadow:inset 0 -3px 0 var(--orange)}
.nav-menu{position:absolute;left:0;top:calc(100% + 8px);min-width:250px;list-style:none;margin:0;padding:.5rem;background:var(--white);border:1px solid var(--rule);border-top:3px solid var(--orange);border-radius:0 0 8px 8px;box-shadow:0 18px 40px -18px rgba(0,26,51,.35)}
.nav-menu a{display:block;padding:.6rem .8rem;font:500 .98rem/1.25 var(--display);color:var(--ink);text-decoration:none;border-radius:4px}
.nav-menu a:hover{background:var(--ice);color:var(--navy)}
.nav-menu a[aria-current]{color:var(--orange-ink);font-weight:650}
.btn-call{background:var(--navy);color:var(--white);padding:.8rem 1.1rem}
.btn-call:hover{background:var(--night);color:var(--white)}
.menu-toggle{display:none}

/* ---------- hero */
.hero{background:var(--ice);padding:clamp(2.5rem,6vw,5rem) 0 clamp(3rem,7vw,6rem);overflow:hidden}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(2rem,5vw,4.5rem);align-items:center}
.crumbs ol{display:flex;flex-wrap:wrap;gap:.4rem;list-style:none;margin:0 0 var(--s3);padding:0;font:500 .9rem/1.2 var(--display);color:var(--steel)}
.crumbs li+li::before{content:"/";margin-right:.4rem;color:var(--rule)}
.crumbs a{color:var(--steel);text-decoration:none}
.crumbs a:hover{color:var(--navy);text-decoration:underline}
.hero-kicker{display:flex;align-items:center;gap:.6rem;font:600 1rem/1.3 var(--display);color:var(--steel);margin-bottom:1.1rem}
.hero-kicker::before{content:"";width:.7rem;height:.7rem;background:var(--orange);flex:none}
.hero-kicker:empty{display:none}
.lead{font-size:clamp(1.15rem,1.6vw,1.32rem);line-height:1.6;color:#2A3A4A;margin:1.4rem 0 0;max-width:36em}
.lead strong{color:var(--navy);font-weight:650}
.chips{display:flex;flex-wrap:wrap;gap:.5rem 1.4rem;list-style:none;margin:var(--s4) 0 0;padding:var(--s3) 0 0;border-top:1px solid var(--rule);font:550 .95rem/1.2 var(--display);color:var(--navy)}
.chips li{display:flex;align-items:center;gap:.45rem}
.chips li::before{content:"";width:.95rem;height:.95rem;border-radius:50%;background:var(--orange) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.3l2.6 2.5L12 5.5' fill='none' stroke='%23001A33' stroke-width='2.2'/%3E%3C/svg%3E") center/80% no-repeat}
.hero-media{position:relative;margin:0 0 3.5rem}
.hero-media img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px;box-shadow:0 30px 60px -30px rgba(0,26,51,.45)}
.serp{position:absolute;left:-2.25rem;right:2.5rem;bottom:-3.5rem;background:var(--white);border-radius:10px;padding:1.05rem 1.25rem 1.1rem;box-shadow:0 24px 50px -20px rgba(0,26,51,.45),0 0 0 1px rgba(0,43,83,.08);font-family:Arial,Helvetica,sans-serif;animation:serp-in .7s cubic-bezier(.2,.8,.2,1) .25s both}
.serp-label{font:600 .72rem/1 var(--display);color:var(--orange-ink);letter-spacing:.02em;margin:0 0 .7rem}
.serp-site{display:flex;align-items:center;gap:.6rem;font-size:.82rem;line-height:1.25;color:#202124}
.serp-site small{color:var(--serp-url);font-size:.76rem}
.serp-fav{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#F1F3F4;flex:none}
.serp-title{color:var(--serp-blue);font-size:1.15rem;line-height:1.3;margin:.45rem 0 .25rem;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.serp-desc{color:var(--serp-url);font-size:.85rem;line-height:1.5;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
@keyframes serp-in{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.hero-plain{padding-bottom:clamp(2.5rem,5vw,4rem)}
.hero-plain h1{max-width:16em}
.hero-plain .lead{max-width:40em}

/* ---------- sections */
.sec{padding:var(--s6) 0}
.sec.alt{background:var(--ice)}
.sec-head .dek{font:italic 400 1.15rem/1.5 var(--text);color:var(--steel);margin:.9rem 0 0}
.sec-head .intro{margin:1rem 0 0;color:#2A3A4A;max-width:40em}
.sec-head.wide{max-width:46rem;margin-bottom:var(--s4)}
.split{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(2rem,6vw,6rem);align-items:start}
.split>.sec-head{position:sticky;top:110px}
.split>.sec-head h2::after,.sec-head.wide h2::after,.media .sec-head h2::after{content:"";display:block;width:3rem;height:4px;background:var(--orange);margin-top:1.1rem}
.prose{max-width:38em}
.prose p:last-child{margin-bottom:0}
.prose a{font-weight:500}
.prose strong{font-weight:650}

.media{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(2rem,6vw,5.5rem);align-items:center}
.media.flip .media-fig{order:2}
.media-fig{margin:0}
.media-fig img{width:100%;border-radius:10px}
.media .sec-head{margin-bottom:var(--s3)}

.cards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2.75rem 2.5rem}
.cards-many{grid-template-columns:repeat(4,minmax(0,1fr));gap:2.25rem 2rem}
.card{border-top:2px solid var(--navy);padding-top:1.1rem}
.card h3{margin-bottom:.6rem}
.card p{font-size:1.02rem;line-height:1.6;color:#2E3D4C;margin:0}
.card-link{position:relative}
.card-link h3 a{text-decoration:none;color:var(--navy)}
.card-link h3 a::after{content:"";position:absolute;inset:0}
.card-link:hover{border-top-color:var(--orange)}
.card-link:hover h3 a{text-decoration:underline;text-decoration-color:var(--orange)}

.steps-sec{background:var(--navy);color:#DCE7F0}
.steps-sec h2,.steps-sec h3{color:var(--white)}
.steps-sec .dek,.steps-sec .intro{color:#A9C0D3}
.steps-side{position:sticky;top:110px}
.split>.steps-side>.sec-head{position:static}
.steps-fig{margin:2.25rem 0 0}
.steps-fig img{width:100%;border-radius:10px;opacity:.95}
.final.has-bg{background:var(--night)}
.final-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(1) blur(1.5px);opacity:.22;mix-blend-mode:luminosity}
.final.has-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--night) 0%,rgba(0,26,51,.55) 60%,rgba(0,26,51,.8) 100%)}
.final.has-bg .final-in{z-index:1}
.steps{list-style:none;margin:0;padding:0;counter-reset:s}
.steps li{display:grid;grid-template-columns:4.5rem 1fr;gap:1.25rem;padding:1.6rem 0;border-top:1px solid rgba(255,255,255,.18)}
.steps li:first-child{border-top:0;padding-top:0}
.step-n{font:780 2.6rem/1 var(--display);color:var(--orange);letter-spacing:-.04em}
.steps h3{margin:.35rem 0 .5rem}
.steps p{margin:0;font-size:1.05rem}

.band{background:var(--orange);color:var(--night)}
.band-in{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding-top:clamp(2.2rem,4vw,3.2rem);padding-bottom:clamp(2.2rem,4vw,3.2rem)}
.band p{font:650 clamp(1.3rem,2.3vw,1.85rem)/1.25 var(--display);letter-spacing:-.015em;margin:0;max-width:30em}
.band .btn-primary{background:var(--night);color:var(--white);flex:none}
.band .btn-primary:hover{background:var(--navy)}

.faq details{border-top:1px solid var(--rule)}
.faq details:last-child{border-bottom:1px solid var(--rule)}
.faq summary{display:flex;justify-content:space-between;align-items:center;gap:1.5rem;padding:1.3rem 0;cursor:pointer;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary h3{font-size:1.15rem;font-weight:620}
.faq summary:hover h3{color:var(--orange-ink)}
.pm{position:relative;width:1.1rem;height:1.1rem;flex:none}
.pm::before,.pm::after{content:"";position:absolute;left:0;right:0;top:50%;height:2px;margin-top:-1px;background:var(--orange-ink);transition:transform .2s}
.pm::after{transform:rotate(90deg)}
.faq details[open] .pm::after{transform:rotate(0)}
.ans{padding:0 2.5rem 1.4rem 0;color:#2E3D4C}
.ans p{margin:0}

.gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}
.gallery figure{margin:0}
.gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px}
.gallery figcaption{font:500 .9rem/1.4 var(--display);color:var(--steel);margin-top:.7rem}

.related{border-top:1px solid var(--rule)}
.rel{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.25rem}
.rel a{display:flex;flex-direction:column;height:100%;padding:1.4rem 1.3rem 1.5rem;border:1px solid var(--rule);border-radius:10px;text-decoration:none;color:var(--ink);transition:border-color .15s,background-color .15s}
.rel a:hover{border-color:var(--navy);background:var(--ice)}
.rel-cluster{font:600 .82rem/1 var(--display);color:var(--orange-ink);margin-bottom:.7rem}
.rel-name{font:700 1.3rem/1.15 var(--display);color:var(--navy);letter-spacing:-.015em;margin-bottom:.6rem}
.rel-desc{font-size:.98rem;line-height:1.55;color:var(--steel)}

.final{background:var(--night);color:#C9D8E5;padding:var(--s6) 0;position:relative;overflow:hidden}
.final::before{content:"";position:absolute;right:-8rem;top:-8rem;width:26rem;height:26rem;border:3.5rem solid var(--navy);border-radius:50%}
.final-in{position:relative;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(2rem,6vw,5rem);align-items:end}
.final h2{color:var(--white);font-size:clamp(2.2rem,4.4vw,3.6rem);line-height:1}
.final p{font-size:1.15rem}

/* contact */
.contact-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(2rem,6vw,5rem)}
.contact-cards{display:grid;gap:1rem}
.ccard{display:grid;gap:.35rem;padding:1.5rem 1.6rem;border:1px solid var(--rule);border-radius:10px;text-decoration:none;color:var(--ink)}
.ccard:hover{border-color:var(--navy);background:var(--ice);color:var(--ink)}
.ccard-main{background:var(--navy);border-color:var(--navy);color:#C9D8E5}
.ccard-main:hover{background:var(--night);color:#C9D8E5}
.ccard-main .cv{color:var(--white);font-size:clamp(2rem,4vw,3rem)}
.cl{font:600 .9rem/1 var(--display);color:var(--orange-ink)}
.ccard-main .cl{color:var(--orange)}
.cv{font:720 1.45rem/1.15 var(--display);color:var(--navy);letter-spacing:-.02em;overflow-wrap:anywhere}
.cn{font-size:1rem;color:var(--steel)}
.ccard-main .cn{color:#A9C0D3}
.contact-side h2{font-size:1.4rem;margin:0 0 1rem}
.contact-side h2+*{margin-bottom:2.25rem}
.hours{border-collapse:collapse;width:100%;font-family:var(--display)}
.hours th,.hours td{text-align:left;padding:.65rem 0;border-bottom:1px solid var(--rule);font-weight:500}
.hours td{text-align:right;color:var(--navy);font-weight:650}
.ticks{list-style:none;padding:0;margin:0}
.ticks li{padding-left:1.6rem;position:relative;margin-bottom:.6rem}
.ticks li::before{content:"";position:absolute;left:0;top:.55em;width:.7rem;height:.7rem;background:var(--orange)}
.svc-list{list-style:none;margin:0;padding:0;columns:3 15rem;column-gap:2.5rem}
.svc-list li{break-inside:avoid;border-top:1px solid var(--rule)}
.svc-list a{display:block;padding:.8rem 0;font:600 1.05rem/1.3 var(--display);text-decoration:none}
.svc-list a:hover{color:var(--orange-ink)}
.doc{max-width:42em}
.doc h2{font-size:1.6rem;margin:2.2rem 0 .8rem}
.doc h3{margin:1.6rem 0 .6rem}

/* ---------- footer */
.site-footer{background:var(--night);color:#A9C0D3;border-top:1px solid rgba(255,255,255,.08)}
.footer-top{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:clamp(2rem,6vw,5rem);padding-top:var(--s5);padding-bottom:var(--s5)}
.fbig{font:700 1.6rem/1.2 var(--display);color:var(--white);letter-spacing:-.02em;margin:0 0 1.5rem}
.site-footer address{font-style:normal;margin-top:1.75rem;font-size:1rem;line-height:1.7}
.site-footer a{color:#DCE7F0;text-decoration:none}
.site-footer a:hover{color:var(--orange)}
.site-footer .btn-primary{color:var(--night)}
.fnav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.5rem}
.fhead{font:650 .95rem/1 var(--display);color:var(--orange);margin:0 0 1rem}
.fcol ul{list-style:none;margin:0;padding:0}
.fcol li{margin:0 0 .55rem;font:500 .95rem/1.3 var(--display)}
.footer-base{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding-top:1.25rem;padding-bottom:1.5rem;border-top:1px solid rgba(255,255,255,.12);font:500 .88rem/1.3 var(--display)}
.footer-base p{margin:0}
.footer-base a{margin-left:1.25rem}

/* ---------- responsive */
@media (max-width:1100px){
  .cards-many{grid-template-columns:repeat(3,minmax(0,1fr))}
  .rel{grid-template-columns:repeat(2,minmax(0,1fr))}
  .fnav{grid-template-columns:repeat(2,minmax(0,1fr))}
  .footer-top{grid-template-columns:1fr}
}
@media (max-width:1020px){
  .utility p+p{display:none}
  .btn-call span{display:none}
  .btn-call{padding:.8rem;margin-left:auto}
  .menu-toggle{display:grid;place-items:center;width:46px;height:46px;border:1px solid var(--rule);border-radius:6px;background:var(--white);cursor:pointer}
  .menu-toggle>span:first-child,.menu-toggle>span:first-child::before,.menu-toggle>span:first-child::after{display:block;width:20px;height:2px;background:var(--navy);position:relative;transition:transform .2s}
  .menu-toggle>span:first-child::before,.menu-toggle>span:first-child::after{content:"";position:absolute;left:0}
  .menu-toggle>span:first-child::before{top:-6px}.menu-toggle>span:first-child::after{top:6px}
  .menu-toggle[aria-expanded="true"]>span:first-child{background:transparent}
  .menu-toggle[aria-expanded="true"]>span:first-child::before{transform:translateY(6px) rotate(45deg)}
  .menu-toggle[aria-expanded="true"]>span:first-child::after{transform:translateY(-6px) rotate(-45deg)}
  .nav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--white);border-bottom:1px solid var(--rule);max-height:calc(100vh - 80px);overflow:auto;padding:.5rem var(--gut) 1.5rem;box-shadow:0 20px 30px -20px rgba(0,26,51,.3)}
  .nav.open{display:block}
  .nav-list{flex-direction:column;align-items:stretch}
  .nav summary,.nav-link{justify-content:space-between;padding:1rem .25rem;font-size:1.08rem;border-bottom:1px solid var(--ice);border-radius:0}
  .nav details[data-active] summary,.nav-link[aria-current]{box-shadow:none;color:var(--orange-ink)}
  .nav-menu{position:static;box-shadow:none;border:0;padding:.25rem 0 .75rem .75rem;min-width:0}
  .hero-grid,.split,.media,.final-in,.contact-grid{grid-template-columns:1fr}
  .split>.sec-head,.steps-side{position:static}
  .media.flip .media-fig{order:0}
  .hero-media{margin-bottom:4.5rem}
  .serp{left:1rem;right:1rem}
  .cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .band-in{flex-direction:column;align-items:flex-start}
}
@media (max-width:640px){
  body{font-size:1.075rem}
  .utility{display:none}
  .site-header .wrap{min-height:66px;gap:.75rem}
  .logo img{width:200px}
  .cards,.cards-many,.rel,.gallery{grid-template-columns:1fr}
  .steps li{grid-template-columns:3.2rem 1fr}
  .step-n{font-size:2rem}
  .fnav{grid-template-columns:1fr 1fr}
  .footer-base a{margin:0 1rem 0 0}
  .ans{padding-right:0}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
}
@media print{.utility,.site-header,.band,.final,.site-footer,.related{display:none}}
