/*
 * CraftCore 8.2.1 — Soffit & Fascia flagship page
 * A focused final layer that replaces the accumulated v8 overrides without
 * altering the established driveway and patio templates.
 */
.sf-page-v8{
  --sf-navy:#061b2a;
  --sf-navy-2:#0a2a3d;
  --sf-cyan:#00ccff;
  --sf-ink:#08283a;
  --sf-muted:#5f7788;
  --sf-line:#d8e5eb;
  --sf-soft:#f3f8fa;
  --sf-radius:22px;
  --sf-shadow:0 22px 55px rgba(7,31,49,.11);
}
.sf-page-v8 .dc-section{padding-block:clamp(68px,7.5vw,104px)}
.sf-page-v8 .dc-container{width:min(1180px,calc(100% - 48px))}
.sf-page-v8 .dc-heading{max-width:820px;margin-bottom:38px}
.sf-page-v8 .dc-heading h2{margin-top:10px;text-wrap:balance}
.sf-page-v8 .dc-heading p{max-width:720px;color:var(--sf-muted);line-height:1.75}

/* Hero — balanced two-column first fold with reassurance integrated below. */
.sf-page-v8 .sf-hero-v8{
  min-height:0;
  padding:clamp(58px,6vw,86px) 0 46px;
  overflow:hidden;
  box-shadow:none;
}
.sf-page-v8 .sf-hero-v8::after{display:none!important}
.sf-page-v8 .sf-hero-v8 .dc-hero__media{object-position:center 42%;filter:saturate(.88) contrast(1.05)}
.sf-page-v8 .sf-hero-v8 .dc-hero__shade{background:linear-gradient(90deg,rgba(3,18,29,.97) 0%,rgba(3,18,29,.91) 46%,rgba(3,18,29,.62) 100%)}
.sf-page-v8 .sf-hero-v8 .dc-container{width:min(1240px,calc(100% - 48px))}
.sf-page-v8 .sf-hero-v8 .dc-hero__layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(370px,420px);
  gap:38px 52px;
  align-items:center;
}
.sf-page-v8 .sf-hero-v8 .dc-hero__copy{max-width:720px;min-width:0}
.sf-page-v8 .sf-hero-v8 h1{max-width:700px;margin:14px 0 20px;font-size:clamp(3.25rem,5vw,5.35rem);line-height:.96;text-wrap:balance}
.sf-page-v8 .sf-hero-v8 .dc-hero__lead{max-width:680px;font-size:1.03rem;line-height:1.72}
.sf-page-v8 .sf-hero-v8 .dc-actions{margin-top:28px}
.sf-page-v8 .sf-hero-v8 .dc-quote{width:100%;max-width:420px;justify-self:end;padding:27px;border-radius:20px;box-shadow:0 24px 70px rgba(0,0,0,.25)}
.sf-page-v8 .dc-quote__proof{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;text-align:center}
.sf-page-v8 .dc-quote__proof span{font-size:.66rem;white-space:normal}
.sf-page-v8 .sf-hero-trust{
  grid-column:1/-1;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
  margin:0;
}
.sf-page-v8 .sf-hero-trust article{
  display:grid;
  grid-template-columns:42px minmax(0,1fr);
  align-items:center;
  gap:13px;
  min-height:94px;
  padding:17px 18px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:16px;
  background:linear-gradient(145deg,rgba(255,255,255,.085),rgba(255,255,255,.035));
  box-shadow:none;
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}
.sf-page-v8 .sf-hero-trust article:hover{transform:none;border-color:rgba(0,204,255,.36)}
.sf-page-v8 .sf-hero-trust__icon{width:42px;height:42px}
.sf-page-v8 .sf-hero-trust__icon svg{width:31px;height:31px;stroke-width:1.6}
.sf-page-v8 .sf-hero-trust strong{margin:0 0 3px;font-size:.94rem}
.sf-page-v8 .sf-hero-trust p{font-size:.73rem;line-height:1.42}

