:root{
  /* Palette calée sur le logo Ważne Finanse : navy + vert */
  --bg:#f5f4f0;
  --paper:#fbfaf6;
  --panel:#ecebe5;
  --panel-2:rgba(255,255,255,.58);
  --ink:#0f1f3d;              /* navy foncé (texte + primary) */
  --ink-soft:#1b2e57;
  --muted:#5b6478;
  --line:rgba(15,31,61,.12);
  --accent:#2fa96a;           /* vert du logo */
  --accent-dark:#1f8a54;
  --accent-2:#1e5aa8;         /* bleu médian */
  --accent-3:#0f2a5c;         /* navy profond */
  --success:#1f8a54;
  --danger:#a11f2c;
  --shadow:0 20px 60px rgba(15,31,61,.14);
  --radius:24px;
  --radius-sm:16px;
  --max:1240px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
:target{scroll-margin-top:5rem}
body{
  margin:0;
  font-family:"Manrope", system-ui, -apple-system, Segoe UI, sans-serif;
  color:var(--ink);
  background:
    radial-gradient(circle at 15% 20%, rgba(30,90,168,.10), transparent 28%),
    radial-gradient(circle at 85% 10%, rgba(47,169,106,.12), transparent 26%),
    linear-gradient(180deg, #f8f6f1 0%, #f2efe8 100%);
  line-height:1.55;
  overflow-x:hidden;
  min-height:100vh;
}

::selection{background:rgba(47,169,106,.22); color:var(--ink)}

.grain::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  opacity:.06;
  background-image:radial-gradient(rgba(0,0,0,.8) .45px, transparent .7px);
  background-size:10px 10px;
  mix-blend-mode:multiply;
  z-index:100;
}

a{color:inherit; text-decoration:none}
img{max-width:100%; display:block}
button{font:inherit}

.container{
  width:min(calc(100% - 2rem), var(--max));
  margin-inline:auto;
}

.skip-link{
  position:absolute;
  left:1rem;
  top:-3rem;
  padding:.6rem 1rem;
  background:var(--ink);
  color:#fff;
  border-radius:8px;
  z-index:200;
  transition:top .2s ease;
}
.skip-link:focus{top:.5rem}

h1,h2,h3,h4{
  margin:0;
  font-family:"Space Grotesk", system-ui, sans-serif;
  letter-spacing:-.04em;
  line-height:1.05;
}
h1{font-size:clamp(2.6rem, 6vw, 5.4rem); letter-spacing:-.05em}
h2{font-size:clamp(1.8rem, 4vw, 3.2rem)}
h3{font-size:clamp(1.2rem, 2vw, 1.6rem); letter-spacing:-.03em}
h4{font-size:1.1rem; letter-spacing:-.02em}
p{margin:0 0 1rem}
p:last-child{margin-bottom:0}

.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:.6rem;
  padding:.45rem .8rem;
  border:1px solid var(--line);
  border-radius:999px;
  background:rgba(255,255,255,.52);
  backdrop-filter:blur(16px);
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--muted);
}
.eyebrow::before{
  content:"";
  width:.52rem;
  height:.52rem;
  border-radius:50%;
  background:linear-gradient(135deg, var(--accent), var(--accent-2));
  box-shadow:0 0 0 4px rgba(47,169,106,.08);
}
.eyebrow--light{
  color:#d7f8f4;
  border-color:rgba(255,255,255,.16);
  background:rgba(255,255,255,.08);
}

.site-header{
  position:sticky;
  top:0;
  z-index:90;
  padding:.95rem 0;
  backdrop-filter:blur(18px);
  background:linear-gradient(180deg, rgba(247,244,238,.92), rgba(247,244,238,.66));
  border-bottom:1px solid rgba(15,31,61,.06);
}

.nav-wrap{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
}

.brand{
  display:flex;
  align-items:center;
  gap:.85rem;
  font-family:"Space Grotesk", sans-serif;
  font-weight:700;
  letter-spacing:-.03em;
}
.brand-mark{
  width:2.35rem;
  height:2.35rem;
  border-radius:12px;
  background:
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232fa96a' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'><path d='M5 12.5l4.5 4.5L19 6.5'/></svg>") center/62% no-repeat,
    linear-gradient(160deg, #14305e 0%, #0f1f3d 100%);
  border:1px solid rgba(15,31,61,.18);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06);
  flex:0 0 auto;
}
.brand{color:var(--ink)}
.brand-logo{
  height:2.4rem;
  width:auto;
  max-width:12rem;
  display:block;
}
.brand-fallback{
  display:inline-flex;
  align-items:center;
  gap:.85rem;
}
.brand:has(.brand-logo) .brand-fallback{display:none}

.nav{
  display:flex;
  align-items:center;
  gap:1.35rem;
}
.nav-links{
  display:flex;
  align-items:center;
  gap:1.25rem;
  color:var(--muted);
  font-weight:700;
  font-size:.94rem;
}
.nav-links a{position:relative; padding:.2rem 0}
.nav-links a::after{
  content:"";
  position:absolute;
  left:0;
  bottom:-.2rem;
  width:0;
  height:2px;
  background:var(--ink);
  transition:width .28s ease;
}
.nav-links a:hover::after,
.nav-links a[aria-current="page"]::after{width:100%}
.nav-links a[aria-current="page"]{color:var(--ink)}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.7rem;
  min-height:3rem;
  padding:.9rem 1.15rem;
  border-radius:999px;
  border:1px solid transparent;
  font-weight:800;
  letter-spacing:-.01em;
  transition:transform .22s ease, box-shadow .22s ease, background .22s ease, color .22s ease, border-color .22s ease;
  cursor:pointer;
  text-align:center;
}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:translateY(0) scale(.98)}
.btn:focus-visible{outline:3px solid rgba(47,169,106,.4); outline-offset:2px}
.btn-primary{
  background:var(--ink);
  color:#fff;
  box-shadow:0 12px 30px rgba(15,31,61,.18);
}
.btn-primary:hover{background:#000; box-shadow:0 18px 36px rgba(15,31,61,.24)}
.btn-secondary{
  background:rgba(255,255,255,.55);
  border-color:var(--line);
  color:var(--ink);
  backdrop-filter:blur(14px);
}
.btn-secondary:hover{background:rgba(255,255,255,.85); border-color:rgba(15,31,61,.16)}
.btn-block{width:100%}
.btn[disabled]{opacity:.55; cursor:not-allowed; transform:none}

.mobile-toggle{
  display:none;
  width:3rem;
  height:3rem;
  border-radius:999px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.62);
  backdrop-filter:blur(14px);
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:.23rem;
  cursor:pointer;
}
.mobile-toggle span{
  width:1.1rem;
  height:2px;
  background:var(--ink);
  border-radius:999px;
  transition:transform .22s ease, opacity .22s ease;
}

