/* ==========================================================================
   JB Racing, ecurie de formation.
   Direction validee : anatomie de site d'ecurie F1 (Mercedes-AMG, McLaren).
   Carbone et jaune plaque, tire de la plaque de concurrent du kart.
   Big Shoulders Display en capitales, Archivo en labeur, Space Mono en donnee.
   ========================================================================== */

:root{
  --noir:#0A0A0B;
  --carbone:#121214;
  --carbone-2:#1A1A1D;
  --ligne:#26262A;
  --ligne-2:#33333A;
  --blanc:#FFFFFF;
  --gris:#9B9BA3;
  --gris-2:#65656E;
  --jaune:#FFD100;
  --jaune-2:#FFE45C;
  --rouge:#E4002B;
  --disp:'Big Shoulders Display',Impact,sans-serif;
  --sans:'Archivo',-apple-system,sans-serif;
  --mono:'Space Mono',monospace;
  --w:1400px;
}
*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{background:var(--noir);color:var(--blanc);font-family:var(--sans);font-size:16px;line-height:1.6;
  -webkit-font-smoothing:antialiased;overflow-x:clip}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
:focus-visible{outline:3px solid var(--jaune);outline-offset:2px}
::selection{background:var(--jaune);color:var(--noir)}
.w{max-width:var(--w);margin:0 auto;padding-inline:clamp(1rem,3.5vw,2.4rem)}

.t-disp{font-family:var(--disp);text-transform:uppercase;font-weight:800;letter-spacing:.005em;line-height:.88}
.mono{font-family:var(--mono);font-size:.68rem;letter-spacing:.18em;text-transform:uppercase}

/* ===== barre utilitaire ===== */
.util{background:#000;border-bottom:1px solid var(--ligne)}
.util .in{display:flex;justify-content:space-between;align-items:center;gap:1rem;height:34px}
.util a,.util span{font-family:var(--mono);font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gris-2)}
.util a:hover{color:var(--jaune)}
.util .d{display:flex;gap:1.4rem}

/* ===== navigation ===== */
header{position:sticky;top:0;z-index:80;background:rgba(10,10,11,.92);backdrop-filter:blur(14px);
  border-bottom:1px solid var(--ligne)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;height:74px}
.logo{display:flex;align-items:center;gap:.75rem}
.logo .m{width:44px;height:44px;background:var(--jaune);display:grid;place-items:center;
  clip-path:polygon(0 0,100% 0,100% 78%,78% 100%,0 100%)}
.logo .m b{font-family:var(--disp);font-weight:900;font-size:1.2rem;color:var(--noir);line-height:1}
.logo .n{font-family:var(--disp);font-weight:800;font-size:1.32rem;text-transform:uppercase;letter-spacing:.02em;line-height:1}
.logo .s{font-family:var(--mono);font-size:.55rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gris-2);display:block;margin-top:.15rem}
.liens{display:flex;gap:.1rem}
.liens a{font-family:var(--disp);font-weight:700;font-size:1.02rem;text-transform:uppercase;letter-spacing:.04em;
  padding:.6rem .9rem;position:relative;color:#E7E7EA;transition:color .18s}
.liens a::after{content:"";position:absolute;left:.9rem;right:.9rem;bottom:.3rem;height:2px;background:var(--jaune);
  transform:scaleX(0);transform-origin:left;transition:transform .24s}
.liens a:hover{color:var(--jaune)}
.liens a:hover::after{transform:scaleX(1)}
.cta{display:inline-flex;align-items:center;gap:.5rem;background:var(--jaune);color:var(--noir);
  font-family:var(--disp);font-weight:800;font-size:1rem;text-transform:uppercase;letter-spacing:.04em;
  padding:.72rem 1.5rem;clip-path:polygon(0 0,100% 0,100% 70%,92% 100%,0 100%);transition:background .18s}
.cta:hover{background:var(--jaune-2)}
.brg{display:none;width:44px;height:44px;background:none;border:1px solid var(--ligne-2);color:#fff;font-size:1.1rem;cursor:pointer}

/* ===== hero ===== */
.hero{position:relative;min-height:min(78vh,720px);display:flex;align-items:flex-end;overflow:hidden}
.hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:38% 45%;z-index:0}
.hero::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(180deg,rgba(10,10,11,.74) 0%,rgba(10,10,11,.22) 36%,rgba(10,10,11,.95) 92%)}
.hero .in{position:relative;z-index:2;padding-block:clamp(2.5rem,6vw,4.5rem);width:100%}
.eti{display:inline-flex;align-items:center;gap:.6rem;background:var(--jaune);color:var(--noir);
  font-family:var(--mono);font-weight:700;font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;padding:.4rem .8rem}
