@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;700;800&family=Newsreader:ital,opsz,wght@1,6..72,400;1,6..72,500&display=swap');

:root{
  --navy:#0d2238;
  --navy-2:#153452;
  --navy-3:#1d4568;
  --orange:#ef7339;
  --orange-2:#d85f25;
  --sky:#bfe2f2;
  --paper:#f7f3ec;
  --cream:#fffaf4;
  --white:#ffffff;
  --ink:#172433;
  --muted:#637180;
  --line:#d9ddd8;
  --shadow:0 24px 54px rgba(13,34,56,.14);
  --shadow-strong:0 18px 44px rgba(13,34,56,.22);
  --sans:'DM Sans', Arial, sans-serif;
  --serif:'Newsreader', Georgia, serif;
}

*,
*::before,
*::after{box-sizing:border-box}

html{scroll-behavior:smooth}
body{
  margin:0;
  color:var(--ink);
  background:var(--paper);
  font-family:var(--sans);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

body.menu-open{overflow:hidden}
img{display:block;max-width:100%;width:100%}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}

.container{
  width:min(1180px, calc(100% - 44px));
  margin-inline:auto;
}

.section{padding:104px 0}

.sr-only{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  border:0;
}

.skip-link{
  position:fixed;
  top:-60px;
  left:16px;
  z-index:999;
  padding:12px 16px;
  color:#fff;
  background:var(--orange);
  border-radius:999px;
}
.skip-link:focus{top:16px}

:focus-visible{
  outline:3px solid var(--sky);
  outline-offset:3px;
}

.eyebrow{
  display:flex;
  align-items:center;
  gap:12px;
  margin:0 0 18px;
  color:var(--orange);
  font-size:11px;
  font-weight:800;
  letter-spacing:.2em;
  text-transform:uppercase;
}

.eyebrow span{
  width:34px;
  height:3px;
  display:inline-block;
  background:var(--orange);
}

.eyebrow--light{color:var(--sky)}
.eyebrow--light span{background:var(--sky)}