/* ─── HERO ─── */
.hero{padding:clamp(2.2rem, 4vw, 4rem) 0 2rem}
.hero-grid{
  display:grid;
  grid-template-columns:1.12fr .88fr;
  gap:1.5rem;
  align-items:stretch;
}
.hero-copy,
.hero-panel{
  border:1px solid var(--line);
  border-radius:calc(var(--radius) + 8px);
  overflow:hidden;
  position:relative;
  box-shadow:var(--shadow);
}
.hero-copy{
  background:
    linear-gradient(180deg, rgba(255,255,255,.64), rgba(255,255,255,.38)),
    linear-gradient(135deg, rgba(47,169,106,.08), rgba(30,90,168,.10));
  backdrop-filter:blur(14px);
  padding:clamp(1.5rem, 3vw, 2.5rem);
  min-height:36rem;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
}
.hero-copy-top{max-width:46rem}
.hero h1{margin-top:1rem; max-width:14ch}
.lead{
  margin:1.2rem 0 0;
  max-width:52ch;
  font-size:clamp(1rem, 1.4vw, 1.15rem);
  color:var(--muted);
}
.hero-actions{
  display:flex;
  flex-wrap:wrap;
  gap:.85rem;
  margin-top:1.7rem;
}
.hero-metrics{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:.75rem;
  margin-top:2rem;
}
.metric{
  padding:1rem;
  border-radius:18px;
  background:rgba(255,255,255,.48);
  border:1px solid rgba(15,31,61,.08);
  backdrop-filter:blur(10px);
}
.metric strong{
  display:block;
  font-family:"Space Grotesk", sans-serif;
  font-size:clamp(1.35rem, 2.5vw, 2rem);
  letter-spacing:-.04em;
}
.metric span{color:var(--muted); font-size:.9rem; font-weight:700}
.hero-note{
  margin-top:1.4rem;
  padding:1rem 1.15rem;
  border-left:4px solid var(--accent);
  background:rgba(255,255,255,.42);
  border-radius:14px;
  color:var(--muted);
  max-width:44rem;
  font-size:.92rem;
}

/* ─── HERO CAROUSEL (homepage) ─── */
.hero-carousel{
  position:relative;
  border-radius:calc(var(--radius) + 12px);
  overflow:hidden;
  box-shadow:var(--shadow);
  isolation:isolate;
  min-height:clamp(30rem, 52vw, 40rem);
}
.hero-carousel-track{
  position:relative;
  height:100%;
  min-height:inherit;
  border-radius:inherit;
  overflow:hidden;
}
.hero-slide{
  position:absolute;
  inset:0;
  opacity:0;
  transition:opacity .9s ease;
  pointer-events:none;
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
  gap:0;
  min-height:inherit;
  border-radius:inherit;
  overflow:hidden;
}
.hero-slide.active{opacity:1; pointer-events:auto}
.hero-slide-copy{
  position:relative;
  z-index:2;
  padding:clamp(1.5rem, 3.5vw, 3rem);
  background:
    linear-gradient(180deg, rgba(255,255,255,.72), rgba(255,255,255,.42)),
    linear-gradient(135deg, rgba(47,169,106,.08), rgba(30,90,168,.10));
  backdrop-filter:blur(18px);
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:1.2rem;
  border-right:1px solid var(--line);
}
.hero-slide-copy h1{
  font-size:clamp(2.2rem, 5.2vw, 4rem);
  letter-spacing:-.045em;
  line-height:1.02;
  max-width:16ch;
  margin:0;
}
.hero-slide-copy .lead{margin-top:0}
.hero-slide-actions{
  display:flex;
  flex-wrap:wrap;
  gap:.85rem;
  margin-top:.4rem;
}
.hero-slide-trust{
  font-size:.82rem;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--muted);
}
.hero-slide-visual{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 30% 40%, rgba(47,169,106,.24), transparent 55%),
    radial-gradient(circle at 80% 60%, rgba(30,90,168,.22), transparent 55%),
    linear-gradient(160deg, #1f1a17 0%, #151311 100%);
}
.hero-slide-visual img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  transition:transform 10s ease;
}
.hero-slide.active .hero-slide-visual img{transform:scale(1.06)}
.hero-slide-visual::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg, rgba(31,26,23,.28), transparent 40%);
  z-index:1;
}
.hero-slide-badge{
  position:absolute;
  right:1rem;
  bottom:1rem;
  z-index:2;
  padding:.7rem 1rem;
  border-radius:16px;
  background:rgba(20,17,14,.75);
  color:#fff;
  backdrop-filter:blur(10px);
  border:1px solid rgba(255,255,255,.14);
  font-size:.86rem;
  font-weight:700;
  display:flex;
  flex-direction:column;
  gap:.2rem;
}
.hero-slide-badge strong{font-family:"Space Grotesk", sans-serif; letter-spacing:-.02em}
.hero-slide-badge span{color:rgba(255,255,255,.7); font-weight:600; font-size:.78rem}

.hero-carousel-controls{
  position:absolute;
  z-index:5;
  left:0; right:0; bottom:1rem;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.6rem;
}
.hero-dot{
  width:.7rem;
  height:.7rem;
  border-radius:50%;
  border:none;
  background:rgba(255,255,255,.55);
  cursor:pointer;
  padding:0;
  transition:transform .2s ease, background .2s ease, width .3s ease;
}
.hero-dot.active{background:#fff; width:2rem; border-radius:999px}
.hero-dot:focus-visible{outline:2px solid #fff; outline-offset:2px}
.hero-arrow{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  z-index:5;
  width:2.6rem;
  height:2.6rem;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.28);
  background:rgba(20,17,14,.55);
  color:#fff;
  cursor:pointer;
  display:none;
  align-items:center;
  justify-content:center;
  font-size:1.2rem;
  transition:background .2s ease, transform .2s ease;
  backdrop-filter:blur(6px);
}
.hero-arrow:hover{background:rgba(20,17,14,.8); transform:translateY(-50%) scale(1.05)}
.hero-arrow-prev{left:.8rem}
.hero-arrow-next{right:.8rem}
@media (min-width: 820px){
  .hero-arrow{display:flex}
}

@media (max-width: 900px){
  .hero-slide{grid-template-columns:1fr; grid-template-rows:auto 1fr}
  .hero-slide-visual{min-height:12rem; order:-1}
  .hero-slide-copy{border-right:none; border-bottom:1px solid var(--line)}
  .hero-carousel{min-height:auto}
  .hero-slide-copy h1{font-size:clamp(2rem, 6.5vw, 2.6rem)}
}

/* ─── HERO — micro-réassurance & card statique ─── */
.hero-trust{
  margin-top:1.4rem;
  font-size:.86rem;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--muted);
  display:inline-flex;
  align-items:center;
  gap:.6rem;
}