.hero h1{font-family:var(--disp);font-weight:900;text-transform:uppercase;
  font-size:clamp(3rem,10.5vw,9rem);line-height:.82;letter-spacing:-.005em;margin:1.1rem 0 0;max-width:15ch}
.hero h1 .j{color:var(--jaune)}
.hero p{color:#D6D6DC;max-width:52ch;margin-top:1.3rem;font-size:clamp(1rem,1.5vw,1.12rem)}
.actes{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.8rem}
.b{display:inline-flex;align-items:center;gap:.6rem;font-family:var(--disp);font-weight:800;font-size:1.05rem;
  text-transform:uppercase;letter-spacing:.04em;padding:.85rem 1.7rem;border:2px solid transparent;transition:all .18s}
.b-j{background:var(--jaune);color:var(--noir);clip-path:polygon(0 0,100% 0,100% 70%,93% 100%,0 100%)}
.b-j:hover{background:var(--jaune-2)}
.b-o{border-color:#4A4A52;color:#fff}
.b-o:hover{border-color:var(--jaune);color:var(--jaune)}

/* ===== bandeau mécénat (jaune, plein cadre) ===== */
.epreuve{background:var(--jaune);color:var(--noir)}
.epreuve .in{display:grid;grid-template-columns:auto 1fr auto auto;gap:clamp(1rem,3vw,2.6rem);align-items:center;
  padding-block:1.2rem}
.epreuve .manche{font-family:var(--disp);font-weight:900;font-size:clamp(2.4rem,4.4vw,3.4rem);line-height:.85}
.epreuve .manche span{display:block;font-family:var(--mono);font-size:.55rem;letter-spacing:.2em;font-weight:700}
.epreuve h2{font-family:var(--disp);font-weight:800;text-transform:uppercase;font-size:clamp(1.3rem,2.6vw,2rem);line-height:.95}
.epreuve .lieu{font-family:var(--mono);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;margin-top:.3rem}
.compte{display:flex;gap:.9rem}
.compte div{text-align:center}
.compte b{display:block;font-family:var(--disp);font-weight:900;font-size:1.9rem;line-height:1}
.compte span{font-family:var(--mono);font-size:.52rem;letter-spacing:.14em;text-transform:uppercase}
.epreuve .b-n{background:var(--noir);color:var(--jaune);font-family:var(--disp);font-weight:800;font-size:.95rem;
  text-transform:uppercase;letter-spacing:.04em;padding:.75rem 1.4rem;clip-path:polygon(0 0,100% 0,100% 70%,92% 100%,0 100%)}

/* ===== titres de section ===== */
section{padding-block:clamp(3rem,6vw,5.4rem)}
.st{display:flex;align-items:flex-end;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;
  padding-bottom:1.1rem;border-bottom:2px solid var(--ligne);margin-bottom:clamp(1.6rem,3vw,2.4rem)}
.st .g{display:flex;align-items:baseline;gap:1rem}
.st .n{font-family:var(--mono);font-weight:700;font-size:.66rem;letter-spacing:.2em;color:var(--jaune)}
.st h2{font-family:var(--disp);font-weight:800;text-transform:uppercase;font-size:clamp(1.9rem,4.4vw,3.2rem);line-height:.88}
.st .plus{font-family:var(--mono);font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gris);
  display:inline-flex;align-items:center;gap:.5rem;transition:color .18s}
.st .plus:hover{color:var(--jaune)}

/* ===== cartes pilotes ===== */
.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem}
.pil{position:relative;overflow:hidden;background:var(--carbone);aspect-ratio:3/4;display:flex;flex-direction:column;
  justify-content:flex-end;transition:transform .3s cubic-bezier(.2,.8,.3,1)}
.pil>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:48% 26%;z-index:0;
  transition:transform .5s cubic-bezier(.2,.8,.3,1)}
.pil::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(180deg,rgba(10,10,11,.05) 26%,rgba(10,10,11,.93) 86%)}
.pil:hover{transform:translateY(-4px)}
.pil:hover>img{transform:scale(1.06)}
.pil .num{position:absolute;top:0;left:0;z-index:3;background:var(--jaune);color:var(--noir);font-family:var(--disp);
  font-weight:900;font-size:1.5rem;padding:.3rem .8rem;clip-path:polygon(0 0,100% 0,100% 72%,84% 100%,0 100%)}
