/* ══ ST LEU TV — ACCUEIL V2 ══ */

/* BRAND */
.stv-brand { display:flex; align-items:center; gap:10px; }
.stv-brand-logo {
  font-weight:900; font-size:1.15rem; letter-spacing:.02em;
  animation:stv-brand-in .6s ease both;
}
.stv-bl-stleu { color:#ff1744; }
.stv-bl-tv    { color:#ffffff; }
.stv-brand-slogan {
  font-size:.72rem; letter-spacing:.18em; text-transform:uppercase;
  color:var(--gold); margin-top:2px; opacity:.85;
}
@keyframes stv-brand-in {
  from { opacity:0; transform:translateX(-8px); }
  to   { opacity:1; transform:translateX(0); }
}

/* Topbar actions */
.topbar-actions { display:flex; align-items:center; gap:10px; }
.stv-share-btn {
  width:34px; height:34px; border-radius:50%;
  border:1px solid rgba(255,255,255,.15); background:rgba(255,255,255,.06);
  color:#fff; cursor:pointer; display:grid; place-items:center; transition:.18s;
}
.stv-share-btn:hover { background:rgba(255,255,255,.14); }

/* LOADER */
.stv-loader {
  position:absolute; inset:0; z-index:10;
  background:radial-gradient(circle at 25% 35%, rgba(255,23,68,.2), transparent 55%),
             linear-gradient(180deg,#06080d,#030407);
  display:flex; align-items:center; justify-content:center;
  transition:opacity .7s ease;
}
.stv-loader.hidden { opacity:0; pointer-events:none; }
.stv-loader-content { text-align:center; padding:30px; margin-top:-60px; }
.stv-loader-brand-wrap { margin-bottom:26px; }
.stv-loader-brand {
  font-weight:900; font-size:2.4rem; letter-spacing:.04em; line-height:1;
  animation:stv-loader-pulse 2s ease-in-out infinite;
}
.stv-loader-brand .stv-bl-stleu { color:#ff1744; text-shadow:0 0 40px rgba(255,23,68,.6); }
.stv-loader-brand .stv-bl-tv    { color:#ffffff; text-shadow:0 0 30px rgba(255,255,255,.3); }
.stv-loader-slogan {
  font-size:.75rem; letter-spacing:.25em; text-transform:uppercase;
  color:var(--gold); margin-top:10px; opacity:.75;
}
@keyframes stv-loader-pulse {
  0%,100% { transform:scale(1); }
  50% { transform:scale(1.03); filter:brightness(1.15); }
}
.stv-loader-bar {
  width:200px; height:3px; background:rgba(255,255,255,.08);
  border-radius:999px; overflow:hidden; margin:0 auto 10px;
}
.stv-loader-fill {
  height:100%; width:0%;
  background:linear-gradient(90deg,#ff1744,#ff6b6b,#fff);
  border-radius:999px; transition:width .35s ease;
}
.stv-loader-pct { font-size:.7rem; color:rgba(255,255,255,.3); font-family:var(--mono); }

/* CAPTION */
.direct-caption {
  display:flex; align-items:center; justify-content:space-between;
  gap:14px; padding:10px 16px;
  background:rgba(3,4,7,.8); border-top:1px solid rgba(255,255,255,.07);
  flex:none;
}
.stv-caption-main { flex:1; min-width:0; }
.stv-caption-btns { display:flex; align-items:center; gap:6px; flex:none; }
.stv-prog-title {
  font-size:clamp(.9rem,1.3vw,1.35rem); font-weight:800;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; color:#fff;
}
.stv-prog-next {
  font-size:.7rem; color:var(--muted); margin-top:3px;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.stv-prog-next:not(:empty)::before { content:'▶ '; color:var(--gold); font-size:.55rem; }

/* Progression */
.stv-progress-wrap { margin-top:7px; }
.stv-progress-bar {
  height:3px; background:rgba(255,255,255,.1);
  border-radius:999px; overflow:hidden;
}
.stv-progress-fill {
  height:100%; width:0%;
  background:linear-gradient(90deg,#ff1744,#ff6b6b);
  border-radius:999px; transition:width .5s linear;
}
.stv-progress-times {
  display:flex; justify-content:space-between;
  font-size:.62rem; color:rgba(255,255,255,.28);
  font-family:var(--mono); margin-top:3px;
}

/* Boutons caption */
.stv-ctrl-btn {
  width:34px; height:34px; border-radius:9px;
  border:1px solid rgba(255,255,255,.12); background:rgba(255,255,255,.05);
  color:#fff; cursor:pointer; font-size:.9rem;
  display:grid; place-items:center; transition:.15s; flex:none;
}
.stv-ctrl-btn:hover { background:rgba(255,255,255,.13); border-color:rgba(255,255,255,.22); }

/* RSS TICKER */
.stv-rss-panel {
  border:1px solid rgba(255,255,255,.08); border-radius:18px;
  background:rgba(255,255,255,.03); overflow:hidden; flex:none;
}
.stv-ticker-wrap {
  overflow:hidden; padding:0;
  height:36px; display:flex; align-items:center;
  background:rgba(255,23,68,.06);
}
.stv-ticker-track {
  white-space:nowrap; font-size:.75rem; font-weight:600;
  color:rgba(255,255,255,.75); padding-left:100%;
  animation:stv-ticker 35s linear infinite;
  display:inline-block;
}
@keyframes stv-ticker {
  from { transform:translateX(0); }
  to   { transform:translateX(-50%); }
}

/* MÉTÉO */
.weather-panel {
  border:1px solid rgba(255,255,255,.08); border-radius:18px;
  background:rgba(255,255,255,.03); overflow:hidden; flex:none;
}

/* VIDÉO À LA UNE */
.stv-une-panel {
  border:1px solid rgba(255,255,255,.08); border-radius:18px;
  background:rgba(255,255,255,.03); overflow:hidden;
  flex:1; min-height:0; display:flex; flex-direction:column;
}
.stv-une-back {
  font-size:.68rem; color:var(--gold); cursor:pointer;
  text-decoration:underline; transition:.15s;
}
.stv-une-back:hover { opacity:.7; }
.stv-une-featured { flex:1; padding:10px; display:flex; flex-direction:column; gap:10px; }
.stv-une-card {
  position:relative; border-radius:14px; overflow:hidden;
  cursor:pointer; transition:.2s;
  box-shadow:0 8px 24px rgba(0,0,0,.4);
}
.stv-une-card:hover { transform:scale(1.02); box-shadow:0 12px 32px rgba(0,0,0,.5); }
.stv-une-card.playing { outline:2px solid #ff1744; }
.stv-une-thumb-big {
  width:100%; aspect-ratio:16/9; object-fit:cover; display:block;
  background:#111;
}
.stv-une-overlay {
  position:absolute; inset:0;
  background:linear-gradient(180deg,transparent 40%,rgba(0,0,0,.85) 100%);
  display:flex; flex-direction:column; justify-content:flex-end; padding:12px;
}
.stv-une-play-btn {
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  width:52px; height:52px; border-radius:50%;
  background:rgba(255,23,68,.85); border:2px solid rgba(255,255,255,.3);
  display:grid; place-items:center; font-size:1.3rem;
  transition:.2s; backdrop-filter:blur(4px);
}
.stv-une-card:hover .stv-une-play-btn { background:#ff1744; transform:translate(-50%,-50%) scale(1.1); }
.stv-une-card.playing .stv-une-play-btn { background:#ff6b6b; }
.stv-une-title-big { font-size:.85rem; font-weight:800; color:#fff; line-height:1.3; }
.stv-une-meta-big { font-size:.65rem; color:rgba(255,255,255,.55); margin-top:3px; }
.stv-une-dur-badge {
  position:absolute; top:8px; right:8px;
  background:rgba(0,0,0,.8); color:#fff; font-size:.65rem;
  font-weight:700; padding:2px 7px; border-radius:5px;
  font-family:var(--mono);
}
.stv-rss-loading { padding:14px; font-size:.75rem; color:var(--muted); }

/* AGENDA */
.stv-agenda-panel {
  border:1px solid rgba(255,255,255,.08); border-radius:18px;
  background:rgba(255,255,255,.03); overflow:hidden; flex:none;
}
.stv-agenda-list { padding:6px 0; }
.stv-agenda-item {
  display:flex; align-items:center; gap:10px; padding:8px 12px;
  border-bottom:1px solid rgba(255,255,255,.05);
}
.stv-agenda-item:last-child { border-bottom:none; }
.stv-agenda-date {
  width:40px; text-align:center; flex:none;
  background:rgba(255,23,68,.1); border:1px solid rgba(255,23,68,.2);
  border-radius:9px; padding:4px 0;
}
.stv-agenda-day { font-size:.8rem; font-weight:900; color:#ff1744; }
.stv-agenda-mon { font-size:.55rem; color:var(--muted); text-transform:uppercase; letter-spacing:.07em; }
.stv-agenda-body { flex:1; min-width:0; }
.stv-agenda-title { font-size:.74rem; font-weight:700; color:#fff; line-height:1.3; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.stv-agenda-lieu { font-size:.62rem; color:var(--gold); margin-top:1px; }
.stv-agenda-empty { padding:12px; font-size:.74rem; color:var(--muted); }

/* MODAL PARTAGE */
.stv-share-modal {
  position:fixed; inset:0; z-index:200;
  background:rgba(0,0,0,.75); backdrop-filter:blur(6px);
  display:none; align-items:center; justify-content:center;
}
.stv-share-modal.show { display:flex; animation:stv-fadein .2s; }
@keyframes stv-fadein { from{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)} }
.stv-share-card {
  background:#0d1117; border:1px solid rgba(255,255,255,.12);
  border-radius:20px; padding:26px; width:300px; max-width:90vw;
  text-align:center; position:relative; box-shadow:0 24px 60px rgba(0,0,0,.6);
}
.stv-share-title { font-size:1rem; font-weight:800; margin-bottom:18px; color:#fff; }
.stv-share-btns { display:flex; flex-direction:column; gap:9px; }
.stv-sh-btn {
  display:flex; align-items:center; justify-content:center; gap:9px;
  padding:11px 18px; border-radius:11px; font-size:.88rem; font-weight:700;
  cursor:pointer; text-decoration:none; color:#fff; border:none; transition:.15s;
}
.stv-sh-wa { background:#25D366; } .stv-sh-wa:hover { background:#1db954; }
.stv-sh-fb { background:#1877F2; } .stv-sh-fb:hover { background:#0e68d9; }
.stv-sh-copy { background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.15); }
.stv-sh-copy:hover { background:rgba(255,255,255,.18); }
.stv-share-close {
  position:absolute; top:10px; right:13px;
  background:none; border:none; color:var(--muted); font-size:1rem; cursor:pointer;
}

/* MOBILE */
@media (max-width:768px) {
  .direct-shell {
    grid-template-columns:1fr !important;
    height:auto !important; gap:0 !important; padding:0 !important;
  }
  .direct-stage { height:auto !important; grid-template-rows:auto minmax(0,56vw) auto !important; }
  .video-wrap { min-height:56vw !important; }
  .direct-info-panel {
    max-height:none !important; overflow:visible !important;
    padding:10px !important; gap:8px !important;
    grid-template-rows:auto !important;
    display:flex !important; flex-direction:column !important;
  }
  .stv-une-panel { min-height:260px; }
  body.direct-lock { height:auto !important; overflow:auto !important; }
  .topbar { position:sticky; top:0; margin-top:0 !important; }
  .stv-brand-slogan { display:none; }
  .footer { display:block !important; }
  .container { width:100% !important; }
}

/* SCROLLBARS */
.stv-agenda-list::-webkit-scrollbar,
.stv-une-featured::-webkit-scrollbar { width:3px; }
.stv-agenda-list::-webkit-scrollbar-thumb,
.stv-une-featured::-webkit-scrollbar-thumb { background:rgba(255,255,255,.12); border-radius:999px; }

/* PLEIN ÉCRAN */
:fullscreen .video-wrap, :-webkit-full-screen .video-wrap { border-radius:0; }
:fullscreen video, :-webkit-full-screen video { width:100%; height:100%; object-fit:contain; }

/* Date largeur fixe — empêche le bloc de bouger */
#directDate { 
  font-variant-numeric: tabular-nums;
  min-width: 88px;
  display: inline-block;
}
#directClock {
  font-variant-numeric: tabular-nums;
}
.direct-datebox .mini-tile {
  min-width: 0;
  overflow: hidden;
}


/* LOT ACCUEIL 2 DESIGN V1 — différenciation visuelle isolée */
body.accueil-2-page {
  min-height:100vh;
  background:
    radial-gradient(circle at 18% 8%, rgba(255,23,68,.16), transparent 34%),
    radial-gradient(circle at 84% 18%, rgba(201,162,39,.10), transparent 30%),
    linear-gradient(180deg, #04060b 0%, #080b12 48%, #030407 100%);
}

body.accueil-2-page::before {
  content:'';
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:-1;
  background:
    linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px);
  background-size:44px 44px;
  mask-image:linear-gradient(to bottom, rgba(0,0,0,.8), transparent 78%);
}

body.accueil-2-page .topbar {
  margin-top:14px;
}

.accueil2-hero {
  margin-top:18px;
  margin-bottom:16px;
  padding:24px 24px 22px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:26px;
  background:
    linear-gradient(135deg, rgba(255,23,68,.18), rgba(255,255,255,.045)),
    rgba(4,6,11,.72);
  box-shadow:0 22px 70px rgba(0,0,0,.35);
  position:relative;
  overflow:hidden;
}

.accueil2-hero::after {
  content:'';
  position:absolute;
  right:-120px;
  top:-140px;
  width:340px;
  height:340px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(255,23,68,.24), transparent 68%);
  pointer-events:none;
}

.accueil2-hero-kicker {
  color:#c9a227;
  font-size:.72rem;
  font-weight:900;
  letter-spacing:.22em;
  text-transform:uppercase;
  margin-bottom:8px;
}

.accueil2-hero h1 {
  margin:0;
  color:#fff;
  font-size:clamp(2.1rem, 5vw, 4.4rem);
  line-height:.92;
  letter-spacing:-.05em;
  text-transform:uppercase;
}

.accueil2-hero p {
  max-width:760px;
  margin:12px 0 0;
  color:rgba(255,255,255,.72);
  font-size:clamp(.95rem, 1.6vw, 1.08rem);
  line-height:1.55;
}

.accueil2-hero-tags {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:16px;
}

.accueil2-hero-tags span {
  display:inline-flex;
  align-items:center;
  min-height:30px;
  padding:0 12px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:999px;
  background:rgba(255,255,255,.06);
  color:rgba(255,255,255,.82);
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.06em;
  text-transform:uppercase;
}

body.accueil-2-page .direct-shell {
  border:1px solid rgba(255,255,255,.11);
  border-radius:28px;
  padding:14px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.055), rgba(255,255,255,.025)),
    rgba(2,4,9,.72);
  box-shadow:0 28px 90px rgba(0,0,0,.48);
}

body.accueil-2-page .direct-stage {
  border:1px solid rgba(255,255,255,.10);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06);
}

body.accueil-2-page .direct-info-panel > div,
body.accueil-2-page .direct-datebox .mini-tile {
  border-color:rgba(255,255,255,.11);
  background:linear-gradient(180deg, rgba(255,255,255,.07), rgba(255,255,255,.028));
}

body.accueil-2-page .stv-une-panel {
  box-shadow:0 14px 34px rgba(0,0,0,.30);
}

body.accueil-2-page .footer {
  opacity:.72;
}

@media (max-width:768px) {
  body.accueil-2-page .topbar {
    margin-top:0;
  }

  .accueil2-hero {
    margin-top:10px;
    border-radius:20px;
    padding:18px 16px;
  }

  .accueil2-hero h1 {
    font-size:2.25rem;
  }

  body.accueil-2-page .direct-shell {
    border-radius:20px;
    padding:8px;
  }
}


/* LOT ACCUEIL 2 LAYOUT V1 — composition premium sans deuxième menu */
body.accueil-2-page main.container {
  margin-top:18px;
}

body.accueil-2-page .direct-shell {
  gap:16px;
  padding:16px;
  border-radius:30px;
  border:1px solid rgba(255,255,255,.12);
  background:
    radial-gradient(circle at 20% 0%, rgba(255,23,68,.10), transparent 34%),
    linear-gradient(180deg, rgba(255,255,255,.065), rgba(255,255,255,.025)),
    rgba(3,5,10,.86);
  box-shadow:
    0 30px 90px rgba(0,0,0,.56),
    inset 0 1px 0 rgba(255,255,255,.06);
}

body.accueil-2-page .direct-stage {
  overflow:hidden;
  border-radius:24px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(0,0,0,.42);
}

body.accueil-2-page .direct-top {
  padding:12px 14px;
  background:linear-gradient(90deg, rgba(255,23,68,.13), rgba(255,255,255,.025));
  border-bottom:1px solid rgba(255,255,255,.08);
}

body.accueil-2-page .video-wrap {
  background:#000;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.04);
}

body.accueil-2-page .direct-caption {
  padding:13px 14px;
  background:linear-gradient(180deg, rgba(255,255,255,.055), rgba(255,255,255,.025));
  border-top:1px solid rgba(255,255,255,.08);
}

body.accueil-2-page .direct-info-panel {
  gap:12px;
}

body.accueil-2-page .direct-info-panel > div,
body.accueil-2-page .direct-datebox .mini-tile {
  border-radius:18px;
  border:1px solid rgba(255,255,255,.12);
  background:
    linear-gradient(180deg, rgba(255,255,255,.075), rgba(255,255,255,.028)),
    rgba(5,8,15,.68);
  box-shadow:0 12px 34px rgba(0,0,0,.24);
}

body.accueil-2-page .compact-head {
  padding:10px 12px;
  border-bottom:1px solid rgba(255,255,255,.075);
}

body.accueil-2-page .compact-head strong {
  letter-spacing:.03em;
}

body.accueil-2-page .stv-une-panel {
  min-height:275px;
}

body.accueil-2-page .stv-une-card {
  border-radius:18px;
  min-height:190px;
  box-shadow:0 16px 44px rgba(0,0,0,.38);
}

body.accueil-2-page .stv-une-title-big {
  font-size:.92rem;
}

body.accueil-2-page .weather-row,
body.accueil-2-page .stv-agenda-item {
  margin:0 8px;
  border-radius:12px;
}

body.accueil-2-page .weather-row:hover,
body.accueil-2-page .stv-agenda-item:hover {
  background:rgba(255,255,255,.045);
}

body.accueil-2-page .footer {
  margin-top:18px;
}

@media (min-width:1100px) {
  body.accueil-2-page .direct-shell {
    grid-template-columns:minmax(0, 1.62fr) minmax(330px, .72fr);
  }
}

@media (max-width:768px) {
  body.accueil-2-page main.container {
    margin-top:10px;
  }

  body.accueil-2-page .direct-shell {
    padding:8px;
    gap:10px;
    border-radius:22px;
  }

  body.accueil-2-page .direct-stage {
    border-radius:18px;
  }

  body.accueil-2-page .direct-info-panel {
    gap:10px;
  }

  body.accueil-2-page .stv-une-card {
    min-height:210px;
  }
}

/* ===== ACCUEIL 2 LAYOUT V2 — 20260616 ===== */

/*
  Objectif :
  - réduire la colonne droite ;
  - alléger l'effet "blocs empilés" ;
  - rendre météo / agenda / à-la-une plus compacts ;
  - ne cibler que /accueil-2/ via .accueil-2-page.
*/

.accueil-2-page {
  --a2-layout-gap: clamp(14px, 1.6vw, 22px);
  --a2-right-width: clamp(278px, 23vw, 330px);
  --a2-soft-radius: 22px;
  --a2-card-radius: 16px;
  --a2-soft-border: rgba(255, 255, 255, 0.12);
  --a2-soft-bg: rgba(255, 255, 255, 0.055);
  --a2-soft-bg-2: rgba(255, 255, 255, 0.035);
}

/* Cadre général plus maîtrisé */
.accueil-2-page main,
.accueil-2-page .site-main,
.accueil-2-page .page-main {
  max-width: min(1480px, calc(100vw - 32px));
  margin-left: auto;
  margin-right: auto;
}

/* Réduction nette de la colonne droite */
.accueil-2-page .direct-shell {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) var(--a2-right-width) !important;
  gap: var(--a2-layout-gap) !important;
  align-items: start !important;
}

@media (min-width: 1500px) {
  .accueil-2-page {
    --a2-right-width: 340px;
  }
}

@media (max-width: 1060px) {
  .accueil-2-page .direct-shell {
    grid-template-columns: 1fr !important;
  }
}

/* Sécurité largeur : le direct garde la priorité */
.accueil-2-page .direct-shell > * {
  min-width: 0;
}

.accueil-2-page .direct-shell > :last-child:not(:first-child) {
  width: 100%;
  max-width: var(--a2-right-width);
}

@media (max-width: 1060px) {
  .accueil-2-page .direct-shell > :last-child:not(:first-child) {
    max-width: none;
  }
}

/* Panneau droit plus fin, moins "pile de cartes" */
.accueil-2-page .direct-shell > :last-child:not(:first-child) {
  border: 1px solid var(--a2-soft-border);
  border-radius: var(--a2-soft-radius);
  background:
    linear-gradient(180deg, rgba(255,255,255,0.07), rgba(255,255,255,0.025));
  padding: 12px;
  box-shadow: none !important;
  overflow: hidden;
}

/* Les modules de droite deviennent des sections fondues plutôt que de gros blocs séparés */
.accueil-2-page .direct-shell > :last-child:not(:first-child) > * {
  margin: 0 !important;
  padding: 14px 10px !important;
  border-radius: 0 !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(255,255,255,0.10) !important;
  background: transparent !important;
  box-shadow: none !important;
}

.accueil-2-page .direct-shell > :last-child:not(:first-child) > *:last-child {
  border-bottom: 0 !important;
}

/* Titres de modules plus sobres */
.accueil-2-page .direct-shell > :last-child:not(:first-child) h2,
.accueil-2-page .direct-shell > :last-child:not(:first-child) h3,
.accueil-2-page .direct-shell > :last-child:not(:first-child) .title,
.accueil-2-page .direct-shell > :last-child:not(:first-child) .card-title {
  margin-bottom: 8px !important;
  font-size: clamp(0.86rem, 0.8vw, 0.98rem) !important;
  line-height: 1.2 !important;
  letter-spacing: 0.02em;
}

/* Météo : compatible avec une liste scrollable si plusieurs villes sont présentes */
.accueil-2-page :is(.meteo, .météo, .weather, .weather-card, .meteo-card) :is(ul, ol, .cities, .city-list, .weather-list, .meteo-list, .items) {
  display: flex !important;
  gap: 8px !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  scroll-snap-type: x proximity;
  padding-bottom: 6px !important;
  scrollbar-width: thin;
}

.accueil-2-page :is(.meteo, .météo, .weather, .weather-card, .meteo-card) :is(li, .city, .city-item, .weather-item, .meteo-item) {
  flex: 0 0 auto !important;
  min-width: 108px;
  scroll-snap-align: start;
  border-radius: 14px;
  background: var(--a2-soft-bg);
  border: 1px solid rgba(255,255,255,0.09);
  padding: 9px 10px;
}

/* Météo : évite les gros pavés verticaux */
.accueil-2-page :is(.meteo, .météo, .weather, .weather-card, .meteo-card) {
  max-height: 190px;
  overflow: hidden;
}

/* Agenda : plus lisible, plus dense, avec scroll si plusieurs entrées */
.accueil-2-page :is(.agenda, .agenda-card, .events, .events-card) :is(ul, ol, .agenda-list, .events-list, .items) {
  max-height: 270px;
  overflow-y: auto;
  padding-right: 4px;
  scrollbar-width: thin;
}

.accueil-2-page :is(.agenda, .agenda-card, .events, .events-card) :is(li, article, .event, .event-item, .agenda-item) {
  padding: 9px 0 !important;
  border-bottom: 1px solid rgba(255,255,255,0.08);
}

.accueil-2-page :is(.agenda, .agenda-card, .events, .events-card) :is(li, article, .event, .event-item, .agenda-item):last-child {
  border-bottom: 0;
}

/* À la une : moins dominant */
.accueil-2-page :is(.a-la-une, .alaune, .featured, .featured-videos, .featured-section, [data-block="featured"]) {
  max-height: 330px;
  overflow: hidden;
}

.accueil-2-page :is(.a-la-une, .alaune, .featured, .featured-videos, .featured-section, [data-block="featured"]) :is(.video-card, .featured-card, .featured-item, article, li, .card):nth-of-type(n+3) {
  display: none !important;
}

/* Si le bloc À la une contient une grille, on limite visuellement à 2 contenus */
.accueil-2-page :is(.a-la-une, .alaune, .featured, .featured-videos, .featured-section, [data-block="featured"]) :is(.grid, .cards, .list, ul, ol) {
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
}

/* Images / vidéos dans À la une : moins hautes */
.accueil-2-page :is(.a-la-une, .alaune, .featured, .featured-videos, .featured-section, [data-block="featured"]) img,
.accueil-2-page :is(.a-la-une, .alaune, .featured, .featured-videos, .featured-section, [data-block="featured"]) video,
.accueil-2-page :is(.a-la-une, .alaune, .featured, .featured-videos, .featured-section, [data-block="featured"]) iframe {
  max-height: 118px;
  object-fit: cover;
  border-radius: 12px;
}

/* Le direct reste l’élément principal */
.accueil-2-page .direct-stage,
.accueil-2-page .video-wrap,
.accueil-2-page .player-wrap,
.accueil-2-page .live-player {
  min-width: 0;
}

.accueil-2-page .direct-stage {
  border-radius: 26px;
}

/* Respiration globale plus fine */
.accueil-2-page .direct-caption,
.accueil-2-page .direct-top,
.accueil-2-page .direct-meta {
  margin-bottom: clamp(8px, 1vw, 14px);
}

/* Mobile : modules droits redeviennent lisibles en pleine largeur */
@media (max-width: 760px) {
  .accueil-2-page {
    --a2-layout-gap: 14px;
  }

  .accueil-2-page main,
  .accueil-2-page .site-main,
  .accueil-2-page .page-main {
    max-width: calc(100vw - 20px);
  }

  .accueil-2-page .direct-shell > :last-child:not(:first-child) {
    padding: 10px;
    border-radius: 18px;
  }

  .accueil-2-page :is(.meteo, .météo, .weather, .weather-card, .meteo-card) :is(li, .city, .city-item, .weather-item, .meteo-item) {
    min-width: 126px;
  }

  .accueil-2-page :is(.a-la-une, .alaune, .featured, .featured-videos, .featured-section, [data-block="featured"]) {
    max-height: none;
  }
}

/* ===== FIN ACCUEIL 2 LAYOUT V2 ===== */


/* ===== ACCUEIL 2 V2B — COLONNE DROITE CIBLÉE ===== */

/*
  Correction basée sur la structure réelle :
  .direct-info-panel
  .direct-datebox
  .stv-rss-panel
  .weather-panel / .weather-grid
  .stv-une-panel / .stv-une-featured
  .stv-agenda-panel / .stv-agenda-list
*/

.accueil-2-page {
  --a2-right-column-width: clamp(286px, 21vw, 318px);
}

/* La colonne droite devient vraiment secondaire */
.accueil-2-page .direct-shell {
  grid-template-columns: minmax(0, 1fr) var(--a2-right-column-width) !important;
  gap: clamp(14px, 1.4vw, 20px) !important;
}

/* Panneau droit continu, moins "pile de blocs" */
.accueil-2-page .direct-info-panel {
  width: 100% !important;
  max-width: var(--a2-right-column-width) !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
  padding: 12px 14px !important;
  border-radius: 24px !important;
  overflow: hidden !important;
}

/* Ordre éditorial corrigé : l'agenda remonte avant À la une */
.accueil-2-page .direct-datebox {
  order: 1;
}

.accueil-2-page .weather-panel {
  order: 2;
}

.accueil-2-page .stv-agenda-panel {
  order: 3;
}

.accueil-2-page .stv-une-panel {
  order: 4;
}

.accueil-2-page .stv-rss-panel {
  order: 5;
}

/* Tous les modules deviennent des sections fines */
.accueil-2-page .direct-info-panel > .direct-datebox,
.accueil-2-page .direct-info-panel > .stv-rss-panel,
.accueil-2-page .direct-info-panel > .weather-panel,
.accueil-2-page .direct-info-panel > .stv-une-panel,
.accueil-2-page .direct-info-panel > .stv-agenda-panel {
  margin: 0 !important;
  padding: 11px 0 !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(255,255,255,0.10) !important;
  background: transparent !important;
  box-shadow: none !important;
}

.accueil-2-page .direct-info-panel > .stv-rss-panel {
  border-bottom: 0 !important;
}

/* Date / heure : moins de hauteur perdue */
.accueil-2-page .direct-datebox {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 8px !important;
}

.accueil-2-page .direct-datebox > * {
  min-height: 42px !important;
  padding: 9px 10px !important;
  border-radius: 14px !important;
}

.accueil-2-page .direct-datebox .mini-label {
  font-size: 0.64rem !important;
  line-height: 1 !important;
  margin-bottom: 4px !important;
}

.accueil-2-page .direct-datebox .mini-value {
  font-size: 0.78rem !important;
  line-height: 1.1 !important;
}

/* Titres compacts */
.accueil-2-page .compact-head {
  margin-bottom: 8px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 10px !important;
}

.accueil-2-page .compact-head strong {
  font-size: 0.78rem !important;
  letter-spacing: 0.04em !important;
}

.accueil-2-page .compact-head span {
  font-size: 0.68rem !important;
  opacity: 0.72 !important;
}

/* Météo : vraie ligne scrollable, plus liste verticale lourde */
.accueil-2-page .weather-panel {
  max-height: none !important;
  overflow: visible !important;
}

.accueil-2-page .weather-grid {
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 8px !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  padding: 1px 0 7px 0 !important;
  scroll-snap-type: x proximity;
  scrollbar-width: thin;
}

.accueil-2-page .weather-grid > * {
  flex: 0 0 132px !important;
  min-width: 132px !important;
  max-width: 132px !important;
  padding: 8px 9px !important;
  border-radius: 13px !important;
  scroll-snap-align: start;
}

.accueil-2-page .weather-grid strong,
.accueil-2-page .weather-grid b {
  font-size: 0.78rem !important;
  line-height: 1.1 !important;
}

.accueil-2-page .weather-grid small,
.accueil-2-page .weather-grid span,
.accueil-2-page .weather-grid p {
  font-size: 0.66rem !important;
  line-height: 1.2 !important;
}

/* Agenda : doit être visible dès l'ouverture */
.accueil-2-page .stv-agenda-panel {
  min-height: 118px !important;
}

.accueil-2-page .stv-agenda-list {
  max-height: 152px !important;
  overflow-y: auto !important;
  padding-right: 4px !important;
  scrollbar-width: thin;
}

.accueil-2-page .stv-agenda-list > * {
  padding: 7px 0 !important;
  border-bottom: 1px solid rgba(255,255,255,0.08) !important;
}

.accueil-2-page .stv-agenda-list > *:last-child {
  border-bottom: 0 !important;
}

/* À la une : compacte, ne doit plus pousser l'agenda hors écran */
.accueil-2-page .stv-une-panel {
  max-height: 190px !important;
  overflow: hidden !important;
}

.accueil-2-page .stv-une-featured {
  max-height: 132px !important;
  overflow: hidden !important;
}

.accueil-2-page .stv-une-featured > * {
  max-height: 132px !important;
  overflow: hidden !important;
  border-radius: 14px !important;
}

.accueil-2-page .stv-une-featured img,
.accueil-2-page .stv-une-featured video,
.accueil-2-page .stv-une-featured iframe {
  max-height: 106px !important;
  object-fit: cover !important;
}

/* Texte À la une moins massif */
.accueil-2-page .stv-une-featured h2,
.accueil-2-page .stv-une-featured h3,
.accueil-2-page .stv-une-featured strong,
.accueil-2-page .stv-une-featured b {
  font-size: 0.82rem !important;
  line-height: 1.12 !important;
}

.accueil-2-page .stv-une-featured p,
.accueil-2-page .stv-une-featured span,
.accueil-2-page .stv-une-featured small {
  font-size: 0.68rem !important;
  line-height: 1.15 !important;
}

/* RSS descend en bas : information utile mais non prioritaire */
.accueil-2-page .stv-rss-panel {
  max-height: 62px !important;
  overflow: hidden !important;
}

.accueil-2-page .stv-rss-panel .stv-rss-ticker,
.accueil-2-page .stv-rss-panel .stv-rss-loading,
.accueil-2-page .stv-rss-panel .stv-rss-item {
  font-size: 0.68rem !important;
  line-height: 1.2 !important;
}

/* Mobile : retour en colonne simple propre */
@media (max-width: 1060px) {
  .accueil-2-page .direct-shell {
    grid-template-columns: 1fr !important;
  }

  .accueil-2-page .direct-info-panel {
    max-width: none !important;
  }
}

@media (max-width: 720px) {
  .accueil-2-page .direct-datebox {
    grid-template-columns: 1fr 1fr !important;
  }

  .accueil-2-page .weather-grid > * {
    flex-basis: 140px !important;
    min-width: 140px !important;
    max-width: 140px !important;
  }

  .accueil-2-page .stv-une-panel {
    max-height: none !important;
  }

  .accueil-2-page .stv-une-featured {
    max-height: none !important;
  }
}

/* ===== FIN ACCUEIL 2 V2B — COLONNE DROITE CIBLÉE ===== */


/* ===== ACCUEIL 2 V2C — STRUCTURE RÉELLE ===== */

body.accueil-2-page {
  --a2-page-width-v2c: min(1720px, calc(100vw - 24px));
  --a2-right-width-v2c: clamp(380px, 25vw, 430px);
  --a2-green-v2c: #19d27c;
}

/* Largeur globale élargie au niveau du bloc menu */
body.accueil-2-page main.container {
  width: var(--a2-page-width-v2c) !important;
  max-width: var(--a2-page-width-v2c) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Direct + colonne droite */
body.accueil-2-page .direct-shell {
  grid-template-columns: minmax(0, 1fr) var(--a2-right-width-v2c) !important;
  gap: clamp(16px, 1.5vw, 24px) !important;
}

body.accueil-2-page .direct-info-panel {
  width: 100% !important;
  max-width: var(--a2-right-width-v2c) !important;
  padding: 12px 14px !important;
  gap: 0 !important;
}

/* Ordre demandé */
body.accueil-2-page .direct-datebox { order: 1 !important; }
body.accueil-2-page .stv-rss-panel { order: 2 !important; }
body.accueil-2-page .weather-panel { order: 3 !important; }
body.accueil-2-page .stv-agenda-panel { order: 4 !important; }
body.accueil-2-page .stv-une-panel { order: 5 !important; }

/* Sections propres */
body.accueil-2-page .direct-info-panel > .direct-datebox,
body.accueil-2-page .direct-info-panel > .stv-rss-panel,
body.accueil-2-page .direct-info-panel > .weather-panel,
body.accueil-2-page .direct-info-panel > .stv-agenda-panel,
body.accueil-2-page .direct-info-panel > .stv-une-panel {
  padding: 9px 0 !important;
  margin: 0 !important;
  border-bottom: 1px solid rgba(255,255,255,0.10) !important;
  background: transparent !important;
  box-shadow: none !important;
}

body.accueil-2-page .direct-info-panel > .stv-une-panel {
  border-bottom: 0 !important;
}

/* RSS remonté et visible */
body.accueil-2-page .stv-rss-panel {
  max-height: 76px !important;
  overflow: hidden !important;
}

body.accueil-2-page .stv-ticker-wrap {
  height: 30px !important;
}

/* Météo : 2 villes côte à côte, scroll vertical par paire, pas horizontal */
body.accueil-2-page .weather-grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  grid-auto-rows: 84px !important;
  column-gap: 9px !important;
  row-gap: 0 !important;
  max-height: 84px !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  scroll-snap-type: y mandatory !important;
  scrollbar-width: thin;
  padding: 0 4px 0 0 !important;
}

body.accueil-2-page .weather-grid > * {
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  height: 84px !important;
  min-height: 84px !important;
  padding: 8px 9px !important;
  border-radius: 14px !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  scroll-snap-align: start !important;
}

body.accueil-2-page .weather-grid strong,
body.accueil-2-page .weather-grid b {
  font-size: .78rem !important;
  line-height: 1.05 !important;
}

body.accueil-2-page .weather-grid span,
body.accueil-2-page .weather-grid small,
body.accueil-2-page .weather-grid p {
  font-size: .65rem !important;
  line-height: 1.12 !important;
}

/* Agenda : 4 dates fixes, sans scroll */
body.accueil-2-page .stv-agenda-list {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 6px !important;
  max-height: none !important;
  overflow: visible !important;
  padding: 0 !important;
}

body.accueil-2-page .stv-agenda-item {
  padding: 7px 8px !important;
  gap: 8px !important;
  border-radius: 12px !important;
  border-bottom: 0 !important;
  background: rgba(255,255,255,0.045) !important;
}

body.accueil-2-page .stv-agenda-item:nth-child(n+5) {
  display: none !important;
}

body.accueil-2-page .stv-agenda-date {
  width: 38px !important;
  min-width: 38px !important;
  height: 38px !important;
  border-radius: 11px !important;
}

body.accueil-2-page .stv-agenda-title {
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: clip !important;
  font-size: .72rem !important;
  line-height: 1.15 !important;
}

body.accueil-2-page .stv-agenda-lieu,
body.accueil-2-page .stv-agenda-detail {
  font-size: .60rem !important;
  line-height: 1.12 !important;
  margin-top: 2px !important;
  color: rgba(255,255,255,0.66) !important;
}

/* À la une : 2 vidéos carrées côte à côte */
body.accueil-2-page .stv-une-featured {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 10px !important;
  max-height: none !important;
  overflow: visible !important;
  padding: 0 !important;
}

body.accueil-2-page .stv-une-card {
  aspect-ratio: 1 / 1 !important;
  min-height: 0 !important;
  max-height: none !important;
  border-radius: 16px !important;
  overflow: hidden !important;
}

body.accueil-2-page .stv-une-thumb-big {
  width: 100% !important;
  height: 100% !important;
  aspect-ratio: 1 / 1 !important;
  object-fit: cover !important;
}

body.accueil-2-page .stv-une-overlay {
  padding: 9px !important;
  background: linear-gradient(180deg, rgba(0,0,0,0.05), rgba(0,0,0,0.74)) !important;
}

/* Bouton play discret blanc cerclé vert */
body.accueil-2-page .stv-une-play-btn {
  width: 30px !important;
  height: 30px !important;
  font-size: .72rem !important;
  color: #fff !important;
  background: rgba(0,0,0,0.20) !important;
  border: 2px solid var(--a2-green-v2c) !important;
  border-radius: 999px !important;
  box-shadow: 0 0 0 1px rgba(255,255,255,0.16), 0 8px 18px rgba(0,0,0,0.35) !important;
}

body.accueil-2-page .stv-une-card:hover .stv-une-play-btn,
body.accueil-2-page .stv-une-card.playing .stv-une-play-btn {
  background: rgba(25,210,124,0.16) !important;
  border-color: var(--a2-green-v2c) !important;
  color: #fff !important;
  transform: translate(-50%,-50%) scale(1.04) !important;
}

body.accueil-2-page .stv-une-card.playing {
  outline: 2px solid rgba(25,210,124,0.72) !important;
}

body.accueil-2-page .stv-une-title-big {
  font-size: .68rem !important;
  line-height: 1.08 !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
}

body.accueil-2-page .stv-une-meta-big,
body.accueil-2-page .stv-une-dur-badge {
  font-size: .55rem !important;
}

/* Mobile */
@media (max-width: 1060px) {
  body.accueil-2-page main.container {
    width: calc(100vw - 20px) !important;
    max-width: calc(100vw - 20px) !important;
  }

  body.accueil-2-page .direct-shell {
    grid-template-columns: 1fr !important;
  }

  body.accueil-2-page .direct-info-panel {
    max-width: none !important;
  }
}

/* ===== FIN ACCUEIL 2 V2C — STRUCTURE RÉELLE ===== */


/* ===== ACCUEIL 2 V2D — COLONNE CALCULÉE ===== */

/*
  Calcul réel :
  - hauteur utile colonne droite auditée : 827px ;
  - ancien contenu mesuré : 970px ;
  - dépassement réel : 143px ;
  - À la une coupé : 90px.
  Objectif V2D : tout faire rentrer sans scroll global.
*/

body.accueil-2-page {
  --a2-right-width-v2d: 430px;
  --a2-green-v2d: #19d27c;
}

/* On conserve la largeur globale déjà bonne : 1720px mesurés */
body.accueil-2-page main.container {
  width: min(1720px, calc(100vw - 24px)) !important;
  max-width: min(1720px, calc(100vw - 24px)) !important;
}

body.accueil-2-page .direct-shell {
  grid-template-columns: minmax(0, 1fr) var(--a2-right-width-v2d) !important;
  gap: 24px !important;
}

body.accueil-2-page .direct-info-panel {
  width: var(--a2-right-width-v2d) !important;
  max-width: var(--a2-right-width-v2d) !important;
  height: 829px !important;
  max-height: 829px !important;
  overflow: hidden !important;
  display: flex !important;
  flex-direction: column !important;
  padding: 12px 14px !important;
}

/* Ordre final demandé : RSS dernier bloc */
body.accueil-2-page .direct-datebox { order: 1 !important; }
body.accueil-2-page .weather-panel { order: 2 !important; }
body.accueil-2-page .stv-agenda-panel { order: 3 !important; }
body.accueil-2-page .stv-une-panel { order: 4 !important; }
body.accueil-2-page .stv-rss-panel {
  order: 99 !important;
  margin-top: auto !important;
}

/* Sections : hauteur contrôlée */
body.accueil-2-page .direct-info-panel > .direct-datebox,
body.accueil-2-page .direct-info-panel > .weather-panel,
body.accueil-2-page .direct-info-panel > .stv-agenda-panel,
body.accueil-2-page .direct-info-panel > .stv-une-panel,
body.accueil-2-page .direct-info-panel > .stv-rss-panel {
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  border-bottom: 1px solid rgba(255,255,255,0.10) !important;
  background: transparent !important;
  box-shadow: none !important;
}

/* Date / heure : 64px */
body.accueil-2-page .direct-datebox {
  height: 64px !important;
  min-height: 64px !important;
  max-height: 64px !important;
  padding-top: 0 !important;
  padding-bottom: 10px !important;
}

body.accueil-2-page .direct-datebox .mini-tile {
  min-height: 48px !important;
  padding: 8px 10px !important;
}

/* Météo : 24 communes, 2 visibles par rangée, hauteur contrôlée */
body.accueil-2-page .weather-panel {
  height: 126px !important;
  min-height: 126px !important;
  max-height: 126px !important;
  padding-top: 9px !important;
  padding-bottom: 10px !important;
  overflow: hidden !important;
}

body.accueil-2-page .weather-panel .compact-head {
  height: 25px !important;
  margin-bottom: 7px !important;
}

body.accueil-2-page .weather-grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  grid-auto-rows: 72px !important;
  column-gap: 10px !important;
  row-gap: 0 !important;
  height: 72px !important;
  max-height: 72px !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  scroll-snap-type: y mandatory !important;
  scrollbar-width: none !important;
  padding: 0 !important;
}

body.accueil-2-page .weather-grid::-webkit-scrollbar {
  width: 0 !important;
  height: 0 !important;
}

body.accueil-2-page .weather-grid > *,
body.accueil-2-page .weather-city-card {
  height: 72px !important;
  min-height: 72px !important;
  max-height: 72px !important;
  min-width: 0 !important;
  max-width: none !important;
  padding: 7px 10px !important;
  border-radius: 14px !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  scroll-snap-align: start !important;
}

body.accueil-2-page .weather-grid strong {
  font-size: .76rem !important;
  line-height: 1.05 !important;
}

body.accueil-2-page .weather-grid span {
  font-size: .61rem !important;
  line-height: 1.08 !important;
}

body.accueil-2-page .weather-grid b {
  font-size: .78rem !important;
  line-height: 1 !important;
  margin-top: 3px !important;
}

/* Agenda : 4 dates fixes, compact mais détaillé */
body.accueil-2-page .stv-agenda-panel {
  height: 258px !important;
  min-height: 258px !important;
  max-height: 258px !important;
  padding-top: 9px !important;
  padding-bottom: 10px !important;
  overflow: hidden !important;
}

body.accueil-2-page .stv-agenda-panel .compact-head {
  height: 25px !important;
  margin-bottom: 7px !important;
}

body.accueil-2-page .stv-agenda-list {
  height: 208px !important;
  max-height: 208px !important;
  display: grid !important;
  grid-template-columns: 1fr !important;
  grid-template-rows: repeat(4, 49px) !important;
  gap: 4px !important;
  overflow: hidden !important;
  padding: 0 !important;
}

body.accueil-2-page .stv-agenda-item {
  min-height: 49px !important;
  max-height: 49px !important;
  padding: 5px 8px !important;
  gap: 8px !important;
  border-radius: 12px !important;
  border-bottom: 0 !important;
  background: rgba(255,255,255,0.045) !important;
}

body.accueil-2-page .stv-agenda-date {
  width: 34px !important;
  min-width: 34px !important;
  height: 34px !important;
  border-radius: 10px !important;
}

body.accueil-2-page .stv-agenda-day {
  font-size: .72rem !important;
  line-height: 1 !important;
}

body.accueil-2-page .stv-agenda-mon {
  font-size: .47rem !important;
  line-height: 1 !important;
}

body.accueil-2-page .stv-agenda-title {
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  font-size: .69rem !important;
  line-height: 1.05 !important;
}

body.accueil-2-page .stv-agenda-lieu,
body.accueil-2-page .stv-agenda-detail {
  font-size: .55rem !important;
  line-height: 1.05 !important;
  margin-top: 1px !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  color: rgba(255,255,255,0.66) !important;
}

/* À la une : 2 carrés visibles entièrement */
body.accueil-2-page .stv-une-panel {
  height: 198px !important;
  min-height: 198px !important;
  max-height: 198px !important;
  padding-top: 9px !important;
  padding-bottom: 10px !important;
  overflow: hidden !important;
}

body.accueil-2-page .stv-une-panel .compact-head {
  height: 25px !important;
  margin-bottom: 8px !important;
}

body.accueil-2-page .stv-une-featured {
  display: grid !important;
  grid-template-columns: repeat(2, 148px) !important;
  justify-content: start !important;
  gap: 12px !important;
  height: 148px !important;
  max-height: 148px !important;
  overflow: visible !important;
  padding: 0 !important;
}

body.accueil-2-page .stv-une-card {
  width: 148px !important;
  height: 148px !important;
  min-height: 148px !important;
  max-height: 148px !important;
  aspect-ratio: 1 / 1 !important;
  border-radius: 15px !important;
  overflow: hidden !important;
}

body.accueil-2-page .stv-une-thumb-big {
  width: 100% !important;
  height: 100% !important;
  aspect-ratio: 1 / 1 !important;
  object-fit: cover !important;
}

body.accueil-2-page .stv-une-overlay {
  padding: 8px !important;
  background: linear-gradient(180deg, rgba(0,0,0,0.05), rgba(0,0,0,0.76)) !important;
}

body.accueil-2-page .stv-une-play-btn {
  width: 28px !important;
  height: 28px !important;
  font-size: .68rem !important;
  color: #fff !important;
  background: rgba(0,0,0,0.20) !important;
  border: 2px solid var(--a2-green-v2d) !important;
  border-radius: 999px !important;
  box-shadow: 0 0 0 1px rgba(255,255,255,0.16), 0 8px 18px rgba(0,0,0,0.35) !important;
}

body.accueil-2-page .stv-une-card:hover .stv-une-play-btn,
body.accueil-2-page .stv-une-card.playing .stv-une-play-btn {
  background: rgba(25,210,124,0.16) !important;
  border-color: var(--a2-green-v2d) !important;
  transform: translate(-50%,-50%) scale(1.04) !important;
}

body.accueil-2-page .stv-une-card.playing {
  outline: 2px solid rgba(25,210,124,0.72) !important;
}

body.accueil-2-page .stv-une-title-big {
  font-size: .62rem !important;
  line-height: 1.05 !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
}

body.accueil-2-page .stv-une-meta-big,
body.accueil-2-page .stv-une-dur-badge {
  font-size: .50rem !important;
}

/* RSS : dernier bloc, en bas */
body.accueil-2-page .stv-rss-panel {
  height: 56px !important;
  min-height: 56px !important;
  max-height: 56px !important;
  padding-top: 7px !important;
  padding-bottom: 0 !important;
  overflow: hidden !important;
  border-bottom: 0 !important;
}

body.accueil-2-page .stv-rss-panel .compact-head {
  height: 20px !important;
  margin-bottom: 4px !important;
}

body.accueil-2-page .stv-ticker-wrap {
  height: 24px !important;
}

/* Mobile */
@media (max-width: 1060px) {
  body.accueil-2-page main.container {
    width: calc(100vw - 20px) !important;
    max-width: calc(100vw - 20px) !important;
  }

  body.accueil-2-page .direct-shell {
    grid-template-columns: 1fr !important;
  }

  body.accueil-2-page .direct-info-panel {
    width: 100% !important;
    max-width: none !important;
    height: auto !important;
    max-height: none !important;
  }
}

/* ===== FIN ACCUEIL 2 V2D — COLONNE CALCULÉE ===== */


/* ===== ACCUEIL 2 V2E — AJUSTEMENT COLONNE DROITE ===== */

/*
  Ajustement demandé :
  - colonne droite légèrement réduite ;
  - vignettes À la une centrées ;
  - moins d'espace autour des vignettes ;
  - RSS un peu plus haut pour éviter la coupe basse ;
  - date / heure harmonisées avec le reste de la colonne.
*/

body.accueil-2-page {
  --a2-right-width-v2d: 408px;
}

/* Colonne un peu plus étroite, sans toucher à la largeur générale */
body.accueil-2-page .direct-shell {
  grid-template-columns: minmax(0, 1fr) 408px !important;
  gap: 22px !important;
}

body.accueil-2-page .direct-info-panel {
  width: 408px !important;
  max-width: 408px !important;
  padding: 12px 13px !important;
}

/* Date / heure : même langage visuel que les autres blocs */
body.accueil-2-page .direct-datebox {
  height: 62px !important;
  min-height: 62px !important;
  max-height: 62px !important;
  padding: 0 0 8px 0 !important;
  gap: 8px !important;
}

body.accueil-2-page .direct-datebox .mini-tile {
  min-height: 46px !important;
  height: 46px !important;
  padding: 8px 10px !important;
  border-radius: 13px !important;
  border: 1px solid rgba(255,255,255,0.10) !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.075), rgba(255,255,255,0.035)) !important;
  box-shadow: none !important;
}

body.accueil-2-page .direct-datebox .mini-label {
  font-size: .58rem !important;
  line-height: 1 !important;
  letter-spacing: .08em !important;
  color: rgba(255,255,255,0.58) !important;
  margin-bottom: 5px !important;
}

body.accueil-2-page .direct-datebox .mini-value {
  font-size: .76rem !important;
  line-height: 1 !important;
  color: rgba(255,255,255,0.92) !important;
}

/* Météo : adaptation à la colonne plus fine */
body.accueil-2-page .weather-grid {
  column-gap: 8px !important;
}

body.accueil-2-page .weather-grid > *,
body.accueil-2-page .weather-city-card {
  padding-left: 9px !important;
  padding-right: 9px !important;
}

/* À la une : vignettes centrées, espace latéral réduit */
body.accueil-2-page .stv-une-featured {
  grid-template-columns: repeat(2, 150px) !important;
  justify-content: center !important;
  justify-items: center !important;
  gap: 10px !important;
  height: 150px !important;
  max-height: 150px !important;
}

body.accueil-2-page .stv-une-card {
  width: 150px !important;
  height: 150px !important;
  min-height: 150px !important;
  max-height: 150px !important;
}

/* RSS : dernier bloc, moins coupé en bas */
body.accueil-2-page .stv-rss-panel {
  height: 66px !important;
  min-height: 66px !important;
  max-height: 66px !important;
  padding-top: 7px !important;
  padding-bottom: 4px !important;
  overflow: hidden !important;
}

body.accueil-2-page .stv-rss-panel .compact-head {
  height: 20px !important;
  margin-bottom: 5px !important;
}

body.accueil-2-page .stv-ticker-wrap {
  height: 30px !important;
  display: flex !important;
  align-items: center !important;
}

body.accueil-2-page .stv-ticker-track {
  line-height: 30px !important;
}

/* Mobile : ne pas figer la largeur */
@media (max-width: 1060px) {
  body.accueil-2-page .direct-shell {
    grid-template-columns: 1fr !important;
  }

  body.accueil-2-page .direct-info-panel {
    width: 100% !important;
    max-width: none !important;
  }

  body.accueil-2-page .stv-une-featured {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  body.accueil-2-page .stv-une-card {
    width: 100% !important;
    height: auto !important;
  }
}

/* ===== FIN ACCUEIL 2 V2E — AJUSTEMENT COLONNE DROITE ===== */


/* ===== ACCUEIL 2 V2F — AÉRATION ET DATE HEURE ===== */

/*
  Correction visuelle ciblée :
  - date / heure vraiment restylées ;
  - aération verticale de la colonne ;
  - RSS non coupé ;
  - conservation de la colonne 408px validée ;
  - aucun changement JS.
*/

body.accueil-2-page .direct-info-panel {
  padding: 14px 13px 16px 13px !important;
}

/* Sections un peu plus respirantes */
body.accueil-2-page .direct-info-panel > .direct-datebox,
body.accueil-2-page .direct-info-panel > .weather-panel,
body.accueil-2-page .direct-info-panel > .stv-agenda-panel,
body.accueil-2-page .direct-info-panel > .stv-une-panel,
body.accueil-2-page .direct-info-panel > .stv-rss-panel {
  border-bottom-color: rgba(255,255,255,0.12) !important;
}

/* Date / heure : changement visible, plus cohérent avec agenda/météo */
body.accueil-2-page .direct-datebox {
  height: 76px !important;
  min-height: 76px !important;
  max-height: 76px !important;
  padding: 0 0 12px 0 !important;
  gap: 10px !important;
}

body.accueil-2-page .direct-datebox .mini-tile {
  position: relative !important;
  height: 56px !important;
  min-height: 56px !important;
  padding: 10px 12px 9px 14px !important;
  border-radius: 14px !important;
  border: 1px solid rgba(255,255,255,0.09) !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.060), rgba(255,255,255,0.028)) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.08),
    0 8px 18px rgba(0,0,0,0.14) !important;
  overflow: hidden !important;
}

body.accueil-2-page .direct-datebox .mini-tile::before {
  content: "" !important;
  position: absolute !important;
  left: 0 !important;
  top: 10px !important;
  bottom: 10px !important;
  width: 3px !important;
  border-radius: 999px !important;
  background: linear-gradient(180deg, #ff1744, rgba(255,23,68,0.25)) !important;
}

body.accueil-2-page .direct-datebox .mini-label {
  font-size: .56rem !important;
  line-height: 1 !important;
  letter-spacing: .10em !important;
  color: rgba(255,255,255,0.52) !important;
  margin-bottom: 7px !important;
}

body.accueil-2-page .direct-datebox .mini-value {
  font-size: .80rem !important;
  line-height: 1 !important;
  letter-spacing: .02em !important;
  color: rgba(255,255,255,0.95) !important;
}

/* Météo : un peu plus d'air vertical */
body.accueil-2-page .weather-panel {
  height: 136px !important;
  min-height: 136px !important;
  max-height: 136px !important;
  padding-top: 11px !important;
  padding-bottom: 11px !important;
}

body.accueil-2-page .weather-panel .compact-head {
  height: 26px !important;
  margin-bottom: 9px !important;
}

body.accueil-2-page .weather-grid {
  height: 76px !important;
  max-height: 76px !important;
  grid-auto-rows: 76px !important;
}

body.accueil-2-page .weather-grid > *,
body.accueil-2-page .weather-city-card {
  height: 76px !important;
  min-height: 76px !important;
  max-height: 76px !important;
}

/* Agenda : un peu plus lisible sans prendre trop de place */
body.accueil-2-page .stv-agenda-panel {
  height: 276px !important;
  min-height: 276px !important;
  max-height: 276px !important;
  padding-top: 11px !important;
  padding-bottom: 11px !important;
}

body.accueil-2-page .stv-agenda-panel .compact-head {
  height: 26px !important;
  margin-bottom: 8px !important;
}

body.accueil-2-page .stv-agenda-list {
  height: 222px !important;
  max-height: 222px !important;
  grid-template-rows: repeat(4, 52px) !important;
  gap: 5px !important;
}

body.accueil-2-page .stv-agenda-item {
  min-height: 52px !important;
  max-height: 52px !important;
  padding: 6px 8px !important;
}

/* À la une : un peu plus de respiration, vignettes toujours centrées */
body.accueil-2-page .stv-une-panel {
  height: 212px !important;
  min-height: 212px !important;
  max-height: 212px !important;
  padding-top: 11px !important;
  padding-bottom: 11px !important;
}

body.accueil-2-page .stv-une-panel .compact-head {
  height: 26px !important;
  margin-bottom: 9px !important;
}

body.accueil-2-page .stv-une-featured {
  grid-template-columns: repeat(2, 154px) !important;
  height: 154px !important;
  max-height: 154px !important;
  justify-content: center !important;
  justify-items: center !important;
  gap: 11px !important;
}

body.accueil-2-page .stv-une-card {
  width: 154px !important;
  height: 154px !important;
  min-height: 154px !important;
  max-height: 154px !important;
}

/* RSS : dernier bloc, texte non coupé */
body.accueil-2-page .stv-rss-panel {
  height: 74px !important;
  min-height: 74px !important;
  max-height: 74px !important;
  padding-top: 9px !important;
  padding-bottom: 7px !important;
  overflow: hidden !important;
  border-bottom: 0 !important;
}

body.accueil-2-page .stv-rss-panel .compact-head {
  height: 22px !important;
  margin-bottom: 6px !important;
}

body.accueil-2-page .stv-ticker-wrap {
  height: 30px !important;
  min-height: 30px !important;
  max-height: 30px !important;
  display: flex !important;
  align-items: center !important;
  overflow: hidden !important;
}

body.accueil-2-page .stv-ticker-track {
  line-height: 30px !important;
  padding-bottom: 2px !important;
  font-size: .70rem !important;
}

/* Sécurité : tout doit rester dans la hauteur du panneau */
body.accueil-2-page .direct-info-panel {
  overflow: hidden !important;
}

/* ===== FIN ACCUEIL 2 V2F — AÉRATION ET DATE HEURE ===== */
