/* Cana World — déclinaison web de la charte « Nuit chromée ».
   Palette et échelles issues des tokens canoniques du bot (ui-theme.js). */

:root {
  --nuit: #010513;
  --minuit: #000417;
  --abysse: #030817;
  --relief: #08132b;
  --elevation: #0c1934;
  --structure: #001342;
  --cuir: #0f0d10;
  --texte: #d8d1e3;
  --texte-attenue: #a49eb5;
  --lavande: #c8c0d8;
  --lavande-claire: #e6e0ed;
  --chrome: #aeb8ca;
  --chrome-clair: #e1e6ef;
  --chrome-profond: #66748f;
  --ambre: #c4571f;
  --ambre-clair: #de7a3c;
  --ambre-profond: #873f23;
  --succes: #2fd47a;
  --danger: #e54867;
  --inactif: #5b6a92;
  --bordure: rgba(174, 184, 202, .14);
  --bordure-forte: rgba(225, 230, 239, .32);
  --ombre: 0 18px 42px rgba(0, 2, 12, .42);
  --ombre-haute: 0 26px 68px rgba(0, 2, 12, .68);
  --police-titre: "Barlow Condensed", Impact, sans-serif;
  --police-texte: Manrope, "Segoe UI", system-ui, sans-serif;
  --rayon-sm: 12px;
  --rayon-lg: 18px;
  --rayon-pilule: 999px;
  --cible-min: 44px;
  --duree: 180ms;
  --ease: cubic-bezier(.2, .8, .2, 1);
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  background:
    radial-gradient(1000px 700px at 74% -12%, rgba(0, 19, 66, .58), transparent 66%),
    radial-gradient(760px 520px at -10% 48%, rgba(12, 25, 52, .34), transparent 72%),
    linear-gradient(178deg, var(--nuit) 0%, var(--minuit) 46%, #02030a 100%);
  background-color: var(--nuit);
  color: var(--texte);
  font-family: var(--police-texte);
  font-size: 16px;
  line-height: 1.6;
}

::selection { background: rgba(196, 87, 31, .55); color: var(--lavande-claire); }

:focus-visible {
  outline: 2px solid var(--ambre);
  outline-offset: 3px;
  border-radius: 4px;
}

.evitement {
  position: absolute;
  left: -999px;
  top: 8px;
  z-index: 10;
  padding: 10px 18px;
  background: var(--elevation);
  color: var(--lavande-claire);
  border-radius: var(--rayon-sm);
}
.evitement:focus-visible { left: 8px; }

/* ——— En-tête ——— */

.entete {
  position: sticky;
  top: 0;
  z-index: 5;
  display: flex;
  align-items: center;
  gap: 28px;
  min-height: 72px;
  padding: 13px clamp(20px, 5vw, 64px);
  background: rgba(0, 4, 23, .82);
  -webkit-backdrop-filter: blur(16px) saturate(115%);
  backdrop-filter: blur(16px) saturate(115%);
  border-bottom: 1px solid var(--bordure);
}

.marque, .marque-pied {
  font-family: var(--police-titre);
  font-size: 26px;
  font-weight: 800;
  letter-spacing: .11em;
  line-height: 1;
  text-transform: uppercase;
  color: var(--lavande-claire);
  text-decoration: none;
}
.marque em, .marque-pied em { font-style: normal; color: var(--chrome); }
.marque em { -webkit-text-stroke: .35px rgba(255, 255, 255, .28); }

.navigation {
  display: flex;
  gap: 4px;
  margin-left: auto;
  flex-wrap: wrap;
}
.navigation a {
  display: inline-flex;
  align-items: center;
  min-height: var(--cible-min);
  padding: 0 14px;
  color: var(--lavande);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  text-decoration: none;
  border-radius: var(--rayon-sm);
  transition: color var(--duree) var(--ease), background var(--duree) var(--ease);
}
.navigation a:hover { color: var(--ambre-clair); background: rgba(8, 19, 43, .7); }

.pastille-live[hidden] { display: none; }

.pastille-live {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  min-height: var(--cible-min);
  padding: 0 18px;
  border: 1px solid rgba(196, 87, 31, .5);
  border-radius: var(--rayon-pilule);
  color: var(--ambre-clair);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  text-decoration: none;
  background: rgba(15, 13, 16, .72);
}
.pastille-live i {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--ambre);
  box-shadow: 0 0 14px rgba(196, 87, 31, .8);
  animation: pulsation 2.2s ease-in-out infinite;
}

