/* Propre — papier, encre et une touche de rouge d’atelier. */
:root{--ink:#24251f;--ink-soft:#626158;--paper:#f6f1e7;--bleach:#fcf9f2;--mist:#ded9ce;--swift:#ad3c28;--swift-deep:#88301f;--promo:#e8ddc3;--display:'DM Sans',sans-serif;--serif:'DM Serif Display',Georgia,serif;--mono:'JetBrains Mono',monospace;--gutter:clamp(22px,5vw,80px);--max:1280px}
*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font:400 16px/1.65 var(--display);-webkit-font-smoothing:antialiased}img{display:block;max-width:100%}a{color:inherit}p{margin:0 0 1em}h1,h2,h3{margin:0;font-weight:400;line-height:1.07}h2{font:400 clamp(38px,4.4vw,65px)/1.06 var(--serif);letter-spacing:-.025em}h3{font-size:21px;font-weight:600;line-height:1.25;letter-spacing:-.035em}code{font:400 .83em var(--mono);background:var(--mist);padding:.15em .35em;border-radius:2px}:focus-visible{outline:2px solid var(--swift);outline-offset:5px}.skip{position:absolute;left:-9999px;z-index:100;padding:10px;background:var(--ink);color:var(--paper)}.skip:focus{left:10px;top:10px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
main>section{padding:100px var(--gutter)}.section-head{max-width:var(--max);margin:0 auto 48px}.section-head>p:not(.eyebrow){max-width:58ch;color:var(--ink-soft);margin:24px 0 0}.eyebrow{font:400 11px/1.5 var(--mono);text-transform:uppercase;letter-spacing:.1em;color:var(--swift);margin:0 0 24px}.section-head .eyebrow{margin:0 0 22px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:28px;min-height:52px;padding:14px 24px;text-decoration:none;border:1px solid var(--swift);background:var(--swift);color:var(--bleach);font:500 14px/1.3 var(--display);transition:background .2s}.btn:hover{background:var(--swift-deep);border-color:var(--swift-deep)}.btn-small{font-size:12px;min-height:39px;padding:10px 16px}.btn-big{min-height:58px;padding:16px 30px}.btn-outline{border-color:var(--ink);background:transparent;color:var(--ink)}.btn-outline:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}.text-link{font-size:14px;text-decoration:none;border-bottom:1px solid var(--ink);padding:9px 0;display:inline-flex;align-items:center;gap:20px}.text-link:hover{color:var(--swift);border-color:var(--swift)}
.nav{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:32px;padding:20px var(--gutter);background:var(--paper);color:var(--ink);border-bottom:1px solid var(--mist)}.nav.is-solid{background:var(--paper)}.logo{display:inline-flex;align-items:center;gap:8px;font:400 31px/1 var(--serif);letter-spacing:-.045em;text-decoration:none;white-space:nowrap}.logo sup{font:400 12px var(--display);align-self:flex-start;margin:1px 0 0 -4px}.logo-mark{width:23px;height:23px;border:1px solid var(--swift);border-radius:50%;position:relative;margin-right:2px}.logo-mark::before,.logo-mark::after{content:'';position:absolute;border:1px solid var(--swift);border-radius:50%;inset:4px}.logo-mark::after{inset:8px;background:var(--swift)}.nav nav{margin-left:auto}.nav ul{display:flex;gap:26px;list-style:none;padding:0;margin:0}.nav nav a{font-size:12px;text-decoration:none}.nav nav a:hover{color:var(--swift)}
main>.hero{max-width:1440px;margin:auto;padding:62px var(--gutter) 52px;display:grid;grid-template-columns:1.15fr 1fr;gap:48px;align-items:center;min-height:660px}.hero-copy{position:relative;z-index:1}.hero .eyebrow{margin-bottom:30px}.hero h1{font:400 clamp(61px,6.9vw,101px)/.96 var(--serif);letter-spacing:-.055em}.hero-ios{color:var(--swift);font-style:italic;display:block}.hero-tagline{font:400 clamp(22px,2.3vw,31px)/1.2 var(--serif);margin:25px 0 15px}.hero-lead{max-width:43ch;color:var(--ink-soft);font-size:15px;line-height:1.7;margin-bottom:25px}.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:26px}.hero-note{font-size:11px;color:var(--ink-soft);margin:22px 0 0}.hero-art{position:relative;margin:0;align-self:center;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}.art-index{display:flex;justify-content:space-between;gap:20px;font:400 9px/1.5 var(--mono);letter-spacing:.035em;padding-top:13px}.hero-art img{width:100%;height:auto;aspect-ratio:1;object-fit:contain;mix-blend-mode:multiply}.hero-art figcaption{display:flex;justify-content:space-between;gap:16px;font:400 10px/1.5 var(--mono);padding:0 0 13px;color:var(--ink-soft)}.art-stamp{position:absolute;right:0;bottom:52px;width:96px;height:96px;border:1px solid var(--swift);border-radius:50%;display:grid;place-content:center;color:var(--swift);font:400 19px/1.05 var(--serif);text-align:center;transform:rotate(-12deg);background:var(--paper)}.course-strip{border-block:1px solid var(--mist);display:grid;grid-template-columns:repeat(4,1fr);padding:24px var(--gutter);gap:24px;max-width:1440px;margin:auto}.course-strip p{margin:0;font-size:12px;display:flex;align-items:center;gap:14px}.course-strip strong{font:400 31px/1 var(--serif);letter-spacing:-.04em;color:var(--swift)}
.probleme,.methode,.garantie,.formateur{max-width:1440px;margin:auto;display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(40px,7vw,100px);align-items:center}.probleme-photo{margin:0}.probleme-photo img{width:100%;aspect-ratio:1;object-fit:contain;mix-blend-mode:multiply}.probleme-photo figcaption{font:400 10px/1.5 var(--mono);padding:14px 0;border-top:1px solid var(--mist);color:var(--ink-soft)}.probleme-texte h2{margin-bottom:26px}.probleme-texte>p:not(.eyebrow){color:var(--ink-soft);font-size:15px}.probleme-texte .accroche{color:var(--swift)!important;font-weight:500;margin:25px 0 0}.symptomes{list-style:none;padding:0;margin:20px 0 0}.symptomes li{padding:11px 0;border-bottom:1px solid var(--mist);font-size:13px;display:flex;gap:14px}.symptomes li::before{content:'↳';color:var(--swift)}
.avant-apres{background:var(--ink);color:var(--paper)}.avant-apres .eyebrow{color:#d6ab82}.avant-apres .section-head>p:not(.eyebrow){color:#bcbcaf}.compare{position:relative;max-width:var(--max);height:850px;margin:auto;overflow:hidden;border:1px solid #65655a;user-select:none}.pane{position:absolute;inset:0;overflow:hidden}.pane pre{margin:0;padding:80px 28px 28px;font:400 clamp(9px,.85vw,12px)/1.8 var(--mono);white-space:pre}.pane code{background:none;padding:0;font-size:inherit}.pane-apres{left:var(--pos);background:var(--paper);color:var(--ink)}.pane-avant{background:#292c27;color:#e2e1d7;width:var(--pos)}.pane-label{position:absolute;top:0;z-index:2;padding:17px 22px;font:400 10px/1.5 var(--mono);border-bottom:1px solid currentColor}.pane-label-avant{left:0;color:#e7b698}.pane-label-apres{left:0;right:0;color:var(--swift)}.pane-apres .c{color:#74766c}.pane-apres .k{color:#963e32}.pane-apres .t{color:#3c6653}.pane-apres .a{color:#906b28}.pane-avant .c{color:#9da18f}.pane-avant .k{color:#d99c80}.pane-avant .t{color:#a7bdab}.pane-avant .s{color:#d5c595}.tache{text-decoration:wavy underline #d18a71;text-underline-offset:4px}.compare-handle{position:absolute;top:0;bottom:0;left:var(--pos);z-index:3;width:2px;background:#bd7254;pointer-events:none}.compare-handle span{position:absolute;top:50%;left:50%;translate:-50% -50%;width:46px;height:46px;border-radius:50%;background:var(--paper);border:1px solid var(--swift);display:grid;place-items:center}.compare-handle span::after{content:'↔';font-size:24px;color:var(--swift)}.compare-range{position:absolute;inset:0;z-index:4;width:100%;height:100%;margin:0;opacity:0;cursor:ew-resize}.compare:has(.compare-range:focus-visible) .compare-handle span{outline:3px solid var(--swift);outline-offset:4px}
.methode{grid-template-columns:1.2fr 1fr}.methode h2{margin-bottom:25px}.methode-texte>p:not(.eyebrow){max-width:57ch;color:var(--ink-soft);font-size:15px}.couches{margin:35px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:25px 30px}.couches>div{border-top:1px solid var(--mist);padding-top:13px}.couches dt{font:400 12px var(--mono);color:var(--swift);margin-bottom:8px}.couches dd{margin:0;font-size:13px;color:var(--ink-soft)}.oignon{margin:0;max-width:440px}.oignon svg{width:100%;height:auto;overflow:visible}.oignon circle{stroke:var(--paper);stroke-width:5}.oignon .r4{fill:#e5decc}.oignon .r3{fill:#cdbf9d}.oignon .r2{fill:#a27958}.oignon .r1{fill:var(--swift)}.oignon text{font:400 11px var(--mono);text-anchor:middle;fill:var(--ink)}.oignon .l1,.oignon .l2{fill:var(--paper)}.oignon .lf{text-anchor:start;font-size:10px}.oignon .fleche{stroke:var(--ink);stroke-width:1.5;fill:none}
.video{background:#ece6d9;border-block:1px solid var(--mist)}.video-grid{max-width:var(--max);margin:auto;display:grid;grid-template-columns:1.8fr 1fr;gap:45px}.video-player{position:relative;aspect-ratio:16/9;overflow:hidden;background:var(--ink)}.video-player iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.video-facade{position:absolute;inset:0;width:100%;padding:0;border:0;background:var(--ink);cursor:pointer}.video-facade img{width:100%;height:100%;object-fit:cover;object-position:80% 50%;filter:grayscale(1);opacity:.2;transition:opacity .2s}.video-facade:hover img{opacity:.3}.video-caption{position:absolute;left:28px;top:28px;color:var(--paper);text-align:left;font:400 clamp(25px,3vw,42px)/1.08 var(--serif);pointer-events:none}.video-caption>span{display:block;font:400 9px var(--mono);margin-bottom:16px;letter-spacing:.04em}.video-play{position:absolute;top:50%;left:50%;translate:-50% -50%;width:70px;height:70px;border-radius:50%;background:var(--paper);display:grid;place-items:center}.video-play::after{content:'';border-left:16px solid var(--swift);border-block:10px solid transparent;margin-left:4px}.video-chapitres h3{font:400 11px var(--mono);text-transform:uppercase;letter-spacing:.08em;margin:0 0 18px}.video-chapitres ol{list-style:none;padding:0;margin:0}.video-chapitres button{display:flex;width:100%;gap:15px;align-items:baseline;background:none;border:0;border-bottom:1px solid #d1cabb;padding:12px 0;text-align:left;font:400 12px/1.4 var(--display);cursor:pointer;color:var(--ink)}.video-chapitres button:hover{color:var(--swift)}.video-chapitres button.is-active{color:var(--swift);font-weight:600}.ts{font:400 10px var(--mono);color:var(--swift);min-width:4em}.video-credit{font-size:10px;color:var(--ink-soft);margin:20px 0 0}
.modules{max-width:var(--max);margin:0 auto;padding:0;list-style:none;counter-reset:mod;display:grid;grid-template-columns:1fr 1fr;column-gap:70px}.modules>li{counter-increment:mod;position:relative;display:grid;grid-template-columns:46px 1fr auto;gap:0 16px;padding:29px 0;border-top:1px solid var(--ink);align-content:start}.modules>li::before{content:counter(mod,decimal-leading-zero);grid-row:span 3;font:400 29px/1 var(--serif);color:var(--swift)}.modules h3{grid-column:2;font-size:18px}.modules>li>p{grid-column:2 / span 2;margin:13px 0 0;font-size:13px;color:var(--ink-soft)}.duree{grid-column:3;grid-row:1;font:400 10px var(--mono);white-space:nowrap;padding-top:4px}.chapitres{grid-column:2 / span 2;margin-top:16px}.chapitres summary{display:flex;align-items:center;gap:8px;cursor:pointer;list-style:none;font:500 11px var(--mono);padding:8px 0}.chapitres summary::-webkit-details-marker{display:none}.chapitres summary::before{content:'+';font-size:17px;color:var(--swift)}.chapitres[open] summary::before{content:'−'}.chapitres ol{margin:10px 0 0;padding:0;list-style:none;counter-reset:chap}.chapitres li{counter-increment:chap;display:flex;align-items:baseline;justify-content:space-between;gap:15px;padding:10px 0;border-bottom:1px solid var(--mist);font-size:12px}.chapitres li span:first-child::before{content:counter(mod) '.' counter(chap);font:400 9px var(--mono);margin-right:10px;color:var(--ink-soft)}.chap-duree{font:400 9px var(--mono);color:var(--ink-soft);white-space:nowrap}
.outcomes{background:#e9e4d7}.outcome-grid{max-width:var(--max);margin:auto;display:grid;grid-template-columns:repeat(3,1fr);gap:50px}.outcome-grid article{border-top:1px solid var(--ink);padding-top:20px}.outcome-grid h3{font:400 29px/1.2 var(--serif);margin-bottom:18px}.outcome-grid article>p{font-size:14px;color:var(--ink-soft)}.outcome-grid .eyebrow{display:block;margin-bottom:35px}
.tarifs{border-bottom:1px solid var(--mist)}.offres{max-width:var(--max);margin:auto;display:grid;grid-template-columns:repeat(3,1fr);gap:0;align-items:stretch;border:1px solid var(--ink)}.offre{position:relative;display:flex;flex-direction:column;padding:32px 28px;border-right:1px solid var(--ink)}.offre:last-child{border-right:0}.offre h3{font:400 29px/1.1 var(--serif)}.offre-pitch{font-size:13px;color:var(--ink-soft);margin:18px 0 26px}.prix{font:400 48px/1 var(--serif);letter-spacing:-.04em;margin-bottom:28px}.prix-barre{font:400 13px var(--mono);display:block;text-decoration:line-through;color:var(--ink-soft);margin-bottom:10px;letter-spacing:0}.prix-unite{display:block;font:400 11px var(--mono);letter-spacing:0;margin-top:10px}.offre ul{list-style:none;margin:0 0 30px;padding:0;flex:1}.offre li{font-size:13px;display:flex;gap:12px;margin-bottom:12px}.offre li::before{content:'↳';color:var(--swift)}.offre .btn{width:100%;font-size:12px;min-height:48px}.offre-note{font-size:10px;margin:14px 0 0;opacity:.75}.offre-star{background:var(--ink);color:var(--paper);padding-top:66px}.offre-star .offre-pitch,.offre-star .prix-barre{color:#c3c3b6}.offre-star li::before{color:#e9ad8e}.offer-label{position:absolute;left:28px;top:23px;font:400 9px var(--mono);letter-spacing:.09em;text-transform:uppercase;color:#e9ad8e}.offre-equipe{padding:0}.offre-equipe-body{padding:32px 28px;display:flex;flex-direction:column;flex:1}.bonus{max-width:var(--max);margin:55px auto 0;padding-top:28px;border-top:1px solid var(--ink)}.bonus-titre{font:400 30px var(--serif);margin-bottom:10px}.bonus-sous{font-size:13px;color:var(--ink-soft)}.bonus-liste{list-style:none;margin:30px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:40px}.bonus-liste li{font-size:13px;color:var(--ink-soft)}.bonus-liste strong{display:block;color:var(--ink);font-weight:500;margin-bottom:6px}.bonus-liste em{display:block;font:400 10px var(--mono);margin-top:10px;color:var(--swift)}
.guarantee-number{font:400 clamp(130px,17vw,230px)/.9 var(--serif);color:var(--swift);letter-spacing:-.08em;border-block:1px solid var(--swift);padding:24px 0 30px}.guarantee-number>span,.guarantee-number>small{display:block;font:400 11px/1.5 var(--mono);letter-spacing:0}.guarantee-number>span{margin-bottom:35px}.guarantee-number>small{margin-top:20px}.garantie h2,.formateur h2{margin-bottom:25px}.garantie p,.formateur p{font-size:15px;color:var(--ink-soft)}.garantie-ps{font:400 12px/1.7 var(--mono)!important;color:var(--swift)!important}.formateur{padding-top:0}.field-note{background:#e9e2d2;padding:45px 36px;transform:rotate(-2deg);border-top:4px solid var(--swift)}.field-note>p{font:400 32px/1.2 var(--serif);color:var(--ink);margin:30px 0}.field-note-sign{font:400 10px var(--mono);color:var(--ink-soft)}
.faq{background:var(--bleach);border-block:1px solid var(--mist);display:grid;grid-template-columns:1fr 1.5fr;gap:60px}.faq>h2{max-width:var(--max);margin:0}.faq-liste{width:100%;max-width:800px}.faq details{border-top:1px solid var(--mist)}.faq details:last-child{border-bottom:1px solid var(--mist)}.faq summary{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:21px 0;list-style:none;cursor:pointer;font-size:15px;font-weight:500}.faq summary::-webkit-details-marker{display:none}.faq summary::after{content:'+';font:400 22px var(--mono);color:var(--swift)}.faq details[open] summary::after{content:'−'}.faq details p{max-width:60ch;padding-bottom:10px;font-size:14px;color:var(--ink-soft)}.final{text-align:center;background:var(--swift);color:var(--paper)}.final h2{max-width:1000px;margin:0 auto 28px}.final-kicker{font-size:15px;opacity:.85}.final .btn{background:var(--paper);border-color:var(--paper);color:var(--swift);margin:15px 0 22px}.final .btn:hover{background:var(--ink);border-color:var(--ink);color:var(--paper)}.final>p:last-child{font:400 10px/1.7 var(--mono);margin:0;opacity:.8}.footer{padding:45px var(--gutter);display:grid;grid-template-columns:1fr auto;gap:8px 45px;font-size:10px;color:var(--ink-soft)}.footer .logo{color:var(--ink);grid-row:span 3;align-self:start;font-size:38px}.footer p{margin:0}.footer>p:not(.logo){text-align:right}
@media(min-width:1500px){.faq{grid-template-columns:1fr 1.5fr;padding-left:max(var(--gutter),calc((100vw - 1280px)/2));padding-right:max(var(--gutter),calc((100vw - 1280px)/2))}}
@media(max-width:1100px){.nav ul{gap:16px}.hero h1{font-size:clamp(62px,7vw,90px)}.hero-actions{gap:20px}.hero-art figcaption{font-size:9px}.offre,.offre-equipe-body{padding:28px 20px}.offre-star{padding-top:65px}.offre-equipe{padding:0}.modules{column-gap:35px}.modules>li{grid-template-columns:36px 1fr auto;gap:0 12px}}
@media(max-width:850px){.nav nav{display:none}.nav .btn{margin-left:auto}.nav{padding-block:16px}.hero{gap:25px!important}.hero h1{font-size:clamp(52px,7.5vw,70px)}.hero .eyebrow{font-size:9px}.hero-art .art-index span:last-child{display:none}.hero-lead{font-size:14px}.hero-note{font-size:10px}.art-stamp{width:76px;height:76px;font-size:16px;bottom:48px}.course-strip{grid-template-columns:1fr 1fr;gap:20px}.course-strip p{font-size:11px}.probleme,.methode,.garantie,.formateur{gap:35px}.couches{grid-template-columns:1fr;gap:15px}.video-grid{grid-template-columns:1fr;gap:28px}.modules{grid-template-columns:1fr}.offres{grid-template-columns:1fr;max-width:600px}.offre{border-right:0;border-bottom:1px solid var(--ink);padding:32px}.offre:last-child{border-bottom:0}.offre-star{padding-top:70px}.offre-equipe{padding:0}.offre-equipe-body{padding:32px}.offer-label{left:32px;top:28px}.offre h3{font-size:33px}.bonus-liste{gap:24px}.outcome-grid{gap:25px}.outcome-grid h3{font-size:25px}.faq{grid-template-columns:1fr;gap:35px}.field-note{padding:30px 24px}.field-note>p{font-size:27px}}
@media(max-width:600px){main>section{padding:65px var(--gutter)}main>.hero{grid-template-columns:1fr;padding:44px var(--gutter) 36px;gap:40px!important;min-height:0}.hero h1{font-size:clamp(54px,12vw,76px)}.hero-ios{display:inline}.hero .eyebrow{font-size:9px;letter-spacing:.07em;margin-bottom:25px}.hero-tagline{margin-top:24px;font-size:25px}.hero-lead{max-width:42ch}.hero-actions{gap:20px}.hero-actions .btn{padding:14px 18px;gap:16px;font-size:12px}.hero-actions .text-link{font-size:12px;gap:14px}.hero-art{margin-top:2px}.hero-art img{max-height:360px}.hero-art .art-index span:last-child{display:block}.hero-art figcaption{font-size:9px}.art-stamp{bottom:55px;right:4px}.course-strip{padding-block:24px;gap:24px 14px}.course-strip p{font-size:10px;gap:10px}.course-strip strong{font-size:27px}.probleme,.methode,.garantie,.formateur{grid-template-columns:1fr}.probleme-texte{grid-row:1}.probleme-photo img{max-height:340px}.methode{gap:40px}.couches{grid-template-columns:1fr 1fr;gap:20px}.oignon{max-width:340px;margin:auto}.compare{height:640px}.pane-label-avant{max-width:100%}.pane-apres pre{font-size:8px;padding-inline:12px}.video-caption{font-size:25px;left:20px;top:20px}.video-play{top:72%;width:48px;height:48px}.pane pre{font-size:9px;padding:88px 16px 20px}.pane-label{font-size:9px;padding:16px;max-width:70%;height:65px}.pane-label-apres{max-width:100%}.section-head{margin-bottom:35px}.outcome-grid{grid-template-columns:1fr;gap:35px}.outcome-grid .eyebrow{margin-bottom:20px}.outcome-grid h3{font-size:29px}.bonus-liste{grid-template-columns:1fr;gap:28px}.guarantee-number{font-size:160px}.garantie{gap:40px}.formateur{padding-top:0}.field-note{margin-bottom:10px}.footer{grid-template-columns:1fr;gap:10px}.footer .logo{grid-row:auto;margin-bottom:16px}.footer>p:not(.logo){text-align:left}.final h2{font-size:38px}.final-kicker{font-size:13px}.nav .logo{font-size:29px}.nav .btn{font-size:11px}.modules h3{font-size:17px}.modules>li{grid-template-columns:33px 1fr auto;gap:0 12px}.chap-duree{font-size:8px}.chapitres li{gap:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}

/* Retour au blanc optique et aux codes de la formation, accessoires kitsch compris. */
:root {
  --ink: #151b43;
  --ink-soft: #565c78;
  --paper: #ffffff;
  --bleach: #ffffff;
  --mist: #e1e6f2;
  --swift: #d94429;
  --swift-deep: #b9351f;
  --promo: #ffd345;
  --serif: 'Bricolage Grotesque', system-ui, sans-serif;
}
body { font-size: 17px; }
h1, h2, .logo, .prix, .course-strip strong, .guarantee-number { font-weight: 800; font-variation-settings: 'opsz' 72, 'wdth' 80; }
h2 { font-weight: 800; font-size: clamp(38px, 4.1vw, 60px); letter-spacing: -.04em; }
h3 { font-weight: 700; }
.nav { background: rgba(255,255,255,.97); padding-block: 19px; }
.nav.is-solid { box-shadow: 0 5px 24px rgba(21,27,67,.06); }
.logo { font-size: 31px; }
.nav nav a { font-size: 14px; font-weight: 600; }
.btn { border-radius: 999px; font-size: 15px; font-weight: 700; min-height: 54px; padding-inline: 26px; }
.btn-small { min-height: 42px; font-size: 13px; padding-inline: 20px; }
.btn-outline { border-color: var(--mist); }
.text-link { color: var(--ink); border: 1px solid var(--mist); border-radius: 999px; padding: 15px 23px; font-weight: 600; }
.text-link:hover { border-color: var(--ink); }
main>.hero { gap: 42px; padding-top: 64px; padding-bottom: 65px; }
.hero h1 { font-weight: 800; font-size: clamp(62px, 7.1vw, 103px); letter-spacing: -.055em; line-height: .97; font-variation-settings: 'opsz' 96, 'wdth' 75; }
.hero-ios { color: var(--swift); font-style: normal; }
.hero-tagline { font-weight: 700; font-size: clamp(23px, 2.3vw, 32px); color: var(--ink); }
.hero-lead { font-size: 17px; max-width: 46ch; }
.hero-note { font-size: 12px; }
.hero .eyebrow { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; font: 600 12px/1.4 var(--display); letter-spacing: 0; text-transform: none; color: var(--ink-soft); }
.new-formula { background: var(--promo); color: var(--ink); padding: 7px 12px; border-radius: 6px; transform: rotate(-3deg); font-weight: 800; }
.hero-art { border: 0; background: #f6f1e7; border-radius: 28px; padding: 20px; transform: rotate(2deg); }
.hero-art img { border-radius: 16px; mix-blend-mode: normal; }
.art-index { padding-top: 0; font: 700 11px/1.4 var(--display); color: #5d594c; }
.hero-art figcaption { padding: 6px 0 0; font: 500 11px/1.5 var(--display); color: #5d594c; }
.burst { background: var(--promo); color: var(--ink); display: grid; place-content: center; text-align: center; font-family: var(--serif); font-weight: 800; line-height: 1.05; filter: drop-shadow(0 5px 0 rgba(21,27,67,.13)); }
.art-stamp { right: -22px; bottom: 42px; width: 155px; height: 155px; border: 0; font-size: 23px; transform: rotate(-12deg); }
.art-stamp small { display: block; font: 600 9px var(--display); margin-top: 9px; }
.course-strip { background: #f5f7fc; border-block: 0; border-radius: 20px; max-width: calc(1440px - 2 * var(--gutter)); padding: 26px 36px; margin-bottom: 36px; }
.course-strip p { font-size: 14px; }
.course-strip strong { font-size: 38px; color: var(--ink); }
.ticker { background: var(--promo); overflow: hidden; border-block: 1px solid rgba(21,27,67,.12); }
.ticker-track { display: flex; width: max-content; padding: 14px 0; animation: ticker 45s linear infinite; }
.ticker-track span { font-weight: 700; font-size: 14px; padding: 0 28px; white-space: nowrap; }
.ticker-track span::after { content: '✦'; margin-left: 56px; color: var(--swift); }
@keyframes ticker { to { transform: translateX(-50%); } }
.eyebrow { font: 700 12px/1.4 var(--display); letter-spacing: .04em; }
.probleme-photo img { border-radius: 24px; mix-blend-mode: normal; }
.probleme-photo figcaption { border: 0; font: 500 12px/1.5 var(--display); text-align: center; padding-top: 18px; }
.probleme-texte>p:not(.eyebrow), .methode-texte>p:not(.eyebrow) { font-size: 16px; }
.probleme-texte .accroche { display: inline-block; background: var(--promo); color: var(--ink)!important; border-radius: 6px; font-weight: 700; padding: 8px 13px; transform: rotate(-1deg); }
.symptomes li { font-size: 14px; }
.avant-apres { background: #151b43; }
.avant-apres .eyebrow { color: var(--promo); }
.avant-apres .section-head>p:not(.eyebrow) { color: #c6ccdf; }
.compare { border-radius: 20px; border-color: #434b75; }
.compare-handle { background: var(--promo); }
.compare-handle span { background: var(--promo); border-color: var(--ink); }
.compare-handle span::after { color: var(--ink); }
.pane-label-apres { background: #f5f7fc; }
.couches dt { font-weight: 700; font-size: 14px; }
.couches dd { font-size: 14px; }
.oignon .r4 { fill: #e1e7fa; }.oignon .r3 { fill: #a4b5e7; }.oignon .r2 { fill: #495f9d; }.oignon .r1 { fill: var(--swift); }
.video { background: #f5f7fc; border: 0; }
.video-player { border-radius: 22px; }
.video-caption { font-weight: 800; }
.video-caption>span { font: 600 11px var(--display); }
.video-chapitres h3 { font: 700 14px var(--display); text-transform: none; letter-spacing: 0; }
.video-chapitres button { font-size: 14px; padding: 14px 8px; border-color: var(--mist); border-radius: 6px; }
.video-chapitres button:hover { background: white; }
.video-credit { font-size: 12px; }
.modules { gap: 24px; }
.modules>li { border: 1px solid var(--mist); padding: 28px; border-radius: 18px; grid-template-columns: 38px 1fr auto; }
.modules>li::before { font-weight: 800; color: var(--swift); }
.modules>li>p { font-size: 14px; }
.modules h3 { font-size: 20px; }
.chapitres summary { font: 700 12px var(--display); }
.outcomes { background: white; padding-top: 45px; }
.outcome-grid article { border: 1px solid var(--mist); padding: 30px; border-radius: 20px; background: #f5f7fc; }
.outcome-grid { gap: 24px; }
.outcome-grid h3 { font-weight: 800; font-size: 27px; }
.outcome-grid .eyebrow { margin-bottom: 23px; }
.tarifs { background: #f5f7fc; border: 0; }
.offres { border: 0; gap: 24px; }
.offre { background: white; border: 1px solid var(--mist); border-radius: 24px; padding: 34px 28px; }
.offre:last-child { border-right: 1px solid var(--mist); }
.offre h3 { font-weight: 800; font-size: 30px; }
.offre-pitch { font-size: 14px; }
.offre li { font-size: 14px; }
.offre .btn { font-size: 13px; }
.offre-star { background: var(--ink); border-color: var(--ink); padding-top: 66px; transform: translateY(-10px); box-shadow: 0 18px 35px -20px #151b4380; }
.offer-label { color: var(--promo); font: 600 11px var(--display); }
.offer-sticker { position: absolute; width: 95px; height: 95px; top: -30px; right: -15px; font-size: 18px; transform: rotate(12deg); }
.offre-star li::before { color: var(--promo); }
.offre-equipe { padding: 0; }
.offre-equipe-body { padding: 34px 28px; }
.bonus { background: var(--promo); border: 2px dashed var(--ink); border-radius: 22px; padding: 34px; }
.bonus-titre { font-weight: 800; font-size: 34px; letter-spacing: -.035em; }
.bonus-sous { font-size: 14px; color: var(--ink); }
.bonus-liste { gap: 20px; }
.bonus-liste li { background: white; border-radius: 12px; padding: 22px; }
.bonus-liste strong { font-size: 15px; font-weight: 700; }
.guarantee-number { border: 0; border-radius: 24px; background: #f5f7fc; padding: 40px; text-align: center; }
.guarantee-number>span { color: var(--ink); font: 700 13px var(--display); }
.guarantee-number>small { color: var(--ink-soft); font: 500 14px var(--display); }
.field-note { background: var(--promo); border-radius: 22px; border: 0; }
.field-note>p { font-weight: 800; color: var(--ink); }
.field-note-sign { font: 500 12px var(--display); }
.faq { background: #f5f7fc; border: 0; }
.faq summary { font-size: 17px; }
.final { background: var(--swift); }.final h2 { font-weight: 800; }.final-kicker { font-size: 17px; }.final>p:last-child { font: 500 12px/1.6 var(--display); }
.footer { background: var(--ink); color: #c6ccdf; font-size: 12px; }.footer .logo { color: white; }
@media (max-width: 1100px) { .nav ul { gap: 18px; }.nav nav a { font-size: 12px; }.hero h1 { font-size: clamp(58px, 7vw, 90px); }.art-stamp { width: 130px; height: 130px; font-size: 20px; }.modules>li { padding: 22px; }.modules h3 { font-size: 18px; } }
@media (max-width: 850px) { .hero-lead { font-size: 15px; }.hero .eyebrow { font-size: 11px; }.art-index { font-size: 9px; }.art-index span:last-child { display: none; }.hero-art { padding: 15px; }.art-stamp { right: -12px; width: 115px; height: 115px; font-size: 18px; }.hero-art figcaption { flex-direction: column; gap: 0; }.course-strip { padding: 24px; }.course-strip p { font-size: 12px; }.course-strip strong { font-size: 31px; }.offre-star { transform: none; margin: 12px 0; }.offre,.offre:last-child { border: 1px solid var(--mist); }.offre-star { border-color: var(--ink); }.outcome-grid article { padding: 24px; }.outcome-grid h3 { font-size: 24px; } }
@media (max-width: 600px) { main>.hero { padding-top: 36px; padding-bottom: 38px; }.hero h1 { font-size: clamp(49px, 11.8vw, 70px); line-height: 1; }.hero-tagline { font-size: 24px; }.hero .eyebrow { font-size: 10px; gap: 10px; }.hero-actions { gap: 12px; }.hero-actions .btn { font-size: 12px; padding-inline: 17px; }.hero-actions .text-link { font-size: 12px; padding: 15px 17px; gap: 12px; }.hero-note { font-size: 11px; }.hero-art { margin: 4px 8px 0; }.art-stamp { width: 125px; height: 125px; font-size: 20px; right: -20px; bottom: 34px; }.art-index span:last-child { display: block; }.hero-art figcaption { font-size: 10px; }.course-strip { border-radius: 16px; padding: 23px 18px; margin-bottom: 26px; }.course-strip p { font-size: 11px; }.course-strip strong { font-size: 28px; }.ticker-track span { font-size: 12px; }.modules { gap: 16px; }.modules>li { padding: 20px 16px; grid-template-columns: 28px 1fr auto; gap: 0 10px; }.modules h3 { font-size: 17px; }.modules>li>p { font-size: 13px; }.outcomes { padding-top: 20px; }.outcome-grid h3 { font-size: 27px; }.offre h3 { font-size: 30px; }.bonus { padding: 25px 20px; }.bonus-titre { font-size: 28px; }.guarantee-number { padding: 30px; }.field-note { padding: 30px; }.final h2 { font-size: 36px; }.final-kicker { font-size: 14px; } }

/* Photographie de développeurs : le kitsch reste dans les accessoires du site. */
.hero h1 { font-variation-settings: 'opsz' 96, 'wdth' 100; letter-spacing: -.045em; }
h2, .logo, .prix, .course-strip strong, .guarantee-number { font-variation-settings: 'opsz' 72, 'wdth' 100; }
.hero-art { background: #f5f7fc; transform: none; padding: 18px; }
.hero-art img { aspect-ratio: 1; object-fit: cover; border-radius: 18px; }
.art-index { color: var(--ink-soft); padding-bottom: 12px; }
.hero-art figcaption { color: var(--ink-soft); padding-top: 12px; }
.art-stamp { width: 172px; height: 172px; font-size: 22px; right: -18px; bottom: 35px; padding: 24px; }
.probleme-photo img { aspect-ratio: 4/5; object-fit: cover; }
@media (max-width: 850px) { .art-stamp { width: 140px; height: 140px; font-size: 18px; right: -10px; padding: 18px; }.hero-art { padding: 14px; } }
@media (max-width: 600px) { .hero h1 { font-size: clamp(46px, 11.8vw, 70px); }.hero-art { margin-inline: 0; }.art-stamp { right: -9px; bottom: 46px; }.hero-art figcaption { flex-direction: row; gap: 10px; }.probleme-photo img { max-height: 420px; }.field-note { transform: none; } }
/* Les étiquettes débordent des cartes, jamais de l’écran. */
main { overflow-x: clip; }
@media (max-width: 600px) { .offer-sticker { right: 8px; } }

/* Avis parodiques : la lessive est sérieuse, les témoignages beaucoup moins. */
.temoignages-section { padding-top: 40px; }
.temoignages { max-width: var(--max); margin: 0 auto; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.temoignage { margin: 0; background: #f5f7fc; border: 1px solid var(--mist); border-radius: 22px; padding: 30px; display: flex; flex-direction: column; }
.temoignage blockquote { margin: 0 0 28px; flex: 1; }
.temoignage blockquote p { font-size: 19px; font-weight: 600; line-height: 1.5; letter-spacing: -.02em; margin: 0; }
.temoignage figcaption { display: grid; gap: 3px; font-size: 12px; color: var(--ink-soft); }
.temoignage figcaption strong { font-size: 16px; color: var(--ink); }
.temoignage-guillemet { color: var(--swift); font: 800 70px/.7 var(--serif); margin: 5px 0 20px; }
.temoignage-grand { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 2fr; align-items: center; gap: 55px; background: var(--ink); border-color: var(--ink); color: white; padding: 45px; }
.temoignage-grand blockquote { margin: 0; }
.temoignage-grand blockquote p { font-family: var(--serif); font-size: clamp(25px, 2.6vw, 36px); font-weight: 700; line-height: 1.25; }
.temoignage-grand figcaption { color: #c6ccdf; }
.temoignage-grand figcaption strong { color: white; }
.temoignage-grand figcaption small { font-size: 10px; max-width: 28ch; margin-top: 8px; }
.temoignage-macaron { display: inline-block; color: var(--ink); background: var(--promo); padding: 14px 20px; border-radius: 10px; font: 800 28px/1.05 var(--serif); transform: rotate(-5deg); margin-bottom: 30px; }
@media (max-width: 850px) { .temoignages { gap: 16px; }.temoignage { padding: 24px; }.temoignage blockquote p { font-size: 16px; }.temoignage-grand { grid-template-columns: 1fr 1.8fr; gap: 30px; padding: 35px; }.temoignage-grand blockquote p { font-size: 27px; } }
@media (max-width: 600px) { .temoignages-section { padding-top: 15px; }.temoignages { grid-template-columns: 1fr; gap: 18px; }.temoignage-grand { grid-template-columns: 1fr; gap: 28px; padding: 28px; }.temoignage-intro { display: flex; align-items: center; gap: 22px; }.temoignage-macaron { flex: 0 0 auto; font-size: 22px; padding: 12px 15px; margin: 0; }.temoignage-grand blockquote p { font-size: 26px; }.temoignage blockquote p { font-size: 18px; }.temoignage-grand blockquote p { font-size: 26px; } }
.temoignage-author { display: grid; gap: 3px; }
.temoignage-macaron { justify-self: start; }
.offre-equipe .prix { font-size: clamp(32px, 3.3vw, 48px); }

/* Les deux formules individuelles sont épuisées. */
.offre-epuisee .prix { opacity: .6; margin-bottom: 16px; }
.offre-stock { align-self: flex-start; margin: 0 0 26px; padding: 6px 13px; border-radius: 999px; background: #ffe9e1; color: #9b321e; font-size: 13px; font-weight: 700; }
.offre-star .offre-stock { background: var(--promo); color: var(--ink); }
.offre .btn:disabled, .offre .btn:disabled:hover { background: #eef0f5; border-color: var(--mist); color: #666e87; cursor: not-allowed; transform: none; }
.offre-star .btn:disabled, .offre-star .btn:disabled:hover { background: #343b61; border-color: #454e76; color: #c5c9dd; }

/* Un portrait distinct pour chacun des personnages fictifs. */
.temoignage-avatar { flex: 0 0 auto; width: 56px; height: 56px; border-radius: 50%; object-fit: cover; border: 2px solid white; background: #e1e6f2; }
.temoignage figcaption:not(.temoignage-intro), .temoignage-profile { display: flex; align-items: center; gap: 14px; }
.temoignage-grand .temoignage-avatar { width: 72px; height: 72px; border-color: #434b75; }
.temoignage-author { min-width: 0; }
@media (max-width: 600px) { .temoignage-intro { display: grid; gap: 24px; }.temoignage-grand .temoignage-avatar { width: 64px; height: 64px; } }

/* Volet de révélation : les deux versions gardent exactement leur position. */
.pane-apres { left: 0; width: 100%; }
.pane-avant { width: 100%; clip-path: inset(0 calc(100% - var(--pos)) 0 0); }
.pane-label-apres { left: auto; right: 0; }
.clean-code-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); height: 100%; }
.clean-code-grid pre { min-width: 0; overflow: hidden; }

/* Des avis parodiques glissés au fil du parcours, en formats plus compacts. */
.avis-inline { margin: 28px 0 0; padding: 20px 22px; border-left: 4px solid var(--promo); border-radius: 0 14px 14px 0; background: #f5f7fc; }
.avis-inline blockquote { margin: 0 0 15px; }
.avis-inline blockquote p { margin: 0; font-size: 15px; line-height: 1.5; font-weight: 600; color: var(--ink); letter-spacing: -.01em; }
.avis-inline figcaption { display: flex; align-items: center; gap: 10px; }
.avis-inline figcaption img { flex: 0 0 auto; width: 40px; height: 40px; border-radius: 50%; object-fit: cover; }
.avis-inline figcaption>span { display: grid; gap: 2px; }
.avis-inline figcaption strong { font-size: 12px; line-height: 1.3; }
.avis-inline figcaption small { font-size: 9px; color: var(--ink-soft); line-height: 1.4; }
.avis-hero { background: transparent; padding: 0 0 0 16px; border-radius: 0; max-width: 47ch; margin-top: 25px; }
.avis-hero blockquote p { font-size: 13px; }
.avis-hero figcaption img { width: 32px; height: 32px; }
.avis-programme { max-width: var(--max); margin: 38px auto 0; display: flex; align-items: center; justify-content: space-between; gap: 35px; border: 0; border-radius: 16px; background: #fff5d2; padding: 25px 30px; }
.avis-programme blockquote { margin: 0; max-width: 75ch; }
.avis-programme figcaption { flex: 0 0 auto; }
.avis-tarif { max-width: var(--max); margin: 35px auto 0; display: flex; gap: 35px; justify-content: space-between; align-items: center; background: white; border-left-color: var(--swift); }
.avis-tarif blockquote { margin: 0; max-width: 72ch; }
.avis-tarif figcaption { flex: 0 0 auto; }
@media (max-width: 850px) { .avis-programme,.avis-tarif { display: block; }.avis-programme blockquote,.avis-tarif blockquote { margin-bottom: 15px; } }
@media (max-width: 600px) { .avis-inline { padding: 18px; }.avis-hero { padding: 0 0 0 14px; }.avis-hero blockquote p { font-size: 13px; }.avis-inline blockquote p { font-size: 14px; }.avis-programme { padding: 22px; } }

/* Liskov : une règle métier expliquée sans perdre le ton de la formation. */
.liskov-explication p { font-size: 15px; color: var(--ink-soft); }
.liskov-explication strong { color: var(--ink); }
.liskov-explication .liskov-punchline { font-weight: 700; color: var(--ink); margin-bottom: 0; }

/* Un chapitre visuel à part entière, impossible à confondre avec une note. */
.liskov-section { background: var(--promo); padding-block: 75px; }
.liskov-layout { max-width: var(--max); margin: 0 auto; display: grid; grid-template-columns: 1fr 1.2fr; align-items: center; gap: 65px; }
.liskov-section .eyebrow { color: var(--ink); margin-bottom: 20px; }
.liskov-section h2 { font-size: clamp(30px, 3vw, 45px); line-height: 1.12; }
.liskov-section h2>span { display: block; font-size: clamp(75px, 8vw, 115px); line-height: 1; letter-spacing: -.06em; margin-bottom: 20px; }
.liskov-word { width: fit-content; transform-origin: left center; transition: transform .2s ease, color .2s ease, text-shadow .2s ease; }
@media (hover: hover) and (pointer: fine) {
  .liskov-word:hover { color: var(--swift); transform: translateY(-4px) rotate(-3deg) scale(1.035); text-shadow: 3px 3px 0 white, 6px 6px 0 var(--ink); }
}
@media (prefers-reduced-motion: reduce) {
  .liskov-word:hover { transform: none; }
}
.liskov-section .liskov-explication { background: white; border-radius: 22px; padding: 32px; }
.liskov-section .liskov-explication p { font-size: 16px; }
@media (max-width: 850px) { .liskov-layout { grid-template-columns: 1fr; gap: 32px; }.liskov-section { padding-block: 60px; } }
@media (max-width: 600px) { .liskov-section h2 { font-size: 30px; }.liskov-section h2>span { font-size: 76px; }.liskov-section .liskov-explication { padding: 24px; }.liskov-section .liskov-explication p { font-size: 14px; } }