.hero-card{
  border:1px solid var(--line);
  border-radius:calc(var(--radius) + 8px);
  padding:clamp(1.4rem, 2.8vw, 2rem);
  box-shadow:var(--shadow);
  background:
    radial-gradient(circle at 82% 18%, rgba(30,90,168,.16), transparent 26%),
    radial-gradient(circle at 18% 82%, rgba(47,169,106,.18), transparent 28%),
    linear-gradient(180deg, #1f1a17 0%, #151311 100%);
  color:#f8f4ee;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:1.2rem;
  min-height:26rem;
}
.hero-card-inner{
  border:1px solid rgba(255,255,255,.10);
  border-radius:22px;
  padding:1.1rem 1.2rem;
  background:linear-gradient(180deg, rgba(255,255,255,.07), rgba(255,255,255,.03));
  display:grid;
  gap:.85rem;
}
.hero-card-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding:.55rem 0;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.hero-card-row:last-child{border-bottom:none}
.hero-card-label{
  font-size:.82rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:rgba(248,244,238,.66);
}
.hero-card-value{
  font-family:"Space Grotesk", sans-serif;
  font-size:clamp(1.4rem, 2.6vw, 1.9rem);
  letter-spacing:-.03em;
  color:#fff;
}
.hero-card-row--cta{padding-top:.9rem}
.hero-card-link{
  color:#fff;
  font-weight:800;
  border-bottom:2px solid rgba(255,255,255,.35);
  padding-bottom:2px;
  transition:border-color .2s ease, transform .2s ease;
}
.hero-card-link:hover{border-color:#fff; transform:translateX(2px)}
.hero-card-note{
  margin:0;
  color:rgba(248,244,238,.66);
  font-size:.85rem;
  line-height:1.5;
}

/* ─── SIMULATEUR (hero panel + full page) ─── */
.hero-panel{
  background:
    radial-gradient(circle at 80% 15%, rgba(30,90,168,.18), transparent 24%),
    radial-gradient(circle at 18% 82%, rgba(47,169,106,.18), transparent 28%),
    linear-gradient(180deg, #1f1a17 0%, #151311 100%);
  color:#f8f4ee;
  padding:1.2rem;
  display:grid;
  grid-template-rows:auto 1fr auto;
  gap:1rem;
}
.panel-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  flex-wrap:wrap;
}
.trust-badge{
  padding:.5rem .8rem;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.06);
  font-size:.74rem;
  font-weight:800;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:rgba(255,255,255,.82);
}
.loan-shell{
  border:1px solid rgba(255,255,255,.10);
  border-radius:28px;
  background:linear-gradient(180deg, rgba(255,255,255,.07), rgba(255,255,255,.03));
  padding:1.1rem;
  backdrop-filter:blur(14px);
}
.loan-header{
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:1rem;
  margin-bottom:1rem;
  flex-wrap:wrap;
}
.loan-header h2{font-size:clamp(1.4rem, 2.6vw, 2rem)}
.loan-header p{
  margin:.4rem 0 0;
  color:rgba(248,244,238,.72);
  font-size:.92rem;
  max-width:26ch;
}
.amount{
  font-family:"Space Grotesk", sans-serif;
  font-size:clamp(1.8rem, 4vw, 2.8rem);
  letter-spacing:-.04em;
}
.range-group{margin:1rem 0 1.15rem}
.range-label{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:.45rem;
  color:rgba(248,244,238,.78);
  font-size:.85rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.06em;
}
input[type="range"]{
  width:100%;
  appearance:none;
  -webkit-appearance:none;
  height:8px;
  border-radius:999px;
  outline:none;
  background:linear-gradient(90deg, var(--accent) 0%, var(--accent-2) 100%);
}
input[type="range"]::-webkit-slider-thumb{
  appearance:none;
  -webkit-appearance:none;
  width:22px;
  height:22px;
  border-radius:50%;
  background:#fff;
  border:3px solid var(--ink);
  box-shadow:0 6px 20px rgba(0,0,0,.22);
  cursor:pointer;
}
input[type="range"]::-moz-range-thumb{
  width:22px;
  height:22px;
  border-radius:50%;
  background:#fff;
  border:3px solid var(--ink);
  box-shadow:0 6px 20px rgba(0,0,0,.22);
  cursor:pointer;
}
input[type="range"]:focus-visible::-webkit-slider-thumb{outline:3px solid rgba(255,255,255,.5)}
input[type="range"]:focus-visible::-moz-range-thumb{outline:3px solid rgba(255,255,255,.5)}

.loan-results{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:.75rem;
  margin-top:1rem;
}
.result{
  padding:1rem;
  border-radius:18px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.08);
}
.result small{
  display:block;
  color:rgba(248,244,238,.62);
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:.7rem;
  font-weight:800;
  margin-bottom:.35rem;
}
.result strong{
  font-family:"Space Grotesk", sans-serif;
  font-size:1.28rem;
  letter-spacing:-.03em;
}
.panel-footer{
  display:flex;
  gap:.8rem;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  color:rgba(248,244,238,.72);
  font-size:.86rem;
}

/* Kalkulator light variant (page dédiée) */
.calc-light{
  background:rgba(255,255,255,.55);
  color:var(--ink);
  border-radius:calc(var(--radius) + 8px);
  border:1px solid var(--line);
  padding:1.4rem;
  box-shadow:var(--shadow);
}
.calc-light .loan-shell{
  background:rgba(255,255,255,.6);
  border-color:var(--line);
  backdrop-filter:none;
}
.calc-light .loan-header p,
.calc-light .range-label,
.calc-light .result small,
.calc-light .panel-footer{color:var(--muted)}
.calc-light .result{background:rgba(255,255,255,.7); border-color:rgba(15,31,61,.08)}
.calc-light input[type="range"]::-webkit-slider-thumb{border-color:var(--ink)}

/* ─── SECTIONS ─── */
.section{padding:2.3rem 0}
.section-tight{padding:1.4rem 0}
.section-head{
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:1rem;
  align-items:end;
  margin-bottom:1.35rem;
}
.section-head h2{max-width:12ch}
.section-head p{margin:0; color:var(--muted); max-width:62ch; justify-self:end}

.trust-strip{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:1rem;
}
.trust-item{
  border:1px solid var(--line);
  border-radius:22px;
  padding:1.2rem;
  background:rgba(255,255,255,.5);
  min-height:9rem;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  transition:transform .25s ease, background .25s ease, border-color .25s ease;
}
.trust-item:hover{
  transform:translateY(-4px);
  background:rgba(255,255,255,.75);
  border-color:rgba(15,31,61,.14);
}
.trust-item .icon{
  width:2.8rem;
  height:2.8rem;
  border-radius:16px;
  display:grid;
  place-items:center;
  font-size:1.15rem;
  background:linear-gradient(135deg, rgba(47,169,106,.12), rgba(30,90,168,.16));
  border:1px solid rgba(15,31,61,.08);
}
.trust-item h3{font-size:1.2rem; margin-top:1rem; margin-bottom:.4rem}
.trust-item p{margin:0; color:var(--muted); font-size:.94rem}

/* ─── HOW ─── */
.how{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1rem;
  align-items:stretch;
}
.how-left{
  padding:1.35rem;
  border-radius:28px;
  border:1px solid var(--line);
  background:linear-gradient(180deg, rgba(255,255,255,.62), rgba(255,255,255,.36));
  box-shadow:var(--shadow);
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  min-height:32rem;
}
.steps{display:grid; gap:.85rem; margin-top:1.4rem}
.step{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:1rem;
  padding:1rem;
  border-radius:20px;
  background:rgba(255,255,255,.52);
  border:1px solid rgba(15,31,61,.08);
}
.step-index{
  width:2.6rem;
  height:2.6rem;
  border-radius:999px;
  display:grid;
  place-items:center;
  font-family:"Space Grotesk", sans-serif;
  font-weight:700;
  background:var(--ink);
  color:#fff;
  box-shadow:0 10px 20px rgba(15,31,61,.12);
}
.step h3{font-size:1.1rem; margin-bottom:.25rem}
.step p{margin:0; color:var(--muted); font-size:.94rem}