/* Intro — editorial opening followed by compact benefit tiles. */
.sf-page-v8 .sf-story--benefits{background:var(--sf-soft)}
.sf-page-v8 .sf-story__intro{max-width:900px;margin:0 auto;text-align:center}
.sf-page-v8 .sf-story__intro h2{max-width:850px;margin:12px auto 20px;text-wrap:balance}
.sf-page-v8 .sf-story__intro p{max-width:780px;margin:0 auto 12px;color:var(--sf-muted);line-height:1.78}
.sf-page-v8 .sf-story__benefits{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:38px}
.sf-page-v8 .sf-story__benefits article{padding:24px;border:1px solid var(--sf-line);border-radius:17px;background:#fff;box-shadow:none}
.sf-page-v8 .sf-story__benefits strong{color:var(--sf-ink)}

/* What we clean — distinctive dark technical grid. */
.sf-page-v8 .sf-clean{background:var(--sf-navy);color:#fff}
.sf-page-v8 .sf-clean .dc-heading h2,.sf-page-v8 .sf-clean .dc-heading p{color:#fff}
.sf-page-v8 .sf-clean .dc-heading p{color:#b8ccd7}
.sf-page-v8 .sf-clean__grid{gap:14px}
.sf-page-v8 .sf-clean__grid article{min-height:280px;padding:27px;border:1px solid rgba(255,255,255,.12);border-radius:18px;background:rgba(255,255,255,.045);box-shadow:none}
.sf-page-v8 .sf-clean__grid h3{color:#fff}
.sf-page-v8 .sf-clean__grid p{color:#b8ccd7}
.sf-page-v8 .sf-clean__grid small{color:var(--sf-cyan)}
.sf-page-v8 .sf-clean .dc-surface-note{border-color:rgba(255,255,255,.13);background:rgba(255,255,255,.06);color:#fff}
.sf-page-v8 .sf-clean .dc-surface-note span{color:#b8ccd7}

/* Project — real imagery is the main event. */
.sf-page-v8 .sf-project{background:#fff}
.sf-page-v8 .sf-project__grid{gap:14px}
.sf-page-v8 .sf-project__grid figure{border-radius:18px;box-shadow:none}
.sf-page-v8 .sf-project__grid img{height:clamp(300px,31vw,390px)}
.sf-page-v8 .sf-project__summary{margin-top:14px;padding:24px 26px;border:1px solid var(--sf-line);border-radius:18px;background:var(--sf-soft);box-shadow:none}

/* Restore — a single high-contrast feature, deliberately unlike card grids. */
.sf-page-v8 .sf-restore{background:var(--sf-soft);color:inherit}
.sf-page-v8 .sf-restore__panel{grid-template-columns:minmax(0,1.03fr) minmax(340px,.97fr);border:0;border-radius:var(--sf-radius);background:var(--sf-navy);box-shadow:var(--sf-shadow)}
.sf-page-v8 .sf-restore__copy{padding:clamp(38px,5vw,68px)}
.sf-page-v8 .sf-restore__copy h2{max-width:650px;color:#fff;text-wrap:balance}
.sf-page-v8 .sf-restore__copy p{color:#bdd0da;line-height:1.75}
.sf-page-v8 .sf-restore__panel figure{min-height:500px}

/* Problems — text on the left, clean ruled list on the right. */
.sf-page-v8 .sf-problems{background:#fff}
.sf-page-v8 .sf-problems__layout{gap:clamp(38px,6vw,78px)}
.sf-page-v8 .sf-problems__layout>div:first-child{max-width:590px}
.sf-page-v8 .sf-problems__layout h2{text-wrap:balance}
.sf-page-v8 .sf-problems__list{border-top:1px solid var(--sf-line)}
.sf-page-v8 .sf-problems__list article{padding:22px 0;border-bottom:1px solid var(--sf-line);border-radius:0;background:transparent;box-shadow:none}
.sf-page-v8 .sf-problems__list b{color:var(--sf-cyan)}

/* Process — one continuous timeline instead of another floating-card section. */
.sf-page-v8 .dc-process{background:var(--sf-navy)}
.sf-page-v8 .dc-process__grid{position:relative;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:0;border-top:1px solid rgba(255,255,255,.16)}
.sf-page-v8 .dc-process__grid article{min-height:260px;padding:34px 28px 18px;border:0;border-right:1px solid rgba(255,255,255,.12);border-radius:0;background:transparent;box-shadow:none}
.sf-page-v8 .dc-process__grid article:last-child{border-right:0}
.sf-page-v8 .dc-process__grid article>span{display:inline-grid;width:42px;height:42px;place-items:center;margin-bottom:34px;border:1px solid rgba(0,204,255,.55);border-radius:50%;color:var(--sf-cyan)}

/* Gallery — consistent editorial grid; captions only on hover/focus. */
.sf-page-v8 .sf-gallery{background:#fff}
.sf-page-v8 .sf-gallery__grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.sf-page-v8 .sf-gallery__grid figure,.sf-page-v8 .sf-gallery__grid figure:nth-child(n){grid-column:auto;aspect-ratio:4/3;border-radius:17px;box-shadow:none}
.sf-page-v8 .sf-gallery__grid figcaption{left:10px;right:10px;bottom:10px;padding:10px 12px;border-radius:10px;font-size:.73rem}

/* Local section — compact close to the informational content. */
.sf-page-v8 .sf-local{background:var(--sf-soft)}
.sf-page-v8 .sf-local__layout{gap:56px}
.sf-page-v8 .sf-local ul{gap:10px}
.sf-page-v8 .sf-local li{border:1px solid var(--sf-line);background:#fff;box-shadow:none}

@media(max-width:1050px){
  .sf-page-v8 .sf-hero-v8 .dc-hero__layout{grid-template-columns:minmax(0,1fr) 380px;gap:32px}
  .sf-page-v8 .sf-hero-trust,.sf-page-v8 .sf-story__benefits{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sf-page-v8 .sf-gallery__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:900px){
  .sf-page-v8 .dc-container{width:min(760px,calc(100% - 32px))}
  .sf-page-v8 .sf-hero-v8 .dc-container{width:min(760px,calc(100% - 32px))}
  .sf-page-v8 .sf-hero-v8 .dc-hero__layout{grid-template-columns:1fr;gap:28px}
  .sf-page-v8 .sf-hero-v8 .dc-quote{max-width:none;justify-self:stretch}
  .sf-page-v8 .sf-restore__panel{grid-template-columns:1fr}
  .sf-page-v8 .sf-restore__panel figure{min-height:380px}
  .sf-page-v8 .dc-process__grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .sf-page-v8 .dc-process__grid article:nth-child(2){border-right:0}
  .sf-page-v8 .dc-process__grid article:nth-child(-n+2){border-bottom:1px solid rgba(255,255,255,.12)}
}
@media(max-width:620px){
  .sf-page-v8 .dc-section{padding-block:58px}
  .sf-page-v8 .dc-container,.sf-page-v8 .sf-hero-v8 .dc-container{width:calc(100% - 24px)}
  .sf-page-v8 .sf-hero-v8{padding:34px 0 30px}
  .sf-page-v8 .sf-hero-v8 h1{font-size:clamp(2.55rem,12vw,3.35rem)}
  .sf-page-v8 .sf-hero-v8 .dc-actions{display:grid;grid-template-columns:1fr}
  .sf-page-v8 .sf-hero-v8 .dc-actions .dc-btn{width:100%;justify-content:center}
  .sf-page-v8 .sf-hero-trust,.sf-page-v8 .sf-story__benefits,.sf-page-v8 .sf-gallery__grid{grid-template-columns:1fr}
  .sf-page-v8 .sf-hero-trust article{min-height:78px;padding:14px 15px}
  .sf-page-v8 .sf-clean__grid article{min-height:0}
  .sf-page-v8 .sf-project__summary{padding:21px}
  .sf-page-v8 .sf-restore__copy{padding:30px 22px}
  .sf-page-v8 .sf-restore__panel figure{min-height:280px}
  .sf-page-v8 .dc-process__grid{grid-template-columns:1fr!important;border-top:0}
  .sf-page-v8 .dc-process__grid article{min-height:0;padding:25px 0;border-right:0;border-bottom:1px solid rgba(255,255,255,.12)!important}
  .sf-page-v8 .dc-process__grid article:last-child{border-bottom:0!important}
  .sf-page-v8 .dc-process__grid article>span{margin-bottom:18px}
}

/* CraftCore 8.2.1 — screenshot-led corrections
   Corrects contrast and gives the three flagged sections a clearer visual rhythm. */
.sf-page-v8 .sf-problems{
  background:#fff;
  color:var(--sf-ink);
}
.sf-page-v8 .sf-problems .sf-problems__layout{
  grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
  align-items:start;
  gap:clamp(44px,6vw,84px);
}
.sf-page-v8 .sf-problems .sf-problems__layout>div:first-child{
  position:sticky;
  top:110px;
  max-width:560px;
}
.sf-page-v8 .sf-problems h2{
  margin:12px 0 22px;
  color:var(--sf-ink)!important;
  font-size:clamp(2.35rem,4.5vw,4.6rem);
  line-height:1.02;
  letter-spacing:-.045em;
}
.sf-page-v8 .sf-problems p{
  color:var(--sf-muted)!important;
  font-size:1rem;
  line-height:1.78;
}
.sf-page-v8 .sf-problems .dc-btn{margin-top:24px}
.sf-page-v8 .sf-problems__list{
  display:grid;
  gap:0;
  border-top:1px solid var(--sf-line);
}
.sf-page-v8 .sf-problems__list article{
  display:grid;
  grid-template-columns:54px minmax(0,1fr);
  gap:22px;
  align-items:start;
  padding:27px 0;
  border:0;
  border-bottom:1px solid var(--sf-line);
  background:transparent;
}
.sf-page-v8 .sf-problems__list b{
  display:grid;
  width:42px;
  height:42px;
  place-items:center;
  border:1px solid rgba(0,204,255,.38);
  border-radius:50%;
  color:#009fc6!important;
  font-size:.7rem;
  letter-spacing:.08em;
}
.sf-page-v8 .sf-problems__list h3{
  margin:1px 0 7px;
  color:var(--sf-ink)!important;
  font-size:1.08rem;
  line-height:1.25;
}
.sf-page-v8 .sf-problems__list p{
  margin:0;
  color:var(--sf-muted)!important;
  font-size:.88rem;
  line-height:1.62;
}

/* Process: an open timeline rather than another rounded card block. */
.sf-page-v8 .dc-process{
  background:linear-gradient(145deg,#061b2a 0%,#082538 100%);
  color:#fff;
}
.sf-page-v8 .dc-process .dc-heading{max-width:880px;margin-bottom:54px}
.sf-page-v8 .dc-process .dc-heading h2{color:#fff!important}
.sf-page-v8 .dc-process .dc-heading p{color:#a9c0cd!important}
.sf-page-v8 .dc-process__grid{
  position:relative;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:34px;
  overflow:visible;
  border:0;
  border-radius:0;
  background:transparent;
}
.sf-page-v8 .dc-process__grid::before{
  content:"";
  position:absolute;
  top:25px;
  left:22px;
  right:22px;
  height:1px;
  background:linear-gradient(90deg,rgba(0,204,255,.7),rgba(255,255,255,.15));
}
.sf-page-v8 .dc-process__grid article{
  position:relative;
  min-height:0;
  padding:0 8px 0 0;
  border:0!important;
  background:transparent!important;
}
.sf-page-v8 .dc-process__grid article>span{
  position:relative;
  z-index:2;
  display:grid;
  width:52px;
  height:52px;
  place-items:center;
  margin:0 0 34px;
  border:1px solid rgba(0,204,255,.68);
  border-radius:50%;
  background:#082538;
  color:var(--sf-cyan);
  box-shadow:0 0 0 8px #082538;
}
.sf-page-v8 .dc-process__grid h3{
  margin:0 0 12px;
  color:#fff!important;
  font-size:1.12rem;
}
.sf-page-v8 .dc-process__grid p{
  margin:0;
  color:#adc2cd!important;
  font-size:.86rem;
  line-height:1.68;
}

/* Local coverage: high-contrast location showcase with readable town names. */
.sf-page-v8 .sf-local{
  position:relative;
  overflow:hidden;
  background:linear-gradient(135deg,#eef6f8 0%,#f8fbfc 100%);
  color:var(--sf-ink);
}
.sf-page-v8 .sf-local::after{
  content:"";
  position:absolute;
  right:-120px;
  bottom:-190px;
  width:520px;
  height:520px;
  border:1px solid rgba(0,204,255,.14);
  border-radius:50%;
  box-shadow:0 0 0 65px rgba(0,204,255,.035),0 0 0 130px rgba(0,204,255,.025);
  pointer-events:none;
}
.sf-page-v8 .sf-local__layout{
  position:relative;
  z-index:1;
  grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr);
  gap:clamp(44px,6vw,82px);
  align-items:center;
}
.sf-page-v8 .sf-local h2{
  margin:12px 0 20px;
  max-width:620px;
  color:var(--sf-ink)!important;
  font-size:clamp(2.5rem,4.7vw,4.9rem);
  line-height:1.01;
  letter-spacing:-.05em;
}
.sf-page-v8 .sf-local p{
  max-width:590px;
  color:var(--sf-muted)!important;
  font-size:1rem;
  line-height:1.78;
}
.sf-page-v8 .sf-local ul{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin:0;
  padding:0;
  list-style:none;
}
.sf-page-v8 .sf-local li{
  position:relative;
  min-height:62px;
  display:flex;
  align-items:center;
  padding:15px 18px 15px 50px;
  border:1px solid var(--sf-line);
  border-radius:14px;
  background:#fff;
  color:var(--sf-ink)!important;
  font-size:.9rem;
  font-weight:850;
  box-shadow:0 10px 25px rgba(7,31,49,.045);
}
.sf-page-v8 .sf-local li::before{
  content:"";
  position:absolute;
  left:18px;
  width:18px;
  height:18px;
  border:2px solid var(--sf-cyan);
  border-radius:50% 50% 50% 0;
  transform:rotate(-45deg);
}
.sf-page-v8 .sf-local li::after{
  content:"";
  position:absolute;
  left:24px;
  width:5px;
  height:5px;
  border-radius:50%;
  background:var(--sf-cyan);
}

@media(max-width:900px){
  .sf-page-v8 .sf-problems .sf-problems__layout,
  .sf-page-v8 .sf-local__layout{grid-template-columns:1fr}
  .sf-page-v8 .sf-problems .sf-problems__layout>div:first-child{position:static;max-width:720px}
  .sf-page-v8 .dc-process__grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:38px 28px}
  .sf-page-v8 .dc-process__grid::before{display:none}
  .sf-page-v8 .dc-process__grid article{padding:0 12px 0 0!important;border:0!important}
}
@media(max-width:620px){
  .sf-page-v8 .sf-problems h2,.sf-page-v8 .sf-local h2{font-size:clamp(2.25rem,11vw,3.4rem)}
  .sf-page-v8 .dc-process__grid{grid-template-columns:1fr!important;gap:28px}
  .sf-page-v8 .dc-process__grid article{display:grid;grid-template-columns:52px 1fr;column-gap:18px;padding:0!important;border:0!important}
  .sf-page-v8 .dc-process__grid article>span{grid-row:1/3;margin:0;box-shadow:none}
  .sf-page-v8 .dc-process__grid h3{align-self:end}
  .sf-page-v8 .sf-local ul{grid-template-columns:1fr}
}

/* CraftCore 8.2.2 — restore light/dark section rhythm before the FAQ. */
.sf-page-v8 .sf-local{
  background:
    radial-gradient(circle at 88% 14%,rgba(0,204,255,.12),transparent 30%),
    linear-gradient(135deg,#061827 0%,#09263a 100%);
  color:#fff;
}
.sf-page-v8 .sf-local::after{
  right:-150px;
  bottom:-220px;
  border-color:rgba(0,204,255,.18);
  box-shadow:0 0 0 70px rgba(0,204,255,.045),0 0 0 140px rgba(0,204,255,.025);
}
.sf-page-v8 .sf-local .dc-kicker{color:var(--sf-cyan)!important}
.sf-page-v8 .sf-local h2{
  color:#fff!important;
  font-size:clamp(2.35rem,4.2vw,4.35rem);
}
.sf-page-v8 .sf-local p{color:#aec4d0!important}
.sf-page-v8 .sf-local li{
  border-color:rgba(255,255,255,.14);
  background:rgba(255,255,255,.065);
  color:#fff!important;
  box-shadow:none;
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}
.sf-page-v8 .sf-local li:hover{
  border-color:rgba(0,204,255,.48);
  background:rgba(255,255,255,.095);
  transform:translateY(-2px);
}
.sf-page-v8 .sf-local li{transition:border-color .2s ease,background .2s ease,transform .2s ease}

/* CraftCore v9.1.0 — flagship sign-off pass */
.sf-page-v8{
  --sf-section-space:clamp(72px,7.4vw,96px);
}
.sf-page-v8 .dc-section{padding-block:var(--sf-section-space)}
.sf-page-v8 .dc-heading{margin-bottom:clamp(32px,4vw,48px)}
.sf-page-v8 .dc-heading p{max-width:700px}

/* Keep the first fold balanced without touching the proven grid. */
.sf-page-v8 .sf-hero-v8{padding-bottom:44px}
.sf-page-v8 .sf-hero-v8 .dc-quote{box-shadow:0 24px 64px rgba(0,0,0,.24)}
.sf-page-v8 .sf-hero-trust article{transition:border-color .18s ease,background-color .18s ease}
.sf-page-v8 .sf-hero-trust article:hover{background:rgba(255,255,255,.075)}

/* Editorial spacing and restrained elevation. */
.sf-page-v8 .sf-story__benefits article,
.sf-page-v8 .sf-project__summary,
.sf-page-v8 .sf-local li{box-shadow:none}
.sf-page-v8 .sf-story__benefits article{transition:border-color .18s ease,transform .18s ease}
.sf-page-v8 .sf-story__benefits article:hover{border-color:rgba(0,204,255,.42);transform:translateY(-2px)}
.sf-page-v8 .sf-project__grid img,
.sf-page-v8 .sf-gallery__grid img{display:block;width:100%;object-fit:cover}

/* The dark local section is the only mid-page brand moment; no signature motif. */
.sf-page-v8 .sf-local::after{opacity:.72}
.sf-page-v8 .sf-local__layout{align-items:center}
.sf-page-v8 .sf-local h2{max-width:540px}
.sf-page-v8 .sf-local p{max-width:540px}

/* Final CTA is the branded visual bookend. */
.sf-page-v8 .cc-signature-cta .dc-final__box{padding-block:clamp(72px,8vw,96px)}
.sf-page-v8 .cc-signature-cta .dc-final__content h2{max-width:660px;text-wrap:balance}

@media(max-width:900px){
  .sf-page-v8{--sf-section-space:72px}
  .sf-page-v8 .sf-hero-v8{padding-top:48px}
  .sf-page-v8 .sf-local h2,.sf-page-v8 .sf-local p{max-width:700px}
}
@media(max-width:620px){
  .sf-page-v8{--sf-section-space:58px}
  .sf-page-v8 .dc-heading{margin-bottom:30px}
  .sf-page-v8 .sf-hero-v8{padding-top:34px;padding-bottom:30px}
  .sf-page-v8 .sf-hero-trust{gap:10px}
  .sf-page-v8 .sf-hero-trust article{grid-template-columns:38px minmax(0,1fr);gap:11px}
  .sf-page-v8 .sf-hero-trust__icon{width:38px;height:38px}
  .sf-page-v8 .sf-story__benefits article:hover,.sf-page-v8 .sf-local li:hover{transform:none}
  .sf-page-v8 .cc-signature-cta .dc-final__box{padding-block:64px}
}
