@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@600;800&family=Barlow:wght@400;500;600&display=swap');

:root{
  --navy:#17263B; --navy-deep:#0F1A2B; --amber:#F2A81D; --amber-dark:#D48E0C;
  --white:#FFFFFF; --pale:#F1F3F6; --line:#D9DEE5; --slate:#5B6675; --ink:#1B2430;
  --max:1120px; --radius:6px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Barlow',system-ui,sans-serif;color:var(--ink);background:var(--white);line-height:1.55;font-size:17px}
img{max-width:100%;display:block}
a{color:var(--navy)}
h1,h2,h3,h4{font-family:'Barlow Condensed',sans-serif;font-weight:800;line-height:1.02;letter-spacing:-.01em;color:var(--navy)}
h1{font-size:clamp(2.6rem,7vw,4.8rem)}
h2{font-size:clamp(2rem,4.5vw,3.1rem);margin-bottom:.6rem}
h3{font-size:1.5rem;margin-bottom:.35rem}
p{max-width:64ch}
.wrap{max-width:var(--max);margin:0 auto;padding:0 20px}
.section{padding:72px 0}
.section.pale{background:var(--pale)}
.section.navy{background:var(--navy);color:var(--white)}
.section.navy h2,.section.navy h3{color:var(--white)}
.lead{font-size:1.2rem;color:var(--slate);max-width:60ch}
.section.navy .lead{color:#C9D2E0}

/* top bar + nav */
.topbar{background:var(--navy-deep);color:#C9D2E0;font-size:.95rem;padding:7px 0}
.topbar .wrap{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
.topbar a{color:var(--white);font-weight:600;text-decoration:none}
header.nav{background:var(--white);border-bottom:3px solid var(--amber);position:sticky;top:0;z-index:50}
header.nav .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:76px}
.brand{font-family:'Barlow Condensed',sans-serif;font-weight:800;font-size:1.7rem;text-decoration:none;color:var(--navy);line-height:1}
.brand span{display:block;font-size:.85rem;font-weight:600;color:var(--slate);font-family:'Barlow',sans-serif;letter-spacing:0}
nav ul{list-style:none;display:flex;gap:26px;align-items:center}
nav a{text-decoration:none;font-weight:600;color:var(--navy);padding:6px 0;border-bottom:2px solid transparent}
nav a:hover,nav a[aria-current="page"]{border-bottom-color:var(--amber)}
.menu-btn{display:none;background:none;border:2px solid var(--navy);border-radius:var(--radius);padding:8px 12px;font:600 1rem 'Barlow',sans-serif;color:var(--navy)}

/* buttons */
.btn{display:inline-block;padding:15px 26px;border-radius:var(--radius);font-weight:600;text-decoration:none;font-size:1.05rem;border:2px solid transparent;cursor:pointer;font-family:'Barlow',sans-serif}
.btn.amber{background:var(--amber);color:var(--navy-deep);border-color:var(--amber)}
.btn.amber:hover{background:var(--amber-dark);border-color:var(--amber-dark)}
.btn.outline{background:transparent;color:var(--navy);border-color:var(--navy)}
.btn.outline:hover{background:var(--navy);color:var(--white)}
.section.navy .btn.outline{color:var(--white);border-color:var(--white)}
.section.navy .btn.outline:hover{background:var(--white);color:var(--navy)}
.btn.big{font-size:1.25rem;padding:18px 32px}
:focus-visible{outline:3px solid var(--amber);outline-offset:3px}

/* hero */
.hero{background:var(--navy);color:var(--white);padding:80px 0 70px;position:relative;overflow:hidden}
.hero::after{content:"";position:absolute;right:-8%;top:-20%;width:44%;height:160%;background:repeating-linear-gradient(-45deg,var(--amber) 0 22px,var(--navy) 22px 44px);opacity:.14;transform:skewX(-8deg);pointer-events:none}
.hero .wrap{position:relative;z-index:1}
.hero h1{color:var(--white);max-width:14ch}
.hero .lead{margin-top:18px;color:#C9D2E0}
.hero .phone{display:inline-block;margin-top:28px;font-family:'Barlow Condensed',sans-serif;font-weight:800;font-size:clamp(2rem,6vw,3.6rem);color:var(--amber);text-decoration:none;line-height:1}
.hero .phone small{display:block;font-family:'Barlow',sans-serif;font-size:1rem;font-weight:500;color:#C9D2E0;margin-bottom:6px}
.hero .actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:26px}
.hero .proof{margin-top:38px;display:flex;flex-wrap:wrap;gap:10px 28px;font-weight:500;color:#C9D2E0}
.hero .proof li{list-style:none;padding-left:22px;position:relative}
.hero .proof li::before{content:"";position:absolute;left:0;top:9px;width:12px;height:12px;background:var(--amber);transform:rotate(45deg)}

/* grids */
.grid{display:grid;gap:22px}
.grid.two{grid-template-columns:repeat(2,1fr)}
.grid.three{grid-template-columns:repeat(3,1fr)}
.grid.four{grid-template-columns:repeat(4,1fr)}
.card{background:var(--white);border:1px solid var(--line);border-top:5px solid var(--navy);padding:26px 24px;border-radius:0 0 var(--radius) var(--radius)}
.card.amber{border-top-color:var(--amber)}
.card p{color:var(--slate)}
.card ul{margin:12px 0 0 18px;color:var(--slate)}
.card ul li{margin-bottom:4px}

/* steps */
.steps{counter-reset:step;list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.steps li{counter-increment:step;padding-top:14px;border-top:3px solid var(--amber)}
.steps li::before{content:"Step " counter(step);display:block;font-family:'Barlow Condensed',sans-serif;font-weight:800;font-size:1.1rem;color:var(--amber-dark);margin-bottom:6px}
.steps h3{margin-bottom:6px}
.steps p{color:var(--slate)}

/* towns */
.towns{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px 18px;margin-top:18px}
.towns li{padding:8px 0;border-bottom:1px solid var(--line);font-weight:500}

/* reviews */
.review{background:var(--white);border:1px solid var(--line);padding:26px;border-radius:var(--radius);display:flex;flex-direction:column;gap:12px}
.stars{color:var(--amber);letter-spacing:2px;font-size:1.1rem}
.review blockquote{font-size:1.08rem;line-height:1.5}
.review cite{font-style:normal;font-weight:600;color:var(--navy)}
.review cite span{display:block;font-weight:400;color:var(--slate);font-size:.95rem}
.note{background:#FFF6E3;border-left:4px solid var(--amber);padding:12px 16px;font-size:.98rem;color:#5A4200;margin-top:18px;max-width:none}
.rating-summary{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin:22px 0}
.rating-summary .num{font-family:'Barlow Condensed',sans-serif;font-weight:800;font-size:4rem;color:var(--navy);line-height:1}

/* forms */
form.quote{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;background:var(--white);border:1px solid var(--line);padding:30px;border-radius:var(--radius)}
form.quote .full{grid-column:1/-1}
label{display:block;font-weight:600;margin-bottom:6px;color:var(--navy)}
label small{font-weight:400;color:var(--slate)}
input,select,textarea{width:100%;padding:13px 14px;border:1.5px solid #B9C2CE;border-radius:var(--radius);font:inherit;background:var(--white);color:var(--ink)}
input:focus,select:focus,textarea:focus{border-color:var(--navy);outline:none;box-shadow:0 0 0 3px rgba(242,168,29,.35)}
textarea{min-height:130px;resize:vertical}
.check{display:flex;gap:10px;align-items:flex-start;font-weight:500}
.check input{width:auto;margin-top:5px}
fieldset{border:0;padding:0}
fieldset legend{font-weight:600;color:var(--navy);margin-bottom:8px}
.dates{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}

/* faq */
details{border-bottom:1px solid var(--line);padding:14px 0}
summary{cursor:pointer;font-weight:600;font-size:1.1rem;color:var(--navy);list-style:none;display:flex;justify-content:space-between;gap:12px}
summary::after{content:"+";font-family:'Barlow Condensed',sans-serif;font-size:1.6rem;line-height:1;color:var(--amber-dark)}
details[open] summary::after{content:"–"}
details p{margin-top:10px;color:var(--slate)}

/* CTA band */
.band{background:var(--amber);padding:46px 0}
.band .wrap{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}
.band h2{color:var(--navy-deep);margin:0}
.band p{color:#3A2D0A;font-weight:500}
.band .btn.outline{color:var(--navy-deep);border-color:var(--navy-deep)}
.band .btn.outline:hover{background:var(--navy-deep);color:var(--white)}

/* footer */
footer{background:var(--navy-deep);color:#C9D2E0;padding:54px 0 110px;font-size:.98rem}
footer .grid.three{gap:34px}
footer h4{color:var(--white);font-size:1.35rem;margin-bottom:10px}
footer a{color:var(--white)}
footer ul{list-style:none}
footer li{margin-bottom:6px}
footer .legal{margin-top:36px;padding-top:18px;border-top:1px solid #2A3A54;font-size:.9rem;color:#8E9BB0}

/* sticky call bar (mobile) */
.callbar{display:none;position:fixed;left:0;right:0;bottom:0;z-index:60;background:var(--navy);border-top:3px solid var(--amber);padding:10px 12px;gap:10px}
.callbar a{flex:1;text-align:center;padding:13px 8px;font-size:1.05rem}

@media (max-width:900px){
  .grid.three,.grid.four,.steps{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:680px){
  .section{padding:52px 0}
  .grid.two,.grid.three,.grid.four,.steps,form.quote,.dates{grid-template-columns:1fr}
  nav ul{display:none;position:absolute;left:0;right:0;top:100%;background:var(--white);flex-direction:column;align-items:stretch;gap:0;border-bottom:3px solid var(--amber);padding:8px 20px 16px}
  nav ul.open{display:flex}
  nav a{display:block;padding:12px 0;border-bottom:1px solid var(--line)}
  .menu-btn{display:block}
  .callbar{display:flex}
  .topbar .desk{display:none}
  .hero{padding:56px 0 50px}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.hero .btn.outline{color:var(--white);border-color:var(--white)}
.hero .btn.outline:hover{background:var(--white);color:var(--navy)}
