/* ═══════════════════════════════════════════════════════════
   STARTING BLOCK — Feuille de style HYBRIDE
   Sombre : page d'entrée + héro d'accueil (immersif)
   Clair  : pages de contenu (lisibilité maximale)
   Rouge #C8102E : fil conducteur partout

   Contrastes WCAG 2.1 AA vérifiés :
   #15151c sur #ffffff → 16.1:1 ✅ AAA
   #C8102E sur #ffffff →  6.2:1 ✅ AA
   #5c5c66 sur #ffffff →  6.4:1 ✅ AA
   #f2efe9 sur #0d0d13 → 15.8:1 ✅ AAA (sections sombres)
═══════════════════════════════════════════════════════════ */

:root{
  --red:#C8102E; --red-d:#9E0C24; --red-a:#F85060; --red-soft:#FDF2F4;
  /* Thème clair (contenu) */
  --ink:#15151c; --body:#3d3d47; --muted:#5c5c66;
  --bg:#ffffff; --bg2:#faf9f7; --bg3:#f2f0ec;
  --line:#e4e2de; --line2:#d8d5d0;
  /* Thème sombre (entrée/héro/CTA) */
  --dk:#0d0d13; --dk2:#141419; --dk3:#1c1c22;
  --dk-txt:#f2efe9; --dk-body:#c5c2bc; --dk-muted:#9494a4;
  --dk-line:rgba(255,255,255,.08);
  --ease:cubic-bezier(.16,1,.3,1);
  --nav-h:76px;
}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:100px;-webkit-text-size-adjust:100%;overflow-x:hidden}
body{background:var(--bg);color:var(--body);font-family:'Raleway',sans-serif;font-weight:300;font-size:16px;line-height:1.65;overflow-x:hidden;cursor:none}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;background:none;border:none;color:inherit;cursor:pointer}
ul[role=list]{list-style:none}

/* ─── ACCESSIBILITÉ ─── */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition-duration:.01ms!important}
  html{scroll-behavior:auto}body{cursor:auto}
  #cur,#ring,#trail{display:none!important}
  /* Le contenu doit rester visible meme sans animation d'apparition */
  .rv,.rv.in{opacity:1!important;transform:none!important}
}
:focus-visible{outline:3px solid var(--red);outline-offset:3px;border-radius:2px}
:focus:not(:focus-visible){outline:none}
.skip{position:fixed;top:-90px;left:1.5rem;z-index:10000;background:var(--red);color:#fff;padding:.9rem 1.8rem;font-family:'Barlow Condensed',sans-serif;font-size:.9rem;letter-spacing:.1em;text-transform:uppercase;transition:top .25s}
.skip:focus{top:1rem}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}