@keyframes pulsation {
  0%, 100% { opacity: 1; }
  50% { opacity: .35; }
}

/* ——— Héros ——— */

.heros {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, .94fr) minmax(380px, 1.06fr);
  align-items: center;
  gap: clamp(24px, 4vw, 64px);
  max-width: 1320px;
  margin: 0 auto;
  min-height: min(820px, calc(100svh - 72px));
  padding: clamp(56px, 9vh, 108px) clamp(20px, 5vw, 64px) clamp(64px, 9vh, 104px);
  isolation: isolate;
}

.heros::before {
  content: "";
  position: absolute;
  inset: 8% 2% 4% 44%;
  z-index: -3;
  background: radial-gradient(ellipse at 54% 46%, rgba(102, 116, 143, .18), rgba(0, 19, 66, .1) 44%, transparent 72%);
  border-radius: 50%;
  filter: blur(20px);
}

.heros::after {
  content: "";
  position: absolute;
  right: clamp(20px, 5vw, 64px);
  bottom: 8%;
  left: clamp(20px, 5vw, 64px);
  z-index: -1;
  height: 1px;
  background: linear-gradient(90deg, rgba(174, 184, 202, .28), rgba(174, 184, 202, .06) 62%, transparent);
}

.heros-ville {
  position: absolute;
  inset: auto 0 0 0;
  height: 260px;
  z-index: -2;
  opacity: .22;
  background: linear-gradient(180deg, #001a4d, #00091f);
  clip-path: polygon(0 75%, 5% 75%, 5% 42%, 8% 42%, 8% 68%, 13% 68%, 13% 25%, 16% 25%, 16% 58%, 21% 58%, 21% 74%, 28% 74%, 28% 49%, 31% 49%, 31% 65%, 37% 65%, 37% 35%, 41% 35%, 41% 72%, 48% 72%, 48% 54%, 53% 54%, 53% 78%, 59% 78%, 59% 45%, 63% 45%, 63% 69%, 70% 69%, 70% 29%, 73% 29%, 73% 63%, 78% 63%, 78% 47%, 84% 47%, 84% 76%, 91% 76%, 91% 38%, 94% 38%, 94% 69%, 100% 69%, 100% 100%, 0 100%);
}

.heros-grain {
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  opacity: .12;
  mix-blend-mode: soft-light;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E");
}

.kicker {
  display: flex;
  align-items: center;
  gap: 13px;
  margin: 0 0 12px;
  color: var(--chrome);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .3em;
  text-transform: uppercase;
}
.kicker::before {
  content: "";
  width: 28px;
  height: 2px;
  background: var(--ambre);
  box-shadow: 0 0 8px rgba(196, 87, 31, .45);
}

.titre-heros {
  margin: 0;
  font-family: var(--police-titre);
  font-size: clamp(78px, 10.5vw, 142px);
  font-weight: 900;
  line-height: .72;
  letter-spacing: .018em;
  text-transform: uppercase;
  text-shadow: 0 18px 45px rgba(0, 0, 0, .68);
}
.titre-heros span { display: block; color: var(--lavande-claire); }
.titre-heros em {
  display: block;
  margin-left: .46em;
  color: var(--chrome);
  font-style: normal;
  letter-spacing: .12em;
  -webkit-text-stroke: 1px rgba(225, 230, 239, .22);
}

.filet-optique {
  position: relative;
  width: min(420px, 80%);
  height: 1px;
  margin: 26px 0;
  background: linear-gradient(90deg, transparent, var(--ambre), rgba(222, 122, 60, .18), transparent);
  box-shadow: 0 0 12px rgba(196, 87, 31, .38);
}
.filet-optique::before {
  content: "";
  position: absolute;
  left: 28px;
  top: -3px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--ambre-clair);
  box-shadow: 0 0 12px rgba(196, 87, 31, .68);
}

