/* Heya : maquette locale. Tokens issus de heya-design-system, corrigés pour WCAG AA (audit 2026-09-29). */
:root{
  --ink-900:#232C46; --ink-700:#4B5573; --ink-500:#746C59;
  --surface:#F6EEE0; --card:#FFFBF3; --line:#EAE1CC;
  --glow:#E0854A; --glow-text:#9C5D33; --glow-100:#FFF1D8; --glow-soft:#F3C793;
  --gold-100:#F6EAC8; --gold-ink:#5C3E10;
  --dusk-900:#1A2136; --dusk-800:#212A44; --ivory:#F2EAD9; --ivory-dim:#C7C2B3;
  --font-display:"Fraunces","Iowan Old Style","Palatino Linotype",Georgia,serif;
  --font-body:"Karla",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --font-hand:"Caveat","Segoe Script",cursive;
  --r-sm:8px; --r-md:12px; --wrap:1120px;
}
/* contrast: #232C46 #F6EEE0 4.5 */
/* contrast: #4B5573 #F6EEE0 4.5 */
/* contrast: #4B5573 #FFFBF3 4.5 */
/* contrast: #746C59 #F6EEE0 4.5 */
/* contrast: #746C59 #FFFBF3 4.5 */
/* contrast: #9C5D33 #F6EEE0 4.5 */
/* contrast: #9C5D33 #FFFBF3 4.5 */
/* contrast: #9C5D33 #FFF1D8 4.5 */
/* contrast: #232C46 #E0854A 4.5 */
/* contrast: #F2EAD9 #1A2136 4.5 */
/* contrast: #F2EAD9 #212A44 4.5 */
/* contrast: #C7C2B3 #1A2136 4.5 */
/* contrast: #C7C2B3 #212A44 4.5 */
/* contrast: #F3C793 #1A2136 4.5 */
/* contrast: #F3C793 #212A44 4.5 */
/* contrast: #5C3E10 #F6EAC8 4.5 */
/* contrast: #1A2136 #F3C793 4.5 */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:auto}
body{margin:0;background:var(--surface);color:var(--ink-700);font-family:var(--font-body);font-size:18px;line-height:1.6}
img,svg{max-width:100%;height:auto}
h1,h2,h3{font-family:var(--font-display);font-weight:600;color:var(--ink-900);line-height:1.15;margin:0 0 16px}
h1{font-size:clamp(34px,6vw,60px)} h2{font-size:clamp(28px,4vw,40px)} h3{font-size:22px}
p{margin:0 0 16px} a{color:var(--glow-text)}
:focus-visible{outline:3px solid var(--glow-text);outline-offset:3px}
.dark :focus-visible{outline-color:var(--glow-soft)}
.skip{position:absolute;left:-999px;top:8px;background:var(--card);color:var(--ink-900);padding:8px 16px;border-radius:var(--r-sm)}
.skip:focus{left:8px;z-index:10}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px}
section{padding:80px 0}
.dark{background:var(--dusk-900);color:var(--ivory)}
.dark.alt{background:var(--dusk-800)}
.dark h1,.dark h2,.dark h3{color:var(--ivory)}
.dark p.dim{color:var(--ivory-dim)}
.dark a{color:var(--glow-soft)}
.eyebrow{font-family:ui-monospace,"IBM Plex Mono",Consolas,monospace;font-size:14px;letter-spacing:.14em;text-transform:uppercase;color:var(--glow-soft);margin:0 0 20px}
.light .eyebrow{color:var(--glow-text)}
header.top{background:var(--dusk-900)}
header.top .wrap{display:flex;align-items:center;justify-content:space-between;padding-top:16px;padding-bottom:16px}
.mark{font-family:var(--font-hand);font-size:34px;color:var(--ivory);text-decoration:none;line-height:1}
.btn{display:inline-block;background:var(--glow);color:var(--ink-900);font:600 17px/1 var(--font-body);padding:16px 24px;border-radius:var(--r-sm);border:2px solid var(--glow);text-decoration:none;cursor:pointer;min-height:48px}
.btn:hover{background:var(--glow-soft);border-color:var(--glow-soft)}
.dark a.btn{color:var(--ink-900)}
.hero{padding:96px 0}
.hero .lead{font-size:22px;max-width:640px;margin-bottom:32px}
.hero .wrap{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:48px;align-items:center}
.halo{justify-self:center;width:min(100%,360px)}
.grid{display:grid;gap:24px}
.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);padding:28px;min-width:0}
.dark .card{background:transparent;border-color:var(--ink-700);color:var(--ivory)}
.icon{width:56px;height:56px;margin-bottom:16px;color:var(--glow-text)}
.dark .icon{color:var(--glow-soft)}
.num{font-family:var(--font-display);font-size:40px;font-weight:600;color:var(--glow-text);line-height:1;margin-bottom:12px}
.dark .num{color:var(--glow-soft)}
.narrow>*{max-width:760px}
blockquote{margin:0}
blockquote p{font-family:var(--font-display);font-size:20px;color:var(--ink-900);line-height:1.4}
blockquote footer{font-size:16px;color:var(--ink-500)}
.perk{background:var(--gold-100);color:var(--gold-ink);border-radius:var(--r-md);padding:28px}
.perk h3{color:var(--gold-ink)}
ul.checks{list-style:none;padding:0;margin:0}
ul.checks li{display:flex;gap:12px;align-items:flex-start;padding:6px 0}
ul.checks svg{flex:none;width:22px;height:22px;margin-top:4px;color:var(--gold-ink)}
details{border-bottom:1px solid var(--line);padding:16px 0}
summary{cursor:pointer;font-weight:700;color:var(--ink-900);font-size:19px}
details p{margin:12px 0 0}
form{display:grid;gap:16px;max-width:520px}
label{font-weight:700;color:var(--ink-900);display:block;margin-bottom:6px}
input[type=text],input[type=email]{width:100%;min-height:48px;padding:10px 14px;font:inherit;border:2px solid var(--ink-700);border-radius:var(--r-sm);background:var(--card);color:var(--ink-900)}
.consent{display:flex;gap:12px;align-items:flex-start;font-size:16px}
.consent input{margin-top:6px;width:20px;height:20px;flex:none}
footer.site{background:var(--dusk-900);color:var(--ivory);padding:48px 0}
footer.site p{color:var(--ivory-dim);margin:8px 0 0;font-size:16px}
@media (max-width:860px){
  section{padding:56px 0} .hero{padding:56px 0}
  .g3,.g2,.hero .wrap{grid-template-columns:minmax(0,1fr)}
  .halo{width:min(100%,240px)}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
.offer{color:var(--ivory)} .offer svg{color:var(--glow-soft)}
.consent label{font-weight:400;color:var(--ivory);margin:0}
.dark .card blockquote p{color:var(--ivory)}
/* Ajouts visuels Canva */
header.top{background:var(--card);border-bottom:1px solid var(--line)}
.brand{display:block;line-height:0}
.brand img{height:52px;width:auto}
.steps{list-style:none;padding:0;margin:0}
.steps .card{display:flex;flex-direction:column;gap:12px;position:relative}
.steps .num{position:static;font-family:var(--font-display);font-size:44px;font-weight:600;color:var(--glow-text);line-height:1}
.steps img{width:100%;height:220px;object-fit:contain;mix-blend-mode:multiply}
.steps p{margin:0}
.callout{margin-top:24px;background:var(--gold-100);color:var(--gold-ink);padding:16px 20px;border-radius:var(--r-md)}
.plain{background:var(--card)}
.center{align-items:center}
.center-text{text-align:center}
.photo{margin:0}
.photo img{width:100%;height:auto;mix-blend-mode:multiply}
.checks{list-style:none;padding:0;margin:0}
.checks li{display:flex;gap:12px;align-items:flex-start;padding:8px 0;font-size:20px}
.checks svg{flex:none;width:24px;height:24px;margin-top:4px;color:var(--glow-text)}
.perk .checks svg{color:var(--gold-ink)}
.quote{margin:0}
@media (max-width:860px){.steps img{height:180px}}
.foot-logo{width:96px;height:auto;display:block;margin-bottom:12px}
.hero-photo{width:100%;height:auto;mix-blend-mode:multiply}

/* Logos : tuiles de taille identique, défilement lent façon capsme.fr */
.marquee{overflow:hidden;margin-top:32px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.marquee-track{display:flex;width:max-content;animation:defile 80s linear infinite} /* anim-ok : défilement lent des logos, pause au survol et par bouton, arrêt si reduced-motion */
.marquee:hover .marquee-track,.marquee:focus-within .marquee-track,.marquee.paused .marquee-track{animation-play-state:paused}
@keyframes defile{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.logos{list-style:none;margin:0;padding:0;display:flex;flex:none}
.logos li{flex:none;width:200px;height:84px;margin:0 20px;display:flex;align-items:center;justify-content:center}
.logos img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;filter:grayscale(1)}
@media (max-width:860px){.logos li{width:150px;height:64px;margin:0 14px}}
@media (prefers-reduced-motion:reduce){
  .marquee{-webkit-mask-image:none;mask-image:none}
  .marquee-track{animation:none;width:auto;flex-wrap:wrap;justify-content:center}
  .logos{flex-wrap:wrap;justify-content:center}
  .logos[aria-hidden="true"]{display:none}
}
.schema{margin:24px 0 0}
.schema img{width:100%;height:auto;display:block;mix-blend-mode:multiply}
@media (max-width:860px){
  }
/* Témoignages : mots de voisins sur papier, décalés (idée du composant stagger testimonials, code propre) */
:root{--note-1:#FFF1D8;--note-2:#F6EAC8;--note-3:#E8EFE2}
/* contrast: #232C46 #FFF1D8 4.5 */
/* contrast: #232C46 #F6EAC8 4.5 */
/* contrast: #232C46 #E8EFE2 4.5 */


.notes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px 28px;padding:24px 0 8px}
.note{--r:0deg;--y:0px;margin:0;position:relative;padding:36px 24px 24px;border:1px solid var(--line);border-radius:4px;box-shadow:0 10px 20px rgba(35,28,15,.12);transform:rotate(var(--r)) translateY(var(--y));transition:transform .2s ease,box-shadow .2s ease;min-width:0}
.note.n1{background:var(--note-1);--r:-1.6deg}
.note.n2{background:var(--note-2);--r:1.2deg;--y:22px}
.note.n3{background:var(--note-3);--r:-.8deg;--y:6px}
.note:hover,.note:focus-within{--r:0deg;--y:-6px;box-shadow:0 16px 28px rgba(35,28,15,.16)}
.note::before{content:"";position:absolute;top:-11px;left:50%;width:88px;height:24px;margin-left:-44px;background:rgba(255,255,255,.65);border:1px solid var(--line);transform:rotate(-2deg)}
.note blockquote p{font-family:var(--font-body);font-size:19px;line-height:1.5;color:var(--ink-900);margin:0 0 16px}
.note blockquote footer{font-size:16px;font-weight:700;color:var(--ink-700)}
@media (max-width:860px){.notes{grid-template-columns:minmax(0,1fr);gap:28px}.note.n2,.note.n3{--y:0px}}
@media (prefers-reduced-motion:reduce){.note{transition:none}}
/* Héros en une colonne : titre, image, texte, bouton, avec plus d'air */
.hero{padding:112px 0 96px}
.hero .wrap.hero-stack{display:block;text-align:center;max-width:960px}
.hero h1{font-size:clamp(32px,4.6vw,52px);line-height:1.2;max-width:880px;margin:0 auto 48px}
.hero .eyebrow{margin-bottom:28px}
.hero-visual{max-width:720px;margin:0 auto 48px}
.hero.dark .hero-visual{background:var(--card);border-radius:var(--r-md);padding:24px}
.hero-photo{width:100%;height:auto;display:block;mix-blend-mode:multiply}
.hero .lead{font-size:21px;line-height:1.65;max-width:640px;margin:0 auto 40px}
@media (max-width:860px){.hero{padding:64px 0}.hero h1{margin-bottom:32px}.hero-visual{margin-bottom:32px}}
/* Boutons : survol en teinte plus foncée, bouton d'en-tête en contour */
/* contrast: #232C46 #DD8048 4.5 */
.btn{transition:background-color .15s ease,color .15s ease,border-color .15s ease}
.btn:hover,.dark .btn:hover{background:#DD8048;border-color:#DD8048}
.btn.ghost{background:transparent;color:var(--ink-900);border-color:var(--ink-900)}
.btn.ghost:hover{background:var(--ink-900);color:var(--surface);border-color:var(--ink-900)}
/* Formulaire et pied de page sur fond sombre */
.dark label{color:var(--ivory)}
footer.site .wrap{display:block}
.legal-nav{margin-top:24px}
.legal-nav ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px 28px}
.legal-nav a{font-size:16px}
/* Pages légales */
.legal h1{font-size:clamp(30px,4vw,44px);margin-bottom:24px}
.legal h2{font-size:24px;margin:40px 0 12px}
.legal p{max-width:70ch}
.legal .maj{color:var(--ink-500);margin-top:40px}
mark.todo{background:#FFE58F;color:#3B2A00;padding:0 4px;border-radius:3px}
/* contrast: #3B2A00 #FFE58F 4.5 */
/* Carte d'offre : format de la one page (badge, en-tête encadré, briques, bloc de garanties) */
:root{--sage:#7A9070}
.offer-card{position:relative;max-width:780px;margin:16px auto 0;background:var(--card);border:2px solid var(--glow);border-radius:24px;box-shadow:0 26px 60px rgba(217,122,69,.22);padding:56px 40px 40px}
.offer-badge{position:absolute;top:-16px;left:50%;transform:translateX(-50%);background:var(--dusk-900);color:var(--ivory);font-size:13px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;padding:7px 18px;border-radius:6px;white-space:nowrap}
.offer-headline{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:22px 24px}
.offer-headline p{margin:0}
.offer-name{font-size:13px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--ink-500)}
.offer-sub{font-size:15px;font-weight:700;color:var(--glow-text);margin-top:4px!important}
.offer-value{font-family:var(--font-display);font-size:clamp(22px,3vw,30px);font-weight:600;color:var(--ink-900);line-height:1.25;margin-top:12px!important}
.offer-bricks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px;margin-top:32px}
.benefits-title{font-family:var(--font-body);font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--ink-500);margin:0 0 16px}
.benefits-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.benefits-list li{display:flex;gap:12px;align-items:flex-start;font-size:19px;line-height:1.4;color:var(--ink-700)}
.benefits-list svg{flex:none;width:22px;height:22px;margin-top:3px;color:var(--sage)}
.offer-perk{margin-top:32px;background:var(--gold-100);border-radius:var(--r-md);padding:20px 24px}
.offer-perk-title{font-family:var(--font-display);font-size:26px;font-weight:600;color:var(--gold-ink);margin:0 0 12px}
.offer-perk-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.offer-perk-list li{font-size:19px;color:var(--gold-ink);padding-left:20px;position:relative;line-height:1.4}
.offer-perk-list li::before{content:"\2022";position:absolute;left:0;font-weight:800}
.offer-cta{margin-top:32px;text-align:center}
.offer-cta p{margin:16px 0 0;color:var(--ink-500);font-size:16px}
@media (max-width:860px){.offer-card{padding:48px 20px 28px}.offer-bricks{grid-template-columns:minmax(0,1fr);gap:24px}}

/* Espacements standardisés : 96 px en haut et en bas de section (64 px sur mobile), 12 px entre surtitre et titre, 16 px après un titre ou un paragraphe, 32 px avant un bloc */
:root{--section-y:96px}
@media (max-width:860px){:root{--section-y:64px}}
section,section.hero{padding:var(--section-y) 0}
footer.site{padding:64px 0}
p.eyebrow{margin:0 0 12px}
section h1,section h2{margin-top:0}
section h2{margin-bottom:16px}
section p{margin-top:0;margin-bottom:16px}
.wrap>*:last-child,.narrow>*:last-child{margin-bottom:0}
.grid,.steps,.notes,.schema,.marquee,form,h2+details,.offer-card{margin-top:32px}
.notes{padding:12px 0 0}
.callout{margin-top:32px}
.hero h1{margin-bottom:32px}
.hero-visual{margin:0 auto 32px}
.hero .lead{margin:0 auto 32px}
.hero .wrap.hero-stack .lead:last-of-type{margin-bottom:32px}
.hero .eyebrow{margin-bottom:12px}

/* Constat : texte et photo côte à côte */
.split{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:56px;align-items:center}
.split-text>*:last-child{margin-bottom:0}
.split-photo{margin:0}
.split-photo img{width:100%;height:auto;display:block;border-radius:var(--r-md)}
.offer-bricks{margin-top:0}
@media (max-width:860px){.split{grid-template-columns:minmax(0,1fr);gap:32px}}
/* Offre : les rubriques (matériel, services, bonus) s'empilent */
.offer-bricks{grid-template-columns:minmax(0,1fr);gap:0;margin-top:0}
.offer-bricks>div+div{margin-top:28px;padding-top:28px;border-top:1px solid var(--line)}
.offer-perk{margin-top:28px}

/* Bandeau des soutiens : plus bas (retour d'Élise, 2026-09-30) */
section[aria-labelledby="soutiens"]{padding:40px 0}
section[aria-labelledby="soutiens"] .eyebrow{margin-bottom:8px}
section[aria-labelledby="soutiens"] .marquee{margin-top:8px}
.logos li{width:150px;height:56px;margin:0 16px}
@media (max-width:860px){section[aria-labelledby="soutiens"]{padding:32px 0}.logos li{width:120px;height:48px;margin:0 12px}}
/* Témoignages, rendu artisanal : papier grainé, couture pointillée, ruban adhésif rayé */
.note{border:none;border-radius:2px 4px 2px 5px;padding:40px 28px 28px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .35 0 0 0 0 .28 0 0 0 0 .15 0 0 0 .16 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");box-shadow:0 1px 1px rgba(35,28,15,.18),0 12px 22px rgba(35,28,15,.14)}
.note::after{content:"";position:absolute;inset:9px;border:1.5px dashed rgba(35,28,15,.3);border-radius:2px;pointer-events:none}
.note::before{width:96px;height:26px;margin-left:-48px;top:-13px;border:none;background:repeating-linear-gradient(45deg,rgba(255,255,255,.78) 0 7px,rgba(255,255,255,.4) 7px 14px);box-shadow:0 1px 2px rgba(35,28,15,.2)}
.note blockquote p{position:relative;z-index:1}
.note blockquote footer{position:relative;z-index:1;border-top:1.5px dashed rgba(35,28,15,.3);padding-top:12px}
/* Surtitre rendu par un h2 (soutiens) : même aspect que les autres surtitres, sans gras */
h2.eyebrow{font-weight:400;line-height:1.6;margin-bottom:8px}