/* Modes accessibilité */
body.hc{--body:#000;--muted:#1a1a1a;--ink:#000;--line:#999;--line2:#777}
body.hc .dark{--dk-body:#fff;--dk-muted:#e8e8e8}
body.bt{font-size:19px}
body.na *{animation:none!important;transition-duration:.01ms!important}
body.na{cursor:auto}
body.na #cur,body.na #ring,body.na #trail{display:none}
body.na .flip-card{height:auto}
body.na .flip-inner{transform:none!important}
body.na .flip-front,body.na .flip-back{position:relative;backface-visibility:visible;transform:none!important}
body.dys{font-family:'Verdana',Arial,sans-serif;letter-spacing:.03em;word-spacing:.1em;line-height:1.9}
body.dys .ttl,body.dys .h1,body.dys .cta-t{font-family:'Verdana',Arial,sans-serif;letter-spacing:.01em}

/* Bouton accessibilité */
.a11y-btn{position:fixed;bottom:1.5rem;left:1.5rem;z-index:900;width:54px;height:54px;border:1.5px solid var(--red);background:#fff;color:var(--red);display:flex;align-items:center;justify-content:center;transition:all .3s;box-shadow:0 4px 20px rgba(0,0,0,.12)}
.a11y-btn:hover{background:var(--red);color:#fff}
.a11y-panel{position:fixed;bottom:5.8rem;left:1.5rem;z-index:900;background:#fff;border:1px solid var(--line2);box-shadow:0 12px 40px rgba(0,0,0,.15);padding:1.6rem;width:290px;transform:translateY(20px);opacity:0;pointer-events:none;transition:all .3s var(--ease)}
.a11y-panel.open{transform:none;opacity:1;pointer-events:all}
.a11y-title{font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:.85rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);margin-bottom:1.3rem}
.a11y-opt{display:flex;align-items:center;justify-content:space-between;padding:.75rem 0;border-bottom:1px solid var(--line);font-size:.86rem;color:var(--body);gap:1rem}
.a11y-opt:last-child{border-bottom:none}
.a11y-tg{width:44px;height:23px;border-radius:12px;background:#d0cec9;position:relative;transition:background .3s;flex-shrink:0}
.a11y-tg::after{content:'';position:absolute;top:3px;left:3px;width:17px;height:17px;border-radius:50%;background:#fff;transition:all .3s;box-shadow:0 1px 3px rgba(0,0,0,.2)}
.a11y-tg.on{background:var(--red)}
.a11y-tg.on::after{left:24px}
@media(max-width:640px){.a11y-btn{bottom:1rem;left:1rem;width:48px;height:48px}.a11y-panel{left:1rem;bottom:4.8rem;width:calc(100vw - 2rem);max-width:290px}}

/* ─── CURSEUR ─── */
#cur{width:9px;height:9px;background:var(--red);border-radius:50%;position:fixed;pointer-events:none;z-index:9999;transform:translate(-50%,-50%);transition:width .2s var(--ease),height .2s var(--ease)}
#ring{width:34px;height:34px;border:1.5px solid rgba(200,16,46,.45);border-radius:50%;position:fixed;pointer-events:none;z-index:9998;transform:translate(-50%,-50%);transition:width .2s var(--ease),height .2s var(--ease),border-color .2s}
#trail{position:fixed;pointer-events:none;z-index:9997;width:4px;height:4px;border-radius:50%;background:var(--red-a);opacity:.35;transform:translate(-50%,-50%)}
@media(hover:none){#cur,#ring,#trail{display:none}body{cursor:auto}}

/* ─── NAVIGATION ─── */
.nav{position:fixed;top:0;left:0;right:0;z-index:500;padding:1.3rem 3rem;display:flex;align-items:center;justify-content:space-between;transition:all .45s var(--ease);background:rgba(255,255,255,.9);backdrop-filter:blur(14px) saturate(180%)}
.nav.on{background:rgba(255,255,255,.98);box-shadow:0 1px 24px rgba(0,0,0,.07);border-bottom:1px solid var(--line);padding-top:.9rem;padding-bottom:.9rem}
/* Nav sur héro sombre (accueil en haut de page) */
.nav.on-dark{background:transparent;backdrop-filter:none}
.nav.on-dark .nlinks a{color:rgba(255,255,255,.75)}
.nav.on-dark .nlinks a:hover,.nav.on-dark .nlinks a.active{color:#fff}
.nav.on-dark .burger span{background:#fff}
.nav.on-dark .nlogo{content:var(--logo-dark)}
.nlogo{height:38px;width:auto;transition:height .4s}
.nav.on .nlogo{height:32px}
/* Logo : couleur sur fond clair, blanc sur fond sombre */
.nlogo-light{display:block}
.nlogo-dark{display:none}
.nav.on-dark .nlogo-light{display:none}
.nav.on-dark .nlogo-dark{display:block}
.nlinks{display:flex;gap:1.8rem;list-style:none;align-items:center}
.nlinks a{color:var(--muted);font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;font-family:'Barlow Condensed',sans-serif;font-weight:600;padding:.4rem 0;transition:color .2s;position:relative;white-space:nowrap}
.nlinks a::after{content:'';position:absolute;bottom:-3px;left:0;right:0;height:2px;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}
.nlinks a:hover,.nlinks a.active{color:var(--ink)}
.nlinks a:hover::after,.nlinks a.active::after{transform:scaleX(1)}
.ncta{padding:.5rem 1.3rem!important;background:var(--red);color:#fff!important;font-weight:700!important}
.ncta::after{display:none!important}
.ncta:hover{background:var(--red-d)!important;color:#fff!important}
.nav.on-dark .ncta{background:var(--red);color:#fff!important}
.burger{display:none;flex-direction:column;gap:5px;width:44px;height:44px;justify-content:center;align-items:center}
.burger span{display:block;width:26px;height:2px;background:var(--ink);transition:all .3s var(--ease)}
.burger span:nth-child(2){width:20px}
.burger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.burger.open span:nth-child(2){opacity:0}
.burger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
@media(max-width:1150px){.nlinks{display:none}.burger{display:flex}.nav{padding:1.1rem 1.5rem}}
.mnav{position:fixed;inset:0;z-index:400;background:rgba(13,13,19,.98);backdrop-filter:blur(24px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.1rem;opacity:0;pointer-events:none;transition:opacity .35s var(--ease);overflow-y:auto;padding:5rem 1rem 2rem}
.mnav.open{opacity:1;pointer-events:all}
.mnav a{font-family:'Barlow Condensed',sans-serif;font-weight:900;font-size:clamp(1.3rem,5vw,2.1rem);text-transform:uppercase;color:rgba(255,255,255,.55);padding:.45rem 1.5rem;line-height:1.1;opacity:0;transform:translateY(20px);transition:color .2s,opacity .35s var(--ease),transform .35s var(--ease);text-align:center}
.mnav.open a{opacity:1;transform:none}
.mnav a:hover,.mnav a.active{color:#fff}
.mnav a.active{color:var(--red-a)}
.mnav-sub{font-size:clamp(.95rem,3.5vw,1.3rem)!important;color:rgba(255,255,255,.4)!important}
.mnav-cta{color:#fff!important;background:var(--red);margin-top:1.5rem;padding:.7rem 2.2rem!important}

/* ─── SECTIONS ─── */
.sec{padding:7rem 0;position:relative}
.sec-sm{padding:4.5rem 0}
.ctn{max-width:1220px;margin:0 auto;padding:0 3rem}
.ctn-nar{max-width:900px;margin:0 auto;padding:0 3rem}
.lbl{display:inline-flex;align-items:center;gap:1rem;margin-bottom:1.4rem;font-family:'Barlow Condensed',sans-serif;font-size:.78rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--red)}
.lbl::after{content:'';width:2.5rem;height:2px;background:var(--red)}
.ttl{font-family:'Barlow Condensed',sans-serif;font-weight:900;font-size:clamp(2.4rem,5vw,4.6rem);text-transform:uppercase;line-height:.92;color:var(--ink)}
.ttl-sm{font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:clamp(1.5rem,3vw,2.2rem);text-transform:uppercase;line-height:1;color:var(--ink)}
.ac{color:var(--red)}
.intro-txt{font-size:1.06rem;line-height:1.9;color:var(--body);max-width:720px;margin-top:2rem}
.intro-txt strong{color:var(--ink);font-weight:600}
.rv{opacity:0;transform:translateY(28px);transition:opacity .75s var(--ease),transform .75s var(--ease)}
.rv.in{opacity:1;transform:none}
@media(max-width:640px){.ctn,.ctn-nar{padding:0 1.4rem}.sec{padding:5rem 0}.phead-ghost{font-size:24vw;right:2%}}

/* Sections sombres réutilisables */
.dark{background:var(--dk);color:var(--dk-body)}
.dark .ttl,.dark .ttl-sm{color:var(--dk-txt)}
.dark .intro-txt{color:var(--dk-body)}
.dark .intro-txt strong{color:var(--dk-txt)}

/* ─── HEADER DE PAGE INTERNE (clair) ─── */
.phead{padding:calc(var(--nav-h) + 5rem) 0 3.5rem;position:relative;overflow:hidden;background:var(--bg2);border-bottom:1px solid var(--line)}
.phead::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 15% 0%,rgba(200,16,46,.06) 0%,transparent 55%);pointer-events:none}
.phead-ghost{position:absolute;top:50%;right:2%;transform:translateY(-50%);font-family:'Barlow Condensed',sans-serif;font-weight:900;font-size:min(15vw,180px);line-height:1;color:rgba(200,16,46,.04);white-space:nowrap;pointer-events:none;user-select:none;max-width:96vw;overflow:hidden}
.breadcrumb{display:flex;align-items:center;gap:.6rem;font-family:'Barlow Condensed',sans-serif;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:1.5rem;position:relative;flex-wrap:wrap}
.breadcrumb a:hover{color:var(--red)}
.breadcrumb span{color:var(--line2)}

/* ─── BOUTONS ─── */
.btn{display:inline-flex;align-items:center;gap:.9rem;padding:1rem 2.5rem;min-height:52px;background:var(--red);color:#fff;font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:.86rem;letter-spacing:.14em;text-transform:uppercase;position:relative;overflow:hidden;transition:all .3s var(--ease);box-shadow:0 4px 18px rgba(200,16,46,.25);clip-path:polygon(0 0,calc(100% - 10px) 0,100% 10px,100% 100%,0 100%)}
.btn:hover{background:var(--red-d);transform:translateY(-2px);box-shadow:0 8px 28px rgba(200,16,46,.35)}
.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}
.btn-o{display:inline-flex;align-items:center;gap:.9rem;padding:1rem 2.4rem;min-height:52px;border:1.5px solid var(--red);color:var(--red);font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:.86rem;letter-spacing:.14em;text-transform:uppercase;position:relative;overflow:hidden;z-index:1;transition:color .35s,background .35s;background:transparent}
.btn-o:hover{color:#fff;background:var(--red)}
.btn-g{display:inline-flex;align-items:center;gap:.7rem;min-height:48px;padding:.4rem 0;color:var(--muted);font-family:'Barlow Condensed',sans-serif;font-size:.82rem;letter-spacing:.12em;text-transform:uppercase;transition:color .2s}
.btn-g:hover{color:var(--red)}
.btn-g svg,.btn svg,.btn-o svg{transition:transform .3s var(--ease);flex-shrink:0}
.btn-g:hover svg,.btn:hover svg,.btn-o:hover svg{transform:translateX(4px)}
/* Boutons sur fond sombre */
.dark .btn-o,.btn-o-dark{border-color:rgba(255,255,255,.3);color:#fff}
.dark .btn-o:hover,.btn-o-dark:hover{background:#fff;color:var(--ink);border-color:#fff}
.btn-w{display:inline-flex;align-items:center;gap:.9rem;padding:1rem 2.5rem;min-height:52px;background:#fff;color:var(--ink);font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:.86rem;letter-spacing:.14em;text-transform:uppercase;transition:all .3s}
.btn-w:hover{background:var(--red-a);color:#fff;transform:translateY(-2px)}
@media(max-width:640px){.btn,.btn-o,.btn-w{width:100%;justify-content:center}}

/* ─── BANDEAU DÉFILANT (sombre) ─── */
.band{background:var(--dk);color:#fff;padding:1.4rem 0;overflow:hidden;border-top:1px solid var(--dk-line);border-bottom:1px solid var(--dk-line)}
.band-in{display:flex;gap:3rem;white-space:nowrap;animation:tick 30s linear infinite;width:max-content}
.band:hover .band-in{animation-play-state:paused}
@keyframes tick{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
.btag{display:inline-flex;align-items:center;gap:.65rem;flex-shrink:0;font-family:'Barlow Condensed',sans-serif;font-size:.74rem;letter-spacing:.13em;text-transform:uppercase;color:rgba(255,255,255,.7)}
.btag::before{content:'';width:5px;height:5px;border-radius:50%;background:var(--red-a);flex-shrink:0}

/* ─── LIGNES DE PISTE (remplacent les icônes) — variante A ─── */
.lanes{position:absolute;bottom:0;left:0;right:0;height:100px;z-index:1;pointer-events:none}
.lane{position:absolute;bottom:0;height:2px;background:var(--red);transform-origin:left;transform:scaleX(0);transition:transform .6s var(--ease)}
.lane:nth-child(1){bottom:0;width:100%;opacity:.85}
.lane:nth-child(2){bottom:13px;width:74%;opacity:.5;transition-delay:.06s}
.lane:nth-child(3){bottom:26px;width:52%;opacity:.32;transition-delay:.12s}
.lane:nth-child(4){bottom:39px;width:34%;opacity:.18;transition-delay:.18s}
.lane:nth-child(5){bottom:52px;width:19%;opacity:.1;transition-delay:.24s}

/* ─── CARTES ─── */
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:2rem}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}
@media(max-width:900px){.grid-3{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.grid-2,.grid-3{grid-template-columns:1fr}}

.card{background:var(--bg);border:1px solid var(--line);padding:2.5rem;position:relative;overflow:hidden;transition:all .4s var(--ease);display:flex;flex-direction:column;cursor:pointer}
.card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease)}
.card:hover{transform:translateY(-4px);box-shadow:0 16px 44px rgba(0,0,0,.08);border-color:rgba(200,16,46,.2)}
.card:hover::before{transform:scaleX(1)}
.card:hover .lane{transform:scaleX(1)}
.card-num{position:absolute;top:1.5rem;right:1.8rem;font-family:'Barlow Condensed',sans-serif;font-weight:900;font-size:3rem;line-height:1;color:rgba(200,16,46,.1);user-select:none;transition:color .4s;z-index:2}
.card:hover .card-num{color:rgba(200,16,46,.25)}
.card-t{font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:1.5rem;text-transform:uppercase;color:var(--ink);line-height:1.14;margin-bottom:.5rem;position:relative;z-index:2}
.card-sub{font-size:.8rem;color:var(--red);font-family:'Barlow Condensed',sans-serif;font-weight:700;letter-spacing:.1em;text-transform:uppercase;margin-bottom:1.2rem;position:relative;z-index:2}
.card-x{font-size:.92rem;color:var(--muted);line-height:1.8;position:relative;z-index:2;flex:1}
.card-tags{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:1.5rem;position:relative;z-index:2}
.card-tag{padding:.24rem .7rem;background:var(--bg3);border:1px solid var(--line);font-family:'Barlow Condensed',sans-serif;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:600}

/* ─── APPEL FINAL (sombre) ─── */
.cta{text-align:center;padding:9rem 0;position:relative;overflow:hidden;background:var(--dk);color:#fff}
.cta::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 50% 100%,rgba(200,16,46,.18) 0%,transparent 60%)}
.cta-ghost{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-family:'Barlow Condensed',sans-serif;font-weight:900;font-size:20vw;line-height:1;white-space:nowrap;color:rgba(255,255,255,.02);pointer-events:none;user-select:none}
.cta-t{font-family:'Barlow Condensed',sans-serif;font-weight:900;font-size:clamp(3rem,7.5vw,7rem);text-transform:uppercase;line-height:.88;color:#fff;position:relative;text-shadow:0 2px 0 rgba(100,5,15,1),0 4px 0 rgba(80,4,12,.85),0 8px 30px rgba(200,16,46,.35)}
.cta-t .ac{color:var(--red-a)}
.cta-s{margin-top:1.8rem;font-size:1rem;color:rgba(255,255,255,.62);font-style:italic;position:relative}
.cta-i{margin-top:2.5rem;display:flex;align-items:center;justify-content:center;gap:2.5rem;flex-wrap:wrap;position:relative;font-size:.88rem;color:rgba(255,255,255,.6)}
.cta-i a{color:var(--red-a);text-underline-offset:3px;text-decoration:underline}
@media(max-width:640px){.cta{padding:6rem 0}}

/* ─── FOOTER (sombre) ─── */
.foot{background:var(--dk);color:var(--dk-body);border-top:1px solid var(--dk-line)}
.fmain{display:grid;grid-template-columns:1.7fr 1fr 1fr 1.1fr;gap:3.5rem;padding:5rem 0 3.5rem}
@media(max-width:1000px){.fmain{grid-template-columns:1fr 1fr;gap:3rem}}
@media(max-width:600px){.fmain{grid-template-columns:1fr;gap:2.5rem;padding:3rem 0 2rem}}
.flogo{height:34px;margin-bottom:1.5rem}
.fdesc{font-size:.87rem;color:var(--dk-muted);line-height:1.75;margin-bottom:1.5rem}
.fcert{display:inline-flex;flex-direction:column;align-items:center;gap:.25rem;text-align:center;padding:.75rem 1.4rem;min-height:42px;border:2px solid var(--red);background:var(--red);font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:.8rem;letter-spacing:.13em;text-transform:uppercase;color:#fff;text-decoration:none;transition:background .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease)}
.fcert:hover,.fcert:focus-visible{background:transparent;color:#fff;border-color:var(--red)}
.fsoc-w{display:flex;gap:.8rem;margin-top:1.5rem}
.fsoc{width:40px;height:40px;border:1px solid var(--dk-line);display:flex;align-items:center;justify-content:center;color:var(--dk-muted);transition:all .3s}
.fsoc:hover{border-color:var(--red);color:var(--red-a);background:rgba(200,16,46,.1)}
.fcol-t{font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:.78rem;letter-spacing:.19em;text-transform:uppercase;color:#fff;margin-bottom:1.5rem}
.flinks{display:flex;flex-direction:column;gap:.8rem}
.flinks a{font-size:.86rem;color:var(--dk-muted);transition:color .2s;display:flex;align-items:center;gap:.55rem}
.flinks a::before{content:'';width:4px;height:4px;border-radius:50%;background:var(--red);flex-shrink:0}
.flinks a:hover{color:#fff}
.fci{display:flex;align-items:flex-start;gap:.8rem;font-size:.85rem;color:var(--dk-muted);margin-bottom:1rem;line-height:1.55}
.fci svg{color:var(--red-a);flex-shrink:0;margin-top:.15rem}
.fci a:hover{color:#fff}
.fbot{border-top:1px solid var(--dk-line);padding:1.8rem 0;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem}
.fcopy{font-size:.76rem;color:var(--dk-muted)}
.fnote{font-size:.72rem;color:rgba(248,80,96,.55);font-family:'Barlow Condensed',sans-serif;letter-spacing:.12em;text-transform:uppercase}

/* ─── FORMULAIRES ─── */
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}
@media(max-width:560px){.form-row{grid-template-columns:1fr}}
.fg{margin-bottom:1.7rem}
label{display:block;font-size:.79rem;letter-spacing:.14em;text-transform:uppercase;font-family:'Barlow Condensed',sans-serif;font-weight:600;color:var(--muted);margin-bottom:.6rem}
label .req{color:var(--red)}
input,select,textarea{display:block;width:100%;background:var(--bg);color:var(--ink);border:1px solid var(--line2);padding:.95rem 1.1rem;font-family:'Raleway',sans-serif;font-size:.96rem;font-weight:300;transition:border-color .2s,box-shadow .2s;appearance:none;-webkit-appearance:none;border-radius:0}
input::placeholder,textarea::placeholder{color:#a8a5a0}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 3px rgba(200,16,46,.1)}
select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%235c5c66' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1.1rem center;padding-right:2.6rem;cursor:pointer}
textarea{resize:vertical;min-height:140px}
.chk{display:flex;align-items:flex-start;gap:.9rem;cursor:pointer}
.chk input[type=checkbox]{width:19px;height:19px;min-width:19px;margin-top:.15rem;cursor:pointer;accent-color:var(--red)}
.chk-l{font-size:.84rem;color:var(--muted);line-height:1.6;cursor:pointer}
.chk-l a{color:var(--red);text-underline-offset:3px;text-decoration:underline}
.f-err{font-size:.78rem;color:var(--red);margin-top:.4rem;display:none}
.f-msg{display:none;padding:1.1rem 1.3rem;font-size:.9rem;margin-bottom:1.5rem}
.f-msg.ok{display:block;background:rgba(34,150,83,.1);border:1px solid rgba(34,150,83,.35);color:#1a7a42}
.f-msg.err{display:block;background:var(--red-soft);border:1px solid rgba(200,16,46,.3);color:var(--red-d)}

@keyframes fu{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}

/* ─── IMPRESSION ─── */
@media print{
  .nav,.mnav,.burger,.a11y-btn,.a11y-panel,#cur,#ring,#trail,.band,.cta,.skip{display:none!important}
  body{background:#fff;color:#000;cursor:auto;font-size:12pt}
  .ttl,.ttl-sm,.card-t{color:#000}
  .ac{color:#C8102E}a{color:#C8102E}
  .sec{padding:1.5rem 0;page-break-inside:avoid}
  .card{border:1px solid #ccc;background:#fff}
  .foot{background:#fff;color:#000;border-top:1px solid #ccc}
}

/* ─── Mobile : elements qui ne doivent jamais se couper en deux lignes ─── */
@media(max-width:640px){
  /* Boutons : jamais de mot coupe ; si le libelle est long, retour a la ligne entre les mots */
  .btn,.btn-o,.btn-g,.dl-btn{word-break:keep-all;overflow-wrap:normal;hyphens:none}
  .btn,.btn-o{padding-left:1.3rem;padding-right:1.3rem;font-size:.78rem;letter-spacing:.08em;line-height:1.35;text-align:center}
  /* Coordonnees : telephone et courriel d'un seul tenant */
  a[href^="tel:"],a[href^="mailto:"]{white-space:nowrap}
  a[href^="mailto:"]{font-size:.82rem}
}

/* Bouton certificat : deux lignes lisibles */
.fcert-1{display:block;white-space:nowrap}
.fcert-2{display:block;white-space:nowrap;font-size:.72rem;letter-spacing:.1em;opacity:.92;text-decoration:underline;text-underline-offset:3px}

/* ─── Adresses courriel : lisibles sur tous les ecrans ───
   On reduit legerement la taille plutot que de tronquer le texte. */
a[href^="mailto:"]{overflow-wrap:anywhere;word-break:normal;hyphens:none}
@media(max-width:430px){
  a[href^="mailto:"]{font-size:.84rem;letter-spacing:0}
}
@media(max-width:360px){
  a[href^="mailto:"]{font-size:.78rem}
}
