/* ==========================================================================
   SWIRA FESTIVAL 2027 (Festival Hip-hop International) · Jetons de la charte
   Brand kit v04, 25/10/2026. Source : « SWIRA FESTIVAL 2027 - BRAND KIT V2 » de Yaris Dib (DA visuelle)
   Nouveau nom : SWIRA FESTIVAL. « Swira Breaking Jam » ne désigne plus que l'édition 2026 (logo « L'original »).
   À importer dans les dossiers HTML/PDF, les pages web et les sites.
   Chemins des polices relatifs à ce fichier (../05_POLICES/web/).
   Statuts : [VALIDÉ] par Ivy le 24-25/10/2026, [PROVISOIRE] en attente de Yaris, [À VALIDER] nouveauté du kit V2 en attente d'Ivy.
   ========================================================================== */

/* ---------- Polices ---------- */
@font-face{font-family:"Bionix";src:url(../05_POLICES/web/Bionix-demo.woff2) format("woff2");font-display:swap}      /* [VALIDÉ] logo et titres. Version démo : A-Z et a-z seulement */
@font-face{font-family:"Milker";src:url(../05_POLICES/web/Milker.woff2) format("woff2");font-display:swap}           /* [VALIDÉ 25/10] police titre de Yaris, en SECOURS de Bionix pour les caractères absents (accents, chiffres, ponctuation) */
@font-face{font-family:"Unbounded";src:url(../05_POLICES/web/Unbounded-VariableFont_wght.woff2) format("woff2");font-weight:200 900;font-display:swap} /* [PROVISOIRE] texte, en attendant le nouveau texte regular */
@font-face{font-family:"PP Radio Grotesk";src:url(../05_POLICES/web/PPRadioGrotesk-Black.woff2) format("woff2");font-weight:900;font-display:swap} /* [VALIDÉ] texte explicatif, légendes, capitales */
@font-face{font-family:"Brick";src:url(../05_POLICES/web/Brick.woff2) format("woff2");font-display:swap}             /* [VALIDÉ] signatures, millésime 2027 */
@font-face{font-family:"Graffiti City";src:url(../05_POLICES/web/GraffitiCity.woff2) format("woff2");font-display:swap} /* [VALIDÉ] tag « IN », accents manuscrits */

