/* SAD V26 bundle performance — generated from V21–V25 CSS layers. */

/* === assets/css/reflex-v21.css === */
/* =========================================================
   SAD V21 REFLEX — responsive/device adaptation layer
   Objectif : une seule base HTML, affichage optimisé desktop/tablette/mobile.
   ========================================================= */
:root{
  --rt-wrap-desktop:1180px;
  --rt-space-x:clamp(14px,3vw,32px);
  --rt-touch:44px;
  --rt-sticky-offset:0px;
}
html{font-size:clamp(15.5px,.35vw + 14px,18px);text-size-adjust:100%;-webkit-text-size-adjust:100%}
body{overflow-x:hidden;min-width:320px}
a,button,.btn{touch-action:manipulation}
img,svg,video,canvas{max-width:100%;height:auto}
.wrap{width:min(var(--rt-wrap-desktop),calc(100% - (var(--rt-space-x) * 2))) !important;margin-inline:auto}
.card,.human,.notice,.warning,.callout,.final-donation-card,.continuity-card,.tension-box,.support-mode,.diagram-card,.piece-card,.thumb-card,.photo-card{min-width:0}
.grid-2,.grid-3,.grid-4,.kpi,.flow,.path-grid,.signal-grid,.diagram-grid-2x2,.photo-grid,.gift-grid,.support-modes,.amount-pills,.micro-don-row,.final-checklist,.grid-2-illus{min-width:0}
.grid-2>*,.grid-3>*,.grid-4>*,.kpi>*,.flow>*,.path-grid>*,.signal-grid>*,.diagram-grid-2x2>*,.photo-grid>*,.gift-grid>*,.support-modes>*,.amount-pills>*,.micro-don-row>*,.final-checklist>*,.grid-2-illus>*{min-width:0}
p,li,h1,h2,h3,h4,.lead,.notice,.warning,.muted,.quote,.row,.doccap,.sharebox,a,strong,span{overflow-wrap:anywhere;word-break:normal}
.btn{min-height:var(--rt-touch);display:inline-flex;align-items:center;justify-content:center;text-align:center;line-height:1.18}
.cta-row{align-items:center}
header{top:0}
header nav{width:100%}
.brand{min-width:0}
.brand img{height:clamp(46px,4.5vw,70px) !important;width:auto;max-width:min(520px,54vw) !important}
.nav-toggle{display:none;appearance:none;border:1px solid var(--line);background:rgba(255,253,250,.92);border-radius:999px;min-width:44px;min-height:44px;padding:0 13px;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 8px 20px rgba(36,29,24,.07)}
.nav-toggle-lines,.nav-toggle-lines::before,.nav-toggle-lines::after{display:block;width:20px;height:2px;background:var(--dark);border-radius:99px;transition:transform .18s ease,opacity .18s ease}
.nav-toggle-lines{position:relative}.nav-toggle-lines::before,.nav-toggle-lines::after{content:"";position:absolute;left:0}.nav-toggle-lines::before{top:-7px}.nav-toggle-lines::after{top:7px}
body.nav-open .nav-toggle-lines{background:transparent}body.nav-open .nav-toggle-lines::before{transform:translateY(7px) rotate(45deg)}body.nav-open .nav-toggle-lines::after{transform:translateY(-7px) rotate(-45deg)}
.hero-visual img,.side-visual img,.photo-card img,.diagram-card img,.piece-thumb img,.thumb img{width:100%;height:auto}
.hero-visual img{max-height:min(56vh,520px);object-fit:cover;object-position:center}
.lightbox{overscroll-behavior:contain}.lightbox img{object-fit:contain}.lightbox .caption{padding:0 10px}
@media (min-width:1181px){
  html[data-device="desktop"] .hero-grid{grid-template-columns:minmax(0,1.05fr) minmax(360px,.9fr)}
  html[data-device="desktop"] .grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
  html[data-device="desktop"] .grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
  html[data-device="desktop"] .diagram-grid-2x2{grid-template-columns:repeat(2,minmax(0,1fr))}
  html[data-device="desktop"] .navlinks{display:flex !important;max-height:none !important;opacity:1 !important;visibility:visible !important}
}
@media (min-width:768px) and (max-width:1180px){
  :root{--rt-space-x:24px}
  header{position:sticky}
  header .wrap nav{gap:14px}
  .brand img{height:56px !important;max-width:min(430px,48vw) !important}
  .navlinks{gap:10px;justify-content:flex-end}.navlinks a{font-size:.9rem;padding-block:7px}
  .hero{padding:58px 0 48px}.hero-grid{grid-template-columns:1fr !important;gap:24px}.hero .card{max-width:760px}
  .grid-4{grid-template-columns:repeat(2,minmax(0,1fr)) !important}.grid-3{grid-template-columns:repeat(2,minmax(0,1fr)) !important}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
  .kpi,.flow,.path-grid,.signal-grid,.gift-grid,.support-modes,.amount-pills,.micro-don-row,.final-checklist{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
  .diagram-grid-2x2,.photo-grid,.grid-2-illus{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
  .cta-strip,.conversion-nudge{grid-template-columns:1fr !important}
  .row{grid-template-columns:minmax(120px,170px) minmax(0,1fr)}
  section{padding:54px 0}.card,.human{padding:22px}.photo-card img{height:220px;object-fit:cover}
}
@media (max-width:820px){
  :root{--rt-space-x:14px}
  html{scroll-padding-top:12px}
  body{line-height:1.68}
  .topbar{font-size:.82rem;line-height:1.35}.topbar .wrap{display:block}
  header{position:sticky;padding:10px 0;background:rgba(237,229,219,.985);backdrop-filter:blur(12px)}
  header .wrap nav{display:grid !important;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;justify-content:normal !important}
  .brand img{height:44px !important;max-width:min(265px,70vw) !important;border-radius:7px}
  .nav-toggle{display:inline-flex;grid-column:2;grid-row:1;justify-self:end}
  .navlinks{grid-column:1 / -1;display:grid !important;grid-template-columns:1fr;gap:8px;width:100%;max-height:0;opacity:0;visibility:hidden;overflow:hidden;padding:0;transition:max-height .22s ease,opacity .18s ease,padding .18s ease;border:0}
  body.nav-open .navlinks{max-height:70vh;opacity:1;visibility:visible;padding:10px 0 2px;border-top:1px solid var(--line)}
  .navlinks a{display:flex;align-items:center;justify-content:space-between;min-height:44px;padding:10px 12px;border:1px solid var(--line);border-radius:14px;background:rgba(255,253,250,.88);font-size:.95rem;color:var(--ink)}
  .navlinks a[href*="contribuer"]{justify-content:center;border-radius:999px;padding:12px 14px;color:#fff}
  .hero{padding:38px 0 32px}.hero-grid{grid-template-columns:1fr !important;gap:20px}.hero .card{padding:18px}.hero-logo img,.secondary-hero-mark img{max-width:110px}
  h1{font-size:clamp(2.05rem,10.5vw,3rem) !important;letter-spacing:-.04em;line-height:1.04}h2{font-size:clamp(1.55rem,7vw,2.1rem) !important;line-height:1.09}h3{font-size:1.12rem}.lead{font-size:1.02rem;line-height:1.66}
  section{padding:42px 0}.card,.human,.notice,.warning,.callout,.final-donation-card,.continuity-card,.tension-box,.support-mode{padding:18px;border-radius:20px}
  .grid-2,.grid-3,.grid-4,.kpi,.flow,.path-grid,.signal-grid,.diagram-grid-2x2,.photo-grid,.gift-grid,.support-modes,.amount-pills,.micro-don-row,.final-checklist,.grid-2-illus,.conversion-nudge,.cta-strip{grid-template-columns:1fr !important;gap:14px !important}
  .row{grid-template-columns:1fr !important;gap:4px}.row strong{font-size:.88rem}.tablelike{gap:2px}
  .cta-row{display:grid;grid-template-columns:1fr;gap:10px}.btn{width:100%;padding:13px 15px}.btn.ghost,.btn.secondary{background:rgba(255,253,250,.58)}
  .badge,.pill,.tag{font-size:.78rem;line-height:1.25}.amount{font-size:2rem}.meter{height:12px}
  .sticky-support{position:sticky !important;bottom:10px;z-index:40;margin-inline:auto;border-radius:20px;box-shadow:0 18px 54px rgba(36,29,24,.18);align-items:stretch}.sticky-support .cta-row{display:grid;width:100%}.sticky-support span{text-align:center;padding-left:0}
  .hero-visual,.side-visual,.illus-wide,.diagram,.photo-card,.piece-card{border-radius:20px;overflow:hidden}.hero-visual img{max-height:340px}.photo-card img{height:auto;max-height:260px;object-fit:cover}.diagram-card img{border-radius:18px}
  .diagram-card{padding:14px;border-radius:20px}.diagram-card p{font-size:.9rem}.pieces-frame{padding:10px;border-radius:20px}.pieces-frame .thumbgrid{grid-template-columns:1fr !important}.pieces-frame .thumb img,.piece-thumb img{height:auto !important;max-height:70vh;object-fit:contain;background:#fff}
  .doccap{display:grid;grid-template-columns:1fr;gap:8px}.lightbox{padding:12px}.lightbox img{max-width:96vw;max-height:82vh;border-radius:14px}.lightbox .close{top:10px;right:10px}.lightbox .caption{font-size:.82rem;bottom:10px}
  footer{padding:28px 0}.footer-brand{display:grid;gap:10px}.footer-brand img{width:min(220px,80vw)}.footer-links{display:grid;grid-template-columns:1fr;gap:8px}
}
@media (max-width:420px){
  :root{--rt-space-x:12px}.brand img{height:40px !important;max-width:235px !important}.topbar{font-size:.78rem}.card,.human,.notice,.warning,.callout{padding:16px}section{padding:36px 0}.hero{padding-top:30px}.btn{font-size:.95rem}.amount{font-size:1.76rem}.hero-visual img{max-height:300px}.navlinks a{font-size:.92rem}
}
@media (orientation:landscape) and (max-height:520px){
  header{position:static}.hero{padding:28px 0}.hero-visual img{max-height:72vh}.navlinks{max-height:none}.lightbox img{max-height:78vh}
}
@media (hover:none){
  .btn:hover,.diagram-card:hover,.navlinks a:hover{transform:none !important}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto !important;animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important}
}
@media print{
  header,.topbar,.sticky-support,.cta-row,.nav-toggle,.lightbox,footer{display:none !important}body{background:#fff;color:#111}.wrap{width:100% !important}.card,.notice,.warning{box-shadow:none;border:1px solid #ddd;break-inside:avoid}a{color:#111;text-decoration:none}section{padding:18px 0}
}


/* === assets/css/reflex-v22-mobile.css === */
/* =========================================================
   SAD V22 — Mobile finishing and readability pass
   Cible : iPhone/Android 360–430px, petits écrans, tablette, desktop resize.
   Cette couche vient après V21 et ne supprime aucun contenu.
   ========================================================= */
:root{
  --sad-readable-max: 68ch;
  --sad-mobile-bottom-safe: calc(104px + env(safe-area-inset-bottom));
}
html{scroll-behavior:smooth}
body{font-kerning:normal;text-rendering:optimizeLegibility}
p,li,.lead,.muted,.notice,.warning,.callout{max-width:var(--sad-readable-max)}
.card p,.human p,.notice p,.warning p,.callout p,.photo-card p,.support-mode p,.final-donation-card p,.continuity-card p{max-width:none}
.navlinks a,.btn{-webkit-tap-highlight-color:rgba(129,83,51,.14)}
.btn:focus-visible,.navlinks a:focus-visible,.nav-toggle:focus-visible{outline:3px solid rgba(129,83,51,.38);outline-offset:3px}
@media (max-width:1024px){
  .hero-grid{align-items:start}
  .hero .card{max-width:760px;margin-inline:auto}
  .path-grid,.signal-grid,.gift-grid,.support-modes{align-items:stretch}
  .cta-strip,.conversion-nudge{align-items:start}
}
@media (min-width:681px) and (max-width:1024px){
  :root{--rt-space-x:clamp(20px,4vw,34px)}
  header .wrap nav{gap:12px}
  .brand img{height:50px !important;max-width:min(390px,46vw) !important}
  .navlinks a{font-size:.88rem;padding-inline:8px}
  .hero{padding:52px 0 44px}
  .hero-visual img{max-height:360px}
  .micro-don-row{grid-template-columns:repeat(4,minmax(0,1fr)) !important}
  .sticky-support{width:min(900px,calc(100% - 32px));border-radius:26px}
}
@media (max-width:820px){
  :root{--rt-space-x:clamp(12px,4vw,16px)}
  html{font-size:16px;scroll-padding-top:88px}
  body{line-height:1.58;padding-bottom:var(--sad-mobile-bottom-safe)}
  p,li,.lead,.muted,.notice,.warning,.row,.doccap,.sharebox{overflow-wrap:break-word;word-break:normal;hyphens:auto}
  h1,h2,h3,h4,.brand,.pill,.tag,.amount,.btn,.navlinks a{overflow-wrap:normal;hyphens:none}
  .topbar{padding:6px 0;font-size:.76rem;line-height:1.28;text-align:center}
  .topbar .wrap{width:min(100% - 24px,680px) !important}
  header{position:sticky !important;top:0;z-index:120;padding:8px 0;box-shadow:0 10px 28px rgba(36,29,24,.08)}
  header .wrap nav{gap:8px}
  .brand img{height:40px !important;max-width:min(238px,68vw) !important;border-radius:8px}
  .nav-toggle{min-width:42px;min-height:42px;padding:0 12px;background:#fffdf9}
  body.nav-open{overflow:hidden}
  body.nav-open .navlinks{max-height:calc(100vh - 96px);overflow:auto;overscroll-behavior:contain}
  .navlinks a{min-height:46px;padding:11px 12px;border-radius:16px;font-size:.94rem;box-shadow:0 6px 18px rgba(31,42,48,.04)}
  .navlinks a[href*="contribuer"]{font-size:.96rem}
  .hero{padding:30px 0 32px}
  .hero-grid{gap:16px}
  .hero .badge{font-size:.78rem;line-height:1.25;margin-bottom:12px;padding:6px 10px}
  .hero-logo{margin-bottom:12px}.hero-logo img{width:86px !important;max-width:32% !important;border-radius:12px}
  h1{font-size:clamp(1.95rem,8.8vw,2.7rem) !important;line-height:1.075 !important;letter-spacing:-.045em;margin-bottom:14px}
  h2{font-size:clamp(1.46rem,6.4vw,2rem) !important;line-height:1.12 !important;letter-spacing:-.035em;margin-bottom:14px}
  h3{font-size:1.08rem;line-height:1.26}
  .lead{font-size:1rem !important;line-height:1.58;margin-bottom:14px}
  section{padding:38px 0}.soft{background:rgba(255,255,255,.52)}
  .card,.human,.notice,.warning,.callout,.final-donation-card,.continuity-card,.tension-box,.support-mode,.path-step,.signal,.gift-card{padding:16px;border-radius:20px}
  .notice,.warning{line-height:1.5}
  .brand-stamp{display:flex;width:100%;border-radius:17px;padding:7px 10px;gap:8px;margin-bottom:12px}
  .brand-stamp img{height:22px;max-width:112px}.brand-stamp span{font-size:.76rem;line-height:1.15}
  .hook-line{font-size:.95rem;line-height:1.48;padding:12px;border-radius:18px}
  .hero-proof .lead{font-size:.96rem !important;line-height:1.55}
  .amount{font-size:1.82rem !important;line-height:1.05}.meter{height:11px;margin:10px 0}
  .micro-don-row{grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:8px !important}.micro-don-row div{padding:10px 8px;border-radius:15px}.micro-don-row strong{font-size:.98rem}.micro-don-row span{font-size:.78rem}
  .grid-2,.grid-3,.grid-4,.kpi,.flow,.path-grid,.signal-grid,.diagram-grid-2x2,.photo-grid,.gift-grid,.support-modes,.amount-pills,.final-checklist,.grid-2-illus{gap:12px !important}
  .path-step .num,.num{width:31px;height:31px;margin-bottom:8px}
  .cta-row{gap:8px;margin-top:16px}.btn{min-height:44px;padding:12px 13px;border-radius:16px;font-size:.96rem;line-height:1.18}.btn.primary{border-radius:999px}
  .hero-visual{padding:6px;border-radius:19px}.hero-visual img{max-height:225px;object-fit:cover;object-position:center}.illus-wide{border-radius:20px}.side-visual,.photo-card,.diagram-card,.piece-card,.thumb-card{border-radius:20px}
  .photo-card img{max-height:210px;object-fit:cover}.diagram-card{padding:12px}.diagram-card img{border-radius:15px}
  .row{padding:10px 0}.row strong{font-size:.84rem;color:#6b5240}.tablelike{gap:0}
  .cta-strip,.conversion-nudge{padding:16px;border-radius:20px;gap:12px}.cta-strip .cta-row,.conversion-nudge .cta-row{width:100%}
  .callout{padding:20px}.callout .logo-lockup img{width:160px;max-width:70%}.callout .illus-wide{margin:14px 0 16px !important}.callout .muted{line-height:1.56}
  .sharebox{min-height:150px;font-size:.94rem;line-height:1.5;border-radius:16px}
  .pieces-frame{padding:8px}.pieces-frame .thumb img,.piece-thumb img{max-height:64vh}
  .lightbox{padding:10px}.lightbox img{max-width:96vw;max-height:78vh}.lightbox .caption{font-size:.78rem;line-height:1.25}.lightbox .close{min-width:44px;min-height:44px}
  .sticky-support{position:fixed !important;left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));width:auto !important;margin:0 !important;border-radius:22px;padding:8px;z-index:180;display:grid !important;grid-template-columns:1fr;gap:7px;box-shadow:0 20px 60px rgba(36,29,24,.22);background:rgba(255,253,250,.97)}
  .sticky-support span{font-size:.78rem;line-height:1.2;padding:0;text-align:center}.sticky-support .cta-row{display:grid !important;grid-template-columns:1fr 1fr;gap:8px !important;width:100%;margin:0}.sticky-support .btn{width:100%;min-height:40px;padding:9px 6px;font-size:.82rem;border-radius:14px}.sticky-support .btn.primary{border-radius:999px}.sticky-support .btn.secondary{background:#fff7ed;color:#5b3b10}
  footer{padding-bottom:calc(var(--sad-mobile-bottom-safe) + 22px)}.footer-brand{gap:8px}.footer-brand img{width:min(190px,70vw)}
}
@media (max-width:430px){
  body{line-height:1.56}
  .brand img{height:38px !important;max-width:min(224px,66vw) !important}
  h1{font-size:clamp(1.84rem,8.5vw,2.36rem) !important}.hero{padding-top:26px}.hero-logo img{width:76px !important}.brand-stamp span{font-size:.72rem}.hook-line{font-size:.92rem}
  .photo-card img,.hero-visual img{max-height:205px}.amount-pills{grid-template-columns:repeat(2,minmax(0,1fr)) !important}.amount-pills span{text-align:center}
}
@media (max-width:370px){
  :root{--sad-mobile-bottom-safe:calc(76px + env(safe-area-inset-bottom))}
  .topbar{font-size:.72rem}.brand img{max-width:204px !important}.nav-toggle{min-width:40px;min-height:40px}
  .sticky-support span{display:none}.sticky-support{grid-template-columns:1fr}.sticky-support .btn{font-size:.78rem;min-height:38px}.btn{font-size:.93rem}
  .micro-don-row{grid-template-columns:1fr !important}
}
@media (orientation:landscape) and (max-height:520px){
  body{padding-bottom:0}.sticky-support{position:static !important;margin:12px auto !important;width:min(100% - 24px,680px) !important}.topbar{display:none}header{position:static !important}.hero{padding:24px 0}.hero-visual img{max-height:65vh}
}


/* === assets/css/reflex-v23-performance.css === */
/* =========================================================
   SAD V23 — Performance mobile + UX finishing
   Objectif : réduire le poids réellement chargé sur mobile,
   stabiliser le rendu, améliorer lisibilité et confort tactile.
   Couche additive après V21/V22.
   ========================================================= */

html,body{overflow-x:clip}
img,svg,video,picture{max-width:100%}
picture{display:block}
img{height:auto}

/* Réduction du coût de rendu hors viewport, sans masquer le contenu */
main > section,
.section,
.block,
.legal-section,
.photo-card,
.card,
.human,
.notice,
.callout{
  content-visibility:auto;
  contain-intrinsic-size:1px 520px;
}

/* Le premier écran doit rester immédiatement rendu */
.hero,
.hero *,
header,
.topbar,
.sticky-support{
  content-visibility:visible;
  contain-intrinsic-size:auto;
}

.perf-picture img,
.hero-visual picture img,
.photo-card picture img,
.visual-card picture img{
  display:block;
  width:100%;
}

/* Cibles tactiles : pas de micro-liens inconfortables sur mobile */
a,.btn,button,.nav-toggle{
  touch-action:manipulation;
}
.btn,.nav-toggle,.sticky-support a{
  min-height:44px;
}

/* Stabilisation des grands visuels éditoriaux */
img[src*="axe1-harmonise"],
img[src*="axe2-harmonise"],
img[src*="axe3-harmonise"],
img[src*="campagne-harmonise"]{
  object-fit:contain;
  background:#fffaf2;
}

/* Mobile strict : densité, lisibilité, respiration */
@media (max-width:680px){
  :root{
    --sad-mobile-bottom-safe:calc(92px + env(safe-area-inset-bottom));
  }

  body{
    line-height:1.62;
    -webkit-text-size-adjust:100%;
  }

  .topbar .wrap{
    font-size:.78rem;
    line-height:1.35;
  }

  header .wrap{
    min-height:64px;
  }

  .brand img{
    max-width:min(72vw,286px) !important;
    height:auto !important;
  }

  .hero{
    padding-top:28px;
    padding-bottom:30px;
  }

  .hero-grid{
    gap:22px;
  }

  h1{
    font-size:clamp(2rem,10vw,2.72rem) !important;
    line-height:.98 !important;
    letter-spacing:-.045em;
  }

  h2{
    font-size:clamp(1.45rem,7.6vw,2.05rem) !important;
    line-height:1.08 !important;
    letter-spacing:-.03em;
  }

  h3{
    font-size:clamp(1.08rem,5vw,1.34rem) !important;
    line-height:1.18 !important;
  }

  .lead{
    font-size:clamp(1rem,4.45vw,1.13rem) !important;
    line-height:1.54 !important;
  }

  p,li{
    font-size:1rem;
  }

  .card,
  .human,
  .notice,
  .warning,
  .callout,
  .sharebox,
  .final-donation-card,
  .continuity-card{
    padding:clamp(16px,5vw,22px) !important;
    border-radius:22px !important;
  }

  .hero .card{
    padding:18px !important;
  }

  .hero-visual img{
    max-height:315px;
    object-fit:cover;
    border-radius:22px;
  }

  .photo-card img,
  .visual-card img{
    max-height:360px;
    object-fit:cover;
  }

  img[src*="axe1-harmonise"],
  img[src*="axe2-harmonise"],
  img[src*="axe3-harmonise"],
  img[src*="campagne-harmonise"]{
    max-height:none;
    object-fit:contain;
  }

  .btn{
    width:100%;
    justify-content:center;
    padding:13px 16px;
    line-height:1.2;
  }

  .cta-row,
  .hero-actions,
  .support-actions,
  .donation-actions{
    gap:10px !important;
  }

  .micro-don-row,
  .gift-grid,
  .signal-grid,
  .support-modes,
  .path-grid{
    gap:12px !important;
  }

  .sticky-support{
    width:calc(100% - 20px) !important;
    left:10px !important;
    right:10px !important;
    bottom:calc(10px + env(safe-area-inset-bottom)) !important;
    border-radius:22px !important;
    padding:10px !important;
  }

  .sticky-support .btn{
    min-height:42px;
    padding:10px 12px;
    font-size:.92rem;
  }

  .legal-card,
  .legal-section,
  .longform,
  article{
    overflow-wrap:break-word;
  }
}

/* Très petits téléphones */
@media (max-width:380px){
  .brand img{max-width:68vw !important}
  h1{font-size:clamp(1.82rem,10.5vw,2.32rem) !important}
  .lead{font-size:1rem !important}
  .topbar .wrap{font-size:.74rem}
  .card,.human,.notice,.warning,.callout{padding:15px !important}
}

/* Tablettes : conserver une version lisible sans basculer trop vite en desktop dense */
@media (min-width:681px) and (max-width:1024px){
  .hero-visual img{max-height:390px}
  h1{font-size:clamp(3rem,6vw,4.25rem)}
  .lead{font-size:clamp(1.08rem,2vw,1.22rem)}
}

/* Data saver : moins d'effets et pas d'animations coûteuses */
.rt-data-saver *,
@media (prefers-reduced-motion:reduce){
  *{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
    scroll-behavior:auto !important;
  }
}


/* === assets/css/reflex-v24-precision-mobile.css === */
/* =========================================================
   SAD V24 — Precision mobile
   Objectif : empêcher les variantes desktop sur mobile strict,
   réduire les doublons hero, affiner sizes/CTA/lecture.
   Couche additive après V21/V22/V23.
   ========================================================= */

html{scroll-padding-top:76px}
body{overflow-x:clip}

/* Lisibilité mobile : densité maîtrisée, pas de blocs étouffés */
@media (max-width:680px){
  .wrap{width:min(100% - 28px, var(--wrap, 1180px)) !important}
  section{padding-top:clamp(38px, 10vw, 58px);padding-bottom:clamp(38px, 10vw, 58px)}
  .hero{padding-top:24px;padding-bottom:34px}
  .hero-logo img{max-width:min(58vw, 210px) !important;margin-inline:auto}
  .hero-proof{gap:12px}
  .brand-stamp{align-items:center;gap:10px}
  .brand-stamp img{max-width:min(58vw, 250px) !important}
  .brand-stamp span{font-size:.82rem;line-height:1.25}
  .hook-line{font-size:.96rem;line-height:1.48}
  .badge,.pill,.section-kicker{letter-spacing:.08em}
  .amount{font-size:clamp(2.1rem, 13vw, 3rem) !important}

  .diagram-grid-2x2,.photo-grid,.grid-2-illus,.grid-2,.cards,.proof-grid{gap:16px !important}
  .diagram-card,.photo-card{padding:14px !important;border-radius:22px !important}
  .diagram-card h3,.photo-card h3{margin-top:12px !important}
  .diagram-card p,.photo-card p{font-size:.96rem;line-height:1.5}

  /* Grands visuels : largeur utile, pas de crop, pas de chargement desktop forcé par layout */
  .perf-picture,
  .diagram-card picture,
  .photo-card picture,
  .illus-wide picture,
  .side-visual picture{width:100%;max-width:100%}

  .diagram-card img[src*="axe1-harmonise"],
  .diagram-card img[src*="axe2-harmonise"],
  .diagram-card img[src*="axe3-harmonise"],
  .diagram-card img[src*="campagne-harmonise"]{
    width:100%;height:auto;max-height:none;object-fit:contain;border-radius:18px;
  }

  .hero-visual img{max-height:300px;object-fit:cover}
  .illus-wide img,.side-visual img{max-height:340px;object-fit:cover;border-radius:22px}

  /* CTA doigt : zone franche sans occuper tout l'écran */
  .cta-row{display:grid !important;grid-template-columns:1fr !important}
  .btn{min-height:46px;border-radius:999px;font-size:.98rem}
  .sticky-support{box-shadow:0 16px 44px rgba(38,31,25,.22)}

  /* Réduction des détails secondaires sur très petit écran */
  .muted{line-height:1.55}
  .micro-don-row div{min-height:74px}
}

@media (max-width:390px){
  .wrap{width:min(100% - 24px, var(--wrap, 1180px)) !important}
  h1{font-size:clamp(1.78rem, 10vw, 2.22rem) !important}
  h2{font-size:clamp(1.34rem, 7.3vw, 1.86rem) !important}
  .lead{font-size:.99rem !important}
  .hero-logo img{max-width:min(54vw, 188px) !important}
  .brand-stamp img{max-width:min(54vw, 220px) !important}
  .hero-visual img{max-height:270px}
}

/* Tablette : éviter de basculer dans une densité desktop trop tôt */
@media (min-width:681px) and (max-width:980px){
  .wrap{width:min(100% - 44px, var(--wrap, 1180px))}
  .diagram-grid-2x2{grid-template-columns:1fr 1fr;gap:18px}
  .photo-grid{grid-template-columns:1fr;gap:18px}
}


/* === assets/css/reflex-v25-seo-ux.css === */
/* V25 SEO / UX refinements: accessibility, reading rhythm, FAQ and mobile comfort */
:root{scroll-behavior:smooth}
:focus-visible{outline:3px solid rgba(126,90,54,.75);outline-offset:3px}
.seo-faq .faq-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:20px}
.seo-faq .card h3{font-size:1.08rem;margin-bottom:8px}
.seo-faq .card p{margin:0;color:var(--muted);line-height:1.75}
@media (max-width:680px){
  .seo-faq .faq-grid{grid-template-columns:1fr;gap:12px}
  .seo-faq .card{padding:18px}
  .seo-faq .card h3{font-size:1rem;line-height:1.3}
  .seo-faq .card p{font-size:.96rem;line-height:1.68}
  a.btn,button.btn,.btn{min-height:44px}
}
@media (prefers-reduced-motion:reduce){
  :root{scroll-behavior:auto}
  *{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.001ms!important}
}
@supports (content-visibility:auto){
  main > section:not(.hero){content-visibility:auto;contain-intrinsic-size:900px}
}