.tagline {
  max-width: 46ch;
  margin: 0 0 28px;
  color: var(--lavande);
  font-size: 18px;
}

.actions { display: flex; flex-wrap: wrap; gap: 14px; }

.bouton {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: var(--cible-min);
  padding: 10px 26px;
  border-radius: var(--rayon-sm);
  font-size: 15px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  text-decoration: none;
  transition: transform var(--duree) var(--ease), box-shadow var(--duree) var(--ease),
    background var(--duree) var(--ease), color var(--duree) var(--ease);
}
.bouton:hover { transform: translateY(-1px); }

.bouton-ambre {
  border: 1px solid rgba(222, 122, 60, .66);
  background: linear-gradient(168deg, rgba(15, 13, 16, .88), rgba(3, 8, 23, .94));
  color: var(--ambre-clair);
  box-shadow: inset 3px 0 0 var(--ambre), 0 8px 26px rgba(0, 0, 0, .28);
}
.bouton-ambre:hover { background: rgba(196, 87, 31, .12); box-shadow: inset 3px 0 0 var(--ambre-clair), 0 12px 30px rgba(0, 0, 0, .42); }

.bouton-chrome {
  border: 1px solid var(--bordure-forte);
  background: linear-gradient(168deg, rgba(8, 19, 43, .9), rgba(3, 8, 23, .9));
  color: var(--chrome-clair);
}
.bouton-chrome:hover { border-color: var(--chrome); color: var(--lavande-claire); }

.statut-live {
  margin: 22px 0 0;
  color: var(--texte-attenue);
  font-size: 14px;
}
.statut-live.en-direct { color: var(--ambre-clair); font-weight: 600; }

.heros-portrait {
  position: relative;
  margin: 0;
  justify-self: center;
  align-self: end;
}
.heros-portrait::after {
  content: "";
  position: absolute;
  right: 9%;
  bottom: 5%;
  left: 7%;
  z-index: -1;
  height: 20%;
  background: #00020a;
  border-radius: 50%;
  filter: blur(28px);
}
.heros-portrait img {
  display: block;
  width: min(540px, 78vw);
  height: auto;
  filter: saturate(.9) contrast(1.06) drop-shadow(0 32px 58px rgba(0, 0, 0, .7));
  -webkit-mask-image: radial-gradient(76% 78% at 50% 43%, #000 58%, rgba(0, 0, 0, .92) 70%, transparent 97%);
  mask-image: radial-gradient(76% 78% at 50% 43%, #000 58%, rgba(0, 0, 0, .92) 70%, transparent 97%);
}

/* ——— Sections ——— */

.section {
  max-width: 1280px;
  margin: 0 auto;
  padding: clamp(56px, 8vh, 88px) clamp(20px, 5vw, 64px);
}

.section + .section { border-top: 1px solid rgba(174, 184, 202, .08); }

.section-entete { margin-bottom: 30px; }

h2 {
  margin: 0;
  font-family: var(--police-titre);
  font-size: clamp(34px, 5vw, 52px);
  font-weight: 800;
  letter-spacing: .04em;
  line-height: 1;
  text-transform: uppercase;
  color: var(--lavande-claire);
}

.sous-titre {
  margin: 40px 0 18px;
  font-family: var(--police-titre);
  font-size: 26px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--chrome);
}

.grille {
  display: grid;
  gap: 18px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.grille-planning { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.grille-videos { grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); }
.grille-reseaux { grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); }

.carte {
  padding: 24px;
  background:
    linear-gradient(145deg, rgba(225, 230, 239, .035), transparent 34%),
    linear-gradient(168deg, rgba(8, 19, 43, .9), rgba(3, 8, 23, .96));
  border: 1px solid var(--bordure);
  border-radius: var(--rayon-lg);
  box-shadow: var(--ombre);
}

.carte-jour { position: relative; overflow: hidden; border-top-color: rgba(174, 184, 202, .28); }
.carte-jour::after { content: ""; position: absolute; inset: auto -15% -55% 32%; height: 110px; background: radial-gradient(ellipse, rgba(0, 19, 66, .5), transparent 70%); pointer-events: none; }

.carte-attente { color: var(--texte-attenue); font-size: 14px; }

.carte-jour .jour {
  margin: 0 0 4px;
  font-family: var(--police-titre);
  font-size: 24px;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--lavande-claire);
}
.carte-jour .creneau { margin: 0 0 10px; color: var(--ambre-clair); font-weight: 700; font-size: 14px; letter-spacing: .08em; }
.carte-jour .programme { margin: 0; color: var(--texte); font-weight: 600; }
.carte-jour .note { margin: 4px 0 0; }

