/* SLCFR PPC landers v2 (/devis-v2/...) - shared by every page in pages/slcfr/2026/ppc-v2/. Scoped under .dv so it cannot touch v1 /devis/.
   Brand: navy #1f1a5e, blue #1E70B7, CTA #D5317B, 14px radius. */
.dv{--navy:#1f1a5e;--blue:#1E70B7;--cta:#D5317B;--cta-dk:#b82569;--muted:#565d78;--tint:#f2f6fc;--line:#e2e8f2;--r:14px;
  --font:"Plus Jakarta Sans",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  font-family:var(--font);color:var(--navy);background:#fff;line-height:1.55;-webkit-font-smoothing:antialiased}
.dv *,.dv *::before,.dv *::after{box-sizing:border-box}
.dv h1,.dv h2,.dv h3,.dv p,.dv ul,.dv ol,.dv dl,.dv dd{margin:0}
.dv h1,.dv h2,.dv h3{color:var(--navy);letter-spacing:-.01em;text-wrap:balance}
.dv p,.dv li,.dv dd{text-wrap:pretty}
.dv a,.dv button,.dv summary{-webkit-tap-highlight-color:rgba(30,112,183,.15)}
.dv img{max-width:100%}
.dv-wrap{max-width:1180px;margin:0 auto;padding:0 24px}

/* ---------- Header (compact) ---------- */
.dv-top{background:#fff;border-bottom:1px solid var(--line);padding-top:env(safe-area-inset-top,0px)}
.dv-top__inner{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:68px}
.dv-logo{display:block;height:44px;width:auto}
.dv-top__promises{display:flex;gap:28px;list-style:none;padding:0}
.dv-top__promises li{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--muted);line-height:1.3}
.dv-top__promises strong{display:block;color:var(--navy);font-size:14px}

/* ---------- Hero (compact: no min-height, tight padding) ---------- */
.dv-hero{position:relative;overflow:hidden;background:#f7f9fd}
.dv-hero__media{position:absolute;top:0;right:0;bottom:0;width:44%;z-index:0}
.dv-hero__media picture{display:block;height:100%}
.dv-hero__media img{width:100%;height:100%;object-fit:cover;object-position:62% 40%;display:block;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 30%);mask-image:linear-gradient(90deg,transparent 0,#000 30%)}
.dv-hero__inner{position:relative;z-index:1;padding-top:30px;padding-bottom:26px}
.dv-hero__inner>*{max-width:640px}
.dv-h1{font-size:clamp(30px,3.9vw,46px);line-height:1.06;font-weight:800;letter-spacing:-.022em}
.dv-h1__accent{color:var(--blue)}
.dv-nw{white-space:nowrap}

.dv .dv-bands{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.dv-bands>div{background:#fff;border:1px solid var(--line);border-left:4px solid var(--blue);border-radius:10px;padding:8px 14px}
.dv-bands dt{font-size:12.5px;color:var(--muted);font-weight:600}
.dv-bands dd{font-size:18px;font-weight:800}
.dv .dv-strip{display:flex;align-items:center;gap:12px;margin-top:16px;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:10px 14px;font-size:14.5px;color:#3b4163}
.dv-strip strong{color:var(--blue)}
.dv-strip img{flex:0 0 32px}

.dv-stepper{margin-top:18px}
.dv-hero__inner>.dv-stepper{max-width:640px}

.dv-hero__inner>
/* ---------- Body ---------- */
.dv-sec{padding:64px 0}
.dv-sec.dv-wrap{padding-left:24px;padding-right:24px}
.dv-sec--tint{background:var(--tint)}
.dv-sec--navy{background:var(--navy);color:#dfe3ff}
.dv-sec--navy h2{color:#fff}
.dv-sec h2{font-size:clamp(25px,2.8vw,34px);line-height:1.15;font-weight:800;margin-bottom:12px}
.dv .dv-intro{color:var(--muted);font-size:17px;max-width:62ch}
.dv .dv-sec__cta{margin-top:28px}
.dv .dv-note{margin-top:22px;color:var(--muted);font-size:14.5px;max-width:74ch}

.dv-media-row{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:48px;align-items:center}
.dv-photo{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:var(--r);display:block}
.dv-split{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:48px;align-items:start}
.dv-split img{display:block;margin-bottom:12px}

.dv-cols{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px;margin-top:24px}
.dv-cols--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.dv-cols--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.dv-cols img{display:block;margin-bottom:10px}
.dv-cols h3{font-size:18px;font-weight:700;margin-bottom:6px}
.dv-cols p{color:var(--muted);font-size:15.5px}

.dv-table-wrap{overflow-x:auto;margin-top:22px}
.dv-table{width:100%;border-collapse:collapse;font-size:15.5px}
.dv-table th,.dv-table td{text-align:left;padding:14px 12px;border-bottom:1px solid var(--line);vertical-align:top}
.dv-table thead th{font-size:13px;color:var(--muted);font-weight:700;border-bottom:2px solid var(--navy)}
.dv-table tbody th{font-weight:700}
.dv-table td:nth-child(2){font-weight:800;color:var(--blue);white-space:nowrap}
.dv .dv-band-inline{margin:16px 0;font-size:17px}
.dv-band-inline strong{color:var(--blue)}

.dv-facts{margin-top:22px;display:grid;gap:14px}
.dv-facts>div{display:grid;grid-template-columns:150px 1fr;gap:16px;padding-bottom:14px;border-bottom:1px solid var(--line)}
.dv-facts dt{font-weight:700}
.dv-facts dd{color:var(--muted)}

.dv-ticklist{list-style:none;padding:0;display:grid;gap:12px;margin-top:6px}
.dv-media-row .dv-ticklist{margin-top:18px}
.dv-ticklist li{position:relative;padding-left:34px;font-size:16px;color:#2f3558}
.dv-ticklist li::before{content:"";position:absolute;left:0;top:2px;width:22px;height:22px;border-radius:50%;background:var(--blue) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M9.5 16.2 5.3 12l1.4-1.4 2.8 2.8 7.8-7.8 1.4 1.4z'/%3E%3C/svg%3E") center/15px no-repeat}

.dv-compare{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:24px}
.dv-compare article{display:grid;grid-template-columns:140px 1fr;gap:18px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:12px}
.dv-compare img{width:140px;height:140px;object-fit:cover;border-radius:10px;display:block}
.dv-compare h3{font-size:18px;margin-bottom:6px}
.dv-compare p{color:var(--muted);font-size:15px}

.dv .dv-bignum{font-size:16px}
.dv-bignum span{display:block;font-size:44px;font-weight:800;color:#fff;line-height:1.1;margin-bottom:6px}

.dv-steps{list-style:none;padding:0;counter-reset:dv;margin-top:24px}
.dv-steps li{counter-increment:dv;position:relative;padding-left:54px}
.dv-steps li::before{content:counter(dv);position:absolute;left:0;top:0;width:38px;height:38px;border-radius:50%;background:#fff;border:2px solid var(--blue);color:var(--blue);font-weight:800;display:grid;place-items:center}
.dv-steps h3{font-size:18px;font-weight:700;margin:6px 0 4px}
.dv-steps p{color:var(--muted);font-size:15.5px}
.dv-steps--row,.dv-steps--row4{display:grid;gap:28px}
.dv-steps--row{grid-template-columns:repeat(3,minmax(0,1fr))}
.dv-steps--row4{grid-template-columns:repeat(4,minmax(0,1fr))}

.dv-faq{max-width:820px;margin-top:12px}
.dv-faq details{border-bottom:1px solid #d6deeb}
.dv-faq summary{cursor:pointer;font-weight:700;font-size:16.5px;list-style:none;position:relative;display:block;min-height:48px;padding:14px 36px 14px 0}
.dv-faq summary::-webkit-details-marker{display:none}
.dv-faq summary::after{content:"+";position:absolute;right:4px;top:10px;font-size:24px;line-height:1;color:var(--blue)}
.dv-faq details[open] summary::after{content:"\2212"}
.dv-faq details p{margin:0 0 16px;color:var(--muted);max-width:70ch}

.dv-close{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-top:44px;padding-bottom:64px}
.dv-close h2{font-size:clamp(23px,2.5vw,30px);font-weight:800}

.dv-btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 26px;border-radius:var(--r);background:var(--cta);color:#fff;font-weight:700;font-size:16.5px;text-decoration:none;box-shadow:0 6px 16px rgba(213,49,123,.26);transition:background .15s}
.dv-btn:hover{background:var(--cta-dk)}
.dv-btn--ghost{background:#fff;color:var(--navy);border:2px solid var(--navy);box-shadow:none}
.dv a:focus-visible,.dv summary:focus-visible,.dv button:focus-visible{outline:3px solid var(--blue);outline-offset:3px;border-radius:6px}

.dv-foot{background:var(--navy);color:#c9cdf0;font-size:13.5px;padding:26px 0 calc(26px + env(safe-area-inset-bottom,0px))}
.dv-foot a{color:#fff;display:inline-block;padding:12px 6px;margin-left:4px}
.dv-foot__legal{margin-top:6px;opacity:.8}


/* v2.1 additions */
/* Wizard card once stepper-v2.js has stripped the v1 intro */
/* Hero photo never taller than the photo can stay sharp */
.dv-hero__media{bottom:auto;height:100%;max-height:760px}
/* Hero photos whose subject sits on the LEFT of the frame (curved stair): shorter fade */
.dv-hero--subject-left .dv-hero__media img{object-position:30% 45%;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 12%);mask-image:linear-gradient(90deg,transparent 0,#000 12%)}
.dv-sec--slim{padding:22px 0}
.dv .dv-local{display:flex;align-items:center;gap:14px;font-size:16.5px;font-weight:600}
.dv-local img{flex:0 0 36px}
.dv-cols--media img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:10px;margin-bottom:14px}
.dv-facts--tight{margin-top:0}
.dv-facts--tight dd{font-weight:800;color:var(--blue);font-size:18px}
.dv-btnrow{display:flex;flex-wrap:wrap;gap:12px}
.dv-hero--info .dv-hero__inner{padding-top:36px;padding-bottom:36px}
.dv-split .dv-photo{margin-bottom:0}

@media (max-width:1024px){
  .dv-top__promises li:nth-child(3){display:none}
  .dv-hero__media{width:34%}
  .dv-hero__inner>.dv-stepper,.dv-hero__inner>  .dv-cols{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dv-steps--row4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dv-media-row{gap:32px}
}
/* iPad portrait and below: the photo would squeeze the headline, so it goes */
@media (max-width:900px){
  .dv-hero__media{display:none}
  .dv-hero{background:linear-gradient(180deg,#fff 0,#f2f6fc 100%)}
  .dv-hero__inner>*,.dv-hero__inner>.dv-stepper,.dv-hero__inner>  .dv-compare{grid-template-columns:minmax(0,1fr)}
  .dv-media-row{grid-template-columns:minmax(0,1fr)}
  .dv-media-row .dv-photo{max-width:560px}
}
@media (max-width:760px){
  .dv-wrap{padding:0 16px}
  .dv-sec.dv-wrap{padding-left:16px;padding-right:16px}
  .dv-top__inner{min-height:58px}
  .dv-logo{height:36px}
  .dv-top__promises{display:none}
  /* Photo moves out of the way: the wizard is the hero on a phone. */
  .dv-hero__media{display:none}
  .dv-hero{background:linear-gradient(180deg,#fff 0,#f2f6fc 100%)}
  .dv-hero__inner{padding-top:20px;padding-bottom:22px}
  .dv-h1{font-size:28px}
  .dv-sec h2{font-size:24px}
  .dv .dv-lede{font-size:15.5px}
  .dv-bands>div{flex:1 1 45%}
      .dv-checks li:nth-child(4){display:none}
  .dv-sec{padding:44px 0}
  .dv-media-row,.dv-split,.dv-compare,.dv-cols,.dv-cols--2,.dv-cols--3,.dv-steps--row,.dv-steps--row4{grid-template-columns:minmax(0,1fr);gap:22px}
  .dv-photo{aspect-ratio:16/10}
  .dv-facts>div{grid-template-columns:1fr;gap:4px}
  .dv-compare article{grid-template-columns:96px 1fr}
  .dv-compare img{width:96px;height:96px}
  .dv-close{flex-direction:column;align-items:flex-start}
  .dv-btn{width:100%}
  .dv-btnrow .dv-btn{flex:1 1 100%}
  /* price table becomes stacked rows on small phones */
  .dv-table thead{display:none}
  .dv-table,.dv-table tbody,.dv-table tr,.dv-table th,.dv-table td{display:block;width:100%}
  .dv-table tr{padding:12px 0;border-bottom:1px solid var(--line)}
  .dv-table th,.dv-table td{border:0;padding:2px 0}
  .dv-table td:nth-child(2){white-space:normal;font-size:18px}
}
@media (max-width:360px){
  .dv-h1{font-size:25px}
  .dv .dv-lede{font-size:15px}
  .dv-hero__inner{padding-top:16px}
  .dv .dv-strip{font-size:13.5px}
}
@media (prefers-reduced-motion:reduce){.dv *{transition:none!important}}

/* =====================================================================
   HERO + WIZARD  (v4 - StepperV2.ascx, one spacing rhythm)
   Vertical rhythm in the hero, top to bottom:
     64  hero top         h1
     20                   lede
     28                   price bands / aid strip (when present)
     44                   progress
     16                   question
     20                   cards
     24                   action bar
     36                   ticks
     24                   pill
     64  hero bottom
   Scale: space 8/12/16/20/24/28/36/44/64   radius 18 cards+panels / 12 tiles / 12 inputs
   ===================================================================== */
.dv-top__inner{min-height:84px}
.dv-top__promises{gap:40px}
.dv-top__promises li{gap:12px;font-size:13.5px}
.dv-top__promises img{width:36px;height:36px}
.dv-top__promises strong{font-size:15px;margin-bottom:1px}

.dv-hero{position:relative;overflow:hidden;background:#fff}
.dv-hero__inner{position:relative;z-index:2;padding-top:64px;padding-bottom:64px}
.dv-hero__inner>*{max-width:620px}
.dv-h1{font-size:clamp(34px,4.3vw,56px);line-height:1.04;font-weight:800;letter-spacing:-.025em;color:var(--navy);margin:0}
.dv-h1__accent{color:var(--blue)}
.dv .dv-lede{margin-top:24px;font-size:18px;line-height:1.55;color:#3b4163;max-width:44ch}
.dv-lede strong{color:var(--navy)}
.dv .dv-bands{display:flex;flex-wrap:wrap;gap:14px;margin-top:28px}
.dv-bands>div{background:#fff;border:1px solid var(--line);border-left:4px solid var(--blue);border-radius:12px;padding:12px 18px 13px}
.dv-bands dt{font-size:12.5px;color:var(--muted);font-weight:600;margin-bottom:2px}
.dv-bands dd{font-size:18px;font-weight:800;line-height:1.2}
.dv .dv-strip{display:flex;align-items:center;gap:14px;margin-top:28px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 18px;font-size:15px;line-height:1.5;color:#3b4163}
.dv-strip strong{color:var(--blue)}

/* ---- photo ---- */
.dv-hero__media{position:absolute;top:0;right:0;bottom:auto;height:100%;max-height:900px;width:47%;z-index:0}
.dv-hero__media picture,.dv-hero__media img{display:block;height:100%}
.dv-hero__media img{width:100%;object-fit:cover;object-position:65% 35%;
  -webkit-mask-image:linear-gradient(90deg,rgba(0,0,0,0) 0%,rgba(0,0,0,.06) 6%,rgba(0,0,0,.3) 15%,rgba(0,0,0,.7) 26%,rgba(0,0,0,.95) 36%,#000 44%),linear-gradient(180deg,#000 0%,#000 84%,rgba(0,0,0,.55) 93%,rgba(0,0,0,0) 100%);
  -webkit-mask-composite:source-in;
          mask-image:linear-gradient(90deg,rgba(0,0,0,0) 0%,rgba(0,0,0,.06) 6%,rgba(0,0,0,.3) 15%,rgba(0,0,0,.7) 26%,rgba(0,0,0,.95) 36%,#000 44%),linear-gradient(180deg,#000 0%,#000 84%,rgba(0,0,0,.55) 93%,rgba(0,0,0,0) 100%);
          mask-composite:intersect}
.dv-hero__media::before{display:none}
.dv-hero::after{content:"";position:absolute;left:-5%;right:-5%;bottom:-38px;height:76px;background:#fff;border-radius:50%;z-index:1;pointer-events:none}

/* ---- wizard (StepperV2.ascx) ---- */
.dv-hero__inner>.dv-stepper{max-width:680px;margin-top:44px}
.dv .stepper-v2,.dv .stepper-v2 *{font-family:var(--font)}
.dv .stepper-v2{color:var(--navy)}
.dv .stepper-v2,.dv .stepper-v2 .wiz-card,.dv .stepper-v2 .wiz-card__body,.dv .stepper-v2 .stepper{display:block;background:none;border:0;box-shadow:none;padding:0;margin:0;min-height:0;max-width:none;width:auto;border-radius:0;position:static}

.dv .stepper-v2 .wiz-progress{display:flex;align-items:center;gap:16px;margin:0 0 16px}
.dv .stepper-v2 .wiz-steplabel{font-size:12.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--blue);white-space:nowrap}
.dv .stepper-v2 .progress{flex:0 1 240px;height:6px;border-radius:6px;background:#dfe6f1;overflow:hidden}
.dv .stepper-v2 .progress__bar{display:block;height:100%;width:33.3%;background:var(--blue);border-radius:6px;transition:width .35s ease}

.dv .stepper-v2 .step h2{font-size:clamp(22px,2.2vw,26px);line-height:1.2;font-weight:800;letter-spacing:-.015em;color:var(--navy);margin:0 0 8px}
.dv .stepper-v2 .step .step__sub{font-size:15.5px;line-height:1.5;color:var(--muted);margin:0 0 22px}

/* step 1: question in the open, three cards */
.dv .stepper-v2 .step[data-step="stairs"]{background:none;border:0;padding:0;box-shadow:none}
.dv .stepper-v2 .step[data-step="stairs"] h2{margin-bottom:20px}
.dv .stepper-v2 .step[data-step="stairs"] .step__sub{display:none}
.dv .stepper-v2 .opt-grid,.dv .stepper-v2 .opt-grid--two{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:0}
.dv .stepper-v2 .opt{all:unset;box-sizing:border-box;position:relative;display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:18px;padding:10px 10px 0;box-shadow:0 2px 6px rgba(31,26,94,.04),0 14px 34px rgba(31,26,94,.08);cursor:pointer;color:var(--navy);text-align:left;transition:border-color .15s,box-shadow .15s,transform .15s}
.dv .stepper-v2 .opt:hover{border-color:var(--blue);box-shadow:0 0 0 3px rgba(30,112,183,.14),0 18px 40px rgba(31,26,94,.14);transform:translateY(-2px)}
.dv .stepper-v2 .opt:focus-visible{outline:3px solid var(--blue);outline-offset:3px}
.dv .stepper-v2 .opt[aria-pressed="true"]{border-color:var(--blue);box-shadow:0 0 0 3px rgba(30,112,183,.22),0 18px 40px rgba(31,26,94,.14)}
.dv .stepper-v2 .opt img.rd-choice-image{display:block;width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;border-radius:12px;margin:0}
.dv .stepper-v2 .opt .opt__label{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:18px 8px 20px 10px;font-size:17px;font-weight:700;line-height:1.25;letter-spacing:-.005em}
.dv .stepper-v2 .opt .opt__label br,.dv .stepper-v2 .opt .opt__sub,.dv .stepper-v2 .opt .opt__check{display:none}
.dv .stepper-v2 .opt .opt__label::after{content:"\203A";font-size:28px;line-height:1;color:var(--blue);font-weight:400;flex:0 0 auto;margin-right:2px}
.dv .stepper-v2 .opt.rd-unknown-choice::before{content:"?";display:grid;place-items:center;width:100%;aspect-ratio:1/1;border-radius:12px;font-size:clamp(36px,4vw,58px);font-weight:800;color:var(--navy);
  background:#f4f7fb radial-gradient(circle at center,#e6edf7 0 32%,transparent 33%)}

/* every step is the same page: heading in the open, content in the open, one button row.
   (no box - step 2 and 3 look exactly like step 1) */
.dv .stepper-v2 .step{background:none;border:0;padding:0;box-shadow:none;animation:dvStep .32s ease both}
@keyframes dvStep{from{opacity:0;transform:translateX(16px)}to{opacity:1;transform:none}}
.dv .stepper-v2 .step h2{font-size:clamp(24px,2.4vw,30px)}
.dv .stepper-v2 .step:not([data-step="stairs"]) .step__sub{margin-bottom:24px}
.dv .stepper-v2 .step[data-step="postcode"] .field,.dv .stepper-v2 .step[data-step="otp"] .field{max-width:360px}
.dv .stepper-v2 .rd-contact-grid{max-width:620px}
.dv .stepper-v2 .field{margin:0 0 20px}
.dv .stepper-v2 .field label{display:block;font-size:14px;font-weight:700;color:var(--navy);margin:0 0 8px}
.dv .stepper-v2 .input{display:block;width:100%;box-sizing:border-box;font-size:16px;min-height:54px;padding:0 16px;border:1px solid #c9d3e3;border-radius:12px;background:#fff;color:var(--navy);text-align:left;letter-spacing:0;transition:border-color .15s,box-shadow .15s}
.dv .stepper-v2 .input--code{max-width:240px;text-align:center;letter-spacing:.16em;font-weight:700;font-size:19px}
.dv .stepper-v2 .input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 4px rgba(30,112,183,.16)}
.dv .stepper-v2 .error{color:#C0392B;font-size:13.5px;margin-top:8px;line-height:1.4}
.dv .stepper-v2 .reveal{display:block;margin-top:4px;font-size:14px;line-height:1.5;color:var(--muted)}
.dv .stepper-v2 .reveal__coverage{display:block;font-weight:700;color:var(--navy)}
.dv .stepper-v2 .small{font-size:13.5px;line-height:1.5;color:var(--muted)}
.dv .stepper-v2 .rd-contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}
.dv .stepper-v2 .field--full,.dv .stepper-v2 .rd-address-extra{grid-column:1/-1}
.dv .stepper-v2 .rd-contact-benefit{display:none}
.dv .stepper-v2 .rd-contact-recap{margin:0 0 20px;padding:12px 16px;background:#f4f7fb;border-radius:12px}
.dv .stepper-v2 .cp-recap{font-size:14px;color:var(--muted);margin:0}
.dv .stepper-v2 .cp-recap b{color:var(--navy);margin-left:4px}
.dv .stepper-v2 .cp-edit{all:unset;cursor:pointer;color:var(--blue);text-decoration:underline;margin-left:8px;font-size:14px}
.dv .stepper-v2 .rd-address-extra{margin:0 0 20px}
.dv .stepper-v2 .rd-address-extra summary{cursor:pointer;font-size:14px;font-weight:700;color:var(--blue);margin:0 0 12px;list-style:none}
.dv .stepper-v2 .consent{font-size:13px;color:var(--muted);line-height:1.5;margin:4px 0 0}
.dv .stepper-v2 .consent a{color:var(--blue)}
.dv .stepper-v2 .autofill-harvest,.dv .stepper-v2 .visually-hidden{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.dv .stepper-v2 .searching ul{list-style:none;padding:0;margin:12px 0 0;display:grid;gap:12px;color:var(--muted);font-size:15px}
.dv .stepper-v2 .searching .dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--blue);margin-right:12px;vertical-align:middle}
.dv .stepper-v2 .done{text-align:center}
.dv .stepper-v2 .done__icon{width:64px;height:64px;color:var(--blue);margin:0 auto 16px;display:block}
.dv .stepper-v2 .otp-resend{font-size:14px;color:var(--muted);margin:12px 0}

/* action bar: aligned to the panel, back left, CTA right */
.dv .stepper-v2 .actionbar{position:static;bottom:auto;display:flex;justify-content:space-between;align-items:center;gap:16px;margin:28px 0 0;padding:0;background:none;border:0;box-shadow:none;max-width:620px}
.dv .stepper-v2 .actionbar .btn{all:unset;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;min-height:56px;padding:0 30px;border-radius:14px;font-size:17px;font-weight:700;letter-spacing:-.005em;cursor:pointer;transition:background .15s,border-color .15s,transform .15s}
.dv .stepper-v2 .actionbar .btn--cta{background:var(--cta);color:#fff;box-shadow:0 8px 20px rgba(213,49,123,.28);margin-left:auto}
.dv .stepper-v2 .actionbar .btn--cta:hover{background:var(--cta-dk);transform:translateY(-1px)}
.dv .stepper-v2 .actionbar .btn--back{background:#fff;color:var(--navy);border:1px solid #c9d3e3}
.dv .stepper-v2 .actionbar .btn--back:hover{border-color:var(--navy)}
.dv .stepper-v2 .btn:focus-visible{outline:3px solid var(--blue);outline-offset:3px}
.dv .stepper-v2 .btn--ghost{all:unset;cursor:pointer;color:var(--blue);text-decoration:underline;font-weight:600}

/* trust ticks + pill */
.dv .dv-ticks{display:flex;flex-wrap:wrap;gap:16px 36px;list-style:none;padding:0;margin:36px 0 0}
.dv-hero__inner>.dv-ticks{max-width:680px}
.dv-ticks li{position:relative;padding-left:42px;font-size:14px;line-height:1.4;color:var(--muted)}
.dv-ticks strong{display:block;font-size:16px;color:var(--navy);margin-bottom:1px}
.dv-ticks li::before{content:"";position:absolute;left:0;top:2px;width:30px;height:30px;border-radius:50%;background:var(--blue) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M9.5 16.2 5.3 12l1.4-1.4 2.8 2.8 7.8-7.8 1.4 1.4z'/%3E%3C/svg%3E") center/18px no-repeat}
.dv .dv-pill{display:inline-flex;align-items:center;gap:10px;margin-top:24px;background:#e8f0fa;color:var(--navy);border-radius:12px;padding:12px 18px;font-size:14px}
.dv-pill img{width:22px;height:22px}

/* body sections: more air between them */
.dv-sec{padding:88px 0}
.dv-sec__head,.dv-sec h2{margin-bottom:16px}
.dv .dv-intro{font-size:17.5px;line-height:1.6}
.dv-cols{gap:32px;margin-top:32px}

@media (max-width:1024px){.dv-hero__media{width:42%}.dv-hero__inner>*,.dv-hero__inner>.dv-stepper,.dv-hero__inner>.dv-ticks{max-width:560px}.dv-sec{padding:72px 0}}
@media (max-width:900px){
  .dv-hero__media,.dv-hero::after{display:none}
  .dv-hero{background:linear-gradient(180deg,#fff 0,#f2f6fc 100%)}
  .dv-hero__inner>*,.dv-hero__inner>.dv-stepper,.dv-hero__inner>.dv-ticks{max-width:none}
}
@media (max-width:760px){
  .dv-hero__inner{padding-top:32px;padding-bottom:40px}
  .dv-h1{font-size:31px}.dv-lede{font-size:16px;margin-top:14px}
  .dv-bands,.dv-strip{margin-top:20px}
  .dv-hero__inner>.dv-stepper{margin-top:32px}
  .dv .stepper-v2 .opt-grid,.dv .stepper-v2 .opt-grid--two{grid-template-columns:1fr 1fr;gap:12px}
  .dv .stepper-v2 .opt{padding:8px 8px 0}
  .dv .stepper-v2 .opt .opt__label{font-size:15.5px;padding:14px 6px 16px 8px}
  .dv .stepper-v2 .opt.rd-unknown-choice{grid-column:1/-1;flex-direction:row;align-items:center;padding:8px}
  .dv .stepper-v2 .opt.rd-unknown-choice::before{width:68px;flex:0 0 68px;aspect-ratio:1/1;font-size:30px;margin:0}
  .dv .stepper-v2 .opt.rd-unknown-choice .opt__label{flex:1;padding:8px 8px 8px 14px}
    .dv .stepper-v2 .rd-contact-grid{grid-template-columns:1fr}
  .dv .stepper-v2 .actionbar{margin-top:20px}
  .dv .stepper-v2 .actionbar .btn{flex:1 1 auto;min-height:54px}
  .dv .dv-ticks{gap:12px 20px;margin-top:28px}.dv-ticks li{font-size:13px}.dv-ticks strong{font-size:14.5px}
  .dv .dv-pill{display:none}
  .dv-sec{padding:56px 0}
}
@media (max-width:360px){.dv-h1{font-size:27px}.dv-hero__inner{padding-top:22px}}

/* =====================================================================
   FOCUS MODE (.dv-focus, set by js/lander-v2.js on the first wizard interaction)
   Everything that persuaded the visitor to start steps aside: only the header
   (logo + the three promises) and the wizard remain, centred on screen.
   ===================================================================== */
.dv-focus .dv-hero__media,.dv-focus .dv-hero::after,
.dv-focus .dv-h1,.dv-focus .dv-lede,.dv-focus .dv-bands,.dv-focus .dv-strip,
.dv-focus .dv-ticks,.dv-focus .dv-pill,
.dv-focus .dv-body,.dv-focus .dv-foot{display:none!important}
.dv-focus .dv-top{position:sticky;top:0;z-index:5}
.dv-focus .dv-hero{overflow:visible;background:#f7f9fd;min-height:calc(100vh - 84px);min-height:calc(100dvh - 84px)}
.dv-focus .dv-hero__inner{display:flex;flex-direction:column;justify-content:flex-start;padding-top:48px;padding-bottom:64px}
.dv-focus .dv-hero__inner>.dv-stepper{max-width:720px;width:100%;margin:0 auto}
.dv-focus .stepper-v2 .wiz-progress{margin-bottom:24px}
.dv-focus .stepper-v2 .step h2{font-size:clamp(26px,2.8vw,34px)}
.dv-focus .stepper-v2 .opt-grid,.dv-focus .stepper-v2 .opt-grid--two{gap:24px}
.dv-focus .stepper-v2 .actionbar,.dv-focus .stepper-v2 .rd-contact-grid{max-width:none}
/* in focus the promises matter on a phone too: compact row under the logo */
@media (max-width:760px){
  .dv-focus .dv-top__inner{flex-wrap:wrap;justify-content:flex-start;gap:8px 18px;padding:10px 0}
  .dv-focus .dv-top__promises{display:flex;width:100%;gap:18px}
  .dv-focus .dv-top__promises li{font-size:12px}
  .dv-focus .dv-top__promises li:nth-child(3){display:flex}
  .dv-focus .dv-top__promises img{width:26px;height:26px}
  .dv-focus .dv-top__promises li>span{font-size:0;line-height:0}
  .dv-focus .dv-top__promises strong{font-size:12.5px;line-height:1.2}
  .dv-focus .dv-hero{min-height:calc(100vh - 110px);min-height:calc(100dvh - 110px)}
  .dv-focus .dv-hero__inner{padding-top:24px}
}
@media (max-width:1024px){.dv-focus .dv-top__promises li:nth-child(3){display:flex}}

/* =====================================================================
   CONTACT STEP - compact, submit in reach  (v4.3)
   ===================================================================== */
.dv .stepper-v2 .step[data-step="contact"] h2{font-size:clamp(22px,2.2vw,27px);margin-bottom:6px}
.dv .stepper-v2 .step[data-step="contact"] .step__sub{margin-bottom:16px}
.dv .stepper-v2 .rd-contact-recap{margin:0 0 14px;padding:9px 14px;border-radius:10px}
.dv .stepper-v2 .rd-contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px;max-width:640px}
.dv .stepper-v2 .rd-contact-grid .field{margin:0 0 12px}
.dv .stepper-v2 .rd-contact-grid .field label{font-size:13.5px;margin:0 0 5px}
.dv .stepper-v2 .rd-contact-grid .input{min-height:48px;padding:0 14px;border-radius:10px}
.dv .stepper-v2 .rd-contact-grid .error{font-size:13px;margin-top:5px}
/* name full width; phone + e-mail share a row; address + commune share a row */
.dv .stepper-v2 .rd-contact-grid .field--full:has(#name){grid-column:1/-1}
.dv .stepper-v2 .rd-contact-grid .field--full:has(#address){grid-column:1}
.dv .stepper-v2 .rd-contact-grid .rd-address-extra{grid-column:2;margin:0 0 12px}
.dv .stepper-v2 .rd-contact-grid .rd-address-extra .field{margin:0}
.dv .stepper-v2 .rd-contact-grid .rd-address-extra summary{font-size:13.5px;font-weight:700;color:var(--navy);margin:0 0 5px;list-style:none;cursor:default}
.dv .stepper-v2 .rd-contact-grid .rd-address-extra summary::-webkit-details-marker{display:none}
.dv .stepper-v2 .rd-contact-grid .rd-address-extra .field label{display:none}
.dv .stepper-v2 .rd-contact-grid .field--full:has(.consent){grid-column:1/-1;margin:2px 0 0}
.dv .stepper-v2 .consent{font-size:12.5px;line-height:1.45;margin:0}
.dv .stepper-v2 .consent a{white-space:nowrap}
/* in focus mode the button row stays in reach while the visitor types: the wizard body
   fills the viewport (flex column, bar pushed to the end) so sticky has something to stick to */
.dv-focus .stepper-v2 .wiz-card__body{display:flex;flex-direction:column;min-height:calc(100vh - 150px);min-height:calc(100dvh - 150px)}
.dv-focus .stepper-v2 .actionbar{position:sticky;bottom:0;z-index:3;margin-top:auto;padding:20px 0 calc(12px + env(safe-area-inset-bottom,0px));background:linear-gradient(180deg,rgba(247,249,253,0) 0,#f7f9fd 30%)}
.dv-focus .stepper-v2 .stepper{padding-bottom:4px}
@media (max-width:760px){
  .dv .stepper-v2 .rd-contact-grid{grid-template-columns:1fr}
  .dv .stepper-v2 .rd-contact-grid .field--full:has(#address),.dv .stepper-v2 .rd-contact-grid .rd-address-extra{grid-column:1}
  .dv .stepper-v2 .rd-contact-grid .input{min-height:50px}
}
@media (max-width:760px){
  .dv-focus .stepper-v2 .actionbar{padding-top:12px;background:linear-gradient(180deg,rgba(247,249,253,0) 0,#f7f9fd 18%)}
  .dv-focus .stepper-v2 .actionbar .btn--back{flex:0 0 auto;padding:0 18px}
  .dv-focus .stepper-v2 .actionbar .btn--cta{flex:1 1 auto;font-size:15.5px;padding:0 14px;line-height:1.15}
}

/* =====================================================================
   BELOW THE HERO  (v5 - one system for every section)
   type   eyebrow 12.5/700 caps blue   h2 clamp(28,3vw,38)/1.12 800   intro 18/1.6
          h3 18.5/700                  body 16.5/1.6 #434a66
   blocks tiles 20px radius, 1px line, 24px pad   photo 22px radius + layered shadow
   rhythm section 96 (desktop) / 64 (phone); head -> content 40
   ===================================================================== */
.dv{--ink2:#434a66;--tile:#f3f6fb;--tile-line:#e3e8f1;--shadow:0 2px 6px rgba(31,26,94,.05),0 18px 44px rgba(31,26,94,.10)}
.dv .dv-body{color:var(--ink2)}
.dv .dv-sec{padding:96px 0}
.dv .dv-sec--tint{background:var(--tile)}
.dv .dv-eyebrow{font-size:12.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--blue);margin:0 0 14px}
.dv .dv-eyebrow--light{color:#fff;opacity:.85}
.dv .dv-sec h2{font-size:clamp(28px,3vw,38px);line-height:1.12;font-weight:800;letter-spacing:-.02em;color:var(--navy);margin:0 0 18px}
.dv .dv-sec h3{font-size:18.5px;line-height:1.3;font-weight:700;color:var(--navy);margin:0 0 8px}
.dv .dv-intro{font-size:18px;line-height:1.6;color:var(--ink2);max-width:58ch;margin:0}
.dv .dv-sec p,.dv .dv-sec li,.dv .dv-sec dd{font-size:16.5px;line-height:1.6}
.dv .dv-sec__head{max-width:680px;margin:0 0 40px}
.dv .dv-sec__head p{margin-top:0}
.dv .dv-note{margin-top:28px;font-size:15px;line-height:1.6;color:var(--muted);max-width:74ch}

/* media rows: bigger photo, aligned to the top of the copy */
.dv .dv-media-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:start}
.dv .dv-media-row>div>.dv-intro{margin-bottom:28px}
.dv .dv-photo{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:22px;box-shadow:var(--shadow);display:block}
.dv .dv-split{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:64px;align-items:start}
.dv .dv-split>div>p{margin-top:12px}

/* feature tiles with icon badges */
.dv .dv-cols{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin-top:40px}
.dv .dv-cols--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.dv .dv-cols--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.dv .dv-cols article{background:#fff;border:1px solid var(--tile-line);border-radius:20px;padding:26px 24px 24px;border-top:3px solid var(--blue)}
.dv .dv-sec--tint .dv-cols article{box-shadow:0 2px 6px rgba(31,26,94,.04)}
.dv .dv-cols article img{display:block;width:60px;height:60px;padding:15px;box-sizing:border-box;background:#e9f0fa;border-radius:16px;margin:0 0 18px}
.dv .dv-cols p{color:var(--ink2);font-size:15.5px}
.dv .dv-cols--media article{padding:14px 14px 22px}
.dv .dv-cols--media article img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;padding:0;background:none;border-radius:12px;margin:0 0 16px}
.dv .dv-cols--media article h3{padding:0 8px}.dv .dv-cols--media article p{padding:0 8px}

/* tick lists */
.dv .dv-ticklist{list-style:none;padding:0;margin:0;display:grid;gap:14px}
.dv .dv-ticklist li{position:relative;padding-left:38px;font-size:16.5px;line-height:1.55;color:var(--ink2)}
.dv .dv-ticklist li strong{color:var(--navy)}
.dv .dv-ticklist li::before{content:"";position:absolute;left:0;top:3px;width:24px;height:24px;border-radius:50%;background:var(--blue) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M9.5 16.2 5.3 12l1.4-1.4 2.8 2.8 7.8-7.8 1.4 1.4z'/%3E%3C/svg%3E") center/16px no-repeat}
.dv .dv-media-row .dv-ticklist{margin-top:4px}

/* price table as a card */
.dv .dv-table-wrap{overflow-x:auto;margin-top:8px;background:#fff;border:1px solid var(--tile-line);border-radius:20px;box-shadow:0 2px 6px rgba(31,26,94,.04)}
.dv .dv-table{width:100%;border-collapse:collapse;font-size:16px}
.dv .dv-table th,.dv .dv-table td{text-align:left;padding:18px 20px;border-bottom:1px solid var(--tile-line);vertical-align:middle}
.dv .dv-table tr:last-child td,.dv .dv-table tr:last-child th{border-bottom:0}
.dv .dv-table thead th{font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:700;border-bottom:1px solid var(--tile-line);background:var(--tile)}
.dv .dv-table tbody th{font-weight:700;color:var(--navy);font-size:17px}
.dv .dv-table td:nth-child(2){font-weight:800;color:var(--blue);white-space:nowrap;font-size:20px}
.dv .dv-band-inline{margin:0 0 20px;font-size:17px;color:var(--ink2)}
.dv .dv-band-inline strong{color:var(--blue);font-size:22px}

/* fact lists (aides, exterieur) */
.dv .dv-facts{margin-top:28px;display:grid;gap:0;background:#fff;border:1px solid var(--tile-line);border-radius:20px;overflow:hidden}
.dv .dv-facts>div{display:grid;grid-template-columns:160px 1fr;gap:16px;padding:18px 22px;border-bottom:1px solid var(--tile-line)}
.dv .dv-facts>div:last-child{border-bottom:0}
.dv .dv-facts dt{font-weight:700;color:var(--navy);font-size:15.5px}
.dv .dv-facts dd{color:var(--ink2);margin:0}
.dv .dv-facts--tight{margin-top:0}
.dv .dv-facts--tight dd{font-weight:800;color:var(--blue);font-size:22px}

/* process steps: numbered badges with a connecting line */
.dv .dv-steps{list-style:none;padding:0;margin:40px 0 0;counter-reset:dv}
.dv .dv-steps li{counter-increment:dv;position:relative;padding:0 0 28px 68px}
.dv .dv-steps li::before{content:counter(dv);position:absolute;left:0;top:-2px;width:48px;height:48px;border-radius:14px;background:var(--navy);color:#fff;font-weight:800;font-size:18px;display:grid;place-items:center}
.dv .dv-steps li:not(:last-child)::after{content:"";position:absolute;left:23px;top:50px;bottom:-2px;width:2px;background:var(--tile-line)}
.dv .dv-steps h3{margin:10px 0 6px}
.dv .dv-steps p{color:var(--ink2)}
.dv .dv-steps--row,.dv .dv-steps--row4{display:grid;gap:24px}
.dv .dv-steps--row{grid-template-columns:repeat(3,minmax(0,1fr))}
.dv .dv-steps--row4{grid-template-columns:repeat(4,minmax(0,1fr))}
.dv .dv-steps--row li,.dv .dv-steps--row4 li{padding:28px 24px 26px;background:#fff;border:1px solid var(--tile-line);border-radius:20px}
.dv .dv-steps--row li::before,.dv .dv-steps--row4 li::before{position:static;margin-bottom:18px}
.dv .dv-steps--row li::after,.dv .dv-steps--row4 li::after{display:none}
.dv .dv-steps--row h3,.dv .dv-steps--row4 h3{margin-top:0}
.dv .dv-media-row .dv-steps{margin-top:8px}
.dv .dv-sec--tint .dv-steps--row li,.dv .dv-sec--tint .dv-steps--row4 li{box-shadow:0 2px 6px rgba(31,26,94,.04)}

/* straight vs curved compare cards */
.dv .dv-compare{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:40px}
.dv .dv-compare article{display:grid;grid-template-columns:160px 1fr;gap:22px;align-items:center;background:#fff;border:1px solid var(--tile-line);border-radius:20px;padding:14px 22px 14px 14px}
.dv .dv-compare img{width:160px;height:160px;object-fit:cover;border-radius:14px;display:block}
.dv .dv-compare p{color:var(--ink2);font-size:15.5px}

/* grant band */
.dv .dv-sec--navy{background:var(--navy);color:#dfe3ff}
.dv .dv-sec--navy .dv-eyebrow{color:#9fb6ff}
.dv .dv-sec--navy h2{color:#fff}
.dv .dv-sec--navy p{color:#dfe3ff}
.dv .dv-bignum{font-size:17px;line-height:1.5}
.dv .dv-bignum span{display:block;font-size:clamp(48px,5.5vw,72px);font-weight:800;color:#fff;line-height:1;letter-spacing:-.03em;margin-bottom:12px}
.dv .dv-grant{background:var(--navy);color:#dfe3ff;border-radius:22px;padding:32px}
.dv .dv-grant__amount{font-size:48px;font-weight:800;color:#fff;line-height:1;margin-bottom:10px;letter-spacing:-.02em}

/* local line */
.dv .dv-sec--slim{padding:26px 0}
.dv .dv-local{display:flex;align-items:center;gap:16px;font-size:17px;font-weight:600;color:var(--navy)}
.dv .dv-local img{width:52px;height:52px;padding:13px;box-sizing:border-box;background:#e9f0fa;border-radius:14px}

/* buttons in the body */
.dv .dv-sec__cta{margin-top:40px;display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.dv .dv-btn{min-height:56px;padding:0 30px;border-radius:14px;font-size:17px}

/* FAQ in a card */
.dv .dv-faq{max-width:860px;margin-top:0;background:#fff;border:1px solid var(--tile-line);border-radius:20px;padding:6px 28px}
.dv .dv-faq details{border-bottom:1px solid var(--tile-line)}
.dv .dv-faq details:last-child{border-bottom:0}
.dv .dv-faq summary{font-size:17.5px;font-weight:700;color:var(--navy);min-height:56px;padding:18px 40px 18px 0}
.dv .dv-faq summary::after{content:"";right:2px;top:22px;width:14px;height:14px;border-right:2.5px solid var(--blue);border-bottom:2.5px solid var(--blue);transform:rotate(45deg);transition:transform .2s}
.dv .dv-faq details[open] summary::after{content:"";transform:rotate(-135deg);top:28px}
.dv .dv-faq details p{margin:0 0 20px;color:var(--ink2);max-width:70ch}

/* closing panel */
.dv .dv-close{padding:0 24px 96px}
.dv .dv-close__box{background:var(--navy);color:#dfe3ff;border-radius:26px;padding:56px 48px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:0}
.dv .dv-close__box h2{color:#fff;font-size:clamp(28px,3.2vw,40px);margin:0 0 14px}
.dv .dv-close__box p{color:#dfe3ff;font-size:17.5px;max-width:52ch;margin:0 0 30px}
.dv .dv-btn--light{background:#fff;color:var(--navy);box-shadow:0 8px 24px rgba(0,0,0,.18)}
.dv .dv-btn--light:hover{background:#eef2fb}

/* footer */
.dv .dv-foot{padding:36px 0 calc(36px + env(safe-area-inset-bottom,0px));font-size:14px;line-height:1.6}
.dv .dv-foot p{font-size:14px}

@media (max-width:1024px){
  .dv .dv-sec{padding:80px 0}
  .dv .dv-cols{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dv .dv-steps--row4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dv .dv-media-row,.dv .dv-split{gap:40px}
}
@media (max-width:900px){
  .dv .dv-media-row,.dv .dv-split,.dv .dv-compare{grid-template-columns:minmax(0,1fr)}
  .dv .dv-media-row .dv-photo{max-width:none}
}
@media (max-width:760px){
  .dv .dv-sec{padding:64px 0}
  .dv .dv-sec__head{margin-bottom:28px}
  .dv .dv-cols,.dv .dv-cols--3,.dv .dv-cols--2,.dv .dv-steps--row,.dv .dv-steps--row4{grid-template-columns:minmax(0,1fr);gap:14px;margin-top:28px}
  .dv .dv-cols article{padding:22px 20px}
  .dv .dv-facts>div{grid-template-columns:1fr;gap:4px}
  .dv .dv-compare article{grid-template-columns:104px 1fr;gap:14px}
  .dv .dv-compare img{width:104px;height:104px}
  .dv .dv-steps li{padding-left:60px}
  .dv .dv-faq{padding:4px 18px}
  .dv .dv-close{padding:0 16px 64px}
  .dv .dv-close__box{padding:40px 24px;border-radius:22px}
  .dv .dv-close__box .dv-btn{width:100%}
  .dv .dv-sec__cta .dv-btn{width:100%}
}
.dv .dv-table-wrap--full{margin-top:48px}
.dv .dv-table td:nth-child(3){color:var(--ink2);font-size:15.5px}
.dv .dv-cols article img{width:64px;height:64px;padding:16px}
.dv .dv-close{padding:96px 24px}
@media (max-width:760px){
  .dv .dv-close{padding:64px 16px}
  .dv .dv-steps--row li,.dv .dv-steps--row4 li{display:grid;grid-template-columns:48px 1fr;gap:4px 18px;padding:20px 20px 20px 18px}
  .dv .dv-steps--row li::before,.dv .dv-steps--row4 li::before{grid-row:1/3;margin:0}
  .dv .dv-steps--row h3,.dv .dv-steps--row4 h3{margin:2px 0 4px}
}
.dv .dv-cols.dv-cols--media article img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;padding:0;background:none;border-radius:12px;margin:0 0 16px}

/* ---- v5.1 fixes from live review ---- */
/* tiles: lighter */
.dv .dv-cols article{padding:22px 22px 20px}
.dv .dv-cols article img{width:52px;height:52px;padding:13px;margin:0 0 14px;border-radius:14px}
.dv .dv-cols h3{font-size:17.5px;margin-bottom:6px}
/* points beside a photo: one column of compact rows, icon left, text right */
.dv .dv-media-row .dv-cols,.dv .dv-media-row .dv-cols--2{grid-template-columns:minmax(0,1fr);gap:12px;margin-top:28px}
.dv .dv-media-row .dv-cols article{display:grid;grid-template-columns:48px 1fr;gap:4px 16px;align-items:start;padding:16px 18px;border-top:1px solid var(--tile-line);border-left:3px solid var(--blue)}
.dv .dv-media-row .dv-cols article img{grid-row:1/3;width:48px;height:48px;padding:12px;margin:0}
.dv .dv-media-row .dv-cols article h3{margin:2px 0 2px}
.dv .dv-media-row .dv-cols article p{font-size:15px;line-height:1.5}
/* process cards: smaller badge, tighter */
.dv .dv-steps--row li,.dv .dv-steps--row4 li{padding:24px 22px 22px}
.dv .dv-steps--row li::before,.dv .dv-steps--row4 li::before{width:40px;height:40px;border-radius:12px;font-size:16px;margin-bottom:14px;background:#e9f0fa;color:var(--navy)}
.dv .dv-steps--row p,.dv .dv-steps--row4 p{font-size:15.5px}
/* FAQ: card spans the section width like everything else */
.dv .dv-faq{max-width:none}
@media (max-width:760px){
  .dv .dv-media-row .dv-cols article{padding:14px 14px}
}

/* =====================================================================
   v6 - MD amends 2026-10-01 (amends only; page structure unchanged)
   Wizard in ONE parent card; teal #087F8C for wizard accents and
   interaction states only (step badge, question, arrows/selected, trust
   icons, focus ring); CTA stays pink. Every step: badge -> question ->
   one-line explanation -> input(s) -> CTA -> disclosure/trust strip.
   ===================================================================== */
.dv{--teal:#087F8C;--teal-ink:#066b76;--teal-soft:rgba(8,127,140,.14);--card:#eef2f7;--card-line:#d7dfea}

/* the parent card */
.dv .stepper-v2 .wiz-card{display:block;position:relative;background:var(--card);border:1px solid var(--card-line);border-radius:22px;box-shadow:0 2px 6px rgba(31,26,94,.05),0 16px 40px rgba(31,26,94,.12);padding:22px 24px 18px;max-width:none}
.dv .stepper-v2 .wiz-card__body{display:block;padding:0;margin:0}
.dv-hero__inner>.dv-stepper{margin-top:36px}

/* step badge + progress: one compact line */
.dv .stepper-v2 .wiz-progress{margin:0 0 12px}
.dv .stepper-v2 .wiz-steplabel{color:var(--teal);background:var(--teal-soft);border-radius:999px;padding:5px 12px;font-size:12px;letter-spacing:.06em}
.dv .stepper-v2 .progress{flex:0 1 200px;background:#dbe3ee}
.dv .stepper-v2 .progress__bar{background:var(--teal)}

/* question + one-line explanation, then straight to the input */
.dv .stepper-v2 .step h2{color:var(--teal-ink);font-size:clamp(21px,2.1vw,25px);margin:0 0 4px}
.dv .stepper-v2 .step .step__sub{margin:0 0 14px;font-size:15px}
.dv .stepper-v2 .step[data-step="stairs"] h2{margin-bottom:14px}
.dv .stepper-v2 .step[data-step="contact"] h2{font-size:clamp(20px,2vw,23px)}
.dv .stepper-v2 .step[data-step="contact"] .step__sub{margin-bottom:12px}

/* step 1 cards: whole card is the target (it is a <button>); teal for arrows / selected */
.dv .stepper-v2 .opt-grid,.dv .stepper-v2 .opt-grid--two{gap:14px}
.dv .stepper-v2 .opt{border-radius:16px;padding:8px 8px 0;box-shadow:0 1px 3px rgba(31,26,94,.06),0 8px 22px rgba(31,26,94,.07)}
.dv .stepper-v2 .opt .opt__label{padding:14px 6px 16px 8px;font-size:16px}
.dv .stepper-v2 .opt .opt__label::after,.dv .stepper-v2 .opt.rd-unknown-choice::after{color:var(--teal)}
.dv .stepper-v2 .opt:hover{border-color:var(--teal);box-shadow:0 0 0 3px var(--teal-soft),0 10px 26px rgba(31,26,94,.10);transform:none}
.dv .stepper-v2 .opt[aria-pressed="true"]{border-color:var(--teal);box-shadow:0 0 0 3px var(--teal-soft),0 10px 26px rgba(31,26,94,.10)}
.dv .stepper-v2 .opt:focus-visible{outline-color:var(--teal)}
.dv .stepper-v2 .opt.rd-unknown-choice::before{color:var(--teal-ink);background:#fff radial-gradient(circle at center,var(--teal-soft) 0 32%,transparent 33%)}

/* inputs: tighter, teal focus */
.dv .stepper-v2 .field{margin:0 0 14px}
.dv .stepper-v2 .field label{margin-bottom:6px}
.dv .stepper-v2 .input{min-height:50px;border-radius:11px}
.dv .stepper-v2 .input:focus{border-color:var(--teal);box-shadow:0 0 0 4px var(--teal-soft)}
.dv .stepper-v2 .step[data-step="postcode"] .field{margin-bottom:4px}
.dv .stepper-v2 .reveal{display:none}
.dv .stepper-v2 .rd-contact-grid .field{margin:0 0 12px}
.dv .stepper-v2 .rd-contact-grid .input{min-height:48px}
.dv .stepper-v2 .rd-contact-recap{margin:0 0 12px;padding:8px 12px;background:#fff}
.dv .stepper-v2 .cp-edit{color:var(--teal)}
.dv .stepper-v2 .rd-contact-grid .rd-address-extra summary{color:var(--teal-ink)}

/* CTA directly under the inputs; back stays ghost */
.dv .stepper-v2 .actionbar{margin-top:14px}
.dv .stepper-v2 .actionbar .btn{min-height:54px}

/* disclosure: contact step only, straight under the CTA */
.dv .stepper-v2 .wiz-disclosure{display:none;margin:14px 0 0;font-size:12.5px;line-height:1.5;color:var(--muted)}
.dv .stepper-v2 .wiz-disclosure a{color:var(--teal-ink);text-decoration:underline}
.dv .stepper-v2 .wiz-card[data-active-step="contact"] .wiz-disclosure{display:block}

/* trust strip: foot of the card, never between input and CTA */
.dv .stepper-v2 .wiz-trust{display:flex;flex-wrap:wrap;gap:10px 26px;list-style:none;padding:14px 0 0;margin:16px 0 0;border-top:1px solid var(--card-line)}
.dv .stepper-v2 .wiz-trust li{position:relative;padding-left:30px;font-size:13px;line-height:1.3;color:var(--muted)}
.dv .stepper-v2 .wiz-trust strong{display:block;font-size:13.5px;color:var(--navy)}
.dv .stepper-v2 .wiz-trust li::before{content:"";position:absolute;left:0;top:1px;width:22px;height:22px;border-radius:50%;background:var(--teal) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M9.5 16.2 5.3 12l1.4-1.4 2.8 2.8 7.8-7.8 1.4 1.4z'/%3E%3C/svg%3E") center/15px no-repeat}
.dv .stepper-v2 .wiz-card[data-active-step="done"] .wiz-trust,.dv .stepper-v2 .wiz-card[data-active-step="done"] .wiz-disclosure{display:none}

/* step transitions come from palier.css (.is-active / .is-leaving); our slide-in is dropped */
.dv .stepper-v2 .step{animation:none}

/* focus mode: the card is the page */
.dv-focus .stepper-v2 .wiz-card__body{min-height:0}
.dv-focus .stepper-v2 .actionbar{position:static;padding:0;background:none;margin-top:14px}
.dv-focus .dv-hero__inner>.dv-stepper{max-width:720px;margin-top:8px}
.dv-focus .dv-hero__inner{padding-top:28px}

@media (max-width:760px){
  .dv .stepper-v2 .wiz-card{padding:16px 14px 14px;border-radius:18px}
  .dv-hero__inner>.dv-stepper{margin-top:24px}
  .dv .stepper-v2 .wiz-progress{margin-bottom:10px}
  .dv .stepper-v2 .opt .opt__label{font-size:15px;padding:10px 4px 12px 6px}
  .dv .stepper-v2 .wiz-trust{gap:8px 16px;padding-top:12px;margin-top:14px}
  .dv .stepper-v2 .wiz-trust li{font-size:12px;padding-left:26px}
  .dv .stepper-v2 .wiz-trust li::before{width:19px;height:19px;background-size:13px}
  .dv .stepper-v2 .wiz-trust strong{font-size:12.5px}
  .dv-focus .stepper-v2 .actionbar{position:sticky;bottom:0;padding:10px 0 calc(10px + env(safe-area-inset-bottom,0px));background:linear-gradient(180deg,rgba(238,242,247,0) 0,var(--card) 25%)}
  .dv-focus .stepper-v2 .wiz-card{padding-bottom:4px}
}
/* transition step: same card, teal dot, no buttons */
.dv .stepper-v2 .step.searching h2{color:var(--teal-ink)}
.dv .stepper-v2 .searching ul{margin:6px 0 0}
.dv .stepper-v2 .searching li{font-size:15.5px;color:var(--ink2);display:flex;align-items:center;min-height:32px}
.dv .stepper-v2 .searching .dot{width:12px;height:12px;background:#c9d3e3;margin-right:12px;transition:background .25s}
.dv .stepper-v2 .searching li.is-done .dot{background:var(--teal)}
.dv .stepper-v2 .wiz-card[data-active-step="searching"] .wiz-trust{display:none}

/* v6.1 - mobile spacing fix: the .dv .dv-sec padding rule was overriding the side gutters
   on sections that are also .dv-wrap, so copy ran edge to edge on phones. */
.dv .dv-sec.dv-wrap{padding-left:24px;padding-right:24px}
@media (max-width:760px){
  .dv .dv-sec{padding:52px 0}
  .dv .dv-sec.dv-wrap{padding-left:18px;padding-right:18px}
  .dv .dv-sec--tint .dv-wrap,.dv .dv-sec--navy .dv-wrap{padding-left:18px;padding-right:18px}
  .dv .dv-sec__head{margin-bottom:24px}
  .dv .dv-sec h2{margin-bottom:12px}
  .dv .dv-intro{font-size:16.5px}
  .dv .dv-ticklist{gap:12px}
  .dv .dv-ticklist li{font-size:15.5px}
  .dv .dv-split{gap:24px}
  .dv .dv-close{padding:52px 18px}
}

/* v6.2 - consent sentence above the button (MD 2026-10-02) */
.dv .stepper-v2 .wiz-consent{margin:6px 0 0;font-size:13.5px;line-height:1.5;color:var(--ink2)}
.dv .stepper-v2 .wiz-consent__links{margin:4px 0 0;font-size:13px}
.dv .stepper-v2 .wiz-consent__links a{color:var(--teal-ink);text-decoration:underline}
.dv .stepper-v2 .rd-contact-grid{margin-bottom:0}

/* v6.3 - contact grid alignment: the commune "label" is a <summary>, give it the exact
   label metrics so the address and commune fields sit on the same baseline */
.dv .stepper-v2 .rd-contact-grid .field label,
.dv .stepper-v2 .rd-contact-grid .rd-address-extra summary{display:block;font-size:14px;line-height:1.3;font-weight:700;color:var(--navy);margin:0 0 6px;padding:0;list-style:none;cursor:default}
.dv .stepper-v2 .rd-contact-grid .rd-address-extra{margin:0 0 12px;padding:0;align-self:start}
.dv .stepper-v2 .rd-contact-grid .rd-address-extra .field{margin:0}
.dv .stepper-v2 .rd-contact-grid .rd-address-extra .field label{display:none}
.dv .stepper-v2 .rd-contact-grid{align-items:start}
.dv .stepper-v2 .rd-contact-grid .input{min-height:48px}

/* v6.4 - commune block: pin every dimension so palier.css can't open a gap between the
   summary and the input (details/summary carry their own padding + marker there) */
.dv .stepper-v2 .rd-contact-grid .rd-address-extra{display:grid!important;grid-template-rows:auto auto;row-gap:6px;margin:0 0 12px!important;padding:0!important;border:0!important;background:none!important}
.dv .stepper-v2 .rd-contact-grid .rd-address-extra summary{margin:0!important;padding:0!important;min-height:0!important;line-height:1.3!important;font-size:14px!important;list-style:none!important}
.dv .stepper-v2 .rd-contact-grid .rd-address-extra summary::marker,.dv .stepper-v2 .rd-contact-grid .rd-address-extra summary::-webkit-details-marker{display:none!important;content:""}
.dv .stepper-v2 .rd-contact-grid .rd-address-extra summary::before,.dv .stepper-v2 .rd-contact-grid .rd-address-extra summary::after{display:none!important}
.dv .stepper-v2 .rd-contact-grid .rd-address-extra .field{margin:0!important;padding:0!important}
.dv .stepper-v2 .rd-contact-grid .rd-address-extra .field label{display:none!important}
.dv .stepper-v2 .rd-contact-grid .rd-address-extra .input{margin:0!important}
.dv .stepper-v2 .rd-contact-grid .field label{margin:0 0 6px!important;padding:0!important;line-height:1.3!important}
