*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{width:100%;max-width:100%;overflow-x:hidden;}
body{width:100%;max-width:100%;overflow-x:hidden;}

:root{
  --white:#FFFFFF;
  --bg-soft:#F6F8FA;
  --bg-soft2:#EFF3F6;
  --ink:#0F1B24;
  --muted:#46535F;
  --muted2:#52606D;
  --border:#E4E9ED;

  --navy:#0D2438;
  --navy2:#12314A;

  --blue:#1B547E;
  --blue-l:#2E86C1;
  --blue-pale:#EAF2F8;

  --green:#1E9E6D;
  --green-d:#157A55;
  --green-pale:#E8F6EF;

  --fs:'Plus Jakarta Sans',-apple-system,BlinkMacSystemFont,sans-serif;
  --max:1200px;
}

html{font-family:var(--fs);color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;scroll-behavior:smooth;}
body{background:var(--white);overflow-x:hidden;line-height:1.5;}
a{text-decoration:none;color:inherit;}
button{font-family:var(--fs);cursor:pointer;}
img,svg,video,canvas,iframe{display:block;max-width:100%;}
img,video{height:auto;}
main{display:block;min-width:0;}
section,.wrap,.hero-grid,.prob-grid,.offer-grid,.about-grid,.zones-grid,.contact-panel{min-width:0;}
input,select,textarea,button{max-width:100%;}
p,li,h1,h2,h3,h4,a,span{overflow-wrap:break-word;}
.skip-link{position:fixed;top:10px;left:10px;z-index:1000;padding:11px 15px;border-radius:8px;background:var(--navy);color:#fff;font-size:14px;font-weight:800;transform:translateY(-150%);transition:transform .18s ease;}
.skip-link:focus{transform:translateY(0);outline:3px solid #fff;outline-offset:2px;}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--blue-l);outline-offset:3px;}

.wrap{width:100%;max-width:var(--max);min-width:0;margin-inline:auto;padding-inline:48px;}

@media (prefers-reduced-motion:no-preference){
  .float{animation:floaty 5s ease-in-out infinite;}
  .hero-blob,.navy-blob{animation:drift 16s ease-in-out infinite;}
  .blob-green,.nb2{animation-duration:19s;animation-delay:-4s;}
}
@keyframes floaty{0%,100%{transform:translateY(0);}50%{transform:translateY(-9px);}}
@keyframes drift{0%,100%{transform:translate(0,0) scale(1);}50%{transform:translate(24px,-18px) scale(1.06);}}

.btn .arrow{display:inline-block;transition:transform .22s ease;}
.btn:hover .arrow{transform:translateX(4px);}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:8px;font-size:15px;font-weight:700;padding:16px 30px;border-radius:10px;border:none;transition:transform .18s ease,box-shadow .18s ease,background .18s ease;white-space:nowrap;}
.btn:active{transform:translateY(1px);}
.btn-primary{background:var(--blue);color:#fff;box-shadow:0 1px 2px rgba(13,36,56,.08),0 8px 20px -6px rgba(27,84,126,.35);}
.btn-primary:hover{background:var(--blue-l);box-shadow:0 10px 24px -6px rgba(27,84,126,.45);transform:translateY(-1px);}
.btn-ghost{background:#fff;color:var(--ink);border:1.5px solid var(--border);}
.btn-ghost:hover{border-color:var(--blue-l);color:var(--blue-l);}
.btn-green{background:var(--green);color:#fff;box-shadow:0 8px 20px -6px rgba(30,158,109,.4);}
.btn-green:hover{background:var(--green-d);transform:translateY(-1px);}
.btn-ghost-onnavy{background:transparent;color:rgba(255,255,255,.85);border:1.5px solid rgba(255,255,255,.25);}
.btn-ghost-onnavy:hover{border-color:rgba(255,255,255,.55);color:#fff;}

/* ---------- eyebrow / labels ---------- */
.eye{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;margin-bottom:16px;}
.eye-blue{color:var(--blue-l);}
.eye-green{color:var(--green-d);}
.eye-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;}
.dot-blue{background:var(--blue-l);}
.dot-green{background:var(--green);}

/* ---------- header ---------- */
.header{position:fixed;top:0;inset-inline:0;z-index:200;height:76px;background:rgba(255,255,255,.85);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid rgba(228,233,237,.8);transition:box-shadow .25s;}
.header.scrolled{box-shadow:0 4px 24px rgba(15,27,36,.06);}
.header .wrap{height:100%;display:flex;align-items:center;justify-content:space-between;max-width:1440px;}
.h-brand{display:flex;align-items:center;gap:10px;}
.h-mark{width:34px;height:34px;border-radius:9px;background:linear-gradient(135deg,var(--blue) 0%,var(--green) 130%);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.h-mark svg{width:16px;height:16px;}
.h-name{font-size:16px;font-weight:800;color:var(--ink);letter-spacing:-.02em;line-height:1.1;}
.h-sub{font-size:11px;font-weight:700;color:var(--muted2);letter-spacing:.08em;text-transform:uppercase;}
.h-logo{height:32px;width:auto;display:block;}
.h-logo-link{display:flex;align-items:center;}
.h-nav{display:flex;align-items:center;gap:34px;flex-wrap:nowrap;}
.h-nav a.nav-link{font-size:14px;font-weight:600;color:var(--muted);position:relative;padding-bottom:2px;transition:color .15s;white-space:nowrap;flex-shrink:0;}
.h-nav a.nav-link::after{content:'';position:absolute;left:0;right:100%;bottom:-3px;height:2px;background:var(--blue-l);border-radius:2px;transition:right .22s ease;}
.h-nav a.nav-link:hover{color:var(--ink);}
.h-nav a.nav-link:hover::after{right:0;}
.h-cta{display:flex;align-items:center;gap:14px;}
.h-cta .btn{padding:12px 22px;font-size:14px;}
.wa-btn{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;background:#25D366;flex-shrink:0;transition:transform .18s ease,box-shadow .18s ease;box-shadow:0 6px 16px -6px rgba(37,211,102,.5);}
.wa-btn:hover{transform:translateY(-1px);box-shadow:0 10px 20px -6px rgba(37,211,102,.6);}
.wa-btn svg{width:22px;height:22px;}
.wa-hidden{display:none !important;}
.btn:focus-visible,.zone-chip:focus-visible,.menu-btn:focus-visible{outline:2px solid var(--blue-l);outline-offset:2px;}
.mobile-nav a:focus-visible,.faq-item summary:focus-visible,.f-links a:focus-visible,.contact-form input:focus-visible,.contact-form select:focus-visible,.contact-form textarea:focus-visible{outline:2px solid var(--blue-l);outline-offset:3px;}
.menu-btn{display:none;width:40px;height:40px;border-radius:10px;border:1.5px solid var(--border);background:#fff;align-items:center;justify-content:center;flex-shrink:0;}
.menu-btn svg{width:18px;height:18px;}
.mobile-nav{display:none;position:fixed;top:76px;inset-inline:0;background:#fff;border-bottom:1px solid var(--border);box-shadow:0 16px 30px -18px rgba(15,27,36,.18);z-index:199;padding:10px 22px 22px;flex-direction:column;gap:2px;}
.mobile-nav.open{display:flex;}
.mobile-nav a{padding:14px 4px;font-size:15px;font-weight:600;color:var(--ink);border-bottom:1px solid var(--border);}
.mobile-nav a:last-of-type{border-bottom:none;}
.mobile-nav .btn{margin-top:14px;justify-content:center;}

/* ---------- sticky mobile CTA ---------- */
.sticky-cta{display:none;position:fixed;bottom:0;inset-inline:0;z-index:190;background:rgba(255,255,255,.92);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--border);padding:12px 16px;box-shadow:0 -8px 24px rgba(15,27,36,.08);transform:translateY(100%);transition:transform .3s ease;}
.sticky-cta.visible{transform:translateY(0);}
.sticky-cta-row{display:flex;align-items:center;gap:10px;}
.sticky-cta .btn{width:100%;justify-content:center;}
.sticky-cta .wa-btn{width:48px;height:48px;}

/* ---------- whatsapp floating button ---------- */
.wa-fab{position:fixed;right:22px;bottom:22px;z-index:180;display:flex;align-items:center;gap:10px;background:#25D366;color:#fff;font-size:14px;font-weight:700;padding:14px 20px 14px 14px;border-radius:100px;box-shadow:0 14px 32px -10px rgba(37,211,102,.55);transition:transform .2s ease,box-shadow .2s ease;}
.wa-fab:hover{transform:translateY(-2px);box-shadow:0 18px 38px -10px rgba(37,211,102,.65);}
.wa-fab svg{width:22px;height:22px;flex-shrink:0;}
@media (max-width:900px){
  .wa-fab{display:none;}
}

section[id]{scroll-margin-top:92px;}

/* ---------- breadcrumb ---------- */
.breadcrumb{grid-column:1/-1;display:flex;align-items:center;flex-wrap:wrap;gap:6px;font-size:13px;color:var(--muted2);margin-bottom:18px;position:relative;z-index:1;}
.breadcrumb a{color:var(--muted2);font-weight:600;transition:color .15s;}
.breadcrumb a:hover{color:var(--blue-l);}
.breadcrumb .bc-sep{opacity:.5;}
.breadcrumb .bc-current{color:var(--muted);font-weight:600;}

/* ---------- hero ---------- */
.hero{position:relative;padding-top:76px;background:var(--white);overflow:hidden;}
.hero-blob{position:absolute;border-radius:50%;filter:blur(70px);pointer-events:none;opacity:.35;}
.blob-blue{width:520px;height:520px;background:radial-gradient(circle,rgba(46,134,193,.35),transparent 70%);top:-160px;left:-160px;}
.blob-green{width:460px;height:460px;background:radial-gradient(circle,rgba(30,158,109,.28),transparent 70%);bottom:-140px;right:-100px;}
.hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;padding-block:76px 64px;}
.hero-tag{display:inline-flex;align-items:center;gap:10px;background:var(--blue-pale);border:1px solid #D7E7F3;padding:8px 16px;border-radius:100px;margin-bottom:26px;}
.hero-tag-txt{font-size:12.5px;font-weight:700;color:var(--blue);letter-spacing:.02em;}
.hero-h1{font-size:clamp(38px,4.6vw,60px);font-weight:800;line-height:1.08;letter-spacing:-.03em;color:var(--ink);}
.hero-h1 .accent{color:var(--blue);}
.hero-h1 .accent-u{position:relative;white-space:nowrap;}
.hero-h1 .accent-u::after{content:'';position:absolute;left:2px;right:2px;bottom:2px;height:11px;background:var(--green-pale);z-index:-1;border-radius:3px;}
.hero-p{font-size:18px;font-weight:400;line-height:1.7;color:var(--muted);max-width:520px;margin-top:22px;}
.hero-ctas{display:flex;align-items:center;gap:14px;margin-top:32px;flex-wrap:wrap;}
.hero-proof{display:flex;align-items:center;gap:16px;margin-top:34px;}
.hero-proof-avatar{width:38px;height:38px;border-radius:50%;overflow:hidden;border:2px solid #fff;box-shadow:0 0 0 1px var(--border);flex-shrink:0;}
.hero-proof-avatar img{width:100%;height:100%;object-fit:cover;}
.hero-proof-txt{font-size:13.5px;color:var(--muted);line-height:1.5;}
.hero-proof-txt strong{color:var(--ink);font-weight:700;}

.hero-visual{position:relative;}
.hero-photo{aspect-ratio:4/3.1;border-radius:22px;position:relative;overflow:hidden;box-shadow:0 30px 70px -20px rgba(13,36,56,.28);}
.hero-photo image-slot{width:100%;height:100%;display:block;}
.photo-caption{position:absolute;left:18px;bottom:16px;z-index:1;font-size:13px;font-weight:700;color:#fff;letter-spacing:.01em;display:flex;align-items:center;gap:7px;text-shadow:0 1px 4px rgba(0,0,0,.55);}
.photo-caption .cdot{width:5px;height:5px;border-radius:50%;background:#7DDCB0;flex-shrink:0;}
.ph-placeholder{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;}
.ph-placeholder svg{width:52px;height:52px;opacity:.5;}
.hero-card{position:absolute;bottom:-26px;left:-26px;background:#fff;border-radius:16px;padding:18px 22px;box-shadow:0 20px 45px -14px rgba(13,36,56,.22);display:flex;align-items:center;gap:14px;max-width:280px;}
.hero-card-ic{width:38px;height:38px;border-radius:10px;background:var(--green-pale);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.hero-card-t{font-size:13px;font-weight:700;color:var(--ink);line-height:1.35;}
.hero-card-s{font-size:12.5px;color:var(--muted2);margin-top:2px;}
.hero-card2{position:absolute;top:-20px;right:-18px;background:#fff;border-radius:14px;padding:12px 16px;box-shadow:0 16px 36px -12px rgba(13,36,56,.2);font-size:12.5px;font-weight:700;color:var(--blue);display:flex;align-items:center;gap:8px;}

/* ---------- reassurance ---------- */
.reass{background:var(--bg-soft);padding-block:28px;border-block:1px solid var(--border);}
.reass-row{display:flex;flex-wrap:wrap;gap:14px 40px;justify-content:space-between;}
.reass-item{display:flex;align-items:center;gap:10px;flex:1;min-width:200px;}
.reass-ic{width:30px;height:30px;border-radius:9px;background:#fff;border:1px solid var(--border);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.reass-txt{font-size:13.5px;font-weight:600;color:var(--ink);}

/* ---------- generic section ---------- */
.section{padding-block:88px;}
.section-tight{padding-block:64px;}
.s-h2{font-size:clamp(30px,3.6vw,44px);font-weight:800;letter-spacing:-.025em;line-height:1.14;color:var(--ink);}
.s-p{font-size:16.5px;color:var(--muted);line-height:1.75;margin-top:18px;}
.s-h2-light{color:#fff;}
.s-h2::after{content:'';display:block;width:52px;height:3px;border-radius:2px;background:linear-gradient(90deg,var(--blue-l),var(--green));margin-top:16px;}
.s-p-light{color:rgba(255,255,255,.78);}

/* ---------- problem ---------- */
.prob-grid{display:grid;grid-template-columns:.92fr 1.08fr;gap:72px;align-items:center;}
.prob-cards{display:flex;flex-direction:column;gap:16px;}
.prob-card{display:grid;grid-template-columns:46px 1fr;gap:18px;align-items:flex-start;padding:22px 24px;border-radius:16px;background:var(--bg-soft);border:1px solid var(--border);transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;}
.prob-card:hover{transform:translateY(-3px);box-shadow:0 16px 34px -16px rgba(15,27,36,.14);border-color:#D7E1E8;}
.prob-ic{width:46px;height:46px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.ic-blue{background:var(--blue-pale);}
.ic-green{background:var(--green-pale);}
.prob-t{font-size:15.5px;font-weight:700;color:var(--ink);margin-bottom:5px;}
.prob-d{font-size:14px;color:var(--muted);line-height:1.65;}

/* ---------- offer sections (VP / Pack) ---------- */
.offer-grid{display:grid;grid-template-columns:1fr 1fr;gap:76px;align-items:center;}
.offer-photo{aspect-ratio:5/4;border-radius:20px;position:relative;overflow:hidden;transition:transform .35s ease;}
.offer-photo:hover{transform:translateY(-4px);}
.offer-photo image-slot{width:100%;height:100%;display:block;}

.offer-badge{display:inline-flex;align-items:center;gap:8px;background:var(--blue);color:#fff;font-size:12.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:7px 14px;border-radius:100px;margin-bottom:20px;}
.offer-badge-green{background:var(--green);}
.offer-price{font-size:26px;font-weight:800;color:var(--blue);margin-top:10px;letter-spacing:-.02em;}
.offer-price-green{color:var(--green-d);}
.offer-list{display:flex;flex-direction:column;gap:14px;margin-top:26px;}
.offer-row{display:flex;align-items:flex-start;gap:12px;font-size:14.5px;color:var(--ink);line-height:1.5;font-weight:500;}
.offer-check{width:20px;height:20px;border-radius:6px;background:var(--blue-pale);display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px;}
.offer-check-green{background:var(--green-pale);}
.offer-note{font-size:13.5px;color:var(--muted2);font-weight:600;line-height:1.6;}

.price-box{background:#fff;border:1.5px solid var(--border);border-radius:18px;padding:22px 26px;margin-top:30px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px 20px;box-shadow:0 16px 36px -22px rgba(15,27,36,.18);transition:box-shadow .2s ease,transform .2s ease;}
.price-box>div:first-child{flex:1 1 200px;min-width:0;}
.price-box>.btn{flex:0 0 auto;}
.price-box:hover{box-shadow:0 22px 44px -20px rgba(15,27,36,.24);transform:translateY(-2px);}
.price-box-label{font-size:12.5px;font-weight:700;color:var(--muted2);text-transform:uppercase;letter-spacing:.06em;}
.price-box-amount{font-size:27px;font-weight:800;color:var(--blue);letter-spacing:-.02em;margin-top:3px;}
.price-box-amount.green{color:var(--green-d);}
.price-box-note{font-size:13px;color:var(--muted2);font-weight:600;margin-top:4px;}

/* ---------- simulateur ---------- */
.sim-panel{background:linear-gradient(120deg,var(--green-d),var(--green) 120%);border-radius:26px;padding:56px 60px;display:grid;grid-template-columns:1fr auto;gap:44px;align-items:center;position:relative;overflow:hidden;}
.sim-panel::before{content:'';position:absolute;top:-80px;right:-40px;width:260px;height:260px;border-radius:50%;background:rgba(255,255,255,.08);}
.sim-h{font-size:clamp(24px,2.6vw,32px);font-weight:800;color:#fff;letter-spacing:-.02em;line-height:1.25;position:relative;}
.sim-p{font-size:15.5px;color:rgba(255,255,255,.9);margin-top:10px;line-height:1.65;max-width:480px;position:relative;}
.btn-white-green{background:#fff;color:var(--green-d);position:relative;}
.btn-white-green:hover{background:#F0FBF5;}

/* ---------- méthode (navy) ---------- */
.s-navy{background:var(--navy);position:relative;overflow:hidden;}
.navy-blob{position:absolute;border-radius:50%;filter:blur(90px);opacity:.25;pointer-events:none;}
.nb1{width:460px;height:460px;background:radial-gradient(circle,rgba(46,134,193,.5),transparent 70%);top:-140px;right:-100px;}
.nb2{width:420px;height:420px;background:radial-gradient(circle,rgba(30,158,109,.4),transparent 70%);bottom:-140px;left:-80px;}
.meth-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:44px;margin-top:56px;position:relative;z-index:1;}
.step-card{background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.09);border-radius:18px;padding:32px 28px;transition:transform .25s ease,background .25s ease;}
.step-card:hover{transform:translateY(-4px);background:rgba(255,255,255,.075);}
.step-n{width:36px;height:36px;border-radius:10px;background:rgba(46,134,193,.18);color:#8FC4E8;font-size:14px;font-weight:800;display:flex;align-items:center;justify-content:center;margin-bottom:20px;}
.step-card:nth-child(3) .step-n{background:rgba(30,158,109,.2);color:#7DDCB0;}
.step-h{font-size:18.5px;font-weight:700;color:#fff;letter-spacing:-.01em;line-height:1.35;margin-bottom:10px;}
.step-p{font-size:14px;color:rgba(255,255,255,.76);line-height:1.7;}

/* ---------- about / trust ---------- */
.about-grid{display:grid;grid-template-columns:.62fr 1.38fr;gap:64px;align-items:center;}
.about-grid>*{min-width:0;}
.about-photo{aspect-ratio:3/3.6;border-radius:22px;overflow:hidden;box-shadow:0 24px 60px -20px rgba(15,27,36,.24);}
.about-photo img{width:100%;height:100%;object-fit:cover;object-position:center 20%;}
.about-photo image-slot{width:100%;height:100%;display:block;}
.about-quote{font-size:clamp(20px,2.2vw,26px);font-weight:600;color:var(--ink);line-height:1.5;letter-spacing:-.01em;}
.about-quote .accent{color:var(--blue);}
.about-name{font-size:15px;font-weight:800;color:var(--ink);margin-top:24px;}
.about-role{font-size:13.5px;color:var(--muted2);margin-top:2px;}
.about-facts{display:flex;gap:32px;margin-top:30px;flex-wrap:wrap;}
.about-fact{display:flex;align-items:center;gap:10px;font-size:13.5px;font-weight:600;color:var(--muted);}
.origin-quote{background:var(--green-pale);border:1px solid #CDEEDF;border-radius:16px;padding:22px 24px;margin-top:26px;}
.origin-quote p{font-size:14.5px;color:var(--ink);line-height:1.7;font-style:italic;margin:0;}
.origin-name{font-size:13px;font-weight:800;color:var(--green-d);margin-top:12px;}
.origin-name span{font-weight:600;color:var(--muted);}
.share-bar{display:flex;align-items:center;gap:10px;margin-top:22px;flex-wrap:wrap;}
.share-label{font-size:12.5px;font-weight:700;color:var(--muted2);text-transform:uppercase;letter-spacing:.05em;margin-right:2px;}
.share-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;background:var(--bg-soft);border:1px solid var(--border);transition:transform .15s ease,background .15s ease,border-color .15s ease;flex-shrink:0;}
.share-btn:hover{transform:translateY(-2px);border-color:var(--blue-l);background:var(--blue-pale);}
.share-btn svg{width:16px;height:16px;}

/* ---------- zones ---------- */
.zones-grid{display:grid;grid-template-columns:.68fr 1.32fr;gap:56px;align-items:center;}
.zones-map{border-radius:24px;overflow:hidden;box-shadow:0 24px 60px -20px rgba(15,27,36,.28);}
.zones-map img{width:100%;height:auto;display:block;}
.zones-map image-slot{display:block;}
.zones-chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px;}
.zone-chip{font-size:13px;font-weight:600;color:var(--ink);background:var(--bg-soft);border:1px solid var(--border);padding:9px 16px;border-radius:100px;transition:border-color .18s,background .18s;}
.zone-chip:hover{border-color:var(--blue-l);background:var(--blue-pale);}
.zone-chip.quote{color:var(--muted2);font-style:italic;font-weight:500;}

/* ---------- resources ---------- */
.res-list{display:flex;flex-direction:column;border-top:1px solid var(--border);margin-top:44px;}
.res-row{display:grid;grid-template-columns:1fr auto auto;gap:24px;align-items:center;padding:22px 4px;border-bottom:1px solid var(--border);transition:background .15s;}
.res-row:hover{background:var(--bg-soft);}
.res-cat{font-size:12.5px;font-weight:700;color:var(--blue);letter-spacing:.06em;text-transform:uppercase;}
.res-title{font-size:15.5px;font-weight:700;color:var(--ink);margin-top:4px;}
.res-price{font-size:14px;font-weight:700;color:var(--muted);white-space:nowrap;}
.res-arrow{width:34px;height:34px;border-radius:50%;background:var(--bg-soft);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .18s,transform .18s;}
.res-row:hover .res-arrow{background:var(--blue);transform:translateX(2px);}
.res-row:hover .res-arrow svg path{stroke:#fff;}

/* ---------- testimonials ---------- */
.testi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:44px;}
@media (max-width:900px){.testi-grid{grid-template-columns:1fr;}}
.testi-card{background:#fff;border:1px solid var(--border);border-radius:18px;padding:28px 26px;display:flex;flex-direction:column;gap:16px;}
.testi-quote{font-size:15.5px;color:var(--ink);line-height:1.65;flex:1;}
.testi-who{display:flex;align-items:center;gap:12px;}
.testi-avatar{width:38px;height:38px;border-radius:50%;background:var(--blue-pale);color:var(--blue);font-size:13.5px;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.testi-name{font-size:13.5px;font-weight:700;color:var(--ink);}
.testi-loc{font-size:12.5px;color:var(--muted2);}
.testi-note{font-size:13px;color:var(--muted2);margin-top:22px;}

/* ---------- faq ---------- */
.faq-list{max-width:780px;margin-top:44px;}
.faq-item{border-bottom:1px solid var(--border);}
.faq-item summary{list-style:none;cursor:pointer;padding:22px 4px;display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:16px;font-weight:700;color:var(--ink);}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-plus{width:26px;height:26px;border-radius:50%;background:var(--bg-soft);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;flex-shrink:0;position:relative;transition:background .2s;}
.faq-plus::before,.faq-plus::after{content:'';position:absolute;background:var(--ink);border-radius:1px;}
.faq-plus::before{width:11px;height:1.6px;}
.faq-plus::after{width:1.6px;height:11px;transition:transform .25s ease;}
.faq-item[open] .faq-plus{background:var(--blue-pale);}
.faq-item[open] .faq-plus::after{transform:rotate(90deg) scale(0);}
.faq-a{padding:0 4px 22px;font-size:15px;color:var(--muted);line-height:1.72;max-width:680px;}

/* ---------- contact / demande ---------- */
.contact-panel{background:var(--bg-soft);border:1px solid var(--border);border-radius:24px;padding:52px 56px;display:grid;grid-template-columns:.85fr 1.15fr;gap:56px;}
.contact-form{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.field{display:flex;flex-direction:column;gap:6px;}
.field.full{grid-column:1/-1;}
.field label{font-size:13.5px;font-weight:700;color:var(--ink);}
.field{min-width:0;}
.field input,.field select,.field textarea{width:100%;min-width:0;box-sizing:border-box;font-family:var(--fs);font-size:14.5px;color:var(--ink);background:#fff;border:1.5px solid var(--border);border-radius:10px;padding:12px 14px;transition:border-color .15s;}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--blue-l);}
.field textarea{resize:vertical;min-height:96px;}
.contact-submit{margin-top:4px;}
.contact-confirm{font-size:13.5px;color:var(--green-d);font-weight:600;margin-top:14px;}
.contact-note{font-size:13px;color:var(--muted2);margin-top:10px;line-height:1.65;}
@media (max-width:900px){
  .contact-panel{grid-template-columns:1fr;padding:32px 22px;gap:28px;}
  .contact-form{grid-template-columns:1fr;}
}

/* ---------- disclaimer ---------- */
.disc{background:var(--navy2);padding-block:36px;border-top:1px solid rgba(255,255,255,.08);}
.disc-p{font-size:13px;color:rgba(255,255,255,.74);line-height:1.75;max-width:900px;}

/* ---------- final CTA ---------- */
.cta-final{background:linear-gradient(135deg,var(--navy),var(--navy2));padding-block:88px;text-align:center;position:relative;overflow:hidden;}
.cta-final .navy-blob{opacity:.3;}
.cta-h{font-size:clamp(32px,4vw,50px);font-weight:800;color:#fff;letter-spacing:-.03em;line-height:1.12;position:relative;}
.cta-p{font-size:16.5px;color:rgba(255,255,255,.8);margin-top:16px;line-height:1.6;position:relative;}
.cta-acts{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:34px;flex-wrap:wrap;position:relative;}

/* ---------- footer ---------- */
.footer{background:var(--navy);padding-block:44px;}
.footer .wrap{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;}
.footer-bottom{margin-top:28px;padding-top:22px;border-top:1px solid rgba(255,255,255,.08);display:block;}
.f-copyright{font-size:13px;color:rgba(255,255,255,.68);text-align:center;}
.f-brand{font-size:14.5px;font-weight:800;color:rgba(255,255,255,.84);}
.f-logo{height:24px;width:auto;display:block;}
.f-links{display:flex;gap:30px;flex-wrap:wrap;}
.f-links a{font-size:13px;color:rgba(255,255,255,.7);font-weight:600;transition:color .15s;}
.f-links a:hover{color:rgba(255,255,255,.7);}

/* ---------- image placeholders (image-slot empty state) ---------- */
image-slot{--ph-a:rgba(13,36,56,.05);--ph-tint:var(--bg-soft2);}
image-slot::part(frame){
  background:
    repeating-linear-gradient(-45deg,transparent 0 9px,var(--ph-a) 9px 10px),
    linear-gradient(160deg,var(--bg-soft) 0%,var(--ph-tint) 100%);
}
image-slot::part(ring){border-color:rgba(13,36,56,.16);border-width:1.5px;}
image-slot::part(empty){color:var(--navy2);gap:10px;}
.offer-photo-blue image-slot{--ph-tint:var(--blue-pale);}
.offer-photo-green image-slot{--ph-tint:var(--green-pale);}
.offer-photo-green image-slot::part(empty){color:var(--green-d);}
.hero-photo image-slot{--ph-tint:var(--blue-pale);}
.about-photo image-slot{--ph-tint:var(--bg-soft2);}
.vp-gallery-item image-slot::part(empty){gap:6px;}
.vp-gallery-item image-slot::part(empty) .cap{font-size:12px;}
.vp-gallery-item image-slot::part(empty) .sub{display:none;}

/* ---------- mobile ---------- */
@media (max-width:1180px){
  .h-nav{gap:18px;}
  .h-nav a.nav-link{font-size:13px;}
  .h-cta{gap:10px;}
  .h-cta .btn{padding:11px 16px;font-size:13px;}
}
@media (max-width:1100px){
  .offer-grid{gap:44px;}
}
@media (max-width:1120px){
  .h-nav{display:none;}
  .menu-btn{display:flex;}
}
@media (max-width:820px){
  .h-cta>.btn{display:none;}
  .h-cta{gap:10px;}
  .header .wrap{gap:14px;}
  .h-brand{min-width:0;}
  .h-logo-link{min-width:0;}
  .h-logo{max-width:min(210px,48vw);}
}
@media (max-width:900px){
  body{padding-bottom:calc(72px + env(safe-area-inset-bottom));}
  .sticky-cta{display:block;padding-bottom:calc(12px + env(safe-area-inset-bottom));}
  .wrap{padding-inline:22px;}
  .hero-grid{grid-template-columns:1fr;gap:38px;padding-block:44px 40px;}
  .hero-visual{order:initial;}
  .hero-h1{font-size:clamp(32px,9vw,44px);}
  .hero-p{font-size:16px;}
  .hero-card{left:0;bottom:-20px;max-width:240px;padding:14px 16px;}
  .hero-card2{right:0;top:-16px;}
  .reass-row{flex-direction:column;gap:14px;}
  .reass-item{min-width:0;}
  .section{padding-block:52px;}
  .section-tight{padding-block:42px;}
  .prob-grid,.offer-grid,.about-grid,.zones-grid{grid-template-columns:minmax(0,1fr);gap:36px;}
  .offer-photo,.about-photo{order:-1;aspect-ratio:16/10;}
  .about-photo{aspect-ratio:4/3;}
  .sim-panel{grid-template-columns:1fr;gap:24px;padding:36px 26px;text-align:left;}
  .btn-white-green{width:100%;justify-content:center;}
  .meth-steps{grid-template-columns:1fr;gap:20px;margin-top:40px;}
  .cta-acts{flex-direction:column;align-items:stretch;}
  .btn{width:100%;justify-content:center;}
  .hero-ctas .btn,.h-cta .btn{width:auto;}
  .hero-ctas{flex-direction:column;align-items:stretch;}
  .hero-ctas .btn{width:100%;justify-content:center;}
  .res-row{grid-template-columns:1fr auto;}
  .res-price{display:none;}
  .price-box{flex-direction:column;align-items:stretch;text-align:left;}
  .price-box .btn{width:100%;justify-content:center;margin-top:6px;}
  .footer .wrap{flex-direction:column;text-align:center;}
  .zone-chip{min-height:44px;display:inline-flex;align-items:center;justify-content:center;}
}
@media (max-width:480px){
  .wrap{padding-inline:18px;}
  .hero-tag{padding:7px 13px;}
  .hero-tag-txt{font-size:12px;}
  .header{height:68px;}
  .header .wrap{padding-inline:16px;}
  .h-logo{height:27px;max-width:150px;}
  .mobile-nav{top:68px;}
  .hero{padding-top:68px;}
  .sticky-cta{padding:9px 10px calc(9px + env(safe-area-inset-bottom));}
  .sticky-cta .btn{min-height:48px;padding:13px 14px;font-size:13.5px;white-space:normal;text-align:center;}
  .hero-h1 .accent-u{white-space:normal;}
  .s-h2{font-size:clamp(28px,8.2vw,36px);}
  .s-p{font-size:15.5px;line-height:1.7;}
  .origin-quote{padding:18px;}
  .faq-item summary{font-size:15px;gap:14px;}
  .btn{white-space:normal;text-align:center;}
}
@media (max-width:380px){
  .wrap{padding-inline:16px;}
  .header .wrap{padding-inline:14px;}
  .h-logo{height:25px;max-width:138px;}
  .h-cta{gap:8px;}
  .wa-btn{width:40px;height:40px;}
  .menu-btn{width:40px;height:40px;}
  .hero-grid{gap:30px;}
  .section{padding-block:46px;}
  .section-tight{padding-block:38px;}
}

/* ---------- zone pages: quartiers / infos pratiques / marché ---------- */
.subzone-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:32px;}
@media (max-width:900px){.subzone-grid{grid-template-columns:1fr;}}
.subzone-card{background:#fff;border:1px solid var(--border);border-radius:16px;padding:22px 24px;}
.subzone-name{font-size:15.5px;font-weight:800;color:var(--ink);margin-bottom:6px;}
.subzone-d{font-size:13.5px;color:var(--muted);line-height:1.65;}

.fact-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:32px;}
@media (max-width:900px){.fact-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:560px){.fact-grid{grid-template-columns:1fr;}}
.fact-card{background:var(--bg-soft);border:1px solid var(--border);border-radius:14px;padding:18px 18px;}
.fact-label{font-size:12px;font-weight:700;color:var(--muted2);text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px;}
.fact-value{font-size:14.5px;font-weight:700;color:var(--ink);line-height:1.4;}

.market-tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px;}
.market-tag{font-size:12.5px;font-weight:700;color:var(--blue);background:var(--blue-pale);padding:8px 14px;border-radius:100px;}

/* ---------- related articles (maillage interne) ---------- */
.related-block{margin-top:44px;padding-top:32px;border-top:1px solid var(--border);}
.related-label{font-size:12.5px;font-weight:800;color:var(--muted2);text-transform:uppercase;letter-spacing:.06em;margin-bottom:16px;}

/* ---------- consentement analytics ---------- */
.analytics-consent{position:fixed;left:18px;right:18px;bottom:18px;z-index:600;max-width:760px;margin-inline:auto;background:#fff;border:1px solid var(--border);border-radius:16px;padding:18px 20px;box-shadow:0 20px 60px rgba(13,36,56,.22);display:grid;grid-template-columns:1fr auto;gap:16px 22px;align-items:center;}
.analytics-consent[hidden]{display:none;}
.analytics-consent-title{font-size:15px;font-weight:800;color:var(--ink);}
.analytics-consent-text{font-size:13px;color:var(--muted);line-height:1.55;margin-top:4px;}
.analytics-consent-actions{display:flex;gap:10px;align-items:center;}
.analytics-consent .btn{padding:11px 16px;font-size:13px;}
.analytics-refuse{background:#fff;color:var(--ink);border:1px solid var(--border);}
@media(max-width:700px){.analytics-consent{grid-template-columns:1fr;bottom:82px}.analytics-consent-actions{display:grid;grid-template-columns:1fr 1fr}.analytics-consent .btn{width:100%;justify-content:center}}
.related-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;}
@media (max-width:640px){.related-grid{grid-template-columns:1fr;}}
.related-card{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--bg-soft);border:1px solid var(--border);border-radius:14px;padding:16px 18px;font-size:13.5px;font-weight:700;color:var(--ink);line-height:1.4;transition:border-color .15s,background .15s,transform .15s;}
.related-card:hover{border-color:var(--blue-l);background:var(--blue-pale);transform:translateY(-2px);}
.related-card .arrow{color:var(--blue-l);flex-shrink:0;}
.related-card.zone-card{background:var(--green-pale);border-color:#CDEEDF;}
.related-card.zone-card:hover{border-color:var(--green);}
.related-card.zone-card .arrow{color:var(--green-d);}
.article-meta a{color:var(--blue);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;}

/* ---------- responsive safety net ---------- */
.article-table{display:block;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;}
.article-table th,.article-table td{min-width:120px;}
.article-table th:first-child,.article-table td:first-child{min-width:150px;}
@media (max-width:560px){
  .article-wrap{padding-inline:18px !important;}
  .article-cta{padding:22px 18px !important;}
  .channels-row>*{min-width:0 !important;width:100%;}
  .not-chip{max-width:100%;white-space:normal;}
  .analytics-consent{left:10px;right:10px;padding:16px;}
}