.pil .st-e{position:absolute;top:.9rem;right:.9rem;z-index:3;font-family:var(--mono);font-size:.55rem;letter-spacing:.14em;
  text-transform:uppercase;border:1px solid var(--jaune);color:var(--jaune);padding:.25rem .55rem;background:rgba(10,10,11,.55)}
.pil .st-e.o{border-color:var(--gris-2);color:var(--gris)}
.pil .c{padding:1.3rem 1.3rem 1.4rem;position:relative;z-index:2}
.pil h3{font-family:var(--disp);font-weight:800;text-transform:uppercase;font-size:1.85rem;line-height:.9}
.pil .cat{font-family:var(--mono);font-size:.58rem;letter-spacing:.14em;text-transform:uppercase;color:var(--jaune);margin-top:.5rem}
.pil p{font-size:.88rem;color:var(--gris);margin-top:.6rem}
.pil.vide{background:repeating-linear-gradient(135deg,#141417 0 14px,#0F0F11 14px 28px)}
.pil.vide::after{display:none}
.pil.vide h3{color:var(--gris-2)}
.pil .lien{display:inline-flex;align-items:center;gap:.4rem;margin-top:.9rem;font-family:var(--mono);font-size:.6rem;
  letter-spacing:.14em;text-transform:uppercase;color:var(--jaune);border-bottom:1px solid var(--jaune);padding-bottom:.15rem}

/* ===== palmarès mis en avant ===== */
.palm{list-style:none;padding:0;margin:0;display:grid;gap:1.1rem;max-width:60rem}
.palm li{position:relative;font-family:var(--disp);font-weight:800;text-transform:uppercase;
  font-size:clamp(1.5rem,4vw,2.4rem);line-height:1;color:#fff;padding:.15rem 0 .15rem 1.15rem;
  border-left:4px solid var(--jaune)}
.palm li em{font-style:normal;color:var(--jaune)}
.palm li .d{display:block;font-family:var(--mono);font-weight:400;font-size:.62rem;letter-spacing:.16em;
  color:var(--gris);margin-top:.55rem;text-transform:uppercase}

/* ===== programme : bandes ===== */
.prog{border-top:1px solid var(--ligne)}
.pr{display:grid;grid-template-columns:70px 1fr 1.3fr;gap:clamp(.8rem,2.4vw,2.2rem);align-items:baseline;
  padding-block:1.35rem;border-bottom:1px solid var(--ligne);transition:background .2s,padding-left .2s}
.pr:hover{background:#101012;padding-left:.6rem}
.pr .i{font-family:var(--mono);font-size:.66rem;letter-spacing:.14em;color:var(--jaune)}
.pr h3{font-family:var(--disp);font-weight:700;text-transform:uppercase;font-size:1.35rem;line-height:.95}
.pr p{color:var(--gris);font-size:.9rem}

/* ===== actualités ===== */
.g3a{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem}
.actu{background:var(--carbone);display:flex;flex-direction:column;transition:transform .28s,background .22s}
.actu:hover{transform:translateY(-4px);background:var(--carbone-2)}
.actu .im{aspect-ratio:16/9;overflow:hidden}
.actu .im img{width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.2,.8,.3,1)}
.actu:hover .im img{transform:scale(1.07)}
.actu .c{padding:1.2rem 1.2rem 1.4rem;flex:1;display:flex;flex-direction:column}
.actu .k{font-family:var(--mono);font-size:.57rem;letter-spacing:.16em;text-transform:uppercase;color:var(--jaune)}
.actu h3{font-family:var(--disp);font-weight:700;text-transform:uppercase;font-size:1.3rem;line-height:.95;margin:.6rem 0 .5rem}
.actu p{color:var(--gris);font-size:.87rem;flex:1}
.actu .dt{font-family:var(--mono);font-size:.57rem;letter-spacing:.14em;color:var(--gris-2);margin-top:1rem}

/* ===== calendrier ===== */
.cal{border-top:1px solid var(--ligne)}
.cl{display:grid;grid-template-columns:58px 1fr 1fr auto;gap:clamp(.8rem,2.4vw,2rem);align-items:center;
  padding-block:1.15rem;border-bottom:1px solid var(--ligne);transition:background .2s,padding-left .2s}
.cl:hover{background:#101012;padding-left:.6rem}
.cl .r{font-family:var(--disp);font-weight:800;font-size:1.35rem;color:var(--jaune)}
.cl .e{font-family:var(--disp);font-weight:700;text-transform:uppercase;font-size:1.12rem;line-height:1}
.cl .l{font-family:var(--mono);font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gris)}
.cl .d{font-family:var(--mono);font-size:.66rem;letter-spacing:.1em;color:#D6D6DC;text-align:right}
.cl.fait{opacity:.5}
.cl.fait .r{color:var(--gris-2)}

/* ===== dispositifs ===== */
.g4{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--ligne);border:1px solid var(--ligne)}
.dsp{background:var(--carbone);padding:1.6rem 1.4rem 1.7rem;display:flex;flex-direction:column;transition:background .22s}
.dsp:hover{background:var(--carbone-2)}
.dsp .r{font-family:var(--mono);font-size:.56rem;letter-spacing:.16em;text-transform:uppercase;color:var(--jaune)}
.dsp h3{font-family:var(--disp);font-weight:800;text-transform:uppercase;font-size:1.6rem;margin:.5rem 0 .9rem;line-height:.9}
.dsp .v{font-family:var(--disp);font-weight:900;font-size:2rem;line-height:1;color:var(--blanc)}
.dsp .v em{font-style:normal;color:var(--jaune)}
.dsp .sv{font-family:var(--mono);font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gris);margin-top:.4rem}
.dsp ul{list-style:none;padding:1rem 0 0;margin:1rem 0 0;border-top:1px solid var(--ligne);display:grid;gap:.5rem;flex:1}
.dsp li{font-size:.85rem;color:var(--gris);display:flex;gap:.55rem;line-height:1.45}
.dsp li::before{content:"";flex:0 0 auto;width:8px;height:2px;background:var(--jaune);margin-top:.62em}

/* ===== bandeau candidature ===== */
.rejoindre{position:relative;overflow:hidden}
.rejoindre>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.rejoindre::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(95deg,rgba(10,10,11,.95) 30%,rgba(10,10,11,.55))}
.rejoindre .in{position:relative;z-index:2;padding-block:clamp(2.6rem,6vw,4.4rem);display:grid;grid-template-columns:1fr auto;gap:2rem;align-items:center}
.rejoindre h2{font-family:var(--disp);font-weight:900;text-transform:uppercase;font-size:clamp(1.9rem,5vw,3.6rem);line-height:.88;max-width:17ch}
.rejoindre h2 .j{color:var(--jaune)}
.rejoindre p{color:#D6D6DC;max-width:46ch;margin-top:1rem}

/* ===== postes ===== */
.pos{display:grid;grid-template-columns:1fr auto auto;gap:1.4rem;align-items:center;padding-block:1.2rem;
  border-bottom:1px solid var(--ligne);transition:background .2s,padding-left .2s}
.pos:first-child{border-top:1px solid var(--ligne)}
.pos:hover{background:#101012;padding-left:.6rem}
.pos h3{font-family:var(--disp);font-weight:700;text-transform:uppercase;font-size:1.28rem;line-height:1}
.pos .t{font-family:var(--mono);font-size:.58rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gris)}
.pos .f{font-family:var(--mono);font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--jaune)}