.carte-video {
  overflow: hidden;
  padding: 0;
  transition: transform var(--duree) var(--ease), box-shadow var(--duree) var(--ease);
}
.carte-video img { filter: saturate(.78) contrast(1.08); border-bottom: 1px solid rgba(174, 184, 202, .13); }
.carte-video:hover { transform: translateY(-2px); box-shadow: var(--ombre-haute); }
.carte-video a { display: block; color: inherit; text-decoration: none; }
.carte-video img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.carte-video .infos { padding: 14px 16px 16px; }
.carte-video .titre {
  margin: 0 0 6px;
  font-size: 15px;
  font-weight: 600;
  color: var(--lavande-claire);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.carte-video .meta { margin: 0; font-size: 13px; color: var(--texte-attenue); }

.carte-reseau { display: flex; flex-direction: column; gap: 6px; min-height: 164px; text-decoration: none; background: linear-gradient(145deg, rgba(225, 230, 239, .035), transparent 32%), linear-gradient(165deg, rgba(15, 13, 16, .94), rgba(3, 8, 23, .96)); }
.carte-reseau .reseau {
  font-family: var(--police-titre);
  font-size: 22px;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--lavande-claire);
}
.carte-reseau .detail { color: var(--texte-attenue); font-size: 14px; }
.carte-reseau .lien { margin-top: auto; color: var(--chrome); font-weight: 700; font-size: 14px; letter-spacing: .04em; }
.carte-reseau .lien::after { content: " ↗"; color: var(--ambre-clair); }
li:has(> .carte-reseau) { padding: 0; }
.carte-reseau { padding: 24px; }
.carte-reseau:hover .lien { color: var(--ambre-clair); }

.badge {
  display: inline-block;
  margin: 0 0 12px;
  padding: 4px 14px;
  border: 1px solid var(--bordure-forte);
  border-radius: var(--rayon-pilule);
  color: var(--chrome-clair);
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.note { color: var(--texte-attenue); font-size: 13.5px; }

/* ——— Pied ——— */

.pied {
  margin-top: 40px;
  padding: 40px clamp(20px, 5vw, 56px) 48px;
  border-top: 1px solid var(--bordure);
  text-align: center;
}
.marque-pied { margin: 0 0 10px; font-size: 22px; }
#pied-liens { margin: 0 0 8px; }
#pied-liens a { display: inline-flex; align-items: center; min-height: var(--cible-min); padding: 0 4px; color: var(--lavande); text-decoration: none; margin: 0 6px; font-size: 14px; }
#pied-liens a:hover { color: var(--ambre-clair); }

/* ——— Réactif & préférences ——— */

@media (max-width: 860px) {
  .entete { min-height: 64px; }
  .heros { grid-template-columns: 1fr; min-height: auto; padding-top: 24px; text-align: left; }
  .heros-portrait { order: -1; }
  .heros-portrait img { width: min(390px, 82vw); }
  .heros::before { inset: 0 4% 44% 4%; }
  .titre-heros { font-size: clamp(72px, 22vw, 112px); }
  .navigation { display: none; }
}

@media (max-width: 520px) {
  .entete { gap: 12px; padding-inline: 16px; }
  .marque { font-size: 23px; }
  .pastille-live { margin-left: auto; padding-inline: 13px; }
  .heros { gap: 20px; padding-inline: 20px; }
  .heros-portrait img { width: min(340px, 92vw); }
  .titre-heros em { margin-left: .24em; }
  .actions { flex-direction: column; }
  .bouton { width: 100%; }
  .grille-videos, .grille-planning, .grille-reseaux { grid-template-columns: 1fr; }
  .section { padding-inline: 20px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .pastille-live i { animation: none; }
  .bouton, .carte-video { transition: none; }
}