.announcement{
  color:#fff;
  background:var(--navy);
}
.announcement__inner{
  min-height:38px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  font-size:11px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.announcement__inner span{
  display:flex;
  align-items:center;
  gap:10px;
}
.pulse{
  width:11px;
  height:11px;
  border-radius:50%;
  background:#93df7b;
  box-shadow:0 0 0 6px rgba(147,223,123,.15);
}
.announcement__inner a{
  white-space:nowrap;
  color:#ffd7c8;
}

.site-header{
  position:relative;
  z-index:20;
  background:rgba(255,255,255,.97);
  border-bottom:1px solid rgba(13,34,56,.09);
}
.site-header.sticky{
  position:fixed;
  inset:0 0 auto;
  box-shadow:0 10px 30px rgba(13,34,56,.08);
  animation:drop .2s ease-out;
}
@keyframes drop{
  from{transform:translateY(-100%)}
  to{transform:translateY(0)}
}

.nav-wrap{
  min-height:84px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:26px;
}

.brand{
  display:inline-flex;
  align-items:center;
  gap:12px;
  min-width:0;
}

.brand__mark{
  width:54px;
  height:54px;
  flex:none;
}

.brand__text{
  display:flex;
  flex-direction:column;
  line-height:1;
  text-transform:uppercase;
}
.brand__text strong{
  font-size:20px;
  font-weight:800;
  letter-spacing:-.05em;
  color:var(--navy);
}
.brand__text small{
  margin-top:6px;
  font-size:10px;
  font-weight:800;
  letter-spacing:.34em;
  color:var(--orange-2);
}

.nav-toggle{
  display:none;
  width:46px;
  height:46px;
  padding:11px;
  border:0;
  background:transparent;
  cursor:pointer;
}
.nav-toggle span:not(.sr-only){
  display:block;
  height:2px;
  margin:5px 0;
  background:var(--navy);
  border-radius:999px;
  transition:transform .2s ease, opacity .2s ease;
}

.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

.primary-nav{
  display:flex;
  align-items:center;
  gap:24px;
  font-size:12px;
  font-weight:800;
  letter-spacing:.04em;
}
.primary-nav > a:not(.button):not(.nav-phone){
  position:relative;
  padding:30px 0;
}
.primary-nav > a:not(.button):not(.nav-phone)::after{
  content:'';
  position:absolute;
  left:0;
  right:100%;
  bottom:24px;
  height:2px;
  background:var(--orange);
  transition:right .2s ease;
}
.primary-nav > a:not(.button):not(.nav-phone):hover::after{right:0}

.nav-phone{
  display:flex;
  align-items:center;
  gap:10px;
  padding:12px 16px;
  color:var(--navy);
  background:#f3f7fa;
  border:1px solid #dde5eb;
  border-radius:14px;
}
.nav-phone__icon{
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  color:var(--white);
  background:var(--navy);
  border-radius:50%;
}
.nav-phone small{
  display:block;
  color:var(--muted);
  font-size:9px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.12em;
}

.button{
  min-height:52px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  padding:12px 22px;
  border:0;
  border-radius:3px;
  color:var(--white);
  background:var(--orange);
  font-size:11px;
  font-weight:800;
  letter-spacing:.05em;
  text-transform:uppercase;
  transition:transform .2s ease, background .2s ease, box-shadow .2s ease;
  box-shadow:none;
}
.button:hover{
  transform:translateY(-2px);
  background:var(--orange-2);
  box-shadow:var(--shadow-strong);
}
.button--small{
  min-height:46px;
  padding-inline:18px;
}
.button--full{width:100%}
.button--navy{background:var(--navy)}
.button--navy:hover{background:var(--navy-2)}
.button--coral{background:var(--orange)}
.button--coral:hover{background:var(--orange-2)}

.text-link{
  display:inline-flex;
  align-items:center;
  gap:10px;
  color:var(--navy);
  font-size:13px;
  font-weight:800;
}
.text-link--light{color:#fff}

.hero{
  position:relative;
  overflow:hidden;
  min-height:760px;
  color:#fff;
  background:var(--navy) url('assets/images/hero-roof.jpg') center/cover no-repeat;
}
.hero::before{
  content:'';
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg, rgba(8,24,39,.94) 0%, rgba(8,24,39,.87) 38%, rgba(8,24,39,.32) 70%, rgba(8,24,39,.14) 100%),
    linear-gradient(0deg, rgba(5,18,29,.18), rgba(5,18,29,.18));
}
.hero::after{
  content:'';
  position:absolute;
  inset:auto 0 0;
  height:170px;
  background:linear-gradient(180deg, rgba(247,243,236,0) 0%, rgba(247,243,236,.12) 100%);
}
.hero__content{
  position:relative;
  z-index:1;
  min-height:760px;
  display:flex;
  align-items:center;
  padding-block:96px 112px;
}
.hero__copy{
  width:min(700px, 63%);
}
.hero h1,
.section-heading h2,
.difference__copy h2,
.reviews__header h2,
.faq__grid h2,
.estimate__copy h2{
  margin:0;
  font-weight:800;
  letter-spacing:-.06em;
  line-height:.96;
  font-family:var(--sans);
}
.hero h1{
  font-size:clamp(56px, 6.6vw, 92px);
}
.hero h1 em,
.section-heading h2 em,
.difference__copy h2 em,
.reviews__header h2 em,
.faq__grid h2 em,
.estimate__copy h2 em{
  font-family:var(--serif);
  font-style:italic;
  font-weight:500;
  letter-spacing:-.03em;
}
.hero h1 em{color:#ffd2bc}
.hero__lead{
  max-width:640px;
  margin:26px 0 30px;
  color:#e5edf4;
  font-size:18px;
  line-height:1.75;
}
.hero__actions{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  align-items:center;
}
.hero__proof{
  display:flex;
  flex-wrap:wrap;
  gap:16px 24px;
  margin-top:30px;
  color:#d7e0e8;
  font-size:12px;
  font-weight:700;
}
.hero__proof span{
  display:inline-flex;
  align-items:center;
  gap:8px;
}
.hero__proof b{color:#89e08c}

.hero__rating{
  position:absolute;
  right:0;
  bottom:0;
  z-index:1;
  padding:26px 0 0 26px;
  background:linear-gradient(135deg, transparent 0 18px, rgba(247,243,236,.98) 18px);
}
.rating-badge{
  display:flex;
  align-items:center;
  gap:16px;
  min-width:320px;
  padding:22px 34px 22px 30px;
  color:var(--navy);
  background:var(--cream);
  box-shadow:var(--shadow);
}
.rating-badge__score{
  font-size:38px;
  line-height:1;
  font-weight:800;
}
.stars{
  color:var(--orange);
  letter-spacing:2px;
  font-size:14px;
}
.rating-badge small{
  color:var(--muted);
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.16em;
  font-weight:800;
}

.trust-strip{
  margin-top:-1px;
  background:var(--navy);
}
.trust-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
}
.trust-item{
  display:flex;
  align-items:center;
  gap:14px;
  padding:22px 0;
  color:#fff;
}
.trust-item__icon{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  flex:none;
  font-size:18px;
  color:#95eb95;
  background:rgba(255,255,255,.05);
  border-radius:50%;
}
.trust-item strong{
  display:block;
  font-size:14px;
  font-weight:800;
}
.trust-item small{
  display:block;
  color:#afc3d4;
  font-size:11px;
}

.section-heading{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:44px;
  align-items:end;
  margin-bottom:48px;
}
.section-heading h2,
.difference__copy h2,
.reviews__header h2,
.faq__grid h2,
.estimate__copy h2{
  font-size:clamp(42px, 4.8vw, 68px);
  color:var(--navy);
}
.section-heading p:last-child{
  margin:0;
  color:var(--muted);
}

.service-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:18px;
}
.service-card{
  position:relative;
  min-height:320px;
  padding:24px 22px 66px;
  color:#fff;
  background:var(--navy-2);
  border-radius:22px;
  box-shadow:var(--shadow);
  overflow:hidden;
}
.service-card::before{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(255,255,255,.02), rgba(255,255,255,.03));
  pointer-events:none;
}
.service-card--featured,
.service-card:nth-child(2),
.service-card:nth-child(3),
.service-card:nth-child(4){
  background:
    linear-gradient(180deg, rgba(255,255,255,.02), rgba(255,255,255,.04)),
    linear-gradient(180deg, rgba(13,34,56,.98), rgba(21,52,82,.98));
}
.service-card__number{
  color:#d7e0ea;
  font-family:var(--serif);
  font-size:18px;
  font-style:italic;
}
.service-card__icon{
  width:58px;
  height:58px;
  display:grid;
  place-items:center;
  margin-top:16px;
  color:#ffd0bb;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.08);
  border-radius:16px;
}
.service-card__icon svg{width:34px;height:34px}
.service-card h3{
  margin:20px 0 12px;
  font-size:22px;
  line-height:1.15;
  letter-spacing:-.03em;
}
.service-card p{
  margin:0;
  color:#d7e3eb;
  font-size:15px;
  line-height:1.6;
}
.service-card ul{
  margin:18px 0 0;
  padding:0;
  list-style:none;
}
.service-card li{
  position:relative;
  padding-left:18px;
  margin:8px 0;
  color:#ebf3f8;
  font-size:13px;
}
.service-card li::before{
  content:'•';
  position:absolute;
  left:0;
  color:#8fe190;
}
.service-card a{
  position:absolute;
  left:22px;
  right:22px;
  bottom:20px;
  color:#ffd2bc;
  font-size:11px;
  font-weight:800;
  letter-spacing:.07em;
  text-transform:uppercase;
}

