/* ============================================================
   swap-iit — base.css
   Fondation partagée (tokens + reset + composants génériques).
   Extraction VERBATIM depuis index.html (accueil, validé en prod).
   Source de vérité : la charte de Léna (_private/charte). Rien inventé ici.
   NE PAS ajouter de couleur/taille/spacing absent de l'accueil ou de la charte.
   ============================================================ */

/* ---------- Fonts ---------- */
@font-face{font-family:'Satoshi';src:url('/assets/fonts/satoshi-medium.woff2') format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:'Satoshi';src:url('/assets/fonts/satoshi-bold.woff2') format('woff2');font-weight:700;font-display:swap}
@font-face{font-family:'Schoolbell';src:url('/assets/fonts/schoolbell-latin.woff2') format('woff2');font-weight:400;font-display:swap}

/* ---------- Tokens ---------- */
:root{
  --rose:#fb0473; --jaune:#fcd205; --vert:#cbede2; --creme:#fcf7f2; --blanc:#fff;
  --anthracite:#1c1c1e; --gris:#6b6b70;
  --r-btn:18px; --r-huge:77px; --maxw:1100px;
  --stripes:repeating-linear-gradient(90deg, var(--creme) 0 46px, #d8efe6 46px 70px);
}

/* ---------- Reset / base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;overflow-x:hidden}
body{margin:0;font-family:'Satoshi',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;font-weight:500;
  font-size:16px;line-height:1.55;color:var(--anthracite);background:var(--blanc);overflow-x:hidden}
h1,h2,h3{font-weight:700;line-height:1.25;margin:0;text-wrap:balance}
h1 .bell,h2 .bell{line-height:1}
p{margin:0;line-height:1.55}
img,svg{display:block;max-width:100%}
a{color:inherit}

/* ---------- Utilitaires ---------- */
.wrap{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:20px}
.rose{color:var(--rose)} .jaune{color:var(--jaune)}
.bell{font-family:'Schoolbell',cursive;font-weight:400}
:focus-visible{outline:3px solid var(--rose);outline-offset:2px;border-radius:6px}

/* ---------- Header (public) ---------- */
.head .wrap{display:flex;align-items:center;justify-content:space-between;padding-block:18px}
.logo{font-weight:700;font-size:26px;letter-spacing:-.02em;text-decoration:none;color:var(--anthracite)}
.socials{display:flex;gap:8px}

/* ---------- Menu (burger + drawer) — base SOBRE, à habiller par Léna
   (3 couleurs, doodles, courbe d'animation). Identique mobile/desktop. ---------- */
.head-left{display:flex;align-items:center;gap:10px}
.menu-btn{display:inline-flex;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;padding:11px;border:0;background:transparent;cursor:pointer;border-radius:12px}
.menu-btn span{display:block;height:3px;width:100%;border-radius:3px}
.menu-btn span:nth-child(1){background:var(--vert)}
.menu-btn span:nth-child(2){background:var(--jaune)}
.menu-btn span:nth-child(3){background:var(--rose)}
.no-scroll{overflow:hidden}
.drawer-overlay{position:fixed;inset:0;background:rgba(28,28,30,.4);opacity:0;pointer-events:none;transition:opacity .25s ease;z-index:40}
.drawer-overlay.open{opacity:1;pointer-events:auto}
.drawer{position:fixed;top:0;right:0;height:100dvh;width:min(320px,86vw);background:var(--creme);box-shadow:-8px 0 30px rgba(28,28,30,.15);transform:translateX(100%);transition:transform .28s ease;z-index:50;padding:22px;overflow-y:auto;display:flex;flex-direction:column}
.drawer.open{transform:translateX(0)}
.drawer-close{align-self:flex-end;width:44px;height:44px;border:0;background:transparent;font-size:26px;line-height:1;color:var(--anthracite);cursor:pointer;border-radius:12px}
.drawer-nav{display:flex;flex-direction:column;gap:2px;margin-top:6px}
.drawer-nav h2{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--gris);margin:14px 0 4px}
.drawer-nav a{font-weight:700;font-size:18px;text-decoration:none;color:var(--anthracite);padding:10px 8px;border-radius:12px}
.drawer-nav a:hover,.drawer-nav a:focus-visible{color:var(--rose)}
.drawer-nav form{margin:0}
.drawer-nav button{font:inherit;font-weight:700;font-size:18px;text-align:left;width:100%;color:var(--anthracite);background:transparent;border:0;padding:10px 8px;border-radius:12px;cursor:pointer}
.drawer-nav button:hover,.drawer-nav button:focus-visible{color:var(--rose)}
@media(prefers-reduced-motion:reduce){.drawer,.drawer-overlay{transition:none}}
.soc{width:38px;height:38px;display:flex;align-items:center;justify-content:center;border-radius:11px;background:var(--rose);text-decoration:none}
.soc-ic{width:56%;height:56%;pointer-events:none}
.soc.discord{background:var(--jaune)} .soc.instagram{background:var(--vert)} .soc.facebook{background:var(--jaune)}