/* ===== partenaires ===== */
.part{background:var(--carbone);border-block:1px solid var(--ligne)}
.rang{padding-block:1.8rem;border-bottom:1px solid var(--ligne)}
.rang:last-child{border-bottom:0}
.rang .lb{font-family:var(--mono);font-size:.58rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gris-2);
  text-align:center;margin-bottom:1.1rem}
.murs{display:flex;flex-wrap:wrap;justify-content:center;gap:1rem}
.mur{min-width:170px;height:74px;display:grid;place-items:center;border:1px solid var(--ligne);background:var(--noir);
  font-family:var(--disp);font-weight:800;text-transform:uppercase;font-size:1.2rem;letter-spacing:.06em;color:#CFCFD6;
  transition:border-color .2s,color .2s}
.mur:hover{border-color:var(--jaune);color:var(--jaune)}
.mur.p{min-width:230px;height:96px;font-size:1.6rem;color:#fff}
.mur.libre{border-style:dashed;color:var(--gris-2);font-family:var(--mono);font-size:.6rem;letter-spacing:.14em}

/* ===== pied ===== */
footer{background:#000;border-top:2px solid var(--jaune)}
.pied{display:grid;grid-template-columns:1.7fr 1fr 1fr 1fr;gap:2rem;padding-block:clamp(2.4rem,5vw,3.6rem) 2rem}
footer h4{font-family:var(--disp);font-weight:800;text-transform:uppercase;font-size:1.02rem;color:var(--jaune);margin-bottom:.9rem;letter-spacing:.03em}
footer ul{list-style:none;padding:0;display:grid;gap:.5rem;font-size:.88rem;color:var(--gris)}
footer a:hover{color:var(--jaune)}
.pied .id p{color:var(--gris);font-size:.88rem;margin-top:.9rem;max-width:34ch}
.bas{border-top:1px solid var(--ligne);padding-block:1rem 1.4rem;display:flex;flex-wrap:wrap;gap:.5rem 2rem;
  justify-content:space-between;font-family:var(--mono);font-size:.56rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gris-2)}

/* ===== reveal ===== */
.rv{opacity:0;transform:translateY(16px);transition:opacity .7s cubic-bezier(.2,.8,.3,1),transform .7s cubic-bezier(.2,.8,.3,1)}
.rv.vu{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}}