.how-right{display:grid; grid-template-rows:1fr auto; gap:1rem}
.assurance{
  border-radius:28px;
  border:1px solid rgba(15,31,61,.08);
  background:linear-gradient(160deg, #0f766e 0%, #134e4a 60%, #0f3a38 100%);
  color:#f4fffe;
  padding:1.4rem;
  position:relative;
  overflow:hidden;
  box-shadow:var(--shadow);
}
.assurance::before{
  content:"";
  position:absolute;
  right:-8%;
  top:-10%;
  width:14rem;
  height:14rem;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.12);
  opacity:.5;
}
.assurance::after{
  content:"";
  position:absolute;
  right:10%;
  bottom:-14%;
  width:10rem;
  height:10rem;
  border-radius:50%;
  background:radial-gradient(circle, rgba(255,255,255,.14), transparent 70%);
}
.assurance h2,
.assurance h3{color:#f4fffe; max-width:14ch}
.assurance p{max-width:40ch; color:rgba(244,255,254,.86)}
.bullet-list{
  margin:1.3rem 0 0;
  padding:0;
  list-style:none;
  display:grid;
  gap:.75rem;
}
.bullet-list li{
  display:flex;
  align-items:flex-start;
  gap:.8rem;
  color:rgba(244,255,254,.92);
}
.bullet-list li::before{
  content:"✓";
  flex:0 0 auto;
  width:1.5rem;
  height:1.5rem;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.18);
  font-weight:800;
}
.bullet-list--dark li{color:var(--ink)}
.bullet-list--dark li::before{
  background:rgba(47,169,106,.1);
  border-color:rgba(47,169,106,.22);
  color:var(--accent);
}

.quote-box{
  border-radius:28px;
  padding:1.3rem;
  background:linear-gradient(180deg, rgba(30,90,168,.10), rgba(255,255,255,.42));
  border:1px solid var(--line);
  min-height:13rem;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
}
.quote-box p{margin:0; font-size:1.05rem; color:var(--ink); max-width:38ch}
.quote-meta{margin-top:1rem; color:var(--muted); font-weight:800; font-size:.9rem}

/* ─── PROOF ─── */
.proof{
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:1rem;
  align-items:start;
}
.testimonial-wall{
  border-radius:28px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.52);
  padding:1rem;
  box-shadow:var(--shadow);
  display:grid;
  gap:.8rem;
}
.testimonial{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:.9rem;
  align-items:start;
  padding:1rem;
  border-radius:20px;
  background:rgba(255,255,255,.58);
  border:1px solid rgba(15,31,61,.07);
}
.avatar{
  width:3rem;
  height:3rem;
  border-radius:50%;
  display:grid;
  place-items:center;
  font-family:"Space Grotesk", sans-serif;
  font-weight:700;
  background:linear-gradient(135deg, rgba(47,169,106,.16), rgba(30,90,168,.18));
  border:1px solid rgba(15,31,61,.08);
}
.testimonial strong{display:block; font-size:1rem; margin-bottom:.15rem}
.testimonial small{color:var(--muted); font-weight:700}
.stars{
  letter-spacing:.12em;
  color:var(--accent-2);
  margin:.25rem 0 .35rem;
  font-size:.86rem;
}
.testimonial p{margin:0; color:var(--muted)}

.cta-block{
  border-radius:30px;
  border:1px solid var(--line);
  background:
    linear-gradient(180deg, rgba(255,255,255,.70), rgba(255,255,255,.36)),
    linear-gradient(135deg, rgba(47,169,106,.08), rgba(30,90,168,.08));
  padding:1.5rem;
  box-shadow:var(--shadow);
  position:sticky;
  top:6rem;
}
.cta-block h3{max-width:14ch}
.cta-block p{color:var(--muted); max-width:36ch}
.cta-points{display:grid; gap:.7rem; margin:1.2rem 0 1.4rem}
.cta-points div{
  display:flex;
  align-items:center;
  gap:.7rem;
  font-weight:700;
  color:var(--ink);
}
.cta-points span{
  width:1.7rem;
  height:1.7rem;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:rgba(47,169,106,.10);
  border:1px solid rgba(47,169,106,.16);
  color:var(--accent);
  font-size:.9rem;
  font-weight:800;
}

/* ─── FAQ ─── */
.faq{
  display:grid;
  grid-template-columns:.95fr 1.05fr;
  gap:1rem;
  align-items:start;
}
.faq-intro{
  border-radius:28px;
  border:1px solid var(--line);
  background:linear-gradient(180deg, rgba(255,255,255,.62), rgba(255,255,255,.34));
  padding:1.35rem;
  box-shadow:var(--shadow);
  min-height:24rem;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
}
.faq-intro h2{max-width:12ch}
.faq-list{display:grid; gap:.8rem}
.faq-group + .faq-group{margin-top:1.2rem}
.faq-group-title{
  margin:0 0 .6rem;
  font-family:"Space Grotesk", sans-serif;
  font-size:1.05rem;
  color:var(--muted);
  text-transform:uppercase;
  letter-spacing:.08em;
  font-weight:800;
}
.faq-item{
  border:1px solid var(--line);
  border-radius:20px;
  background:rgba(255,255,255,.56);
  overflow:hidden;
}
.faq-q{
  width:100%;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:1rem;
  background:none;
  border:none;
  padding:1.1rem;
  text-align:left;
  font-weight:800;
  color:var(--ink);
  cursor:pointer;
  font-size:1rem;
}
.faq-q:focus-visible{outline:2px solid var(--accent); outline-offset:-2px; border-radius:20px}
.faq-q .plus{
  font-family:"Space Grotesk", sans-serif;
  font-size:1.35rem;
  transition:transform .22s ease;
  flex:0 0 auto;
}
.faq-item.active .plus{transform:rotate(45deg)}
.faq-a{
  max-height:0;
  overflow:hidden;
  transition:max-height .32s ease;
  color:var(--muted);
  padding:0 1.1rem;
}
.faq-a p{margin:0; padding:0 0 1.1rem}

/* ─── FINAL CTA ─── */
.final-cta{padding:2rem 0 3rem}
.final-panel{
  border-radius:34px;
  border:1px solid rgba(15,31,61,.08);
  background:
    radial-gradient(circle at 8% 20%, rgba(30,90,168,.14), transparent 18%),
    radial-gradient(circle at 90% 80%, rgba(47,169,106,.14), transparent 20%),
    linear-gradient(180deg, rgba(255,255,255,.74), rgba(255,255,255,.42));
  padding:clamp(1.4rem, 3vw, 2.4rem);
  box-shadow:var(--shadow);
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:1rem;
  align-items:end;
}
.final-panel h2{max-width:13ch}
.final-panel p{color:var(--muted); max-width:52ch; margin:.8rem 0 0}
.disclaimer{margin-top:1rem; font-size:.88rem; color:var(--muted)}

/* ─── FOOTER ─── */
footer{padding:0 0 2rem}
.footer-grid{
  display:grid;
  grid-template-columns:1.4fr .8fr .8fr .9fr;
  gap:1rem;
  padding-top:1.5rem;
  border-top:1px solid rgba(15,31,61,.08);
}
.footer-title{
  font-family:"Space Grotesk", sans-serif;
  font-size:1.05rem;
  margin-bottom:.75rem;
  font-weight:700;
}
.footer-col p,
.footer-col a{color:var(--muted); font-size:.92rem}
.footer-col a{display:block; margin:.35rem 0}
.footer-col a:hover{color:var(--ink)}
.legal{margin-top:1rem; color:var(--muted); font-size:.84rem}

