:root{
  --navy:#1d285d;
  --navy-deep:#111b48;
  --blue:#29437d;
  --red:#ed1c24;
  --paper:#ffffff;
  --mist:#f1f3f8;
  --mist-deep:#e4e8f1;
  --ink:#202938;
  --body:#46536a;
  --muted:#6d7789;
  --line:#dce1e9;
  --shadow:0 18px 46px rgba(17,27,72,.16);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--mist);
  color:var(--body);
  font-family:"Avenir Next",Avenir,"Segoe UI",Arial,sans-serif;
  font-size:16px;
  line-height:1.58;
  -webkit-font-smoothing:antialiased;
}
a{color:var(--navy)}
img{display:block;max-width:100%}
.wrap{width:min(1140px,calc(100% - 48px));margin-inline:auto}
.site-shell{min-height:100vh;background:var(--paper);overflow:hidden}

/* Information masthead */
.site-header{position:relative;z-index:20;background:#fff}
.nav{width:100%}
.header-main{
  width:min(1140px,calc(100% - 48px));
  min-height:146px;
  margin-inline:auto;
  display:grid;
  grid-template-columns:minmax(300px,1.45fr) minmax(205px,.85fr) minmax(175px,.72fr) minmax(175px,.72fr);
  align-items:center;
  gap:29px;
  padding:25px 0 23px;
}
.brand{display:block;width:min(395px,100%)}
.brand img{width:100%;height:auto}
.header-quick-link{display:none}
.header-detail,.header-contact{display:flex;align-items:flex-start;gap:12px;color:var(--ink)}
.header-icon,.phone-mark{
  flex:0 0 31px;
  width:31px;
  height:31px;
  display:inline-grid;
  place-items:center;
  color:var(--red);
  font-size:1.4rem;
  line-height:1;
}
.header-detail strong,.header-contact .label{
  display:block;
  color:var(--ink);
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
  margin-bottom:3px;
}
.header-detail address,.header-detail .header-value{display:block;color:#3f4654;font-size:.83rem;font-style:normal;line-height:1.34}
.header-contact{justify-content:flex-end;text-align:left}
.header-contact a{color:var(--ink);font-size:1.01rem;font-weight:700;line-height:1.35;text-decoration:none;white-space:nowrap}
.header-contact a:hover{color:var(--red)}
.navlinks{
  display:flex;
  width:min(1140px,100%);
  min-height:68px;
  margin-inline:auto;
  background:var(--navy);
  box-shadow:0 0 0 100vmax var(--navy);
  clip-path:inset(0 -100vmax);
}
.navlinks a{
  display:flex;
  align-items:center;
  justify-content:center;
  color:#fff;
  font-size:.85rem;
  font-weight:800;
  letter-spacing:.035em;
  text-decoration:none;
  text-transform:uppercase;
  padding:18px 25px;
  border-bottom:4px solid transparent;
}
.navlinks a:first-child{background:var(--red)}
.navlinks a:hover,.navlinks a[aria-current="page"]{background:#273773;border-bottom-color:#fff}
.navlinks a:first-child:hover,.navlinks a:first-child[aria-current="page"]{background:#c90f17}

/* Image-led homepage hero */
.hero{
  position:relative;
  color:#fff;
  background:
    linear-gradient(90deg,rgba(10,18,50,.88) 0%,rgba(10,18,50,.66) 45%,rgba(10,18,50,.13) 78%,rgba(10,18,50,.08) 100%),
    url("hero-community-sunset.webp") center/cover no-repeat;
}
.hero:after{content:"";position:absolute;inset:auto 0 0;height:125px;background:linear-gradient(0deg,rgba(9,16,43,.4),transparent);pointer-events:none}
.hero .wrap{position:relative;z-index:1;display:block;min-height:610px;padding:94px 0 155px}
.hero-menu{display:none}
.hero-copy{width:min(650px,62%);padding:0;background:none}
.kicker,.eyebrow{color:var(--red);font-size:.74rem;font-weight:850;letter-spacing:.13em;text-transform:uppercase}
.hero h1{
  color:#fff;
  font-size:3.55rem;
  font-weight:300;
  letter-spacing:-.035em;
  line-height:1.08;
  margin:11px 0 22px;
}
.hero h1:after{content:"";display:block;width:62px;height:4px;background:var(--red);margin-top:27px}
.hero .sub{color:#fff;font-size:1.15rem;line-height:1.55;margin:0;max-width:600px}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:29px}
.cta{
  display:inline-flex;
  min-height:50px;
  align-items:center;
  justify-content:center;
  background:#fff;
  color:var(--navy);
  border:1px solid transparent;
  border-radius:3px;
  font-size:.78rem;
  font-weight:850;
  letter-spacing:.09em;
  text-decoration:none;
  text-transform:uppercase;
  padding:14px 25px;
}
.cta.red{background:var(--red);color:#fff}
.cta.blue{background:var(--navy);color:#fff}
.cta.light{background:#fff;color:var(--red)}
.cta:hover{transform:translateY(-1px);filter:brightness(.96)}

/* Featured service panels */
.featured-services{position:relative;z-index:4;background:var(--mist);padding:0 0 66px}
.featured-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  background:#fff;
  box-shadow:var(--shadow);
  transform:translateY(-90px);
  margin-bottom:-90px;
}
.featured-card{display:flex;flex-direction:column;min-height:292px;color:inherit;text-decoration:none;padding:34px 29px 30px;border-right:1px solid var(--line)}
.featured-card:last-child{border-right:0}
.featured-card .service-type{color:var(--red);font-size:.7rem;font-weight:850;letter-spacing:.13em;text-transform:uppercase}
.featured-card h2{color:var(--ink);font-size:1.65rem;line-height:1.2;margin:9px 0 17px}
.featured-card h2:after{content:"";display:block;width:35px;height:4px;background:var(--red);margin-top:16px}
.featured-card p{color:var(--body);font-size:.91rem;margin:0 0 22px}
.featured-card .arrow{margin-top:auto}
.featured-card:hover{background:#fafbfe}

/* Shared sections */
.section{background:#fff;padding:70px 0}
.section.soft{background:var(--mist)}
.section h2,.page-hero h1,.content h2{color:var(--ink);font-weight:750;letter-spacing:-.025em;line-height:1.17}
.section h2{font-size:2.45rem;margin:7px 0 17px}
.lead{color:#58667a;font-size:1.07rem;max-width:880px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);margin-top:36px;border:1px solid var(--line)}
.panel{background:#fff;padding:30px 27px}
.panel .num{color:var(--red);font-size:.73rem;font-weight:850;letter-spacing:.12em}
.panel h3,.service h3,.loc-card h3{color:var(--ink)}
.panel h3{font-size:1.15rem;margin:9px 0 8px}
.panel p,.service p,.loc-body p{color:#5a687c}
.services{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:31px}
.service{display:block;background:#fff;border:1px solid var(--line);border-top:4px solid var(--navy);color:inherit;text-decoration:none;padding:25px 23px;box-shadow:0 8px 24px rgba(17,27,72,.05)}
.service:hover{border-top-color:var(--red);transform:translateY(-3px);box-shadow:0 14px 32px rgba(17,27,72,.1)}
.service h3{font-size:1.06rem;margin:0 0 9px}
.service p{font-size:.92rem;margin:0}
.loc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:33px}
.loc-card{display:block;background:#fff;border:1px solid var(--line);box-shadow:0 8px 25px rgba(17,27,72,.06);color:inherit;text-decoration:none}
.loc-card:hover{transform:translateY(-3px);box-shadow:0 15px 33px rgba(17,27,72,.12)}
.loc-top{min-height:120px;background:var(--navy);border-bottom:5px solid var(--red);color:#fff;padding:24px 23px 20px}
.loc-top .state{color:#cbd3f1;font-size:.67rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase}
.loc-top h3{color:#fff;font-size:1.56rem;margin:7px 0 0}
.loc-body{padding:22px 23px 25px}
.loc-body strong{color:var(--ink)}
.arrow{display:inline-flex;align-items:center;color:var(--ink);font-size:.82rem;font-weight:850;text-transform:uppercase;letter-spacing:.035em;margin-top:10px}
.arrow:after{content:"→";color:var(--red);font-size:1.15rem;margin-left:8px}
.dark-cta{background:var(--navy);border-top:5px solid var(--red);color:#fff;padding:51px 0}
.dark-cta .wrap{display:grid;grid-template-columns:1.5fr auto;align-items:center;gap:34px}
.dark-cta h2{font-size:2.05rem;line-height:1.2;margin:5px 0 9px}
.dark-cta p{color:#d1d8ed;margin:0}
.dark-cta .eyebrow{color:#ff8a8f!important}

/* Interior pages */
.page-hero{position:relative;overflow:hidden;background:linear-gradient(120deg,var(--navy-deep),var(--navy));border-bottom:5px solid var(--red);color:#fff;padding:51px 0 55px}
.page-hero:after{content:"";position:absolute;right:-100px;top:-150px;width:390px;height:390px;border:1px solid rgba(255,255,255,.1);border-radius:50%}
.page-hero .wrap{position:relative;z-index:1}
.breadcrumbs{color:#bac5e5;font-size:.76rem;font-weight:750;margin-bottom:13px}
.breadcrumbs a{color:#fff;text-decoration:none}
.page-hero .eyebrow{color:#ff9a9e}
.page-hero h1{color:#fff;font-size:2.75rem;margin:7px 0 13px;max-width:900px}
.page-hero .lead{color:#dbe1f2;margin:0;max-width:920px}
.two-col{display:grid;grid-template-columns:minmax(0,1.62fr) minmax(280px,.66fr);gap:49px;align-items:start}
.content h2{font-size:2.05rem;margin:0 0 16px}
.content h2:not(:first-child){margin-top:42px}
.content h3{color:var(--red);font-size:1.15rem;margin-top:29px}
.content p{color:#45546b}
.sidebar{position:sticky;top:24px}
.contactbox{background:var(--navy);border-top:5px solid var(--red);box-shadow:var(--shadow);color:#fff;padding:28px 26px}
.contactbox h3{color:#fff;font-size:1.6rem;margin:0 0 14px}
.contactbox p{color:#d7dded}
.contactbox a{color:#fff;overflow-wrap:anywhere}
.contactbox .detail{padding:12px 0;border-bottom:1px solid rgba(255,255,255,.15)}
.contactbox .detail:last-of-type{border-bottom:0}
.contactbox .address{color:#fff}
.pills{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.pill{background:#edf1f8;border:1px solid #ced6e5;color:var(--navy);font-size:.78rem;font-weight:800;padding:7px 10px}
.checks{display:grid;grid-template-columns:1fr 1fr;gap:9px 24px;list-style:none;padding:0}
.checks li{position:relative;padding-left:22px}
.checks li:before{content:"✓";position:absolute;left:0;color:var(--red);font-weight:900}
.notice{background:#fff6f6;border:1px solid #f1d2d4;border-left:5px solid var(--red);color:#3f4d61;padding:18px 19px;margin:26px 0}
.jurisdiction-note{background:var(--mist);border-left:4px solid var(--red);color:var(--ink)!important;padding:14px 16px;margin:22px 0}
.faq{margin-top:45px}
.faq details{border-top:1px solid var(--line);padding:17px 0}
.faq summary{color:var(--ink);font-weight:800;cursor:pointer}
.faq details p{margin-bottom:0}

/* Footer */
.footer{background:var(--navy-deep);border-top:5px solid var(--red);color:#ccd4e9;padding:51px 0 25px}
.footer-grid{display:grid;grid-template-columns:1.65fr .9fr .9fr 1.1fr;gap:36px}
.footer-logo{width:330px;max-width:100%;height:auto;background:transparent!important;border:0!important;padding:0!important;box-shadow:none!important}
.footer h4{color:#fff;font-size:.78rem;letter-spacing:.09em;text-transform:uppercase;margin:4px 0 14px}
.footer p{margin-top:10px}
.footer a{color:#e7eaf5;text-decoration:none}
.footer a:hover{text-decoration:underline}
.footer .address{color:#ccd4e9}
.disclaimer{border-top:1px solid rgba(255,255,255,.15);color:#aeb8d2;font-size:.75rem;line-height:1.56;margin-top:34px;padding-top:21px}
.address{font-style:normal;line-height:1.42;margin:0}
.address .street,.address .locality{display:block}

@media(prefers-reduced-motion:no-preference){
  .cta,.featured-card,.service,.loc-card{transition:transform .18s ease,box-shadow .18s ease,background .18s ease,border-color .18s ease,filter .18s ease}
}

@media(max-width:1020px){
  .header-main{grid-template-columns:minmax(290px,1.25fr) 1fr 1fr;gap:22px}
  .header-main .header-detail:nth-of-type(2){display:none}
  .navlinks a{padding-inline:18px}
  .hero-copy{width:min(650px,70%)}
  .services,.loc-grid{grid-template-columns:1fr 1fr}
  .footer-grid{grid-template-columns:1.3fr 1fr 1fr}
  .footer-grid>div:last-child{grid-column:1/-1}
}

@media(max-width:760px){
  .wrap{width:calc(100% - 32px)}
  .header-main{width:calc(100% - 32px);grid-template-columns:1fr 1fr;min-height:auto;padding:21px 0}
  .brand{grid-column:1/-1;width:min(390px,100%)}
  .header-contact{justify-content:flex-start}
  .navlinks{display:grid;grid-template-columns:repeat(3,1fr)}
  .navlinks a{min-height:50px;font-size:.76rem;padding:12px 8px}
  .hero .wrap{min-height:570px;padding:72px 0 150px}
  .hero-copy{width:72%}
  .hero h1{font-size:2.85rem}
  .hero .sub{font-size:1rem}
  .featured-grid{grid-template-columns:1fr;transform:translateY(-68px);margin-bottom:-68px}
  .featured-card{min-height:auto;border-right:0;border-bottom:1px solid var(--line)}
  .featured-card:last-child{border-bottom:0}
  .grid3{grid-template-columns:1fr}
  .two-col,.dark-cta .wrap{grid-template-columns:1fr}
  .sidebar{position:static}
  .footer-grid{grid-template-columns:1fr 1fr}
  .footer-grid>div:last-child{grid-column:auto}
}

@media(max-width:520px){
  .header-main{display:block}
  .header-detail{margin-top:18px}
  .header-main .header-detail:nth-of-type(1){display:none}
  .header-contact{margin-top:15px}
  .navlinks{grid-template-columns:1fr 1fr}
  .hero{background-position:60% center}
  .hero .wrap{min-height:590px;padding:65px 0 155px}
  .hero-copy{width:100%}
  .hero h1{font-size:2.45rem}
  .hero .sub{max-width:88%}
  .hero-actions{display:block}
  .hero-actions .cta{width:100%;margin-top:8px}
  .featured-services{padding-bottom:49px}
  .section{padding:52px 0}
  .section h2{font-size:2rem}
  .services,.loc-grid,.checks,.footer-grid{grid-template-columns:1fr}
  .page-hero{padding:40px 0 44px}
  .page-hero h1{font-size:2.13rem}
  .footer-grid>div:last-child{grid-column:auto}
  .footer-logo{width:290px}
}