/* ===== responsive ===== */
@media (max-width:1100px){
  .g4{grid-template-columns:1fr 1fr}
  .epreuve .in{grid-template-columns:auto 1fr;row-gap:1.2rem}
  .epreuve .compte{grid-column:1/-1}
  .epreuve .b-n{grid-column:1/-1;justify-self:start}
}
@media (max-width:900px){
  .liens,.nav>.cta{display:none}
  .brg{display:grid;place-items:center}
  .liens.ouv{display:flex;flex-direction:column;position:absolute;left:0;right:0;top:74px;background:#0C0C0E;
    border-bottom:1px solid var(--ligne);padding:.6rem 1.2rem 1.2rem;gap:0}
  .liens.ouv a{padding:.9rem .4rem;border-bottom:1px solid var(--ligne)}
  .g3,.g3a{grid-template-columns:1fr 1fr}
  .pied{grid-template-columns:1fr 1fr}
  .rejoindre .in{grid-template-columns:1fr}
  .pr{grid-template-columns:52px 1fr}
  .pr p{grid-column:2}
  .cl{grid-template-columns:44px 1fr auto}
  .cl .l{grid-column:2}
}
@media (max-width:620px){
  .g3,.g3a,.g4{grid-template-columns:1fr}
  .pied{grid-template-columns:1fr}
  .pos{grid-template-columns:1fr;gap:.3rem}
  .util .d{display:none}
}

/* ===== formulaires ===== */
/* Ajout du lot « demande avec double opt-in ». Aucune regle ci-dessus n'est
   modifiee : les champs de saisie n'existaient pas dans la charte validee. */
:root{
  --champ:#141417;
  --bord-champ:#61616A;   /* 3,2:1 sur le fond, contour perceptible, WCAG 1.4.11 */
  --err:#FF6B7F;          /* 7,2:1 sur le carbone, contrairement au rouge de marque */
  --err-fond:#261014;
  --ok:#5BD98A;
}

.frm{max-width:64rem}
.frm fieldset{border:0;padding:0;margin:0;min-width:0}
.frm [hidden]{display:none!important}
.frm .grp{margin-top:2.2rem;padding-top:1.6rem;border-top:1px solid var(--ligne)}
.frm legend{font-family:var(--disp);font-weight:800;text-transform:uppercase;font-size:1.35rem;
  line-height:1;letter-spacing:.02em;padding:0 0 .2rem}
.frm .lg-aide{font-family:var(--sans);font-size:.86rem;color:var(--gris);margin:.5rem 0 -.2rem;max-width:54ch}