/* ─── FORM ─── */
.form-wrap{
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:1.2rem;
  align-items:start;
}
.form-panel{
  border-radius:28px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.66);
  padding:clamp(1.2rem, 3vw, 2rem);
  box-shadow:var(--shadow);
}
.form-side{
  border-radius:28px;
  border:1px solid var(--line);
  background:linear-gradient(180deg, rgba(255,255,255,.6), rgba(255,255,255,.34));
  padding:1.4rem;
  box-shadow:var(--shadow);
  position:sticky;
  top:6rem;
}
.form-side h3{margin-bottom:.6rem}
.form-side p{color:var(--muted); font-size:.94rem}

.form-section{margin-bottom:1.6rem}
.form-section:last-child{margin-bottom:0}
.form-section-title{
  font-family:"Space Grotesk", sans-serif;
  font-size:1.15rem;
  margin-bottom:.9rem;
  padding-bottom:.6rem;
  border-bottom:1px solid var(--line);
}
.form-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:.9rem;
  margin-bottom:.9rem;
}
.form-row--3{grid-template-columns:1fr 1fr 1fr}
.form-field{display:flex; flex-direction:column; gap:.35rem}
.form-field--full{grid-column:1/-1}
.form-field label{
  font-size:.86rem;
  font-weight:700;
  color:var(--muted);
}
.form-field label .req{color:var(--danger); margin-left:.2rem}
.form-field input,
.form-field select,
.form-field textarea{
  font:inherit;
  padding:.85rem 1rem;
  border-radius:14px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.85);
  color:var(--ink);
  transition:border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus{
  outline:none;
  border-color:var(--accent);
  box-shadow:0 0 0 3px rgba(47,169,106,.15);
  background:#fff;
}
.form-field input:invalid:not(:placeholder-shown){
  border-color:rgba(153,27,27,.5);
}
.form-field textarea{min-height:6rem; resize:vertical}
.form-field .hint{font-size:.8rem; color:var(--muted); margin-top:.15rem}

.consent{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:.7rem;
  padding:.9rem 1rem;
  border-radius:14px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.55);
  margin-bottom:.6rem;
  font-size:.9rem;
  color:var(--muted);
}
.consent input[type="checkbox"]{
  width:1.15rem;
  height:1.15rem;
  margin-top:.15rem;
  accent-color:var(--accent);
  cursor:pointer;
}
.consent label{cursor:pointer}
.consent strong{color:var(--ink)}

.form-summary{
  padding:1rem;
  border-radius:16px;
  background:rgba(47,169,106,.06);
  border:1px solid rgba(47,169,106,.14);
  margin-bottom:1.2rem;
}
.form-summary strong{
  font-family:"Space Grotesk", sans-serif;
  font-size:1.2rem;
  color:var(--accent);
}

.form-error{
  padding:1rem 1.15rem;
  border-radius:14px;
  background:rgba(153,27,27,.08);
  border:1px solid rgba(153,27,27,.22);
  color:var(--danger);
  font-weight:700;
  margin-bottom:1rem;
  display:none;
}
.form-error.visible{display:block}

/* ─── AMORTIZATION TABLE ─── */
.amortization{
  border-radius:24px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.6);
  overflow:hidden;
  box-shadow:var(--shadow);
}
.amortization-header{
  padding:1rem 1.2rem;
  border-bottom:1px solid var(--line);
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:1rem;
  flex-wrap:wrap;
}
.amortization-scroll{max-height:32rem; overflow:auto}
.amortization table{
  width:100%;
  border-collapse:collapse;
  font-size:.92rem;
}
.amortization th,
.amortization td{
  padding:.7rem 1rem;
  text-align:right;
  border-bottom:1px solid rgba(15,31,61,.06);
}
.amortization th{
  position:sticky;
  top:0;
  background:rgba(251,248,242,.98);
  backdrop-filter:blur(6px);
  font-size:.78rem;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:var(--muted);
  font-weight:800;
}
.amortization th:first-child,
.amortization td:first-child{text-align:left}
.amortization tbody tr:hover{background:rgba(47,169,106,.04)}