/* ---------- Bandeau vertical de marque ---------- */
.vbanner{position:fixed;top:64px;right:4px;writing-mode:vertical-rl;text-orientation:sideways;transform:rotate(180deg);
  white-space:nowrap;font-family:'Schoolbell',cursive;font-size:18px;letter-spacing:.05em;line-height:1;z-index:15;pointer-events:none}
.vbanner .m{color:var(--vert)}

/* ---------- Composants ---------- */
.badge{display:inline-block;background:var(--vert);color:var(--anthracite);font-weight:700;font-size:13px;
  padding:8px 20px;border-radius:999px;margin-bottom:18px}

.eyebrow{font-family:'Schoolbell',cursive;font-size:19px;display:block;margin-bottom:4px}

.field{margin-bottom:11px;text-align:left}
.field input{width:calc(100% - 10px);display:block;margin-inline:auto;font-family:inherit;font-weight:500;font-size:16px;padding:9px 16px;
  border:2px solid #fff;border-radius:var(--r-btn);background:#fff;box-shadow:0 6px 16px rgba(28,28,30,.10)}
.field input::placeholder{color:#b6b6ba}
.field input:focus{outline:none;border-color:var(--rose)}

.check{display:flex;gap:8px;align-items:flex-start;text-align:left;font-size:12.5px;color:var(--anthracite);margin:2px 2px 12px}
.check input{margin-top:2px;width:16px;height:16px;accent-color:var(--rose);flex:none}

.cta{width:100%;font-family:'Schoolbell',cursive;font-weight:400;font-size:20px;color:#fff;background:var(--rose);border:0;
  padding:13px 22px;border-radius:12px;cursor:pointer;box-shadow:0 8px 20px rgba(251,4,115,.30);transition:transform .15s;min-height:50px}
.cta:hover{transform:scale(1.02)} .cta:active{transform:scale(.99)} .cta:disabled{opacity:.6;cursor:default;transform:none}

.legal{font-size:11px;line-height:1.4;color:var(--gris);margin-top:10px}
.legal a{color:var(--gris)}

.form-msg{font-size:14px;font-weight:700;margin-top:8px;min-height:1px}
.form-msg.err{color:var(--rose)}

/* Bulle de contenu (fond mint .g ou rosé .b) */
.bubble{position:relative;border-radius:28px;padding:18px 20px;width:100%;max-width:330px;text-align:center}
.bubble.g{background:var(--vert)} .bubble.b{background:#fdeede}
.bubble h3{font-size:16px;margin-bottom:8px;line-height:1.25}
.bubble p{font-size:14px;color:#3a3a3c;line-height:1.55}

@media(prefers-reduced-motion:reduce){.cta,.soc{animation:none;transition:none}}

/* ---------- Footer (rayures mint/beige pleine largeur) ---------- */
.foot{background:var(--stripes);border-radius:var(--r-huge) var(--r-huge) 0 0;padding:36px 0 0;overflow:hidden;text-align:center;position:relative}
.foot-links{display:flex;gap:20px;justify-content:center;flex-wrap:wrap;font-weight:700;font-size:15px}
.foot-links a{text-decoration:none;transition:color .2s ease,transform .2s ease}
.foot-links a:hover,.foot-links a:active{color:var(--rose);transform:translateY(-2px)}
.foot-copy{color:var(--rose);font-size:13px;margin-top:12px}
.foot-wordmark{position:relative;margin-top:30px}
.perch{position:relative;display:inline-block}
.foot-mascotte{position:absolute;width:45px;height:auto;left:50%;transform:translateX(-50%);bottom:calc(34% + 20px);z-index:2}
.foot-xxl{font-weight:700;color:var(--rose);letter-spacing:-.04em;line-height:.82;font-size:30vw;white-space:nowrap;position:relative;transform:translateX(-4px);z-index:1;user-select:none;pointer-events:none}

/* ============================================================
   Responsive (min-width, mobile-first) — fondation uniquement
   ============================================================ */
@media(min-width:768px){
  .wrap{padding-inline:32px}
  .field input{width:100%}
  .foot-mascotte{width:56px}
}
@media(min-width:1024px){
  .head .wrap{max-width:none;padding-left:48px;padding-right:92px}
  .vbanner{font-size:56px;right:8px;top:44px}
  .soc{width:50px;height:50px;border-radius:14px}
  .legal{font-size:12px}
  .foot{padding:40px 0 0}
  .foot-links{font-size:16px;gap:36px}
  .foot-copy{position:absolute;left:calc(72% + 30px);transform:translateX(-50%);bottom:55px;margin:0;z-index:3}
  .foot-wordmark{margin-top:20px}
  .foot-xxl{font-size:30.15vw;line-height:1;margin-bottom:-.14em;left:50%;transform:translateX(-50%);width:max-content}
  .foot-mascotte{width:134px;height:auto;bottom:calc(30% + 140px)}
}
