/* YAPPARI site v2 — mise en page (dépend de tokens.css + composants.css) */

html { scroll-behavior: smooth; }
.conteneur { max-width: var(--conteneur); margin: 0 auto; padding: 0 var(--s-4); }
.mono { font-family: var(--font-mono); font-variant-numeric: tabular-nums; }
img { max-width: 100%; }

/* ---- Barre régie ---- */
.regie { background: var(--sumi); color: #fff; }
.regie__inner { max-width: var(--conteneur); margin: 0 auto; padding: 14px var(--s-4);
  display: flex; align-items: center; gap: var(--s-4); flex-wrap: wrap; }
/* .ypr a a une spécificité (0,1,1) : on force le logo au-dessus */
.ypr .regie__logo, .ypr .regie__logo:hover, .ypr .regie__logo:focus-visible {
  display: inline-flex; align-items: center; gap: 10px; background: var(--bleu-jt);
  padding: 9px 16px; text-decoration: none; color: #fff; }
.ypr .regie__logo:focus-visible { outline-color: var(--jaune); }
.regie__logo b { font-family: var(--font-display); font-weight: 900; font-stretch: 66%;
  font-size: 30px; letter-spacing: -0.5px; line-height: 1; }
.regie__chip { background: var(--jaune); color: var(--sumi); font-family: var(--font-jp);
  font-weight: 900; font-size: 12px; padding: 3px 7px; }
.regie__tagline { margin: 0; font-size: 12px; color: var(--gris-clair); max-width: 240px; line-height: 1.4; }
.regie__droite { margin-left: auto; display: flex; flex-direction: column; gap: 4px; align-items: flex-end; }
.regie__dates { display: flex; gap: 12px; font-size: 11px; color: var(--gris-clair); flex-wrap: wrap; }
.regie__horloges { font-size: 13px; display: flex; gap: 10px; align-items: baseline; }
.regie__horloges b { font-weight: 600; color: var(--jaune); }
.regie__horloges .sep { color: var(--gris-texte); }

/* Roulette secondes */
[data-clock] { display: inline-block; min-width: 8ch; text-align: left; }
[data-clock] .sec-roll { display: inline-block; animation: ypr-roll var(--d-roll) var(--ease-regie); }

/* ---- Barre sticky compacte (scroll-up) ---- */
.barre-sticky { position: fixed; top: 0; left: 0; right: 0; z-index: 50;
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  background: var(--sumi); color: #fff; height: 48px; padding: 0 var(--s-4);
  transform: translateY(-100%); transition: transform var(--d-layout) var(--ease-regie); }
.barre-sticky.visible { transform: translateY(0); }
.ypr .barre-sticky__logo, .ypr .barre-sticky__logo:hover { display: inline-flex; align-items: center; gap: 8px;
  background: var(--bleu-jt); color: #fff; text-decoration: none; padding: 5px 10px; }
.barre-sticky__logo b { font-family: var(--font-display); font-weight: 900; font-stretch: 66%; font-size: 17px; }
.barre-sticky__logo [lang="ja"] { background: var(--jaune); color: var(--sumi);
  font-family: var(--font-jp); font-weight: 900; font-size: 9.5px; padding: 1px 5px; }
.barre-sticky__horloges { font-size: 12px; }
.barre-sticky__horloges b { color: var(--jaune); font-weight: 600; }
.barre-sticky__horloges .sep { color: var(--gris-texte); margin: 0 6px; }

/* ---- Ticker ---- */
.ypr-ticker__fr { font-family: var(--font-display); font-weight: 800; font-stretch: 75%;
  font-size: 11px; letter-spacing: .12em; margin-left: 8px; }
.tick-item { display: inline-flex; align-items: center; padding: 8px 0; font-size: 13px; white-space: nowrap; }
.tick-sep { color: var(--jaune); font-size: 8px; margin: 0 18px; }

/* ---- Zone une ---- */
.une { display: flex; flex-wrap: wrap; gap: var(--s-5); margin-top: var(--s-5); }
.une__principale { flex: 2 1 600px; position: relative; min-width: 0; }
.une__principale > a { display: flex; flex-direction: column; gap: var(--s-3); padding-right: 58px; }
.une__rangée-chips { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.chip-une { background: var(--sumi); color: #fff; font-size: 10.5px; letter-spacing: .12em; padding: 4px 10px; }
.une__principale h1 { margin: 0; font-family: var(--font-display); font-weight: 900; font-stretch: 66%;
  font-size: var(--t-h1); line-height: 1.05; text-wrap: balance; }
.une__meta { letter-spacing: .04em; }
.une__tategaki { position: absolute; top: 0; right: 0; writing-mode: vertical-rl;
  background: var(--sumi); color: #fff; font-family: var(--font-jp-serif); font-weight: 800;
  font-size: 21px; line-height: 1.25; padding: 14px 8px; max-height: 460px; overflow: hidden; }

/* ---- Dépêches ---- */
.depeches { flex: 1 1 300px; min-width: 0; }
.depeches__header { margin: 0 0 6px; background: var(--sumi); color: #fff; display: flex;
  align-items: center; gap: 10px; padding: 9px 12px; font-family: var(--font-display);
  font-weight: 900; font-stretch: 70%; font-size: 16px; letter-spacing: .06em; }
.depeches__header [lang="ja"] { background: var(--jaune); color: var(--sumi);
  font-family: var(--font-jp); font-size: 11px; padding: 2px 6px; }
.depeches__liste { list-style: none; margin: 0; padding: 0; }
.ypr-depeche a { color: var(--sumi); text-decoration: none; display: inline-block; padding: 2px 0; }
.ypr-depeche a:hover { background: var(--jaune); }
.retour-fil { display: inline-block; margin-top: 12px; background: var(--sumi); color: #fff !important;
  text-decoration: none !important; font-size: 10.5px; letter-spacing: .1em; padding: 7px 12px; }
.ypr .retour-fil:hover { background: var(--bleu-jt); color: #fff; }

/* ---- Obi & grilles ---- */
.ypr-obi--marque { background: var(--bleu-jt); }
.obi-pleine { margin: 44px calc(50% - 50vw) 0; }
.obi-article { margin: 0; }
.grille { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 290px), 1fr));
  gap: 26px; margin-top: var(--s-4); }
.ypr-carte__titre { text-wrap: balance; }
.ypr-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.vide { color: var(--gris-texte); padding: var(--s-4) 0; }

/* ---- Page article ---- */
.article-layout { display: flex; flex-wrap: wrap; gap: var(--s-5); margin-top: var(--s-5); }
.article { flex: 2 1 620px; min-width: 0; }
.article__titre { margin: 12px 0 0; font-family: var(--font-display); font-weight: 900; font-stretch: 66%;
  font-size: clamp(30px, 3.8vw, 48px); line-height: 1.08; text-wrap: balance; }
.article__chapo { margin: 14px 0 0; font-size: 17px; line-height: 1.5; font-weight: 600; max-width: 66ch; }
.article__meta { margin: 12px 0 0; font-size: var(--t-meta); color: var(--gris-texte); letter-spacing: .04em; }
.article__player { margin: var(--s-4) 0 0; }
.player-16-9 { position: relative; aspect-ratio: 16/9; background: var(--sumi); }
.player-16-9 iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.article__player figcaption { background: var(--sumi); color: var(--gris-clair);
  font-size: 11.5px; padding: 7px 12px; }
.article__corps { margin-top: var(--s-4); font-size: 16px; line-height: 1.65; max-width: 70ch; }
.article__corps p { margin: 0 0 1em; }
.article__corps h2 { margin: 1.6em 0 .6em; padding-left: 12px; border-left: 5px solid var(--sumi);
  font-family: var(--font-display); font-weight: 900; font-stretch: 68%; font-size: 22px; line-height: 1.2; }
.article__corps ul { padding-left: 1.2em; }

.points-cles { margin-top: var(--s-5); border: 3px solid var(--sumi); }
.points-cles header { background: var(--jaune); color: var(--sumi); font-weight: 900;
  font-family: var(--font-display); font-stretch: 70%; font-size: 14px; letter-spacing: .08em;
  padding: 8px 14px; display: flex; gap: 10px; align-items: center; }
.points-cles header [lang="ja"] { font-family: var(--font-jp); font-size: 13px; }
.points-cles ul { list-style: none; margin: 0; padding: 14px 16px; }
.points-cles li { position: relative; padding-left: 20px; margin-bottom: 8px; font-size: 15px; line-height: 1.5; }
.points-cles li::before { content: ""; position: absolute; left: 0; top: 8px;
  width: 9px; height: 9px; background: var(--sokuho); }

.titre-original { margin-top: var(--s-5); border-top: 2px solid var(--sumi); padding-top: 14px; }
.titre-original__label { font-size: 10px; letter-spacing: .14em; color: var(--gris-texte); }
.titre-original p { margin: 8px 0; font-family: var(--font-jp-serif); font-weight: 800; font-size: 19px; line-height: 1.5; }
.titre-original__credit { font-size: 10px; color: var(--gris-texte); }

/* ---- 404 ---- */
.vide-page { padding: 80px 0; max-width: 60ch; }
.vide-page .mono { font-size: 13px; color: var(--gris-texte); letter-spacing: .2em; }
.vide-page h1 { font-family: var(--font-display); font-weight: 900; font-stretch: 66%; font-size: 32px; }

/* ---- Footer ---- */
.pied { margin-top: 56px; background: var(--sumi); color: var(--gris-clair);
  border-top: 6px solid var(--jaune); }
.pied__inner { max-width: var(--conteneur); margin: 0 auto; padding: 26px var(--s-4) 34px;
  display: flex; flex-direction: column; gap: 10px; font-size: 12.5px; line-height: 1.6; }
.pied__marque { display: flex; align-items: center; gap: 8px; color: #fff; }
.pied__marque b { font-family: var(--font-display); font-weight: 900; font-stretch: 66%; font-size: 20px; }
.pied__marque [lang="ja"] { background: var(--jaune); color: var(--sumi);
  font-family: var(--font-jp); font-weight: 900; font-size: 10.5px; padding: 2px 6px; }
.pied p { margin: 0; }
.pied__meta { font-size: 10.5px; letter-spacing: .05em; color: var(--gris-texte); }

/* ---- Cascade d'arrivée (une fois, ≤600 ms au total) ---- */
.casc { opacity: 0; animation: ypr-in 240ms var(--ease-regie) forwards; }
.casc-1 { animation-delay: 0ms; } .casc-2 { animation-delay: 60ms; }
.casc-3 { animation-delay: 120ms; } .casc-4 { animation-delay: 180ms; }
/* Reveal au scroll */
.reveal { opacity: 0; transform: translateY(12px); }
.reveal--vu { animation: ypr-in var(--d-layout) var(--ease-regie) forwards; }
@media (prefers-reduced-motion: reduce) {
  .casc, .reveal { opacity: 1 !important; transform: none !important; animation: none !important; }
}

/* ---- Mobile ---- */
@media (max-width: 700px) {
  .conteneur { padding: 0 var(--s-3); }
  .regie__inner { padding: 10px var(--s-3); gap: 10px; }
  .regie__tagline { display: none; }
  .regie__logo b { font-size: 24px; }
  .regie__droite { margin-left: auto; align-items: flex-end; }
  .regie__dates { display: none; }
  .regie__horloges { font-size: 12px; flex-direction: column; gap: 2px; align-items: flex-end; }
  .regie__horloges .sep { display: none; }
  .une { margin-top: var(--s-4); gap: var(--s-4); }
  .une__principale > a { padding-right: 0; }
  .une__tategaki { display: none; }
  .obi-pleine { margin-top: 32px; }
  .ypr-obi__titre { font-size: 21px; }
  .ypr-obi__kanji { font-size: 17px; padding: 0 10px; }
  .ypr-obi__lien { display: none; }
  .grille { gap: 18px; }
  .article-layout { margin-top: var(--s-4); gap: var(--s-4); }
  .article__chapo { font-size: 16px; }
  .barre-sticky__horloges .paris-label { display: none; }
  .ypr-depeche a, .ypr-obi__lien, .retour-fil { min-height: 30px; }
}