/* ─── PAGE HERO avec photo (variante sombre) ─── */
.page-hero-panel--photo{
  position:relative;
  color:#fff;
  overflow:hidden;
  isolation:isolate;
  border:none;
  background:
    linear-gradient(160deg, #14305e 0%, #0f1f3d 100%);
}
.page-hero-panel--photo::before{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(120deg, rgba(15,31,61,.86) 0%, rgba(15,31,61,.62) 55%, rgba(15,31,61,.34) 100%);
  z-index:2;
}
.page-hero-panel--photo .page-hero-bg{
  position:absolute; inset:0; z-index:1;
  background:
    radial-gradient(circle at 30% 40%, rgba(30,90,168,.28), transparent 55%),
    radial-gradient(circle at 80% 60%, rgba(47,169,106,.22), transparent 55%);
}
.page-hero-panel--photo .page-hero-bg img{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
  opacity:.75;
}
.page-hero-panel--photo > *:not(.page-hero-bg){position:relative; z-index:3}
.page-hero-panel--photo h1,
.page-hero-panel--photo h2,
.page-hero-panel--photo p{color:#fff}
.page-hero-panel--photo .lead{color:rgba(255,255,255,.88)}
.page-hero-panel--photo .eyebrow{
  color:#fff;
  background:rgba(255,255,255,.10);
  border-color:rgba(255,255,255,.22);
}
.page-hero-panel--photo .btn-secondary{
  background:rgba(255,255,255,.12);
  border-color:rgba(255,255,255,.24);
  color:#fff;
}
.page-hero-panel--photo .btn-secondary:hover{
  background:rgba(255,255,255,.22);
  border-color:rgba(255,255,255,.34);
}

/* ─── TRUST BAR compact (bandeau sous hero) ─── */
.trust-bar{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:.7rem;
  padding:1rem;
  border-radius:20px;
  background:rgba(255,255,255,.6);
  border:1px solid var(--line);
  box-shadow:0 12px 30px rgba(15,31,61,.06);
}
.trust-bar-item{
  display:flex; align-items:center; gap:.7rem;
  padding:.4rem .6rem;
  border-right:1px solid var(--line);
}
.trust-bar-item:last-child{border-right:none}
.trust-bar-icon{
  width:2.2rem; height:2.2rem;
  border-radius:12px;
  display:grid; place-items:center;
  background:linear-gradient(135deg, rgba(47,169,106,.14), rgba(30,90,168,.14));
  font-size:1.05rem;
  flex:0 0 auto;
}
.trust-bar-text strong{display:block; font-size:.9rem; letter-spacing:-.01em}
.trust-bar-text span{color:var(--muted); font-size:.78rem}
@media (max-width:900px){
  .trust-bar{grid-template-columns:1fr 1fr}
  .trust-bar-item:nth-child(2){border-right:none}
}
@media (max-width:560px){
  .trust-bar{grid-template-columns:1fr}
  .trust-bar-item{border-right:none; border-bottom:1px solid var(--line); padding-bottom:.7rem}
  .trust-bar-item:last-child{border-bottom:none; padding-bottom:.4rem}
}

/* ─── PRODUCT CARDS avec accroche ─── */
.product-card{
  border:1px solid var(--line);
  border-radius:24px;
  background:rgba(255,255,255,.7);
  overflow:hidden;
  display:flex;
  flex-direction:column;
  transition:transform .25s ease, box-shadow .25s ease, background .25s ease;
}
.product-card:hover{
  transform:translateY(-4px);
  box-shadow:var(--shadow);
  background:rgba(255,255,255,.92);
}
.product-card-img{
  position:relative;
  aspect-ratio:16/10;
  overflow:hidden;
  background:
    radial-gradient(circle at 30% 30%, rgba(47,169,106,.22), transparent 55%),
    radial-gradient(circle at 80% 70%, rgba(30,90,168,.22), transparent 55%),
    linear-gradient(160deg, #ecebe5 0%, #d9d7cf 100%);
}
.product-card-img img{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
  transition:transform .6s ease;
}
.product-card:hover .product-card-img img{transform:scale(1.05)}
.product-card-body{
  padding:1.4rem 1.5rem 1.6rem;
  display:flex; flex-direction:column; gap:.6rem;
  flex:1;
}
.product-card-body h3{margin:0}
.product-card-hook{
  color:var(--ink);
  font-weight:700;
  font-size:.98rem;
  margin:.2rem 0 .1rem;
}
.product-card-body p{margin:0; color:var(--muted); font-size:.93rem}
.product-card-cta{
  margin-top:auto; padding-top:.7rem;
  color:var(--accent);
  font-weight:800;
  display:inline-flex; align-items:center; gap:.4rem;
}
.product-card-cta::after{content:"→"; transition:transform .2s ease}
.product-card:hover .product-card-cta::after{transform:translateX(4px)}

/* ─── NEED PICKER (aide au choix par besoin) ─── */
.need-picker{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:.8rem;
}
.need-tile{
  display:flex; align-items:center; gap:1rem;
  padding:1.1rem 1.3rem;
  border:1px solid var(--line);
  border-radius:20px;
  background:rgba(255,255,255,.65);
  transition:transform .2s ease, background .2s ease, border-color .2s ease, box-shadow .2s ease;
  color:var(--ink);
}
.need-tile:hover{
  transform:translateY(-2px);
  background:#fff;
  border-color:rgba(47,169,106,.32);
  box-shadow:0 12px 30px rgba(15,31,61,.08);
}
.need-tile-arrow{
  width:2.6rem; height:2.6rem;
  border-radius:12px;
  display:grid; place-items:center;
  background:linear-gradient(135deg, rgba(47,169,106,.14), rgba(30,90,168,.14));
  color:var(--accent);
  font-weight:800;
  flex:0 0 auto;
  font-size:1.15rem;
}
.need-tile-body{flex:1}
.need-tile-body strong{display:block; font-size:1rem}
.need-tile-body span{color:var(--muted); font-size:.88rem}
.need-tile-go{
  color:var(--accent);
  font-weight:800;
  font-size:.9rem;
  flex:0 0 auto;
}
.need-tile-go::after{content:" →"}
@media (max-width:700px){
  .need-picker{grid-template-columns:1fr}
}

/* ─── TIMELINE HORIZONTALE ─── */
.timeline{
  display:grid;
  grid-template-columns:repeat(5, 1fr);
  gap:0;
  position:relative;
  padding:1.4rem 0;
}
.timeline::before{
  content:"";
  position:absolute;
  left:10%; right:10%;
  top:calc(1.4rem + 1.5rem);
  height:2px;
  background:linear-gradient(90deg, var(--accent) 0%, var(--accent-2) 100%);
  opacity:.28;
  z-index:0;
}
.timeline-step{
  position:relative;
  z-index:1;
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  padding:0 .5rem;
}
.timeline-num{
  width:3rem; height:3rem;
  border-radius:50%;
  background:var(--ink);
  color:#fff;
  display:grid; place-items:center;
  font-family:"Space Grotesk", sans-serif;
  font-weight:700;
  font-size:1.05rem;
  box-shadow:0 10px 24px rgba(15,31,61,.18);
  border:3px solid var(--paper);
  margin-bottom:.8rem;
}
.timeline-step h4{
  font-size:1rem;
  margin:0 0 .35rem;
  letter-spacing:-.02em;
}
.timeline-step p{
  color:var(--muted);
  font-size:.88rem;
  margin:0;
  max-width:22ch;
}
@media (max-width:900px){
  .timeline{grid-template-columns:1fr; gap:.9rem}
  .timeline::before{display:none}
  .timeline-step{flex-direction:row; align-items:flex-start; text-align:left; gap:1rem; padding:0}
  .timeline-step p{max-width:none}
  .timeline-num{margin-bottom:0}
}

/* ─── FEATURE BLOCK 2 col (Pourquoi, No account) ─── */
.feature-split{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1.5rem;
  align-items:center;
}
.feature-split-visual{
  position:relative;
  border-radius:28px;
  min-height:22rem;
  overflow:hidden;
  border:1px solid var(--line);
  background:
    radial-gradient(circle at 30% 30%, rgba(47,169,106,.22), transparent 55%),
    radial-gradient(circle at 80% 70%, rgba(30,90,168,.22), transparent 55%),
    linear-gradient(160deg, #14305e 0%, #0f1f3d 100%);
  box-shadow:var(--shadow);
}
.feature-split-visual img{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
  opacity:.85;
}
.feature-split-copy .feature-list{
  list-style:none;
  padding:0;
  margin:1.3rem 0 0;
  display:grid;
  gap:.9rem;
}
.feature-split-copy .feature-list li{
  padding:1rem 1.2rem;
  border:1px solid var(--line);
  border-radius:16px;
  background:rgba(255,255,255,.55);
}
.feature-split-copy .feature-list li strong{
  display:block;
  font-family:"Space Grotesk", sans-serif;
  color:var(--accent);
  font-size:.9rem;
  letter-spacing:.02em;
  margin-bottom:.25rem;
}
.feature-split-copy .feature-list li span{color:var(--muted); font-size:.94rem}
@media (max-width:900px){
  .feature-split{grid-template-columns:1fr}
  .feature-split-visual{min-height:14rem}
}

/* ─── NO ACCOUNT / EMAIL FLOW ─── */
.email-flow{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.8rem;
  flex-wrap:wrap;
  margin:1.4rem 0 0;
}
.email-flow-step{
  display:inline-flex;
  align-items:center;
  gap:.6rem;
  padding:.7rem 1.1rem;
  border-radius:999px;
  background:rgba(255,255,255,.85);
  border:1px solid var(--line);
  font-weight:700;
  color:var(--ink);
}
.email-flow-step span{font-size:1.15rem}
.email-flow-arrow{color:var(--muted); font-weight:800}

/* ─── TRANSPARENCE 3 CARDS ─── */
.transparency-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:1rem;
}
.transparency-card{
  padding:1.5rem;
  border-radius:22px;
  border:1px solid var(--line);
  background:linear-gradient(180deg, rgba(255,255,255,.75), rgba(255,255,255,.4));
  display:flex;
  flex-direction:column;
  gap:.6rem;
}
.transparency-card .label{
  font-family:"Space Grotesk", sans-serif;
  font-size:.78rem;
  text-transform:uppercase;
  letter-spacing:.1em;
  color:var(--accent);
  font-weight:800;
}
.transparency-card h3{margin:0; font-size:1.25rem}
.transparency-card p{margin:.2rem 0 0; color:var(--muted); font-size:.94rem}
@media (max-width:900px){
  .transparency-grid{grid-template-columns:1fr}
}

/* ─── PROSE (articles / legal / o-nas) ─── */
.prose{
  max-width:70ch;
  margin-inline:auto;
}
.prose h1{font-size:clamp(2.2rem, 5vw, 3.8rem); margin-bottom:1rem}
.prose h2{font-size:clamp(1.6rem, 3vw, 2.2rem); margin:2.4rem 0 .8rem}
.prose h3{font-size:1.25rem; margin:1.6rem 0 .6rem}
.prose p{margin:0 0 1.1rem; color:var(--ink); line-height:1.72}
.prose ul,
.prose ol{margin:0 0 1.2rem; padding-left:1.5rem; line-height:1.72}
.prose li{margin-bottom:.45rem}
.prose li::marker{color:var(--accent)}
.prose a{color:var(--accent); text-decoration:underline; text-underline-offset:3px}
.prose strong{color:var(--ink)}
.prose blockquote{
  margin:1.4rem 0;
  padding:1rem 1.2rem;
  border-left:4px solid var(--accent);
  background:rgba(255,255,255,.5);
  border-radius:0 14px 14px 0;
  color:var(--muted);
}
.prose .updated{
  color:var(--muted);
  font-size:.88rem;
  margin-bottom:1.8rem;
}

/* ─── CARDS GRID (produits, articles) ─── */
.card-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(18rem, 1fr));
  gap:1rem;
}
.card{
  border:1px solid var(--line);
  border-radius:24px;
  background:rgba(255,255,255,.6);
  padding:1.4rem;
  transition:transform .25s ease, box-shadow .25s ease, background .25s ease;
  display:flex;
  flex-direction:column;
  gap:.7rem;
}
.card:hover{
  transform:translateY(-4px);
  box-shadow:var(--shadow);
  background:rgba(255,255,255,.82);
}
.card h3{margin:0}
.card p{margin:0; color:var(--muted); font-size:.95rem}
.card .card-cta{
  margin-top:auto;
  padding-top:.8rem;
  font-weight:800;
  color:var(--accent);
  display:inline-flex;
  align-items:center;
  gap:.4rem;
}
.card .card-cta::after{content:"→"; transition:transform .2s ease}
.card:hover .card-cta::after{transform:translateX(4px)}
.card .icon{
  width:2.8rem;
  height:2.8rem;
  border-radius:16px;
  display:grid;
  place-items:center;
  font-size:1.3rem;
  background:linear-gradient(135deg, rgba(47,169,106,.12), rgba(30,90,168,.16));
  border:1px solid rgba(15,31,61,.08);
  margin-bottom:.4rem;
}

/* ─── CARDS PRODUITS AVEC IMAGE ─── */
.card-media{
  padding:0;
  overflow:hidden;
}
.card-media-img{
  position:relative;
  aspect-ratio:4/3;
  overflow:hidden;
  background:
    radial-gradient(circle at 30% 30%, rgba(47,169,106,.25), transparent 55%),
    radial-gradient(circle at 80% 70%, rgba(30,90,168,.22), transparent 55%),
    linear-gradient(160deg, #efe8dc 0%, #d9d0c3 100%);
}
.card-media-img img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .6s ease;
}
.card-media:hover .card-media-img img{transform:scale(1.05)}
.card-media-body{padding:1.3rem 1.4rem 1.4rem; display:flex; flex-direction:column; gap:.55rem}
.card-media-body h3{margin:0}
.card-media-body p{margin:0; color:var(--muted); font-size:.95rem}
.card-media-body .card-cta{margin-top:auto; padding-top:.6rem}

/* ─── WHY-US (photo + points) ─── */
.why-block{
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:1.2rem;
  align-items:stretch;
  border-radius:32px;
  overflow:hidden;
  border:1px solid var(--line);
  box-shadow:var(--shadow);
  background:rgba(255,255,255,.6);
}
.why-photo{
  position:relative;
  min-height:22rem;
  background:
    radial-gradient(circle at 30% 30%, rgba(47,169,106,.28), transparent 55%),
    radial-gradient(circle at 80% 70%, rgba(30,90,168,.22), transparent 55%),
    linear-gradient(160deg, #1f1a17 0%, #151311 100%);
  overflow:hidden;
}
.why-photo img{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
}
.why-photo::after{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(0,0,0,0) 60%, rgba(0,0,0,.25) 100%);
}
.why-copy{
  padding:clamp(1.5rem, 3vw, 2.4rem);
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:1rem;
}
.why-copy h2{max-width:14ch}
.why-copy .points{
  display:grid;
  gap:.6rem;
  margin-top:.4rem;
  padding:0;
  list-style:none;
}
.why-copy .points li{
  display:flex;
  align-items:center;
  gap:.7rem;
  padding:.8rem 1rem;
  border-radius:14px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.55);
  font-weight:700;
}
.why-copy .points li::before{
  content:"✓";
  width:1.6rem; height:1.6rem;
  border-radius:50%;
  background:rgba(47,169,106,.12);
  color:var(--accent);
  display:grid; place-items:center;
  font-weight:800;
}
@media (max-width:900px){
  .why-block{grid-template-columns:1fr}
  .why-photo{min-height:14rem}
}