.difference{
  background:var(--cream);
}
.split{
  display:grid;
  grid-template-columns:1.02fr .98fr;
  gap:76px;
  align-items:center;
}
.image-stack{
  position:relative;
}
.image-stack__main img{
  aspect-ratio:4/3;
  object-fit:cover;
  border-radius:28px;
  box-shadow:var(--shadow);
}
.image-stack__card{
  position:absolute;
  right:-28px;
  bottom:30px;
  padding:20px 22px;
  color:#fff;
  background:var(--orange);
  border-radius:18px;
  box-shadow:var(--shadow-strong);
}
.image-stack__card span{
  display:block;
  font-size:42px;
  font-weight:800;
  line-height:1;
}
.image-stack__card p{
  margin:4px 0 0;
  font-size:13px;
  line-height:1.45;
}
.image-stack__dots{
  position:absolute;
  left:-14px;
  top:-14px;
  width:148px;
  height:148px;
  z-index:-1;
  background:
    radial-gradient(circle, rgba(239,115,57,.26) 0 4px, transparent 5px) 0 0/22px 22px;
}

.difference__copy .lead{
  margin:22px 0 26px;
  color:var(--muted);
  font-size:18px;
  line-height:1.8;
}
.benefit-list{
  display:grid;
  gap:18px;
  margin:28px 0 30px;
}
.benefit{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:16px;
  align-items:start;
  padding:18px 20px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:18px;
  box-shadow:0 14px 28px rgba(13,34,56,.06);
}
.benefit__check{
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  color:#fff;
  background:var(--navy);
  border-radius:50%;
  font-weight:800;
}
.benefit h3{
  margin:0 0 6px;
  font-size:18px;
}
.benefit p{
  margin:0;
  color:var(--muted);
  font-size:14px;
  line-height:1.65;
}