:root{
  /* ---------- Couleurs [VALIDÉ à 100 %] ---------- */
  --sbj-nuit:#00007D;        /* R0 V0 B125 */
  --sbj-electrique:#0000FF;  /* R0 V0 B255 */
  --sbj-cyan:#00F0FF;        /* R0 V240 B255 */
  --sbj-abysse:#000041;      /* fond de base sous le dégradé (mesuré dans le PDF) */
  --sbj-blanc:#FFFFFF;

  /* ---------- Swira OFF et Swira IN [VALIDÉ, couleurs telles que dessinées] ---------- */
  --sbj-off:#FF7000;         /* orange de la marque Swira OFF */
  --sbj-accent:#FF7000;      /* [VALIDÉ 25/10] même orange, en petits accents ou changement d'ambiance, avec parcimonie */
  --sbj-in:#00F8FF;          /* cyan de la marque Swira IN */

  /* ---------- Dégradé signature [VALIDÉ à 100 %] ----------
     Référence exacte : 04_FONDS/SBJ27_Fond_Degrade_1920x1080.png (à utiliser en priorité, en cover).
     Version CSS fidèle (écart moyen 6/255) pour le web et les fonds de toute taille : */
  --sbj-degrade:
    radial-gradient(ellipse 36.9% 50.1% at 62.2% 0%, rgba(0,232,250,.87) 0%, rgba(0,232,250,.31) 45%, rgba(0,232,250,0) 100%),
    radial-gradient(ellipse 55.6% 84.2% at 62.2% 0%, rgba(0,199,230,.5) 0%, rgba(0,199,230,.25) 50%, rgba(0,199,230,0) 100%),
    radial-gradient(ellipse 56% 205% at 73.5% 100%, rgba(0,0,22,.78) 0%, rgba(0,0,22,.39) 50%, rgba(0,0,22,0) 100%),
    linear-gradient(90deg, rgba(0,112,255,0) 54.2%, rgba(0,112,255,.18) 100%),
    linear-gradient(180deg, #0006FA 0%, #0001CF 30%, #0002A6 50%, #000179 70%, #000038 100%);
  --sbj-degrade-simple:linear-gradient(180deg,#0000FF 0%,#00007D 55%,#000041 100%); /* petits éléments, boutons */

  /* ---------- Typographie ---------- */
  --sbj-font-logo:"Bionix","Milker",sans-serif;
  --sbj-font-titre:"Bionix","Milker",sans-serif;        /* [RÈGLE UNIQUE, Ivy 25/10] Bionix pour les titres ; le navigateur passe en Milker, caractère par caractère, pour ce que Bionix démo n'a pas (accents, chiffres, ponctuation). Jamais d'Unbounded pour un titre */
  --sbj-font-titre-accent:var(--sbj-font-titre);       /* gardé pour compatibilité : même règle */
  --sbj-font-texte:"Unbounded",system-ui,sans-serif;    /* [PROVISOIRE] remplacé par le futur texte regular */
  --sbj-font-explicatif:"PP Radio Grotesk","Unbounded",sans-serif;
  --sbj-font-signature:"Brick",cursive;
  --sbj-font-tag:"Graffiti City",cursive;
  --sbj-font-arabe-titre:"Miqdad","Ahmisya",serif;      /* [NON RETENUES, Ivy 25/10] fichiers non livrés ; le kit V2 les cite encore p. 3 */

  --sbj-poids-texte:300;     /* Unbounded Light pour les paragraphes */
  --sbj-poids-fort:600;      /* Unbounded SemiBold pour le gras */
  --sbj-poids-chapeau:200;   /* Unbounded ExtraLight pour les chapeaux en capitales */

  /* ---------- Formes ---------- */
  --sbj-rayon-l:48px;        /* cartes et photos : angle arrondi inspiré des vagues */
  --sbj-rayon-m:28px;
  --sbj-rayon-s:14px;
  --sbj-contour:4px solid #FFFFFF;  /* contour blanc des cartes photo */
  --sbj-fantome-opacite:.12; /* script Breaking Jam en filigrane */

  /* ---------- Nom et logos (kit v04) ---------- */
  --sbj-nom:"SWIRA FESTIVAL";                 /* [VALIDÉ, Ivy 25/10 18 h 55] */
  --sbj-baseline:"FESTIVAL HIP-HOP INTERNATIONAL";
  --sbj-logo-blanc:url(../01_LOGOS/SBJ27_Logo_SwiraFestival_2027_Blanc.svg);      /* fond sombre ; 2027 en cyan */
  --sbj-logo-nuit:url(../01_LOGOS/SBJ27_Logo_SwiraFestival_2027_Nuit.svg);        /* fond clair (dérivé : blanc → nuit, 2027 → électrique) */
  --sbj-logo-sans-annee:url(../01_LOGOS/SBJ27_Logo_SwiraFestival_Blanc.svg);      /* V3 de Yaris, sans 2027 */
  --sbj-logo-couronne:url(../01_LOGOS/SBJ27_Logo_SwiraFestival_Couronne_2027_Blanc.svg); /* déclinaison 2 */
  --sbj-couronne:url(../03_ELEMENTS/SBJ27_Couronne_Blanc.svg);                    /* déclinaison 1 */

  /* ---------- Cartes battles (kit V2 p. 10) [À VALIDER par Ivy] ----------
     Relevé sur l'image de la p. 10 (les cartes sont des images dans le PDF) : à n'utiliser que pour les cartes et visuels des battles. */
  --sbj-battle-kids:radial-gradient(ellipse 90% 60% at 100% 12%,rgba(70,155,196,.95) 0%,rgba(70,155,196,0) 70%),linear-gradient(180deg,#081EC6 0%,#0A2A8A 55%,#000651 100%);
  --sbj-battle-bgirl:radial-gradient(ellipse 90% 60% at 95% 0%,rgba(180,71,67,.95) 0%,rgba(180,71,67,0) 70%),linear-gradient(180deg,#5E2A7A 0%,#5A1272 55%,#250BBE 100%);
  --sbj-battle-bboy:radial-gradient(ellipse 90% 75% at 0% 8%,rgba(110,215,101,.95) 0%,rgba(110,215,101,0) 75%),linear-gradient(180deg,#1E3D8D 0%,#10285F 60%,#060F5B 100%);
  --sbj-battle-kids-spray:#73F9F8;
  --sbj-battle-bgirl-spray:#D23FE0;
  --sbj-battle-bboy-spray:#83FAAA;
}

/* ---------- Utilitaires prêts à l'emploi ---------- */
.sbj-fond{background:url(../04_FONDS/SBJ27_Fond_Degrade_1920x1080.jpg) center/cover no-repeat var(--sbj-abysse);color:var(--sbj-blanc)}
.sbj-fond-css{background:var(--sbj-degrade);background-color:var(--sbj-abysse);color:var(--sbj-blanc)}
.sbj-titre{font-family:var(--sbj-font-titre);font-weight:400;text-transform:uppercase;line-height:.92;letter-spacing:0}
.sbj-chapeau{font-family:var(--sbj-font-texte);font-weight:var(--sbj-poids-chapeau);text-transform:uppercase;letter-spacing:.04em}
.sbj-chapeau b{font-weight:600}
.sbj-explicatif{font-family:var(--sbj-font-explicatif);font-weight:900;text-transform:uppercase;font-size:.8em;line-height:1.25;letter-spacing:.01em}
.sbj-carte{border:var(--sbj-contour);border-radius:var(--sbj-rayon-l);overflow:hidden}
.sbj-off{color:var(--sbj-off)} .sbj-in{color:var(--sbj-in)}
.sbj-carte-battle{border:var(--sbj-contour);border-radius:var(--sbj-rayon-l);overflow:hidden;color:var(--sbj-blanc)}
.sbj-battle-kids{background:var(--sbj-battle-kids)} .sbj-battle-bgirl{background:var(--sbj-battle-bgirl)} .sbj-battle-bboy{background:var(--sbj-battle-bboy)}