/* ─── FINAL CTA — avec background image ─── */
.final-panel--photo{
  position:relative;
  overflow:hidden;
  color:#fff;
  border:none;
  background:none;
}
.final-panel--photo::before{
  content:"";
  position:absolute; inset:0;
  background-image:linear-gradient(120deg, rgba(20,17,14,.82) 0%, rgba(20,17,14,.55) 60%, rgba(20,17,14,.35) 100%);
  z-index:2;
}
.final-panel--photo .final-bg{
  position:absolute; inset:0; z-index:1;
  background:
    radial-gradient(circle at 30% 40%, rgba(47,169,106,.32), transparent 55%),
    radial-gradient(circle at 80% 60%, rgba(30,90,168,.28), transparent 55%),
    linear-gradient(160deg, #1f1a17 0%, #151311 100%);
}
.final-panel--photo .final-bg img{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
  opacity:.55;
}
.final-panel--photo > *{position:relative; z-index:3}
.final-panel--photo h2,
.final-panel--photo p{color:#fff}
.final-panel--photo p{color:rgba(255,255,255,.85)}
.final-panel--photo .disclaimer{color:rgba(255,255,255,.7)}
.final-panel--photo .eyebrow{
  color:#fff;
  background:rgba(255,255,255,.10);
  border-color:rgba(255,255,255,.20);
}

/* ─── PRODUCT HERO avec photo ─── */
.product-hero{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:1.4rem;
  align-items:stretch;
}
.product-hero-copy{
  border:1px solid var(--line);
  border-radius:calc(var(--radius) + 8px);
  padding:clamp(1.5rem, 3vw, 2.5rem);
  background:
    linear-gradient(180deg, rgba(255,255,255,.64), rgba(255,255,255,.38)),
    linear-gradient(135deg, rgba(47,169,106,.08), rgba(30,90,168,.10));
  backdrop-filter:blur(14px);
  box-shadow:var(--shadow);
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:1.2rem;
}
.product-hero-visual{
  position:relative;
  border-radius:calc(var(--radius) + 8px);
  overflow:hidden;
  box-shadow:var(--shadow);
  min-height:22rem;
  background:
    radial-gradient(circle at 30% 40%, rgba(47,169,106,.28), transparent 55%),
    radial-gradient(circle at 80% 60%, rgba(30,90,168,.24), transparent 55%),
    linear-gradient(160deg, #1f1a17 0%, #151311 100%);
}
.product-hero-visual img{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
}
.product-hero-visual::after{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(0,0,0,0) 55%, rgba(0,0,0,.28) 100%);
}
.product-hero-card{
  position:absolute;
  left:1rem; right:1rem; bottom:1rem;
  z-index:2;
  padding:1rem 1.15rem;
  border-radius:18px;
  background:rgba(20,17,14,.78);
  color:#fff;
  backdrop-filter:blur(10px);
  border:1px solid rgba(255,255,255,.14);
  display:grid;
  gap:.5rem;
}
.product-hero-card .row{
  display:flex; align-items:center; justify-content:space-between;
  font-size:.9rem;
}
.product-hero-card .row span:first-child{color:rgba(255,255,255,.7); font-weight:600}
.product-hero-card .row span:last-child{font-family:"Space Grotesk", sans-serif; font-weight:700}
@media (max-width:1080px){
  .product-hero{grid-template-columns:1fr}
  .product-hero-visual{min-height:16rem}
}

/* ─── PROGRESSION 01-04 (wniosek hero) ─── */
.wniosek-steps{
  list-style:none;
  margin:1.6rem 0 0;
  padding:0;
  display:flex;
  flex-wrap:wrap;
  gap:.6rem;
  counter-reset:step;
}
.wniosek-steps li{
  display:flex;
  align-items:center;
  gap:.55rem;
  padding:.55rem .9rem;
  border-radius:14px;
  background:rgba(255,255,255,.55);
  border:1px solid var(--line);
  font-size:.9rem;
  font-weight:700;
  color:var(--ink);
  position:relative;
}
.wniosek-steps li + li::before{
  content:"→";
  position:absolute;
  left:-.6rem;
  top:50%;
  transform:translateY(-50%);
  color:var(--muted);
  font-weight:800;
}
.wniosek-step-idx{
  font-family:"Space Grotesk", sans-serif;
  color:var(--accent);
  font-weight:800;
}
.wniosek-step-label{color:var(--ink)}

/* ─── CONFIRMATION PAGE ─── */
.confirmation{
  min-height:60vh;
  display:grid;
  place-items:center;
  padding:3rem 0;
}
.confirmation-panel{
  max-width:38rem;
  text-align:center;
  border-radius:32px;
  border:1px solid var(--line);
  background:linear-gradient(180deg, rgba(255,255,255,.8), rgba(255,255,255,.5));
  padding:clamp(1.8rem, 4vw, 3rem);
  box-shadow:var(--shadow);
}
.confirmation-mark{
  width:5rem;
  height:5rem;
  border-radius:50%;
  margin:0 auto 1.4rem;
  display:grid;
  place-items:center;
  background:linear-gradient(135deg, rgba(47,169,106,.18), rgba(31,138,84,.24));
  border:1px solid rgba(47,169,106,.28);
  font-size:2rem;
  color:var(--success);
  font-weight:800;
}
.confirmation-list{
  list-style:none;
  padding:0;
  margin:1.4rem 0 1.6rem;
  display:grid;
  gap:.7rem;
  text-align:left;
}
.confirmation-list li{
  display:flex;
  gap:.7rem;
  align-items:center;
  padding:.8rem 1rem;
  border-radius:14px;
  background:rgba(47,169,106,.06);
  border:1px solid rgba(47,169,106,.14);
  color:var(--ink);
  font-weight:600;
}
.confirmation-list li::before{
  content:"✓";
  color:var(--success);
  font-weight:800;
  font-size:1.05rem;
}

/* ─── PAGE HEADER (banner intérieur) ─── */
.page-hero{
  padding:clamp(2.5rem, 5vw, 4.5rem) 0 2rem;
}
.page-hero-panel{
  border-radius:calc(var(--radius) + 8px);
  border:1px solid var(--line);
  background:
    linear-gradient(180deg, rgba(255,255,255,.64), rgba(255,255,255,.36)),
    linear-gradient(135deg, rgba(47,169,106,.08), rgba(30,90,168,.10));
  backdrop-filter:blur(14px);
  padding:clamp(1.6rem, 3vw, 2.4rem);
  box-shadow:var(--shadow);
}
.page-hero h1{margin-top:1rem; max-width:20ch}
.page-hero .lead{max-width:60ch}

/* ─── ANIMATIONS ─── */
.reveal{
  opacity:0;
  transform:translateY(24px);
  transition:opacity .7s ease, transform .7s ease;
}
.reveal.visible{opacity:1; transform:translateY(0)}

.stagger > *{
  opacity:0;
  transform:translateY(18px);
  animation:rise .7s ease forwards;
}
.stagger > *:nth-child(1){animation-delay:.08s}
.stagger > *:nth-child(2){animation-delay:.18s}
.stagger > *:nth-child(3){animation-delay:.28s}
.stagger > *:nth-child(4){animation-delay:.38s}
.stagger > *:nth-child(5){animation-delay:.48s}
@keyframes rise{to{opacity:1; transform:translateY(0)}}

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

/* ─── RESPONSIVE ─── */
@media (max-width: 1080px){
  .hero-grid,
  .section-head,
  .proof,
  .faq,
  .final-panel,
  .how,
  .form-wrap{grid-template-columns:1fr}
  .cta-block,
  .form-side{position:relative; top:0}
  .hero-copy{min-height:auto}
  .section-head p{justify-self:start}
  .trust-strip{grid-template-columns:repeat(2,1fr)}
  .footer-grid{grid-template-columns:1fr 1fr}
}

@media (max-width: 820px){
  .nav-links,
  .nav > .btn{display:none}
  .mobile-toggle{display:flex}
  .nav.open .nav-links{
    display:flex;
    position:absolute;
    top:calc(100% + .75rem);
    left:1rem;
    right:1rem;
    flex-direction:column;
    align-items:flex-start;
    gap:1rem;
    padding:1rem;
    border:1px solid var(--line);
    border-radius:22px;
    background:rgba(251,248,242,.95);
    backdrop-filter:blur(18px);
    box-shadow:var(--shadow);
  }
  .nav.open > .btn{display:inline-flex; width:100%}
  .nav.open{position:relative; flex-direction:column; align-items:flex-end}
  .hero-metrics,
  .loan-results,
  .trust-strip,
  .footer-grid,
  .form-row,
  .form-row--3{grid-template-columns:1fr}
}

@media (max-width: 540px){
  .container{width:min(calc(100% - 1.1rem), var(--max))}
  .hero-copy,
  .hero-panel,
  .how-left,
  .assurance,
  .quote-box,
  .testimonial-wall,
  .cta-block,
  .faq-intro,
  .final-panel,
  .form-panel,
  .form-side,
  .page-hero-panel{border-radius:22px}
  .hero-actions .btn{width:100%}
  .panel-footer{flex-direction:column; align-items:stretch}
  .amortization th,
  .amortization td{padding:.55rem .7rem; font-size:.85rem}
}