.process{
  color:#fff;
  background:linear-gradient(180deg, var(--navy) 0%, #091a2a 100%);
}
.section-heading--light h2,
.section-heading--light p:last-child,
.process p,
.process h3{
  color:#fff;
}
.process-grid{
  display:grid;
  grid-template-columns:1fr 44px 1fr 44px 1fr;
  align-items:start;
  gap:0 18px;
}
.process-grid article{
  padding:28px 24px 10px;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.08);
  border-radius:22px;
}
.process-step{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}
.process-step span{
  color:#ffd4c0;
  font-size:15px;
  font-weight:800;
  letter-spacing:.16em;
}
.process-step b{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  font-size:18px;
  color:var(--navy);
  background:#ffe1d0;
  border-radius:50%;
}
.process-grid h3{
  margin:18px 0 10px;
  font-size:22px;
}
.process-grid p{
  margin:0 0 16px;
  color:#c6d2dc;
  line-height:1.7;
}
.process-line{
  align-self:center;
  width:44px;
  height:2px;
  background:rgba(255,255,255,.25);
  border-radius:999px;
}

.reviews{
  background:var(--paper);
}
.reviews__header{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:40px;
  margin-bottom:34px;
}
.reviews__score{
  min-width:210px;
  display:flex;
  align-items:center;
  gap:16px;
  padding:18px 20px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:20px;
  box-shadow:0 14px 28px rgba(13,34,56,.06);
}
.reviews__score strong{
  font-size:42px;
  line-height:1;
  color:var(--navy);
}
.reviews__score small{
  color:var(--muted);
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-weight:800;
}
.review-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
}
.review-card{
  padding:28px 24px 24px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:22px;
  box-shadow:0 14px 28px rgba(13,34,56,.06);
}
.review-card--raised{
  transform:translateY(-10px);
  background:linear-gradient(180deg, #fff, #fbf7f1);
}
.review-card blockquote{
  margin:16px 0 20px;
  color:var(--ink);
  font-size:16px;
  line-height:1.8;
}
.review-card footer{
  display:flex;
  align-items:center;
  gap:14px;
}
.review-card footer span{
  width:46px;
  height:46px;
  display:grid;
  place-items:center;
  color:var(--navy);
  background:#e4f1d7;
  border-radius:50%;
  font-weight:800;
}
.review-card footer strong,
.review-card footer small{
  display:block;
}
.review-card footer strong{font-size:15px}
.review-card footer small{color:var(--muted);font-size:11px}

.faq{
  background:var(--cream);
}
.faq__grid{
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  gap:70px;
  align-items:start;
}
.faq__grid > div:first-child p:not(.eyebrow){
  color:var(--muted);
  font-size:18px;
  line-height:1.8;
}
.accordion{
  border-top:1px solid var(--line);
}
.accordion details{
  border-bottom:1px solid var(--line);
}
.accordion summary{
  list-style:none;
  position:relative;
  padding:22px 42px 22px 0;
  font-size:18px;
  font-weight:800;
  cursor:pointer;
}
.accordion summary::-webkit-details-marker{display:none}
.accordion summary span,
.accordion summary span::after{
  position:absolute;
  right:2px;
  top:50%;
  width:15px;
  height:2px;
  background:var(--orange);
  transform:translateY(-50%);
  border-radius:999px;
}
.accordion summary span::after{
  content:'';
  right:0;
  transform:translateY(-50%) rotate(90deg);
}
.accordion details[open] summary span::after{
  transform:translateY(-50%) rotate(0);
}
.accordion p{
  margin:0 42px 22px 0;
  color:var(--muted);
  line-height:1.75;
}

.estimate{
  padding:0;
  color:#fff;
  background:var(--navy);
}
.estimate__grid{
  display:grid;
  grid-template-columns:.95fr 1.05fr;
  gap:42px;
  align-items:start;
  padding:104px 0;
}
.estimate__copy .eyebrow{color:#ffcab4}
.estimate__copy .eyebrow span{background:#ffcab4}
.estimate__copy h2,
.estimate__copy p{
  color:#fff;
}
.estimate__copy p{
  max-width:560px;
  margin:22px 0 0;
  font-size:18px;
  line-height:1.8;
  color:#d1dde7;
}
.estimate__contact{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:16px;
  margin-top:30px;
}
.estimate__contact > div{
  display:flex;
  gap:14px;
  align-items:flex-start;
  padding:18px 18px 16px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.1);
  border-radius:18px;
}
.estimate__contact span{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  color:var(--navy);
  background:#f1f7fa;
  border-radius:50%;
  font-size:18px;
  flex:none;
}
.estimate__contact small{
  display:block;
  color:#b6c7d5;
  font-size:10px;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.estimate__contact a{
  color:#fff;
  font-size:18px;
  font-weight:800;
}

.quote-form{
  padding:32px;
  color:var(--ink);
  background:#fff;
  border-radius:28px;
  box-shadow:var(--shadow-strong);
}
.form-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
}
.quote-form label{
  display:block;
  margin-bottom:14px;
  color:var(--navy);
  font-size:10px;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.quote-form input,
.quote-form select,
.quote-form textarea{
  width:100%;
  margin-top:6px;
  padding:13px 14px;
  color:var(--ink);
  background:#f9f8f5;
  border:1px solid #d8ddd8;
  border-radius:12px;
  transition:border-color .2s ease, box-shadow .2s ease;
}
.quote-form textarea{resize:vertical;min-height:110px}
.quote-form input:focus,
.quote-form select:focus,
.quote-form textarea:focus{
  border-color:#8eb8cc;
  box-shadow:0 0 0 3px rgba(142,184,204,.18);
  outline:none;
}
.form-note{
  margin:14px 0 0;
  color:var(--muted);
  font-size:11px;
  line-height:1.6;
}
.form-success{
  margin-top:12px;
  padding:12px 14px;
  color:#175c39;
  background:#e8f7ee;
  border:1px solid #bfe0ca;
  border-radius:12px;
  font-size:12px;
}

.site-footer{
  padding:74px 0 26px;
  color:#aabac4;
  background:#081827;
}
.brand--footer .brand__text strong{color:#fff}
.footer-grid{
  display:grid;
  grid-template-columns:1.4fr repeat(3,.8fr);
  gap:48px;
  padding-bottom:50px;
}
.footer-grid h3{
  margin:8px 0 18px;
  color:#fff;
  font-size:10px;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.footer-grid a,
.footer-grid p{
  display:block;
  margin:8px 0;
  font-size:12px;
}
.footer-bottom{
  display:flex;
  justify-content:space-between;
  gap:18px;
  padding-top:20px;
  border-top:1px solid rgba(255,255,255,.1);
  font-size:10px;
}

.mobile-call{
  display:none;
}

@media (max-width: 1060px){
  .primary-nav{gap:18px}
  .primary-nav > a:not(.button):not(.nav-phone){padding:28px 0}
  .service-grid{grid-template-columns:repeat(2,1fr)}
  .split,
  .estimate__grid,
  .faq__grid{grid-template-columns:1fr}
  .reviews__header{
    flex-direction:column;
    align-items:flex-start;
  }
  .review-grid{grid-template-columns:1fr 1fr}
  .process-grid{
    grid-template-columns:1fr;
    gap:18px;
  }
  .process-line{display:none}
}

@media (max-width: 760px){
  body{padding-bottom:60px}
  .container{width:min(100% - 30px, 640px)}
  .section{padding:76px 0}
  .announcement__inner{
    min-height:34px;
    font-size:8px;
    letter-spacing:.1em;
  }
  .announcement__inner a{display:none}
  .nav-wrap{min-height:72px}
  .brand__mark{width:46px;height:46px}
  .brand__text strong{font-size:17px}
  .brand__text small{font-size:9px}
  .nav-toggle{display:block}
  .primary-nav{
    position:fixed;
    inset:108px 0 60px;
    z-index:19;
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    padding:22px 18px 22px;
    background:#fff;
    transform:translateX(100%);
    transition:transform .24s ease;
    overflow:auto;
  }
  .primary-nav.open{transform:translateX(0)}
  .primary-nav > a:not(.button):not(.nav-phone){
    padding:16px 6px;
    border-bottom:1px solid var(--line);
    font-size:11px;
  }
  .primary-nav > a:not(.button):not(.nav-phone)::after{display:none}
  .nav-phone{
    order:2;
    margin-top:12px;
    justify-content:center;
  }
  .button--small{
    order:3;
    margin-top:10px;
  }

  .hero{
    min-height:760px;
    background-position:70% center;
  }
  .hero::before{
    background:
      linear-gradient(180deg, rgba(8,24,39,.93) 0%, rgba(8,24,39,.86) 28%, rgba(8,24,39,.56) 100%),
      linear-gradient(90deg, rgba(8,24,39,.72), rgba(8,24,39,.3));
  }
  .hero__content{
    min-height:760px;
    padding-block:66px 128px;
  }
  .hero__copy{width:100%}
  .hero h1{font-size:clamp(52px, 15vw, 72px)}
  .hero__lead{font-size:16px}
  .hero__actions{
    max-width:350px;
    flex-direction:column;
    align-items:stretch;
  }
  .hero__proof{gap:10px 18px}
  .hero__rating{
    right:0;
    left:0;
    padding-left:0;
  }
  .rating-badge{
    min-width:0;
    width:100%;
    border-radius:0;
  }
  .trust-grid{grid-template-columns:1fr 1fr}
  .trust-item{padding:18px 0}
  .section-heading{
    grid-template-columns:1fr;
    gap:16px;
  }
  .section-heading h2,
  .difference__copy h2,
  .reviews__header h2,
  .faq__grid h2,
  .estimate__copy h2{
    font-size:clamp(34px, 10vw, 48px);
  }
  .service-grid,
  .review-grid,
  .estimate__contact,
  .form-row,
  .footer-grid{
    grid-template-columns:1fr;
  }
  .service-card{min-height:290px}
  .service-card a{font-size:10px}
  .image-stack__card{
    right:12px;
    bottom:14px;
  }
  .split,
  .faq__grid{
    gap:36px;
  }
  .difference__copy .lead,
  .estimate__copy p,
  .faq__grid > div:first-child p:not(.eyebrow),
  .review-card blockquote{
    font-size:16px;
  }
  .review-card--raised{transform:none}
  .quote-form{padding:24px 18px}
  .footer-grid>div:first-child{grid-column:auto}
  .footer-bottom{
    flex-direction:column;
    align-items:flex-start;
  }
  .mobile-call{
    position:fixed;
    inset:auto 0 0;
    z-index:50;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    height:60px;
    color:#fff;
    background:var(--orange);
    font-size:10px;
    font-weight:800;
    letter-spacing:.06em;
    text-transform:uppercase;
  }
}

@media (max-width: 430px){
  .announcement__inner{
    justify-content:center;
    text-align:center;
  }
  .trust-grid{grid-template-columns:1fr}
  .service-card{min-height:300px}
  .image-stack__card{
    max-width:170px;
    padding:16px 18px;
  }
  .hero__proof span{width:100%}
}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,
  *::before,
  *::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
  }
}