.frm .duo{display:grid;grid-template-columns:1fr 1fr;gap:0 1.2rem}
.frm .ch{display:flex;flex-direction:column;gap:.45rem;margin-top:1.25rem}
.frm label{font-family:var(--mono);font-size:.6rem;font-weight:700;letter-spacing:.16em;
  text-transform:uppercase;color:#D6D6DC;line-height:1.4}
.frm .req{color:var(--jaune);font-family:var(--mono)}
.frm .fac{color:var(--gris-2);letter-spacing:.1em}
.frm .aide{font-family:var(--sans);font-size:.82rem;letter-spacing:0;text-transform:none;
  color:var(--gris);line-height:1.5}

.frm input[type=text],.frm input[type=email],.frm input[type=tel],
.frm input[type=number],.frm select,.frm textarea{
  width:100%;background-color:var(--champ);color:var(--blanc);
  border:1px solid var(--bord-champ);border-radius:0;
  font-family:var(--sans);font-size:1rem;line-height:1.5;padding:.82rem .95rem;
  appearance:none;transition:border-color .18s,background-color .18s}
.frm textarea{min-height:9.5rem;resize:vertical}
.frm input::placeholder,.frm textarea::placeholder{color:var(--gris);opacity:1}
.frm input:hover,.frm select:hover,.frm textarea:hover{border-color:#8A8A94}
.frm input:focus,.frm select:focus,.frm textarea:focus{border-color:var(--jaune);background-color:#18181C;outline:none}
.frm input:focus-visible,.frm select:focus-visible,.frm textarea:focus-visible{outline:3px solid var(--jaune);outline-offset:1px}

.frm select{padding-right:2.6rem;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%23FFD100' stroke-width='2' d='M1 1.5l5 5 5-5'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 1rem center;background-size:12px 8px}
.frm select option{background:#141417;color:#fff}

.frm .cons{display:grid;grid-template-columns:auto 1fr;align-items:start;gap:.85rem;
  margin-top:1.8rem;padding:1.15rem 1.2rem;background:var(--carbone);border-left:3px solid var(--jaune)}
.frm .cons input[type=checkbox]{width:1.2rem;height:1.2rem;margin-top:.18rem;accent-color:var(--jaune);cursor:pointer}
.frm .cons label{font-family:var(--sans);font-size:.88rem;font-weight:400;letter-spacing:0;
  text-transform:none;color:#D6D6DC;line-height:1.6;cursor:pointer}
.frm .cons a{color:var(--jaune);text-decoration:underline;text-underline-offset:2px}

.frm .msg{font-family:var(--sans);font-size:.84rem;letter-spacing:0;text-transform:none;color:var(--err)}
.frm .ch.err input,.frm .ch.err select,.frm .ch.err textarea{border-color:var(--err);background-color:#1B1013}
.frm .cons.err{border-left-color:var(--err);background:var(--err-fond)}

.frm .piege{position:absolute;left:-9999px;top:-9999px;width:1px;height:1px;overflow:hidden}
.frm .envoi{display:flex;flex-wrap:wrap;align-items:center;gap:1.2rem;margin-top:2rem}
.frm button.b{cursor:pointer;font-family:var(--disp)}
.frm .note{font-family:var(--sans);font-size:.84rem;color:var(--gris);max-width:42ch}

/* encarts d'etat, partages par le formulaire et les pages de confirmation */
.avis{background:var(--carbone);border-left:3px solid var(--jaune);padding:1.2rem 1.35rem;margin-bottom:1.8rem}
.avis h2,.avis h3{font-family:var(--disp);font-weight:800;text-transform:uppercase;font-size:1.3rem;line-height:1}
.avis p{color:#D6D6DC;font-size:.92rem;margin-top:.7rem;max-width:62ch}
.avis ul{margin:.8rem 0 0;padding-left:1.1rem;display:grid;gap:.35rem;font-size:.9rem}
.avis a{color:var(--jaune);text-decoration:underline;text-underline-offset:2px}
.avis-err{border-left-color:var(--err);background:var(--err-fond)}
.avis-err h2,.avis-err h3{color:var(--err)}
.avis-err a{color:var(--err)}
.avis-ok{border-left-color:var(--ok)}
.avis-ok h2,.avis-ok h3{color:var(--ok)}
.avis:focus-visible{outline:3px solid var(--jaune);outline-offset:3px}

@media (max-width:620px){
  .frm .duo{grid-template-columns:1fr}
  .frm .envoi{gap:.9rem}
  .frm button.b{width:100%;justify-content:center}
}

/* ===== don en ligne ===== */
.dform{max-width:var(--w)}
.dgrid{display:grid;grid-template-columns:1fr 24rem;gap:2.4rem;align-items:start}
.dcol{min-width:0}
.dlbl{font-family:var(--mono);font-size:.62rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  color:#D6D6DC;margin:0 0 .7rem}
.dcol .dlbl:not(:first-child){margin-top:1.8rem}
.dseg{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid var(--ligne-2);background:var(--carbone);
  border-radius:0;overflow:hidden}
.dseg button{background:none;border:0;color:var(--gris);font-family:var(--disp);font-weight:800;font-size:1.05rem;
  text-transform:uppercase;letter-spacing:.03em;padding:.85rem;cursor:pointer;transition:all .15s}
.dseg button+button{border-left:1px solid var(--ligne-2)}
.dseg button:hover{color:#fff}
.dseg button.on{background:var(--jaune);color:var(--noir)}
.dmnts{display:grid;grid-template-columns:repeat(4,1fr);gap:.7rem}
.dmt{background:var(--carbone);border:1px solid var(--ligne-2);color:#E7E7EA;font-family:var(--disp);font-weight:800;
  font-size:1.25rem;padding:.9rem .4rem;cursor:pointer;transition:all .15s;clip-path:polygon(0 0,100% 0,100% 78%,88% 100%,0 100%)}
.dmt:hover{border-color:var(--jaune);color:var(--jaune)}
.dmt.on{background:var(--jaune);color:var(--noir);border-color:var(--jaune)}
.dlibre{display:flex;align-items:center;gap:.6rem;margin-top:.7rem;background:var(--champ);border:1px solid var(--bord-champ);padding:0 .95rem}
.dlibre span{font-family:var(--disp);font-weight:900;font-size:1.3rem;color:var(--gris)}
.dlibre input{flex:1;background:none;border:0;color:#fff;font-family:var(--sans);font-size:1.05rem;padding:.82rem 0;outline:none}
.dch{display:flex;flex-direction:column;gap:.4rem;margin-top:1rem}
.dch label{font-family:var(--mono);font-size:.6rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#D6D6DC}
.dch .req{color:var(--jaune)} .dch .fac{color:var(--gris-2);letter-spacing:.1em}
.dch input{background:var(--champ);color:#fff;border:1px solid var(--bord-champ);font-family:var(--sans);font-size:1rem;
  padding:.82rem .95rem;transition:border-color .15s}
.dch input:focus{border-color:var(--jaune);outline:none;background:#18181C}

.drecap{position:sticky;top:92px;background:var(--carbone);border:1px solid var(--ligne);border-top:3px solid var(--jaune);padding:1.6rem 1.5rem 1.7rem}
.drecap-lb{font-family:var(--mono);font-size:.58rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gris-2);margin:0}
.drecap-don{font-family:var(--disp);font-weight:900;font-size:3.2rem;line-height:.9;color:#fff;margin:.3rem 0 1.2rem}
.drecap-don span{color:var(--jaune)} .drecap-don #r-mois{font-size:1rem;color:var(--gris)}
.drecap-calc{border-top:1px solid var(--ligne);padding-top:1rem;display:grid;gap:.55rem}
.drecap-calc div{display:flex;justify-content:space-between;align-items:baseline;gap:1rem}
.drecap-calc span{font-size:.88rem;color:var(--gris)}
.drecap-calc b{font-family:var(--disp);font-weight:800;font-size:1.15rem;color:#E7E7EA}
.drecap-calc .cle{border-top:1px solid var(--ligne);padding-top:.6rem;margin-top:.3rem}
.drecap-calc .cle span{color:#fff;font-weight:600} .drecap-calc .cle b{color:var(--jaune);font-size:1.6rem}
.drecap-note{font-size:.8rem;color:var(--gris);margin:.9rem 0 1.2rem} .drecap-note b{color:#E7E7EA}
.drecap-cta{width:100%;justify-content:center;font-size:1.05rem}
.drecap-cta:disabled{opacity:.45;cursor:not-allowed}
.drassure{list-style:none;padding:1.1rem 0 0;margin:1.1rem 0 0;border-top:1px solid var(--ligne);display:grid;gap:.5rem}
.drassure li{font-size:.8rem;color:var(--gris);display:flex;gap:.55rem;line-height:1.4}
.drassure li::before{content:"";flex:0 0 auto;width:14px;height:14px;margin-top:.15em;background:var(--jaune);
  clip-path:polygon(41% 66%,79% 28%,88% 37%,41% 84%,12% 55%,21% 46%)}

@media (max-width:900px){
  .dgrid{grid-template-columns:1fr}
  .drecap{position:static;margin-top:2rem}
}
@media (max-width:520px){ .dmnts{grid-template-columns:1fr 1fr} }
