/* ============================================================
   LES CARNETS DE LÉKA : design tokens
   ============================================================ */
:root {
  --bg: #0F172A;
  --surface: #16213A;
  --surface-2: #1D2C4C;
  --border: #2A3B5E;
  --text: #E7ECF3;
  --text-muted: #8B97AC;
  --accent-red: #E41E20;
  --accent-red-text: #F55254;
  --accent-red-dim: #7A1213;
  --accent-teal: #2DD4BF;
  --accent-teal-dim: #12554D;
  --radius-sm: 8px;
  --radius-md: 14px;
  --radius-lg: 22px;
  --font-display: "Montserrat", sans-serif;
  --font-body: "Inter", system-ui, sans-serif;
  --shadow-soft: 0 12px 30px rgba(0,0,0,0.35);
  --ease: cubic-bezier(.2,.8,.25,1);
  /* Alias : des composants récents utilisaient ces noms non définis (retombaient sur un rouge/gris foncé en dur, ou sur rien) */
  --accent: var(--accent-red-text);
  --muted: var(--text-muted);
  --radius: var(--radius-md);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }

body {
  margin: 0;
  background:
    radial-gradient(680px circle at 12% -8%, rgba(228, 30, 32, 0.10), transparent 60%),
    radial-gradient(620px circle at 92% 4%, rgba(45, 212, 191, 0.08), transparent 55%),
    var(--bg);
  background-attachment: fixed;
  color: var(--text);
  font-family: var(--font-body);
  line-height: 1.55;
}

h1, h2, h3 {
  font-family: var(--font-display);
  line-height: 1.15;
  margin: 0 0 .5em;
  letter-spacing: -0.01em;
}

h1 { font-size: clamp(2rem, 4.5vw, 3.2rem); }
h2 { font-size: clamp(1.5rem, 3vw, 2.1rem); }

p { color: var(--text-muted); max-width: 62ch; }

a { color: inherit; }

img, svg { display: block; max-width: 100%; }

.skip-link {
  position: absolute; left: -999px; top: 0;
  background: var(--accent-teal); color: #04231F;
  padding: .6em 1em; border-radius: 0 0 var(--radius-sm) 0; z-index: 200;
}
.skip-link:focus { left: 0; }

.storage-banner {
  background: var(--accent-red-dim); border-bottom: 1px solid var(--accent-red);
  padding: 1rem 1.5rem; position: relative; z-index: 60;
}
.storage-banner-inner { max-width: 900px; margin: 0 auto; }
.storage-banner-inner strong { display: block; margin-bottom: .35rem; }
.storage-banner-inner p { margin: 0 0 .85rem; font-size: .9rem; max-width: none; }

.install-banner {
  position: fixed; left: .75rem; right: .75rem; bottom: -120px; z-index: 90;
  display: flex; align-items: center; gap: .9rem;
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-md);
  padding: .9rem 1rem; box-shadow: 0 12px 32px rgba(0,0,0,.45);
  transition: bottom .25s var(--ease);
}
.install-banner.is-visible { bottom: .75rem; }
.install-banner-icon { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; flex: none; }
.install-banner-text { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: .15rem; }
.install-banner-text span { font-size: .82rem; color: var(--text-muted); }
.install-banner-btn { flex: none; padding: .55rem .9rem; font-size: .88rem; white-space: nowrap; }
.install-banner-close {
  flex: none; background: none; border: none; color: var(--text-muted); font-size: 1rem;
  cursor: pointer; padding: .25rem;
}
.install-banner-close:hover { color: var(--text); }
@media (min-width: 640px) {
  .install-banner { left: auto; right: 1.5rem; width: 360px; }
}

:focus-visible {
  outline: 2px solid var(--accent-teal);
  outline-offset: 2px;
}

.section-inner {
  max-width: 1080px;
  margin: 0 auto;
  padding: 4.5rem 1.5rem;
}
.section-sub { margin-top: -.25rem; }

/* ============================================================
   HEADER
   ============================================================ */
.site-header {
  position: sticky; top: 0; z-index: 95;
  background: rgba(15, 23, 42, 0.86);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--border);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);
}
.header-inner {
  max-width: 1440px; margin: 0 auto;
  display: flex; align-items: center; justify-content: space-between;
  gap: 1rem; padding: .75rem 11rem .75rem 1.5rem;
}
.logo {
  display: flex; align-items: center; gap: .5rem; flex-shrink: 0;
  text-decoration: none; color: var(--text);
  font-family: var(--font-display); font-weight: 700; font-size: 1.25rem;
}
.logo-mascot { color: var(--accent-teal); display: flex; }
.logo-mascot img { width: 36px; height: 36px; border-radius: 50%; object-fit: cover; display: block; }
.logo-name { color: var(--accent-red-text); }

.main-nav { display: flex; gap: 1rem; }
.main-nav a {
  text-decoration: none; color: var(--text-muted); font-weight: 500; font-size: .89rem;
  transition: color .15s var(--ease); position: relative; padding-bottom: 2px; white-space: nowrap;
}
.main-nav a::after {
  content: ""; position: absolute; left: 0; bottom: -2px; width: 0; height: 2px;
  background: var(--accent-teal); border-radius: 2px; transition: width .2s var(--ease);
}
.main-nav a:hover { color: var(--text); }
.main-nav a:hover::after { width: 100%; }

.header-actions {
  position: fixed; top: 1rem; right: 1.25rem; z-index: 60;
  display: flex; flex-direction: column; align-items: flex-end; gap: .5rem;
}

.stat-hud {
  display: flex; align-items: stretch;
  background: #050c14; border: 1px solid rgba(20, 184, 166, .35);
  border-radius: 10px; overflow: hidden;
  box-shadow: 0 0 0 1px rgba(0,0,0,.4), 0 8px 20px rgba(0,0,0,.35), inset 0 0 12px rgba(20,184,166,.06);
  font-family: 'Courier New', ui-monospace, monospace;
}
.stat-hud-item {
  display: flex; align-items: center; gap: .4rem;
  padding: .4rem .7rem; position: relative;
}
.stat-hud-item + .stat-hud-item::before {
  content: ""; position: absolute; left: 0; top: 20%; bottom: 20%; width: 1px;
  background: rgba(148, 163, 184, .25);
}
.stat-hud-icon { font-size: .95rem; filter: drop-shadow(0 0 4px currentColor); }
.stat-hud-value {
  font-weight: 800; font-size: .95rem; font-variant-numeric: tabular-nums; letter-spacing: .02em;
}
.stat-hud-label {
  font-size: .62rem; font-weight: 700; letter-spacing: .06em; opacity: .65; align-self: flex-end; margin-bottom: .1rem;
}
.stat-hud .stat-xp .stat-hud-value, .stat-hud .stat-xp .stat-hud-icon { color: var(--accent-teal); text-shadow: 0 0 8px rgba(20,184,166,.55); }
.stat-hud .stat-streak .stat-hud-value, .stat-hud .stat-streak .stat-hud-icon { color: var(--accent-red-text); text-shadow: 0 0 8px rgba(239,68,68,.5); }

.lang-dropdown { position: relative; }
.lang-dropdown-toggle {
  display: flex; align-items: center; gap: .4rem;
  background: var(--surface); border: 1px solid var(--border); border-radius: 999px;
  padding: .4rem .7rem; font-weight: 700; font-size: .8rem; color: var(--text);
  cursor: pointer; box-shadow: 0 8px 20px rgba(0,0,0,.28); font-family: var(--font-body);
}
.lang-dropdown-toggle:hover { border-color: var(--accent-teal); }

.lang-dropdown-caret { font-size: .65rem; opacity: .7; transition: transform .15s var(--ease); }
.lang-dropdown.is-open .lang-dropdown-caret { transform: rotate(180deg); }
.lang-dropdown-menu {
  position: absolute; top: calc(100% + .4rem); right: 0; min-width: 150px;
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-sm);
  box-shadow: 0 16px 32px rgba(0,0,0,.45); overflow: hidden; z-index: 80;
}
.lang-dropdown-item {
  display: flex; align-items: center; gap: .55rem; width: 100%;
  background: none; border: none; color: var(--text-muted); text-align: left;
  padding: .55rem .8rem; font-size: .85rem; font-weight: 600; cursor: pointer;
  font-family: var(--font-body);
}
.lang-dropdown-item:hover { background: var(--surface-2); color: var(--text); }
.lang-dropdown-item.is-active { color: var(--accent-teal); font-weight: 800; }
.lang-dropdown-item-check { margin-left: auto; opacity: .8; }

@media (max-width: 640px) {
  .header-actions { top: .6rem; right: .6rem; }
}

/* ============================================================
   BUTTONS
   ============================================================ */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .4rem;
  font-family: var(--font-body); font-weight: 600; font-size: .95rem;
  padding: .8rem 1.4rem; border-radius: var(--radius-sm); border: 1px solid transparent;
  cursor: pointer; text-decoration: none; transition: transform .15s var(--ease), background .15s var(--ease), border-color .15s var(--ease), box-shadow .2s var(--ease);
}
.btn:active { transform: scale(.97); }
.btn-primary {
  background: linear-gradient(135deg, #ff3b3d, var(--accent-red));
  color: #fff; box-shadow: 0 4px 14px rgba(228, 30, 32, 0.25);
}
.btn-primary:hover { background: linear-gradient(135deg, #ff5052, #ff2c2e); box-shadow: 0 6px 18px rgba(228, 30, 32, 0.35); transform: translateY(-1px); }
.btn-primary:active { transform: translateY(0); }
.btn-primary:disabled { background: var(--surface-2); color: var(--text-muted); cursor: not-allowed; box-shadow: none; transform: none; }
.btn-ghost { background: transparent; border-color: var(--border); color: var(--text-muted); }
.btn-ghost:hover { border-color: var(--accent-teal); color: var(--text); }

/* ============================================================
   HERO
   ============================================================ */
.hero { padding: 3rem 1.5rem 1rem; }

.feedback-callout {
  max-width: 760px; margin: 0 auto 3rem; padding: 1.25rem 1.5rem;
  background: linear-gradient(120deg, rgba(244, 114, 182, .14), rgba(251, 191, 36, .12));
  border: 1px solid rgba(251, 191, 36, .35); border-radius: var(--radius);
  display: flex; align-items: center; gap: 1rem; flex-wrap: wrap;
  box-shadow: 0 8px 24px rgba(0,0,0,.25);
}
.feedback-callout-badge {
  flex: none; display: inline-flex; align-items: center; gap: .3rem;
  background: #fbbf24; color: #1a1200; font-weight: 800; font-size: .78rem;
  text-transform: uppercase; letter-spacing: .03em; padding: .3rem .65rem; border-radius: 999px;
  animation: feedback-pulse 2.4s ease-in-out infinite;
}
@keyframes feedback-pulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.08); }
}
.feedback-callout-text { flex: 1 1 260px; margin: 0; font-size: .95rem; color: var(--text); line-height: 1.5; }
.feedback-callout-btn { flex: none; white-space: nowrap; }
@media (max-width: 560px) {
  .feedback-callout { flex-direction: column; align-items: flex-start; text-align: left; }
  .feedback-callout-btn { width: 100%; text-align: center; }
}
.hero-inner {
  max-width: 1180px; margin: 0 auto;
  display: grid; grid-template-columns: 1.1fr .9fr; gap: 3rem; align-items: center;
}
.hero-eyebrow {
  font-family: var(--font-display); color: var(--accent-teal);
  font-size: 1rem; margin-bottom: .6rem; max-width: none;
}
.hero-sub { font-size: 1.05rem; margin-bottom: 1.75rem; }
.hero-cta-row { display: flex; flex-wrap: wrap; gap: .9rem; }

.hero-art { display: flex; justify-content: center; }
.hero-mascot { width: min(100%, 320px); filter: drop-shadow(0 16px 30px rgba(0,0,0,.45)); animation: float 6s ease-in-out infinite; }
@keyframes float { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }

/* ============================================================
   LEARNING PATH
   ============================================================ */
.path-section { background: linear-gradient(180deg, transparent, var(--surface) 4%, var(--surface) 96%, transparent); }

.learn-path {
  list-style: none; margin: 2rem auto 0; padding: 1rem 0 .5rem;
  display: flex; flex-direction: column; gap: 1.8rem; position: relative;
  max-width: 620px;
}
.learn-path::before {
  content: ""; position: absolute; left: 50%; top: 6px; bottom: 6px; width: 4px;
  transform: translateX(-50%);
  background: repeating-linear-gradient(
    to bottom, var(--border) 0 10px, transparent 10px 20px
  );
  border-radius: 4px; z-index: 0; opacity: .6;
}
.path-node {
  display: flex; align-items: center; gap: 1rem; position: relative; z-index: 1;
  width: 84%; padding: 1rem 1.15rem; margin: 0;
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg);
  box-shadow: 0 10px 26px rgba(0,0,0,.3);
  transition: transform .18s var(--ease), border-color .18s var(--ease);
}
.path-node:hover { transform: translateY(-3px); }
.path-node:nth-child(odd) { align-self: flex-start; }
.path-node:nth-child(even) { align-self: flex-end; flex-direction: row-reverse; text-align: right; }
.path-node:nth-child(even) .node-desc { text-align: right; }

.node-badge {
  flex: none; width: 60px; height: 60px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-display); font-weight: 800; font-size: 1.2rem;
  background: var(--surface-2); border: 3px solid var(--border); color: var(--text-muted);
  box-shadow: 0 0 0 5px var(--bg);
}
.path-node.is-unlocked .node-badge {
  border-color: var(--accent-red); color: #fff; background: var(--accent-red);
  animation: node-pulse 2.2s ease-in-out infinite;
}
@keyframes node-pulse {
  0%, 100% { box-shadow: 0 0 0 5px var(--bg), 0 0 0 5px var(--accent-red); }
  50% { box-shadow: 0 0 0 5px var(--bg), 0 0 0 11px rgba(228,30,32,0); }
}
.path-node.is-complete .node-badge { border-color: var(--accent-teal); color: #04231F; background: var(--accent-teal); font-size: 1.4rem; }
.path-node.is-locked .node-badge { opacity: .55; }

.node-main { flex: 1; }
.node-title { font-family: var(--font-display); font-weight: 700; font-size: 1.02rem; margin: 0; }
.node-desc { margin: .2rem 0 0; font-size: .85rem; }

.node-btn {
  flex: none; background: var(--surface-2); border: 1px solid var(--border); color: var(--text);
  border-radius: 999px; padding: .55rem 1.05rem; font-weight: 700; font-size: .85rem; cursor: pointer;
  font-family: var(--font-body); transition: border-color .15s var(--ease), background .15s var(--ease), transform .15s var(--ease);
}
.path-node.is-unlocked .node-btn { background: var(--accent-red); border-color: var(--accent-red); color: #fff; }
.path-node.is-unlocked .node-btn:hover { background: #ff2c2e; transform: scale(1.05); }
.path-node.is-locked .node-btn { opacity: .4; cursor: not-allowed; }
.path-node.is-complete .node-btn { border-color: var(--accent-teal); }

@media (max-width: 640px) {
  .learn-path::before { left: 26px; }
  .path-node, .path-node:nth-child(even) {
    width: 100%; align-self: stretch; flex-direction: row; text-align: left; margin-left: 0;
  }
  .path-node:nth-child(even) .node-desc { text-align: left; }
  .node-badge { width: 48px; height: 48px; font-size: 1rem; }
}

/* ============================================================
   DISCOVER THE COUNTRY
   ============================================================ */
.city-grid {
  margin-top: 2.5rem; display: grid; gap: 1.5rem;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}
.unusual-title { font-family: var(--font-display); font-size: 1.4rem; margin: 3rem 0 .5rem; }
.unusual-grid {
  margin-top: 1.5rem; display: grid; gap: 1.5rem;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}
.unusual-card {
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-md);
  overflow: hidden;
}
.unusual-photo { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; display: block; }
.unusual-body { padding: 1.5rem; }
.unusual-emoji { font-size: 1.8rem; display: block; margin-bottom: .6rem; }
.unusual-card h3 { font-family: var(--font-display); font-size: 1.05rem; margin: 0 0 .5rem; }
.unusual-card p { font-size: .88rem; margin: 0; }
.city-card {
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-md);
  overflow: hidden; display: flex; flex-direction: column;
}
.city-card-link { text-decoration: none; color: inherit; transition: transform .15s var(--ease), border-color .15s var(--ease); }
.city-card-link:hover { transform: translateY(-3px); border-color: var(--accent-teal); }
.city-postcard { width: 100%; height: 140px; display: block; position: relative; }
.city-postcard svg { position: relative; z-index: 1; display: block; width: 100%; height: 100%; }
.city-photo {
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 2;
  display: block;
}
.history-photo {
  display: block; width: 100%; max-width: 480px; height: auto; max-height: 360px;
  object-fit: cover; border-radius: var(--radius-md); margin: 1rem 0 .5rem;
}
.city-postcard-lg { height: 220px; border-radius: var(--radius-md); overflow: hidden; margin-bottom: 1.5rem; }
.city-body { padding: 1.25rem 1.4rem 1.5rem; }
.city-name { font-family: var(--font-display); font-size: 1.2rem; font-weight: 700; margin: 0; }
.city-tag { color: var(--accent-teal); font-size: .82rem; font-weight: 600; margin: .15rem 0 .75rem; }
.city-text { font-size: .92rem; margin: 0; }

/* ============================================================
   ARTICLE PAGES (city / history detail)
   ============================================================ */
.article-wrap { max-width: 720px; }
.article-title { font-size: clamp(1.7rem, 3.5vw, 2.4rem); margin-bottom: .3rem; }
.article-tag { color: var(--accent-teal); font-weight: 600; margin-top: 0; }
.photo-credit { font-size: .78rem; color: var(--text-muted); margin: -1rem 0 1.5rem; }
.photo-credit a { color: var(--text-muted); }
.photo-gallery { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); margin: -0.5rem 0 2rem; }
.gallery-item { margin: 0; border-radius: var(--radius-md); overflow: hidden; background: var(--surface-2); border: 1px solid var(--border); }
.gallery-item img { width: 100%; height: 150px; object-fit: cover; display: block; }
.gallery-item img, .city-postcard-lg .city-photo { cursor: zoom-in; }
.gallery-item figcaption { display: flex; flex-direction: column; gap: .15rem; padding: .55rem .65rem; }
.gallery-caption { font-size: .82rem; line-height: 1.25; }
.gallery-license { font-size: .7rem; color: var(--text-muted); }

.lightbox-backdrop {
  position: fixed; inset: 0; z-index: 200; background: rgba(6, 10, 20, .92);
  display: flex; align-items: center; justify-content: center; padding: 2.5rem 1.25rem;
}
.lightbox-backdrop[hidden] { display: none; }
.lightbox-figure { margin: 0; max-width: min(1100px, 92vw); max-height: 90vh; display: flex; flex-direction: column; align-items: center; gap: .75rem; }
.lightbox-img { max-width: 100%; max-height: 78vh; border-radius: var(--radius-md); box-shadow: 0 20px 60px rgba(0,0,0,.5); object-fit: contain; }
.lightbox-figure figcaption { color: var(--text-muted); font-size: .9rem; text-align: center; }
.lightbox-close {
  position: fixed; top: 1.2rem; right: 1.4rem; z-index: 201; background: var(--surface-2); color: var(--text);
  border: 1px solid var(--border); border-radius: 999px; width: 40px; height: 40px; font-size: 1.1rem; cursor: pointer;
}
.lightbox-close:hover { background: var(--surface); }
.article-year { color: var(--accent-red-text); font-family: var(--font-display); font-weight: 700; margin-bottom: .3rem; }
.article-text { font-size: 1.02rem; margin-bottom: 2rem; }
.lesson-preview { margin-top: 1.5rem; }
.lesson-preview h2 { font-size: 1.1rem; }
.lesson-vocab-list { list-style: none; margin: 0; padding: 0; display: grid; gap: .6rem; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }
.lesson-vocab-list li {
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-sm);
  padding: .6rem .8rem; font-size: .88rem; color: var(--text-muted);
}
.lesson-vocab-list strong { color: var(--text); }
.lesson-vocab-en { display: block; font-size: .78rem; opacity: .8; }
.lesson-culture {
  background: var(--surface); border: 1px solid var(--border); border-left: 3px solid var(--accent-red);
  border-radius: var(--radius-sm); padding: 1rem 1.25rem;
}
.lesson-culture p { font-size: .92rem; margin: 0 0 .8rem; }
.lesson-culture p:last-child { margin-bottom: 0; }

.related-box {
  margin: 1.5rem 0 2rem; padding: 1.25rem 1.4rem; border-radius: var(--radius-md);
  background: var(--surface); border: 1px solid var(--border);
}
.related-label { font-weight: 700; margin: 0 0 .75rem; font-size: .92rem; }
.related-link {
  display: inline-flex; align-items: center; gap: .4rem; text-decoration: none;
  background: var(--surface-2); border: 1px solid var(--border); border-radius: 999px;
  padding: .5rem 1rem; margin: 0 .5rem .5rem 0; font-size: .88rem; font-weight: 600; color: var(--text);
  transition: border-color .15s var(--ease);
}
.related-link:hover { border-color: var(--accent-teal); }
.related-year { color: var(--accent-red-text); font-weight: 700; }

/* ============================================================
   HISTORY TIMELINE
   ============================================================ */
.history-timeline {
  list-style: none; margin: 3rem auto 0; padding: 0; counter-reset: history;
  position: relative; max-width: 640px;
}
.history-item {
  position: relative; padding: 0 0 2.25rem 2.75rem;
}
.history-item::before {
  counter-increment: history; content: counter(history);
  position: absolute; left: 0; top: 0; width: 34px; height: 34px; border-radius: 50%;
  background: var(--surface-2); border: 2px solid var(--accent-red); color: var(--text);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-display); font-weight: 700; font-size: .85rem; z-index: 1;
}
.history-item:not(:last-child)::after {
  content: ""; position: absolute; left: 16px; top: 34px; bottom: 0; width: 2px; background: var(--border);
}
.history-link { display: block; text-decoration: none; color: inherit; }
.history-link:hover .history-title { color: var(--accent-teal); }
.history-year {
  font-family: var(--font-display); color: var(--accent-red-text); font-weight: 700;
  font-size: .95rem; margin: 0 0 .2rem;
}
.history-title { font-weight: 700; margin: 0 0 .35rem; font-size: 1.05rem; transition: color .15s var(--ease); }
.history-text { font-size: .92rem; margin: 0; }

.history-pager {
  display: flex; justify-content: space-between; gap: 1rem; margin-top: 1rem;
  padding-top: 1.5rem; border-top: 1px solid var(--border);
}
.history-pager a {
  text-decoration: none; color: var(--text-muted); font-weight: 600; font-size: .9rem;
  max-width: 45%; transition: color .15s var(--ease);
}
.history-pager a:hover { color: var(--accent-teal); }

/* ============================================================
   HOME TEASERS (links out to the three hubs)
   ============================================================ */
.home-teasers {
  display: grid; gap: 1.5rem; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  margin-top: 3rem;
}
.home-section-title { text-align: center; margin: 0 0 1.5rem; }
.home-lead { margin-bottom: 1.75rem; }
.home-lead-centered { text-align: center; margin-left: auto; margin-right: auto; }
.home-outcomes {
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-md);
  padding: 1.25rem 1.5rem; margin-bottom: 1.75rem;
}
.home-outcomes-title { font-weight: 700; margin: 0 0 .75rem; }
.home-outcomes-list { list-style: none; margin: 0; padding: 0; display: grid; gap: .6rem .5rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.home-outcomes-list li { color: var(--text-muted); font-size: .92rem; white-space: nowrap; }
@media (max-width: 560px) {
  .home-outcomes-list { grid-template-columns: 1fr; }
  .home-outcomes-list li { white-space: normal; }
}
.home-section-title-spaced { margin-top: 3.5rem; }
.home-teasers-spaced { margin-top: 3.5rem; }

.faq-list { max-width: 760px; margin: 0 auto; display: flex; flex-direction: column; gap: .75rem; }
.faq-item {
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-sm);
  padding: 0; overflow: hidden;
}
.faq-item summary {
  list-style: none; cursor: pointer; padding: 1rem 1.25rem; font-weight: 700; font-size: 1.02rem;
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
}
.faq-item summary::after {
  content: "+"; font-size: 1.3rem; font-weight: 400; color: var(--accent-teal); flex: none;
  transition: transform .15s var(--ease);
}
.faq-item[open] summary::after { transform: rotate(45deg); }
.faq-item-body { padding: 0 1.25rem 1.1rem; color: var(--text-muted); line-height: 1.6; }
.faq-item-steps { margin: 0; padding-left: 1.2rem; display: flex; flex-direction: column; gap: .4rem; }

.daily-card {
  max-width: 640px; margin: 0 auto 3rem; padding: 1.5rem 1.75rem;
  background: linear-gradient(155deg, rgba(20,184,166,.12), var(--surface));
  border: 1px solid rgba(20,184,166,.35); border-radius: var(--radius);
  box-shadow: 0 10px 28px rgba(0,0,0,.3);
}
.daily-eyebrow { font-weight: 800; color: var(--accent-teal); font-size: .85rem; text-transform: uppercase; letter-spacing: .04em; margin: 0 0 .3rem; }
.daily-sub { color: var(--text-muted); font-size: .85rem; margin: 0 0 1rem; }
.daily-prompt { font-size: 1.15rem; font-weight: 700; margin: 0 0 1.1rem; }
.daily-options { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; }
@media (max-width: 480px) { .daily-options { grid-template-columns: 1fr; } }
.daily-option {
  background: var(--surface-2); border: 1px solid var(--border); border-radius: var(--radius-sm);
  padding: .7rem 1rem; font-weight: 600; font-size: .92rem; color: var(--text); cursor: pointer;
  font-family: var(--font-body); text-align: left; transition: border-color .15s var(--ease);
}
.daily-option:hover:not(:disabled) { border-color: var(--accent-teal); }
.daily-option:disabled { cursor: default; opacity: .7; }
.daily-option.is-correct { border-color: #22c55e; background: rgba(34,197,94,.14); opacity: 1; color: #86efac; }
.daily-option.is-wrong { border-color: var(--accent-red); background: rgba(239,68,68,.14); opacity: 1; color: #fca5a5; }
.daily-feedback { margin-top: 1.1rem; padding-top: 1.1rem; border-top: 1px solid var(--border); }
.daily-feedback-label { font-weight: 800; margin: 0 0 .35rem; }
.daily-feedback.is-correct .daily-feedback-label { color: #22c55e; }
.daily-feedback.is-wrong .daily-feedback-label { color: var(--accent-red-text); }
.daily-feedback-text { color: var(--text-muted); font-size: .92rem; line-height: 1.55; margin: 0; }
.daily-feedback-xp { color: var(--accent-teal); font-weight: 800; margin: .5rem 0 0; }
.daily-card--done { text-align: center; }
.daily-done-title { font-size: 1.1rem; font-weight: 800; margin: .2rem 0 .4rem; }
.daily-done-sub { color: var(--text-muted); margin: 0; font-size: .9rem; }

.badge-step { display: flex; flex-direction: column; align-items: center; gap: 1rem; }
.badge-canvas { width: 100%; max-width: 500px; height: auto; border-radius: var(--radius-sm); box-shadow: 0 8px 24px rgba(0,0,0,.35); }
.badge-actions { display: flex; gap: .75rem; flex-wrap: wrap; justify-content: center; }

.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0;
}

/* ---------- RESSOURCES : porte d'accès ---------- */
.resources-gate { display: flex; justify-content: center; padding: 2.5rem 0 4rem; }
.resources-gate[hidden] { display: none; }
.resources-gate-card {
  max-width: 520px; width: 100%; text-align: center; padding: 2.5rem 2rem;
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg);
  box-shadow: var(--shadow-soft);
}
.resources-gate-icon { font-size: 2.6rem; display: block; margin-bottom: 1rem; }
.resources-gate-card h1 { font-size: 1.5rem; margin: 0 0 1rem; }
.resources-gate-card p { color: var(--text-muted); line-height: 1.6; margin: 0 0 1rem; }
.resources-gate-form { display: flex; gap: .6rem; flex-wrap: wrap; justify-content: center; margin: 1.5rem 0 .5rem; }
.resources-gate-form input {
  flex: 1 1 200px; background: var(--surface-2); border: 1px solid var(--border); border-radius: var(--radius-sm);
  padding: .7rem 1rem; color: var(--text); font-family: var(--font-body); font-size: .95rem;
}
.resources-gate-form input:focus { outline: 2px solid var(--accent-teal); outline-offset: 1px; }
.resources-gate-error { color: var(--accent-red-text); font-weight: 600; margin-bottom: 1rem; }

/* ---------- RESSOURCES : bibliothèque ---------- */
.resources-toolbar { display: flex; gap: .75rem; flex-wrap: wrap; margin: 1.5rem 0 2rem; }
.resources-toolbar input[type="search"] {
  flex: 1 1 260px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-sm);
  padding: .65rem 1rem; color: var(--text); font-family: var(--font-body); font-size: .92rem;
}
.resources-toolbar select {
  flex: 0 1 220px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-sm);
  padding: .65rem 1rem; color: var(--text); font-family: var(--font-body); font-size: .92rem;
}
.resources-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 1.25rem; }
.resource-card {
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-md);
  overflow: hidden; display: flex; flex-direction: column; transition: transform .15s var(--ease), border-color .15s var(--ease);
}
.resource-card:hover { transform: translateY(-3px); border-color: var(--accent-teal); }
.resource-cover {
  height: 120px; display: flex; align-items: center; justify-content: center;
  background: linear-gradient(135deg, var(--accent-teal-dim), var(--surface-2));
}
.resource-cover-emoji { font-size: 2.8rem; }
.resource-body { padding: 1.1rem 1.2rem 1.3rem; display: flex; flex-direction: column; flex: 1; }
.resource-category { color: var(--accent-teal); font-size: .72rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; margin: 0 0 .35rem; }
.resource-title { font-size: 1.05rem; margin: 0 0 .5rem; }
.resource-desc { color: var(--text-muted); font-size: .88rem; line-height: 1.5; margin: 0 0 .8rem; flex: 1; }
.resource-meta { display: flex; flex-wrap: wrap; gap: .35rem; font-size: .75rem; color: var(--text-muted); margin-bottom: 1rem; }
.resource-dl { text-align: center; font-size: .88rem; }
.resources-library-title { font-size: 2rem; font-weight: 800; margin: 0 0 .5rem; }
.home-stats {
  display: flex; flex-wrap: wrap; justify-content: center; gap: 1.25rem 2.5rem;
  padding: 1.75rem 1rem; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-md);
}
.home-stat { display: flex; flex-direction: column; align-items: center; gap: .2rem; min-width: 100px; }
.home-stat strong { font-family: var(--font-display); font-size: clamp(1.6rem, 3vw, 2.1rem); font-weight: 700; color: var(--accent-teal); }
.home-stat span { font-size: .82rem; color: var(--text-muted); text-align: center; }
.teaser-static { cursor: default; }
.teaser-static:hover { transform: none; border-color: var(--border); }
.teaser-card {
  display: block; text-decoration: none; color: inherit;
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-md);
  padding: 1.75rem; transition: transform .15s var(--ease), border-color .15s var(--ease);
}
.teaser-card:hover { transform: translateY(-3px); border-color: var(--accent-red); }
.teaser-emoji { font-size: 1.8rem; display: block; margin-bottom: .75rem; }
.teaser-title { font-family: var(--font-display); font-weight: 700; font-size: 1.1rem; margin: 0 0 .35rem; }
.teaser-text { font-size: .9rem; margin: 0; }

/* Breadcrumb */
.breadcrumb {
  font-size: .85rem; color: var(--text-muted); margin-bottom: 1.5rem;
}
.breadcrumb a { color: var(--text-muted); text-decoration: none; }
.breadcrumb a:hover { color: var(--accent-teal); }

/* Locked node link replacement (span instead of button) */
.node-btn.is-disabled { opacity: .4; cursor: not-allowed; display: inline-flex; }

/* ============================================================
   TRACKS (parcours par niveau)
   ============================================================ */
.track-block {
  margin-top: 1.25rem; padding: 1.5rem 1.75rem; border: 1px solid var(--border);
  border-radius: var(--radius-md); background: var(--surface);
}
.track-block:first-child { margin-top: 2.5rem; }
.track-block[open] { padding-bottom: 1.75rem; }

.track-header {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  cursor: pointer; list-style: none; border-radius: var(--radius-sm);
  margin: -.5rem; padding: .5rem; transition: background .15s var(--ease);
}
.track-header:hover { background: var(--surface-2); }

/* ============================================================
   HOW IT WORKS (Apprendre hub explainer)
   ============================================================ */
.site-sections-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 1rem; margin: 2rem 0 3rem;
}
.site-sections-grid .site-guide-card { padding: 1.1rem 1.3rem; }
.site-sections-grid .site-guide-card-emoji { font-size: 1.7rem; }
.site-sections-grid .site-guide-card strong { font-size: 1rem; }
.site-sections-grid .site-guide-card-desc { font-size: .85rem; }

.howto-grid {
  display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  margin: 2rem 0 3rem;
}
.howto-item {
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-md);
  padding: 1.4rem 1.5rem;
}
.howto-emoji { font-size: 1.5rem; display: block; margin-bottom: .6rem; }
.howto-item h3 { font-family: var(--font-display); font-size: 1rem; margin: 0 0 .5rem; }
.howto-item p { font-size: .88rem; margin: 0; }

/* ============================================================
   CITY CULTURE SECTIONS (Découvrir : cuisine, à goûter, musique...)
   ============================================================ */
.culture-tabs {
  display: flex; gap: .5rem; overflow-x: auto; margin: 2rem 0 2.5rem;
  padding-bottom: .5rem; -webkit-overflow-scrolling: touch;
}
.culture-tabs a {
  flex: none; display: inline-flex; align-items: center; gap: .4rem;
  background: var(--surface); border: 1px solid var(--border); border-radius: 999px;
  padding: .55rem 1.1rem; font-size: .85rem; font-weight: 600; color: var(--text);
  text-decoration: none; transition: border-color .15s var(--ease), background .15s var(--ease);
}
.culture-tabs a:hover { border-color: var(--accent-teal); background: var(--surface-2); }
.culture-section { margin-bottom: 3rem; scroll-margin-top: 90px; }

.speech-terms { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: .9rem; margin-top: 1.2rem; }
.speech-term { background: var(--surface-2); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: .9rem 1.1rem; }
.speech-term-word { font-weight: 800; font-size: 1.05rem; margin: 0 0 .3rem; color: var(--accent-teal); }
.speech-term-vs { font-weight: 600; font-size: .82rem; color: var(--text-muted); }
.speech-term-meaning { margin: 0; font-size: .9rem; color: var(--text-muted); }
.culture-section h2 { font-family: var(--font-display); font-size: 1.25rem; margin-bottom: .9rem; }
.culture-section--featured {
  background: var(--surface); border: 1px solid var(--accent-red); border-radius: var(--radius-md);
  padding: 1.75rem;
}
.culture-meta { font-size: .88rem; color: var(--text-muted); margin: .4rem 0; }
.recipe-meta-row { display: flex; flex-wrap: wrap; gap: 1rem 1.5rem; margin: 1rem 0 1.5rem; }
.recipe-meta-row .culture-meta { margin: 0; }
.recipe-meta-row strong { color: var(--text); }
.recipe-subtitle { font-family: var(--font-display); font-size: 1.02rem; margin: 1.5rem 0 .6rem; }
.recipe-list { margin: 0; padding-left: 1.3rem; font-size: .92rem; }
.recipe-list li { margin-bottom: .45rem; line-height: 1.5; }
.recipe-steps li { padding-left: .2rem; }
.recipe-tip {
  margin-top: 1.5rem; padding: .9rem 1.1rem; background: var(--surface-2);
  border-left: 3px solid var(--accent-teal); border-radius: var(--radius-sm);
  font-size: .88rem;
}
.culture-grid { display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.culture-card {
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-md);
  padding: 1.25rem 1.4rem;
}
.culture-card h3 { font-family: var(--font-display); font-size: 1rem; margin: 0 0 .3rem; }
.culture-card-category {
  font-size: .72rem; font-weight: 700; color: var(--accent-teal); text-transform: uppercase;
  letter-spacing: .03em; margin: 0 0 .4rem;
}
.culture-card p:not(.culture-card-category) { font-size: .88rem; margin: 0; }
.culture-card-item h3 { font-size: 1rem; margin: 0 0 .3rem; }
.culture-card-item--compact h3 { font-size: .88rem; }
.culture-card-item--compact p { font-size: .82rem; }
.culture-card-item--stacked {
  margin-top: .9rem; padding-top: .9rem; border-top: 1px solid var(--border);
}

.festival-lineup { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--border); }
.lineup-venue { font-size: .82rem; font-weight: 700; color: var(--accent-red-text); margin: 0 0 .7rem; }
.lineup-day { margin-bottom: .6rem; }
.lineup-day-label { font-size: .78rem; font-weight: 700; color: var(--text-muted); margin: 0 0 .15rem; text-transform: uppercase; letter-spacing: .02em; }
.lineup-artists { font-size: .88rem; margin: 0; }
.lineup-artists a { color: var(--accent-teal); text-decoration: none; }
.lineup-artists a:hover { text-decoration: underline; }
.lineup-note { margin-top: .8rem; font-size: .75rem; color: var(--text-muted); font-style: italic; }

@media (max-width: 720px) {
  .culture-tabs { margin: 1.5rem -1.25rem 2rem; padding-left: 1.25rem; padding-right: 1.25rem; }
}
.track-header::marker { content: ""; }
.track-header-text { display: flex; flex-direction: column; gap: .3rem; }
.track-title { font-family: var(--font-display); font-size: 1.3rem; font-weight: 700; }
.track-subtitle { color: var(--text-muted); font-size: .92rem; }
.track-progress {
  display: inline-block; align-self: flex-start; margin-top: .1rem; font-size: .82rem; font-weight: 700;
  color: var(--accent-teal); background: var(--surface-2); border: 1px solid var(--border);
  border-radius: 999px; padding: .25rem .8rem;
}
.track-goal { display: block; margin-top: .4rem; font-size: .85rem; color: var(--accent-red-text); font-weight: 600; }
.track-header-chevron {
  flex: none; font-size: 1.1rem; color: var(--text-muted);
  transition: transform .2s var(--ease);
}
.track-block[open] .track-header-chevron { transform: rotate(180deg); }
.track-block .learn-path,
.track-block .track-soon { margin-top: 1.5rem; }
.track-soon {
  padding: 1rem 1.25rem; border: 1px dashed var(--border);
  border-radius: var(--radius-sm); color: var(--text-muted); font-size: .9rem;
}
.path-node--alphabet .node-badge { border-color: var(--accent-teal); background: var(--accent-teal-dim); color: var(--text); font-size: 1.2rem; }

/* ============================================================
   PROGRESS EXPORT / IMPORT (no-account save system)
   ============================================================ */
.progress-box {
  margin-top: 2rem; padding: 1.75rem; background: var(--surface-2); border: 1px solid var(--border);
  border-radius: var(--radius-md);
}
.progress-box textarea {
  width: 100%; min-height: 70px; margin-top: 1rem; padding: .75rem;
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-sm);
  color: var(--text); font-family: monospace; font-size: .85rem; resize: vertical;
}
.progress-actions { display: flex; gap: .75rem; margin-top: 1rem; flex-wrap: wrap; }

/* ============================================================
   MOOD PICKER (post-lesson feedback)
   ============================================================ */
.mood-row { display: flex; gap: .6rem; margin: 1.25rem 0; flex-wrap: wrap; }
.mood-btn {
  font-size: 1.8rem; line-height: 1; padding: .6rem .75rem; border-radius: var(--radius-sm);
  background: var(--surface-2); border: 2px solid var(--border); cursor: pointer;
  transition: border-color .15s var(--ease), transform .12s var(--ease);
}
.mood-btn:hover { transform: translateY(-2px); }
.mood-btn.is-selected { border-color: var(--accent-teal); background: var(--accent-teal-dim); }
.mood-note {
  width: 100%; min-height: 70px; padding: .75rem; background: var(--surface-2);
  border: 1px solid var(--border); border-radius: var(--radius-sm); color: var(--text);
  font-family: var(--font-body); font-size: .92rem; resize: vertical;
}
.recap-pdf-btn { margin-bottom: 1rem; font-size: .88rem; }

.story-level { color: var(--accent-teal); font-weight: 700; font-size: .85rem; text-transform: uppercase; letter-spacing: .03em; margin-bottom: 1.5rem; }
.story-lines { display: flex; flex-direction: column; gap: 1rem; max-width: 680px; margin: 0 auto 2rem; }
.story-line {
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-sm);
  padding: 1.1rem 1.3rem;
}
.story-line-text { font-size: 1.15rem; line-height: 1.6; margin: 0 0 .6rem; font-weight: 600; }
.story-translate-btn {
  background: none; border: 1px solid var(--border); border-radius: 999px; color: var(--text-muted);
  font-size: .78rem; font-weight: 700; padding: .3rem .75rem; cursor: pointer; font-family: var(--font-body);
}
.story-translate-btn:hover, .story-translate-btn.is-open { border-color: var(--accent-teal); color: var(--accent-teal); }
.story-line-translation { margin: .7rem 0 0; padding-top: .7rem; border-top: 1px dashed var(--border); color: var(--text-muted); font-style: italic; }
.story-related-city {
  display: inline-block; margin: 0 0 2rem; color: var(--accent-teal); text-decoration: none; font-weight: 600;
}
.story-related-city:hover { text-decoration: underline; }
.story-finish-btn, .story-quiz-submit { display: block; margin: 0 auto; }
.story-done-msg { text-align: center; font-weight: 700; color: var(--accent-teal); font-size: 1.05rem; }
.story-quiz { max-width: 680px; margin: 0 auto 2rem; }
.story-quiz-title { font-weight: 800; font-size: 1.1rem; margin: 0 0 1.2rem; text-align: center; }
.story-quiz-q { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 1.1rem 1.3rem; margin-bottom: 1rem; }
.story-quiz-prompt { font-weight: 700; margin: 0 0 .8rem; }
.story-quiz-options { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; }
@media (max-width: 480px) { .story-quiz-options { grid-template-columns: 1fr; } }
.story-quiz-opt {
  background: var(--surface-2); border: 1px solid var(--border); border-radius: var(--radius-sm);
  padding: .6rem .9rem; font-size: .9rem; color: var(--text); cursor: pointer; font-family: var(--font-body); text-align: left;
}
.story-quiz-opt:disabled { cursor: default; }
.story-quiz-opt.is-correct { border-color: #22c55e; background: rgba(34,197,94,.14); color: #86efac; }
.story-quiz-opt.is-wrong { border-color: var(--accent-red); background: rgba(239,68,68,.14); color: #fca5a5; }
.story-quiz-feedback { margin: .7rem 0 0; font-size: .88rem; color: var(--text-muted); }

.story-hub-list { display: flex; flex-direction: column; gap: 1rem; max-width: 680px; margin: 0 auto; }
.story-hub-card {
  display: flex; align-items: center; gap: 1rem; background: var(--surface); border: 1px solid var(--border);
  border-radius: var(--radius-md); padding: 1.2rem 1.4rem; text-decoration: none; color: var(--text);
  transition: border-color .15s var(--ease), transform .15s var(--ease);
}
.story-hub-card:hover { border-color: var(--accent-teal); transform: translateY(-2px); }
.story-hub-emoji { font-size: 2rem; flex: none; }
.story-hub-title { font-weight: 700; margin: 0 0 .3rem; }
.story-hub-desc { color: var(--text-muted); font-size: .88rem; margin: 0; }

.site-guide-btn {
  position: fixed; top: 50%; right: 0; transform: translateY(-50%); z-index: 90;
  display: flex; align-items: center; gap: .5rem;
  border: none; border-radius: 999px 0 0 999px;
  background: linear-gradient(135deg, var(--accent-teal), var(--accent-teal-dim));
  color: #04231F; font-weight: 800; font-size: .85rem; font-family: var(--font-body);
  cursor: pointer; padding: .5rem 1rem .5rem .5rem;
  box-shadow: -6px 6px 22px rgba(0,0,0,.4);
  transition: transform .15s var(--ease), padding-right .15s var(--ease);
}
.site-guide-btn:hover { transform: translateY(-50%) translateX(-4px); }
.site-guide-btn-icon {
  width: 40px; height: 40px; border-radius: 50%; border: 2px solid rgba(4,35,31,.25);
  background: #04231F; flex: none; display: flex; align-items: center; justify-content: center;
  font-size: 1.3rem;
}
.site-guide-btn.is-pulsing { animation: guide-pulse 2s ease-in-out infinite; }
@keyframes guide-pulse {
  0%, 100% { box-shadow: -6px 6px 22px rgba(0,0,0,.4), 0 0 0 0 rgba(45,212,191,.5); }
  50% { box-shadow: -6px 6px 22px rgba(0,0,0,.4), 0 0 0 10px rgba(45,212,191,0); }
}
@media (max-width: 640px) {
  .site-guide-btn { padding: .4rem .8rem .4rem .4rem; }
  .site-guide-btn-icon { width: 34px; height: 34px; font-size: 1.1rem; }
  .site-guide-btn-label { font-size: .78rem; }
}

.site-guide-backdrop {
  position: fixed; inset: 0; z-index: 200; background: rgba(5,10,20,.72);
  display: flex; align-items: flex-end; justify-content: flex-end; padding: 1.5rem;
}
.site-guide-backdrop[hidden] { display: none; }
.site-guide-panel {
  position: relative; width: 100%; max-width: 440px; max-height: min(720px, 88vh);
  overflow-y: auto; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg);
  padding: 1.75rem 1.5rem; box-shadow: 0 24px 60px rgba(0,0,0,.5);
}
.site-guide-panel h2 { margin: 0 0 .5rem; font-size: 1.3rem; }
.site-guide-close {
  position: absolute; top: 1rem; right: 1rem; background: var(--surface-2); border: 1px solid var(--border);
  border-radius: 50%; width: 32px; height: 32px; color: var(--text-muted); cursor: pointer; font-size: .9rem;
}
.site-guide-intro { color: var(--text-muted); font-size: .92rem; margin: 0 0 1.3rem; }
.site-guide-path {
  background: rgba(45,212,191,.08); border: 1px solid rgba(45,212,191,.3); border-radius: var(--radius-sm);
  padding: 1rem 1.2rem; margin-bottom: 1.5rem;
}
.site-guide-path-title { font-weight: 800; font-size: .88rem; margin: 0 0 .6rem; color: var(--accent-teal); }
.site-guide-path-list { margin: 0; padding-left: 1.1rem; display: flex; flex-direction: column; gap: .5rem; font-size: .88rem; line-height: 1.5; }
.site-guide-section-title { font-weight: 800; font-size: .95rem; margin: 0 0 .8rem; }
.site-guide-grid { display: flex; flex-direction: column; gap: .6rem; margin-bottom: 1.6rem; }
.site-guide-card {
  display: flex; align-items: center; gap: .8rem; text-decoration: none; color: var(--text);
  background: var(--surface-2); border: 1px solid var(--border); border-radius: var(--radius-sm);
  padding: .7rem .9rem; transition: border-color .15s var(--ease);
}
.site-guide-card:hover { border-color: var(--accent-teal); }
.site-guide-card-emoji { font-size: 1.4rem; flex: none; }
.site-guide-card strong { display: block; font-size: .9rem; }
.site-guide-card-desc { display: block; color: var(--text-muted); font-size: .78rem; margin-top: .1rem; }
.site-guide-faq { display: flex; flex-direction: column; gap: .5rem; }
.site-guide-faq .faq-item summary { font-size: .88rem; padding: .8rem 1rem; }
.site-guide-faq .faq-item-body { font-size: .85rem; padding: 0 1rem .9rem; }

/* ---------- MASCOTTE COMPAGNE ---------- */
.mascot-companion {
  position: fixed; left: 1rem; bottom: 1rem; z-index: 85;
  display: flex; align-items: flex-end; gap: .6rem;
  pointer-events: none;
}
.mascot-companion-avatar {
  width: 56px; height: 56px; border-radius: 50%; object-fit: cover;
  border: 2px solid var(--accent-teal); background: var(--surface);
  box-shadow: 0 8px 20px rgba(0,0,0,.4);
  pointer-events: initial; cursor: pointer;
  transition: transform .2s var(--ease);
}
.mascot-companion-avatar:hover { transform: scale(1.08) rotate(-4deg); }
.mascot-companion-avatar.is-bounce { animation: mascot-bounce .5s var(--ease); }
@keyframes mascot-bounce {
  0%, 100% { transform: translateY(0); }
  30% { transform: translateY(-10px); }
  55% { transform: translateY(2px); }
}
.mascot-bubble {
  position: relative; max-width: 260px; margin-bottom: 8px;
  background: var(--surface); border: 2px solid var(--accent-teal); border-radius: 20px;
  padding: .8rem 1rem; font-size: .85rem; line-height: 1.45; color: var(--text);
  box-shadow: 0 10px 24px rgba(0,0,0,.4);
  opacity: 0; transform: translateY(6px) scale(.9); transition: opacity .2s var(--ease), transform .2s var(--ease);
  pointer-events: none; cursor: pointer;
}
.mascot-bubble::after {
  content: ""; position: absolute; left: 22px; bottom: -12px;
  width: 0; height: 0;
  border-left: 10px solid transparent; border-right: 4px solid transparent;
  border-top: 12px solid var(--accent-teal);
}
.mascot-bubble::before {
  content: ""; position: absolute; left: 24px; bottom: -8px; z-index: 1;
  width: 0; height: 0;
  border-left: 8px solid transparent; border-right: 3px solid transparent;
  border-top: 9px solid var(--surface);
}
.mascot-bubble.is-visible { opacity: 1; transform: translateY(0) scale(1); pointer-events: initial; }
.mascot-bubble-mood { font-size: 1.1rem; margin-right: .3rem; }
.mascot-bubble-tag {
  display: block; font-weight: 800; font-size: .68rem; text-transform: uppercase; letter-spacing: .05em;
  color: var(--accent-teal); margin-bottom: .35rem;
}
@media (max-width: 640px) {
  .mascot-companion { left: .6rem; bottom: .6rem; }
  .mascot-companion-avatar { width: 46px; height: 46px; }
  .mascot-bubble { max-width: 200px; font-size: .8rem; }
}

.scenario-wrap { max-width: 560px; margin: 0 auto; }
.scenario-bubble {
  background: var(--surface-2); border: 1px solid var(--border); border-radius: var(--radius-md);
  padding: 1rem 1.2rem; margin-bottom: 1.3rem;
}
.scenario-speaker { display: block; font-weight: 800; color: var(--accent-teal); font-size: .8rem; text-transform: uppercase; letter-spacing: .03em; margin-bottom: .4rem; }
.scenario-line { font-size: 1.1rem; font-weight: 600; margin: 0; }
.scenario-choices { display: flex; flex-direction: column; gap: .6rem; }
.scenario-choice {
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-sm);
  padding: .75rem 1rem; text-align: left; cursor: pointer; font-family: var(--font-body);
  transition: border-color .15s var(--ease), transform .15s var(--ease);
}
.scenario-choice:hover { border-color: var(--accent-teal); transform: translateX(3px); }
.scenario-choice-sq { display: block; font-weight: 700; font-size: 1rem; color: var(--text); }
.scenario-choice-gloss { display: block; font-size: .8rem; color: var(--text-muted); margin-top: .15rem; font-style: italic; }
.scenario-ending { text-align: center; padding: 1.5rem 0; }
.scenario-ending-emoji { font-size: 2.6rem; margin: 0 0 1rem; }
.scenario-ending-text { font-size: 1.05rem; line-height: 1.6; max-width: 440px; margin: 0 auto; }

.mood-video-link {
  display: block; margin: -.5rem 0 1rem; padding: .7rem .9rem; background: var(--surface-2);
  border: 1px solid var(--border); border-radius: var(--radius-sm); color: var(--text-muted);
  font-size: .88rem; text-decoration: none;
}
.mood-video-link:hover { border-color: var(--accent-teal); color: var(--text); }

.feedback-stars { display: flex; gap: .3rem; margin: .5rem 0 1.1rem; }
.feedback-star {
  background: none; border: none; font-size: 1.7rem; line-height: 1; cursor: pointer;
  color: var(--border); padding: 0; transition: color .1s var(--ease), transform .1s var(--ease);
}
.feedback-star:hover { transform: scale(1.15); }
.feedback-star.is-filled { color: #FFC542; }
.feedback-actions { display: flex; gap: .75rem; margin-top: 1rem; flex-wrap: wrap; }
.feedback-status { margin-top: .8rem; font-size: .88rem; }
.feedback-status.is-ok { color: var(--accent-teal); }
.feedback-status.is-error { color: var(--accent-red-text); }
.mood-video-link strong { color: var(--text); }

/* ============================================================
   ACCOUNT PAGE ("Mon compte")
   ============================================================ */
.account-box {
  margin-top: 1.75rem; padding: 1.75rem; background: var(--surface); border: 1px solid var(--border);
  border-radius: var(--radius-md);
}
.account-box h2 { font-size: 1.1rem; margin-top: 0; }
.account-box--warning { border-color: var(--accent-red); background: var(--accent-red-dim); }
.account-box--review { border-color: var(--accent-teal); }
.review-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .6rem; }
.review-list a {
  display: block; padding: .7rem .9rem; background: var(--surface-2); border: 1px solid var(--border);
  border-radius: var(--radius-sm); color: var(--text); text-decoration: none; font-weight: 600;
}
.review-list a:hover { border-color: var(--accent-teal); }
.lesson-search-wrap { margin: 1.5rem 0 0; }
.lesson-search-input {
  width: 100%; max-width: 420px; padding: .7rem 1rem;
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-sm);
  color: var(--text); font-family: var(--font-body); font-size: .95rem;
}
.lesson-search-input:focus { outline: none; border-color: var(--accent-teal); }
.lesson-search-input::placeholder { color: var(--text-muted); }
.lesson-search-empty { margin-top: 1.5rem; color: var(--text-muted); font-size: .92rem; }

.hp-field {
  position: absolute; left: -9999px; top: -9999px;
  width: 1px; height: 1px; opacity: 0; overflow: hidden;
}

.news-list {
  display: flex; flex-direction: column; gap: 1.25rem; margin-top: 2rem;
}
.news-card {
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius);
  padding: 1.25rem 1.5rem;
}
.news-date {
  font-size: .82rem; color: var(--text-muted); margin: 0 0 .35rem;
}
.news-headline {
  font-size: 1.1rem; margin: 0 0 .5rem;
}
.news-headline a {
  color: var(--text); text-decoration: none;
}
.news-headline a:hover {
  color: var(--accent-teal); text-decoration: underline;
}
.news-desc {
  color: var(--text-muted); margin: 0 0 .6rem; line-height: 1.5;
}
.news-link {
  font-weight: 600; color: var(--accent-teal); text-decoration: none; font-size: .92rem;
}
.news-link:hover { text-decoration: underline; }
.news-status {
  text-align: center; color: var(--text-muted); padding: 2rem 0;
}
.news-status.news-error { color: var(--accent-red, #f87171); }

.site-switcher {
  background: #0b1220; border-bottom: 1px solid var(--border);
  /* aligné à gauche, sur le même bord que le logo */
  padding: .45rem 1.5rem .45rem max(1.5rem, calc((100% - 1440px) / 2 + 1.5rem));
  display: block;
}
.site-switcher-inner {
  display: inline-flex; align-items: center; gap: 2px; padding: 3px;
  background: rgba(255,255,255,.04); border: 1px solid var(--border); border-radius: 999px;
  max-width: 100%;
}
.site-switcher-option {
  display: flex; align-items: center; gap: .45rem;
  padding: .3rem .8rem .3rem .45rem; font-size: .82rem; font-weight: 700; line-height: 1;
  border-radius: 999px; text-decoration: none; white-space: nowrap;
  transition: background .15s var(--ease), color .15s var(--ease), box-shadow .15s var(--ease);
}
.site-switcher-option.is-current {
  background: linear-gradient(135deg, var(--accent-teal), #19b5a3); color: #04231F; cursor: default;
  box-shadow: 0 0 14px rgba(45,212,191,.35);
}
.site-switcher-option.is-other { color: var(--text-muted); }
.site-switcher-option.is-other:hover { color: var(--text); background: rgba(255,255,255,.08); }
/* Drapeaux dessinés en CSS : les emojis de drapeau ne s'affichent pas sous Windows */
.site-switcher-flag {
  display: inline-block; flex: none; width: 22px; height: 15px; font-size: 0; line-height: 0;
  border-radius: 3px; background-size: cover; background-position: center; background-repeat: no-repeat;
  box-shadow: 0 0 0 1px rgba(255,255,255,.2);
}
.site-switcher-inner > :first-child .site-switcher-flag { background-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2028%2020'%3E%3Crect%20width='28'%20height='20'%20fill='%23e41e20'/%3E%3Cg%20fill='%23000'%3E%3Cellipse%20cx='14'%20cy='11'%20rx='3.2'%20ry='5'/%3E%3Ccircle%20cx='11.6'%20cy='5.2'%20r='1.7'/%3E%3Ccircle%20cx='16.4'%20cy='5.2'%20r='1.7'/%3E%3Cpath%20d='M9.9%205%208.2%205.6%209.9%206.4z'/%3E%3Cpath%20d='M18.1%205%2019.8%205.6%2018.1%206.4z'/%3E%3Cpath%20d='M11.2%208.5%204%205%205.2%208%202.8%208.8%204.8%2010.6%203.2%2012.4%206.2%2012.6%205.6%2014.8%209.4%2013.4z'/%3E%3Cpath%20d='M16.8%208.5%2024%205%2022.8%208%2025.2%208.8%2023.2%2010.6%2024.8%2012.4%2021.8%2012.6%2022.4%2014.8%2018.6%2013.4z'/%3E%3Cpath%20d='M11.8%2015%2012.6%2018.8%2014%2017.2%2015.4%2018.8%2016.2%2015z'/%3E%3C/g%3E%3C/svg%3E"); }
.site-switcher-inner > :last-child .site-switcher-flag { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 3 2'%3E%3Crect width='1' height='2' fill='%230055A4'/%3E%3Crect x='1' width='1' height='2' fill='%23fff'/%3E%3Crect x='2' width='1' height='2' fill='%23EF4135'/%3E%3C/svg%3E"); }
.site-switcher-check { font-size: .72rem; }
.site-switcher-sep { display: none; }
.site-switcher-badge {
  font-size: .62rem; font-weight: 800; text-transform: uppercase; letter-spacing: .05em;
  background: rgba(245, 158, 11, .2); color: #fbbf24; border-radius: 999px;
  padding: .12rem .4rem; margin-left: .1rem;
}
@media (max-width: 480px) {
  .site-switcher-option { padding: .3rem .6rem .3rem .4rem; font-size: .76rem; }
}

.streak-banner {
  display: inline-block; margin: 0 0 1rem; padding: .55rem 1rem;
  background: var(--surface-2); border: 1px solid var(--border); border-radius: 999px;
  font-size: .88rem; font-weight: 600;
}
.streak-banner--risk { color: var(--accent-teal); border-color: var(--accent-teal); }
.streak-banner--away { color: var(--text-muted); }

.review-nudge {
  display: block; margin-bottom: 1.5rem; padding: .8rem 1.1rem; background: var(--accent-teal-dim);
  border: 1px solid var(--accent-teal); border-radius: var(--radius-sm); color: var(--text);
  text-decoration: none; font-weight: 600; font-size: .92rem;
}
.account-intro { display: flex; align-items: center; gap: 1rem; margin-bottom: .5rem; }
.account-intro-mascot { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; flex: none; }
.account-intro h1 { margin-bottom: .2rem; }

.page-intro-flex { display: flex; align-items: center; gap: 2rem; flex-wrap: wrap; margin-bottom: .5rem; }
.page-intro-flex.reverse { flex-direction: row-reverse; }
.page-intro-text { flex: 1 1 320px; min-width: 0; }
.page-mascot-inset { flex: none; filter: drop-shadow(0 12px 22px rgba(0,0,0,.35)); }
.page-mascot-inset.is-framed { border-radius: var(--radius-md); box-shadow: 0 12px 30px rgba(0,0,0,.4); filter: none; }
.mascot-apprendre { width: 190px; }
.mascot-decouvrir { width: 260px; }
.mascot-histoire { width: 170px; }
.mascot-videotheque { width: 210px; }
.mascot-compte { width: 190px; }
@media (max-width: 720px) {
  .page-intro-flex, .page-intro-flex.reverse { flex-direction: column-reverse; gap: 1.25rem; text-align: left; }
  .page-mascot-inset { width: 140px !important; margin: 0 auto; }
}
.account-welcome { display: flex; gap: 1.25rem; align-items: flex-start; }
.account-welcome-mascot { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; flex: none; }
.account-welcome-body { flex: 1; min-width: 0; }
.account-motivate { color: var(--accent-teal); font-weight: 600; margin: 0 0 1rem; }
.account-welcome--compact { display: flex; align-items: center; gap: .9rem; padding: 1.1rem 1.4rem; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-md); margin-top: 1.5rem; }
.account-welcome--compact p { margin: 0; font-size: .92rem; }
.account-collapsible summary {
  cursor: pointer; list-style: none; font-size: 1.1rem; font-weight: 700; font-family: var(--font-display);
  display: flex; align-items: center; justify-content: space-between;
}
.account-collapsible summary::after { content: "▾"; color: var(--text-muted); font-weight: 400; transition: transform .15s var(--ease); }
.account-collapsible[open] summary::after { transform: rotate(180deg); }
.account-collapsible .progress-box { margin-top: 1.5rem; }
.account-collapsible .progress-box h3 { font-size: 1rem; margin: 0 0 .4rem; }
#account-danger-zone:not(:empty) { margin-top: 1.25rem; }
.account-input {
  width: 100%; padding: .7rem .9rem; margin: .75rem 0; background: var(--surface-2);
  border: 1px solid var(--border); border-radius: var(--radius-sm); color: var(--text); font-size: .95rem;
}
.account-checkbox {
  display: flex; align-items: center; gap: .5rem; font-size: .88rem; color: var(--text-muted);
  margin-bottom: 1rem; cursor: pointer;
}
.account-note { font-size: .85rem; color: var(--text-muted); margin-top: 1.25rem; }
.profile-list { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1rem; }
.profile-btn { font-weight: 600; }
.account-stats { display: flex; gap: 1.5rem; flex-wrap: wrap; margin: 1.25rem 0; }
.account-stat {
  display: flex; flex-direction: column; align-items: center; gap: .2rem;
  background: var(--surface-2); border: 1px solid var(--border); border-radius: var(--radius-sm);
  padding: .9rem 1.4rem; min-width: 100px;
}
.account-stat strong { font-family: var(--font-display); font-size: 1.3rem; color: var(--accent-teal); }
.account-stat span { font-size: .78rem; color: var(--text-muted); }
.account-actions { display: flex; gap: .75rem; flex-wrap: wrap; }
.account-danger { border-color: var(--accent-red); color: var(--accent-red-text); }
.mood-entry { display: flex; gap: .9rem; padding: .9rem 0; border-bottom: 1px solid var(--border); }
.mood-entry:last-child { border-bottom: none; }
.mood-entry-emoji { font-size: 1.6rem; flex: none; }
.mood-entry-date { color: var(--text-muted); font-size: .82rem; }
.mood-entry-note { margin: .35rem 0 0; font-size: .9rem; }

@media (max-width: 560px) {
  .account-welcome { flex-direction: column; }
  .account-intro { flex-direction: column; align-items: flex-start; }
}

/* ============================================================
   VIDÉOTHÈQUE
   ============================================================ */
.video-group { margin-top: 2.5rem; }
.video-group:first-child { margin-top: 2rem; }
.video-group-title {
  font-family: var(--font-display); font-size: 1.15rem; margin: 0 0 1.25rem;
  padding-bottom: .5rem; border-bottom: 1px solid var(--border);
}
.video-filter-row { display: flex; flex-wrap: wrap; gap: .6rem; margin: 2rem 0 1.75rem; }
.video-filter-btn {
  background: var(--surface); border: 1px solid var(--border); color: var(--text-muted);
  border-radius: 999px; padding: .5rem 1.1rem; font-size: .85rem; font-weight: 600; cursor: pointer;
  transition: border-color .15s var(--ease), color .15s var(--ease), background .15s var(--ease);
}
.video-filter-btn:hover { border-color: var(--accent-teal); color: var(--text); }
.video-filter-btn.is-active { background: var(--accent-teal); border-color: var(--accent-teal); color: #04231F; }
.video-grid { display: grid; gap: 1.5rem; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.video-card {
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-md);
  overflow: hidden; display: flex; flex-direction: column;
  transition: transform .15s var(--ease), border-color .15s var(--ease);
}
.video-card:hover { transform: translateY(-3px); border-color: var(--accent-teal); }
.video-thumb-wrap {
  position: relative; aspect-ratio: 16 / 9; background: #000; cursor: pointer; overflow: hidden;
}
.video-thumb-wrap iframe, .video-thumb-wrap .video-thumb {
  width: 100%; height: 100%; display: block; object-fit: cover; border: none;
}
.video-play-btn {
  position: absolute; inset: 0; margin: auto; width: fit-content; height: fit-content;
  background: rgba(15, 23, 42, 0.75); color: var(--text); border: 1px solid var(--accent-teal);
  border-radius: 999px; padding: .7rem 1.3rem; font-weight: 700; font-size: .9rem; cursor: pointer;
  transition: background .15s var(--ease);
}
.video-thumb-wrap:hover .video-play-btn { background: var(--accent-red); border-color: var(--accent-red); }
.video-body { padding: 1.1rem 1.3rem 1.4rem; }
.video-pills { display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: .6rem; }
.video-category, .video-level {
  display: inline-block; font-size: .72rem; font-weight: 700; border-radius: 999px;
  padding: .2rem .65rem; border: 1px solid var(--border);
}
.video-category { color: var(--accent-red-text); background: var(--accent-red-dim); border-color: var(--accent-red); }
.video-level { color: var(--accent-teal); background: var(--surface-2); }
.video-title { font-size: 1.02rem; font-weight: 700; margin: 0 0 .5rem; line-height: 1.35; }
.video-desc { font-size: .88rem; margin: 0 0 .8rem; }
.video-meta { font-size: .82rem; margin: 0 0 .5rem; color: var(--text-muted); }
.video-meta strong { color: var(--text); }
.video-yt-link { font-size: .82rem; font-weight: 600; color: var(--accent-red-text); text-decoration: none; }
.video-yt-link:hover { text-decoration: underline; }

.badge-grid { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); margin-top: 1rem; }
.badge-card {
  display: flex; flex-direction: column; align-items: center; text-align: center; gap: .4rem;
  padding: 1.1rem .75rem; border-radius: var(--radius-sm); border: 1px solid var(--border); background: var(--surface-2);
}
.badge-card.is-earned { border-color: var(--accent-teal); }
.badge-card.is-locked { opacity: .38; filter: grayscale(1); }
.badge-emoji { font-size: 1.8rem; }
.badge-title { font-size: .78rem; font-weight: 600; margin: 0; }

/* Avatars */
.avatar-row { display: flex; flex-wrap: wrap; gap: .5rem; margin: .75rem 0 1.25rem; }
.avatar-btn {
  font-size: 1.4rem; line-height: 1; padding: .5rem .65rem; border-radius: var(--radius-sm);
  background: var(--surface-2); border: 2px solid var(--border); cursor: pointer;
  transition: border-color .15s var(--ease), transform .12s var(--ease);
}
.avatar-btn:hover { transform: translateY(-2px); }
.avatar-btn.is-selected { border-color: var(--accent-teal); background: var(--accent-teal-dim); }
.profile-btn-avatar { margin-right: .3rem; }
.dashboard-head { display: flex; align-items: center; gap: .85rem; margin-bottom: .25rem; }
.dashboard-head h2 { margin: 0; }
.dashboard-avatar {
  font-size: 1.8rem; width: 52px; height: 52px; display: flex; align-items: center; justify-content: center;
  background: var(--surface-2); border: 2px solid var(--accent-teal); border-radius: 50%; flex: none;
}

/* Collections */
.collection-item { margin-bottom: 1.1rem; }
.collection-item:last-child { margin-bottom: 0; }
.collection-item-head { display: flex; justify-content: space-between; font-size: .85rem; margin-bottom: .35rem; }
.collection-item-head span:last-child { color: var(--text-muted); font-weight: 600; }
.collection-bar { height: 8px; background: var(--surface-2); border-radius: 999px; overflow: hidden; }
.collection-bar-fill { height: 100%; background: var(--accent-teal); border-radius: 999px; transition: width .3s var(--ease); }

/* ============================================================
   ABOUT / AUTHOR
   ============================================================ */
.author-box {
  display: grid; grid-template-columns: auto 1fr; gap: 2rem;
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg);
  padding: 2.5rem; box-shadow: var(--shadow-soft);
}
.author-avatar-img { flex: none; width: 160px; height: auto; filter: drop-shadow(0 10px 20px rgba(0,0,0,.35)); }
.author-links { display: flex; gap: 1.25rem; margin-top: 1.5rem; flex-wrap: wrap; }
.bmc-btn {
  display: inline-flex; align-items: center; gap: .5rem; margin-top: 1.25rem;
  background: #FFDD00; color: #1a1a1a; font-weight: 700; text-decoration: none;
  padding: .65rem 1.2rem; border-radius: var(--radius-sm); transition: transform .15s var(--ease), box-shadow .15s var(--ease);
}
.bmc-btn:hover { transform: translateY(-2px); box-shadow: 0 8px 18px rgba(255,221,0,.35); }
.bmc-note { margin-top: .6rem; font-size: .82rem; color: var(--text-muted); max-width: 42em; }
.author-link { text-decoration: none; font-weight: 600; font-size: .92rem; color: var(--accent-teal); }
.author-link:hover { text-decoration: underline; }

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer { border-top: 1px solid var(--border); }
.footer-inner {
  max-width: 1180px; margin: 0 auto; padding: 2.5rem 1.5rem 1.5rem;
  color: var(--text-muted); font-size: .9rem;
}
.footer-columns {
  display: grid; grid-template-columns: repeat(3, minmax(140px, 1fr));
  gap: 1.5rem; margin-bottom: 2rem;
}
.footer-col { display: flex; flex-direction: column; gap: .55rem; }
.footer-col-title {
  margin: 0 0 .3rem; font-family: var(--font-display); font-weight: 700;
  font-size: .8rem; text-transform: uppercase; letter-spacing: .05em; color: var(--text);
}
.footer-col a { text-decoration: none; color: var(--text-muted); }
.footer-col a:hover { color: var(--accent-teal); }
.footer-copy { margin: 0; padding-top: 1.5rem; border-top: 1px solid var(--border); }
.footer-copy p { margin: 0; }
.footer-w3c, .footer-w3c-css { display: inline-block; margin: .75rem .5rem 0 0; vertical-align: middle; }
@media (max-width: 640px) {
  .footer-columns { grid-template-columns: 1fr 1fr; }
}
.footer-signature {
  display: flex;
  justify-content: flex-end;
  align-items: flex-end;
  width: 100%;
  margin: 0;
  padding: .4rem 1.5rem .9rem;
  border-top: 1px solid var(--border);
  max-width: none;
  text-decoration: none;
  background: none;
  transition: opacity .18s var(--ease);
}
.footer-signature:hover { opacity: 1; }
.footer-signature-inner {
  position: relative;
  display: block;
  width: min(100%, 340px);
  aspect-ratio: 493 / 246;
  margin-left: auto;
  background: url("../assets/images/footer-signature-ethem.webp") center right / contain no-repeat;
  filter: drop-shadow(0 14px 22px rgba(0, 0, 0, 0.28));
  transition: transform .18s var(--ease), filter .18s var(--ease), opacity .18s var(--ease);
}
.footer-signature:hover .footer-signature-inner {
  transform: translateY(-1px);
  filter: drop-shadow(0 16px 24px rgba(0, 0, 0, 0.30));
}
.footer-signature-inner::before {
  content: "";
  position: absolute;
  left: 26%;
  right: 1%;
  top: 12%;
  bottom: 7%;
  border-radius: 999px;
  z-index: -1;
  background: radial-gradient(circle at 60% 58%, rgba(30, 112, 196, 0.22), rgba(11, 35, 66, 0.02) 68%, transparent 76%);
  opacity: .88;
}
.footer-signature-mascot,
.footer-signature [data-i18n="footer.credit"] {
  display: none !important;
}
@media (max-width: 900px) {
  .footer-signature {
    padding: .38rem 1rem .85rem;
  }
  .footer-signature-inner {
    width: min(100%, 300px);
  }
}
@media (max-width: 720px) {
  .footer-signature {
    padding: .32rem .9rem .76rem;
  }
  .footer-signature-inner {
    width: min(100%, 250px);
  }
}
@media (max-width: 460px) {
  .footer-signature {
    padding: .3rem .75rem .68rem;
  }
  .footer-signature-inner {
    width: min(100%, 205px);
  }
}

/* ============================================================
   MODAL / LESSON ENGINE
   ============================================================ */
.modal-backdrop {
  position: fixed; inset: 0; background: rgba(5, 8, 16, 0.72);
  display: flex; align-items: center; justify-content: center; z-index: 100;
  padding: 1rem; backdrop-filter: blur(4px);
}
.modal-backdrop[hidden] { display: none; }

.lesson-modal {
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg);
  width: min(560px, 100%); max-height: 88vh; overflow-y: auto;
  box-shadow: var(--shadow-soft); position: relative;
  animation: pop-in .22s var(--ease);
}
@keyframes pop-in { from { opacity: 0; transform: translateY(10px) scale(.98); } to { opacity: 1; transform: none; } }

.modal-close {
  position: absolute; top: 1rem; right: 1rem; background: var(--surface-2);
  border: 1px solid var(--border); color: var(--text); width: 32px; height: 32px;
  border-radius: 50%; cursor: pointer; font-size: .9rem;
}
.modal-header { padding: 1.75rem 1.75rem 1rem; }
.modal-header h2 { font-size: 1.3rem; padding-right: 2rem; }
.modal-progress { height: 6px; background: var(--surface-2); border-radius: 999px; overflow: hidden; margin-top: .75rem; }
.modal-progress-bar { height: 100%; width: 0%; background: var(--accent-teal); transition: width .3s var(--ease); }
.modal-body { padding: .5rem 1.75rem 1.75rem; min-height: 220px; }
.modal-footer { padding: 0 1.75rem 1.75rem; display: flex; justify-content: flex-end; }

/* Flashcards */
.flashcard {
  width: 100%; height: 220px; perspective: 1000px; cursor: pointer;
}
.flashcard-inner {
  position: relative; width: 100%; height: 100%; text-align: center;
  transition: transform .5s var(--ease); transform-style: preserve-3d;
}
.flashcard.is-flipped .flashcard-inner { transform: rotateY(180deg); }
.flashcard-face {
  position: absolute; inset: 0; backface-visibility: hidden;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .5rem;
  border-radius: var(--radius-md); border: 1px solid var(--border); background: var(--surface-2);
  padding: 1.5rem;
}
.flashcard-face.back { transform: rotateY(180deg); border-color: var(--accent-teal); }
.flashcard-word { font-family: var(--font-display); font-size: 1.7rem; font-weight: 700; }
.flashcard-hint { color: var(--text-muted); font-size: .85rem; }
.flashcard-tap-hint { margin-top: 1rem; font-size: .8rem; color: var(--text-muted); text-align: center; }
.flashcard-listen {
  margin-top: .6rem; background: var(--surface); border: 1px solid var(--border); color: var(--text);
  border-radius: 999px; padding: .35rem .8rem; font-size: .8rem; font-weight: 600; cursor: pointer;
}
.flashcard-listen:hover { border-color: var(--accent-teal); }

/* ============================================================
   ALPHABET REFERENCE PAGE
   ============================================================ */
.alphabet-intro { margin-bottom: 1rem; }
.alphabet-listen-note {
  font-size: .85rem; color: var(--text-muted); background: var(--surface);
  border: 1px dashed var(--border); border-radius: var(--radius-sm); padding: .85rem 1rem; margin-bottom: 1.5rem;
}
.article-wrap .btn-primary { margin-bottom: 2.5rem; }
.letter-group-title {
  font-family: var(--font-display); font-size: 1.15rem; margin: 2.5rem 0 1.25rem;
  padding-bottom: .5rem; border-bottom: 1px solid var(--border);
}
.letter-grid {
  display: grid; gap: 1.1rem; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
}
.letter-card {
  background: var(--surface); border: 1px solid var(--border); border-left: 3px solid var(--border);
  border-radius: var(--radius-sm); padding: 1.1rem 1.2rem;
}
.letter-card--voyelle { border-left-color: var(--accent-teal); }
.letter-card--digramme { border-left-color: var(--accent-red); }
.letter-glyph { font-family: var(--font-display); font-size: 1.4rem; font-weight: 700; margin: 0; }
.letter-ipa { color: var(--text-muted); font-size: .82rem; margin: .1rem 0 .6rem; font-family: monospace; }
.letter-explain { font-size: .85rem; margin: 0 0 .6rem; }
.letter-example { font-size: .85rem; margin: 0 0 .7rem; }
.letter-listen {
  background: var(--surface-2); border: 1px solid var(--border); color: var(--text);
  border-radius: 999px; padding: .4rem .85rem; font-size: .8rem; font-weight: 600; cursor: pointer;
}
.letter-listen:hover { border-color: var(--accent-teal); }

/* QCM */
.qcm-question { font-family: var(--font-display); font-size: 1.25rem; margin-bottom: 1.25rem; }
.qcm-options { display: grid; gap: .7rem; }
.qcm-option {
  text-align: left; padding: .85rem 1rem; border-radius: var(--radius-sm);
  border: 1px solid var(--border); background: var(--surface-2); color: var(--text);
  cursor: pointer; font-size: .98rem; font-family: var(--font-body); transition: border-color .15s var(--ease), background .15s var(--ease);
}
.qcm-option:hover:not(:disabled) { border-color: var(--accent-teal); }
.qcm-option.is-correct { border-color: var(--accent-teal); background: var(--accent-teal-dim); }
.qcm-option.is-wrong { border-color: var(--accent-red); background: var(--accent-red-dim); }
.qcm-option:disabled { cursor: default; }

.qcm-help {
  margin-top: 1rem; padding: .9rem 1rem; border-radius: var(--radius-sm);
  border: 1px solid var(--border); font-size: .9rem; display: flex; gap: .6rem; align-items: flex-start;
}
.qcm-help.is-correct { border-color: var(--accent-teal); background: rgba(45, 212, 191, 0.08); }
.qcm-help.is-wrong { border-color: var(--accent-red); background: rgba(228, 30, 32, 0.08); }
.qcm-help-label { font-weight: 700; flex: none; }
.qcm-help.is-correct .qcm-help-label { color: var(--accent-teal); }
.qcm-help.is-wrong .qcm-help-label { color: var(--accent-red-text); }

/* Drag & drop sentence builder */
.dd-prompt { font-family: var(--font-display); font-size: 1.1rem; margin-bottom: 1rem; }
.dd-target {
  min-height: 56px; display: flex; flex-wrap: wrap; gap: .5rem; align-items: center;
  padding: .75rem; border: 2px dashed var(--border); border-radius: var(--radius-sm); margin-bottom: 1rem;
}
.dd-target.is-over { border-color: var(--accent-teal); }
.dd-bank { display: flex; flex-wrap: wrap; gap: .5rem; }
.dd-chip {
  padding: .55rem .9rem; background: var(--surface-2); border: 1px solid var(--border);
  border-radius: 999px; cursor: grab; font-weight: 600; font-size: .92rem; user-select: none;
}
.dd-chip.is-placed { opacity: .35; cursor: default; }
.dd-chip:active { cursor: grabbing; }
.dd-feedback { margin-top: 1rem; font-weight: 600; }
.dd-feedback.correct { color: var(--accent-teal); }
.dd-feedback.wrong { color: var(--accent-red-text); }
.dd-help {
  margin-top: .6rem; padding: .75rem .9rem; border-radius: var(--radius-sm);
  border: 1px dashed var(--border); font-size: .88rem; color: var(--text);
}
.dd-help strong { color: var(--accent-red-text); }

/* Toast */
.toast {
  position: fixed; top: 1.25rem; left: 50%; transform: translateX(-50%) translateY(-140%);
  background: var(--surface); border: 1px solid var(--accent-teal); border-radius: var(--radius-md);
  box-shadow: var(--shadow-soft); z-index: 150; transition: transform .35s var(--ease);
}
.toast.is-visible { transform: translateX(-50%) translateY(0); }
.toast-inner { display: flex; align-items: center; gap: .85rem; padding: 1rem 1.4rem; }
.toast-emoji { font-size: 1.6rem; }
.toast-title { margin: 0; font-weight: 700; font-family: var(--font-display); }
.toast-sub { margin: 0; color: var(--accent-teal); font-weight: 600; }

#confetti-canvas {
  position: fixed; inset: 0; pointer-events: none; z-index: 140;
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 860px) {
  .hero-inner { grid-template-columns: 1fr; text-align: left; }
  .hero-art { order: -1; max-width: 220px; margin: 0 auto; }
  .author-box { grid-template-columns: 1fr; text-align: left; }
  .author-avatar-img { margin: 0 auto; }
}

@media (max-width: 620px) {
  .header-inner { flex-wrap: wrap; }
  .main-nav {
    order: 3; width: 100%; justify-content: center; padding-top: .5rem; border-top: 1px solid var(--border);
    flex-wrap: wrap; row-gap: .5rem; column-gap: 1.1rem;
  }
  .path-node { align-items: flex-start; }
  .node-btn { padding: .55rem .8rem; font-size: .85rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .hero-mascot { animation: none; }
  * { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

.albania-map-section {
  margin-top: 2.5rem;
}

.albania-map-heading {
  max-width: 760px;
  margin: 0 auto 1rem;
  text-align: center;
}

.albania-map-heading h2 {
  margin: 0 0 0.5rem;
}

.albania-map-heading p,
.albania-map-help {
  color: #94A3B8;
}

.albania-map {
  height: min(68vh, 680px);
  min-height: 420px;
  width: 100%;
  overflow: hidden;
  border: 1px solid rgba(148, 163, 184, 0.24);
  border-radius: 18px;
  box-shadow: 0 18px 45px rgba(2, 6, 23, 0.28);
  background: #E2E8F0;
}

.albania-map-help {
  margin: 0.85rem 0 0;
  font-size: 0.9rem;
  text-align: center;
}

.leaflet-container {
  font-family: "Inter", system-ui, sans-serif;
}

.leaflet-popup-content-wrapper {
  border-radius: 12px;
  background: #0F172A !important;
  color: #F8FAFC !important;
  box-shadow: 0 10px 25px rgba(15, 23, 42, 0.32);
}

.leaflet-popup-tip {
  background: #0F172A !important;
}

.albania-city-popup {
  min-width: 155px;
  text-align: center;
}

.albania-city-popup strong {
  display: block;
  margin-bottom: 0.55rem;
  color: #FFFFFF !important;
  font-family: "Montserrat", sans-serif;
  font-size: 1rem;
}

.albania-city-popup a {
  display: inline-block;
  padding: 0.42rem 0.7rem;
  border-radius: 999px;
  background: #E41E20;
  color: #FFFFFF;
  font-size: 0.82rem;
  font-weight: 700;
  text-decoration: none;
}

.albania-city-popup a:hover,
.albania-city-popup a:focus-visible {
  background: #BE1719;
}

.albania-city-marker {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border: 3px solid #FFFFFF;
  border-radius: 50%;
  background: #E41E20;
  box-shadow: 0 3px 10px rgba(15, 23, 42, 0.42);
  color: #FFFFFF;
  font-family: "Montserrat", sans-serif;
  font-size: 0.7rem;
  font-weight: 800;
  line-height: 1;
}

.albania-city-marker--capital {
  width: 36px;
  height: 36px;
  background: #F59E0B;
  font-size: 1rem;
}

.leaflet-control-attribution {
  background: rgba(255, 255, 255, 0.86) !important;
  font-size: 10px;
}

@media (max-width: 640px) {
  .albania-map {
    min-height: 390px;
    border-radius: 14px;
  }

  .albania-city-marker {
    width: 24px;
    height: 24px;
    border-width: 2px;
    font-size: 0.62rem;
  }

  .albania-city-marker--capital {
    width: 31px;
    height: 31px;
    font-size: 0.85rem;
  }
}

.albania-city-label {
  background: #0F172A;
  border: 1px solid rgba(148, 163, 184, 0.35);
  color: #F8FAFC;
  font-family: "Montserrat", sans-serif;
  font-weight: 700;
  font-size: 0.72rem;
  padding: 0.15rem 0.5rem;
  border-radius: 999px;
  box-shadow: 0 2px 8px rgba(2, 6, 23, 0.35);
  white-space: nowrap;
}

.albania-city-label::before {
  border-top-color: #0F172A;
}

.albania-city-label--capital {
  background: #F59E0B;
  color: #1F2937;
  border-color: #F59E0B;
}

.albania-city-label--capital::before {
  border-top-color: #F59E0B;
}

/* ============================================================
   PATCH MOBILE : HEADER (menu hamburger)
   N'affecte AUCUNE règle en dehors de ces media queries.
   Le rendu desktop (> 900px / > 620px) reste strictement identique.
   ============================================================ */

@media (max-width: 1279px) {
  .header-inner {
    padding-right: 1.5rem;
  }
  .header-actions {
    position: static;
    top: auto;
    right: auto;
    flex-direction: row;
    align-items: center;
    gap: .5rem;
  }
}

@media (max-width: 1279px) {
  .main-nav {
    display: none;
  }
  .main-nav.is-open {
    display: flex;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    width: auto;
    order: unset;
    flex-direction: column;
    align-items: flex-start;
    background: var(--surface);
    border-top: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
    padding: 1rem 1.5rem;
    row-gap: .9rem;
    column-gap: 0;
    box-shadow: 0 12px 24px rgba(0, 0, 0, 0.28);
  }
  .nav-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: var(--radius-sm);
    background: var(--surface);
    border: 1px solid var(--border);
    color: var(--text);
    font-size: 1.1rem;
    cursor: pointer;
    flex: none;
  }
  .nav-toggle:hover {
    border-color: var(--accent-teal);
  }
  .header-actions {
    order: 2;
  }
  .stat-hud-item { padding: .35rem .55rem; }
  .stat-hud-value { font-size: .85rem; }
}

@media (min-width: 1280px) {
  .nav-toggle {
    display: none;
  }
}

/* Tablette / petit portable : logo à gauche, badges + bouton menu groupés à droite */
@media (min-width: 621px) and (max-width: 1279px) {
  .header-inner { justify-content: flex-start; }
  .header-actions { margin-left: auto; order: 2; }
  .nav-toggle { order: 3; }
}

/* ===== Mur de messages ===== */
.wall-form { display: grid; gap: 1rem; max-width: 620px; margin: 1.5rem 0 2.25rem; }
.wall-field { display: grid; gap: .35rem; position: relative; }
.wall-field label { font-weight: 700; font-size: .9rem; }
.wall-field input, .wall-field textarea {
  width: 100%; box-sizing: border-box; padding: .7rem .85rem; border-radius: var(--radius-sm);
  background: var(--surface); border: 1px solid var(--border); color: var(--text); font: inherit;
}
.wall-field textarea { resize: vertical; min-height: 7rem; }
.wall-field input:focus, .wall-field textarea:focus { outline: 2px solid var(--accent-teal); outline-offset: 1px; }
.wall-counter { justify-self: end; font-size: .75rem; color: var(--text-muted); }
.wall-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.wall-form .btn { justify-self: start; }
.wall-status { margin: 0; min-height: 1.4em; font-weight: 600; }
.wall-status.is-ok { color: var(--accent-teal); }
.wall-status.is-err { color: var(--accent-red-text); }
.wall-list-title { margin-top: 1rem; }
.wall-list { display: grid; gap: .9rem; max-width: 760px; }
.wall-msg { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-md); padding: 1rem 1.2rem; }
.wall-msg-text { margin: 0 0 .5rem; white-space: pre-wrap; overflow-wrap: anywhere; }
.wall-msg-meta { margin: 0; font-size: .82rem; color: var(--text-muted); }
.wall-msg-meta strong { color: var(--accent-teal); }
.wall-coffee { margin-top: 2.5rem; padding-top: 1.5rem; border-top: 1px dashed var(--border); max-width: 760px; }
.wall-coffee .bmc-note { margin-top: .75rem; color: var(--text-muted); font-size: .88rem; }

/* ===== Lampe « Coin lecture » (lien vers /lecture) ===== */
.reading-lamp { position: fixed; top: 7.5rem; right: 1rem; z-index: 84; }
.reading-lamp-link { position: relative; display: block; width: 56px; height: 70px; text-decoration: none; border-radius: 12px; }
.reading-lamp-body { position: absolute; inset: 0; display: block; }
.reading-lamp-body > span { position: absolute; display: block; transition: opacity .6s ease, filter .6s ease, background .6s ease; }
.lamp-glow { left: -32px; top: -24px; width: 120px; height: 120px; border-radius: 50%; opacity: .25;
  background: radial-gradient(circle, rgba(255, 214, 102, .6) 0%, rgba(255, 214, 102, 0) 68%); pointer-events: none; }
.lamp-beam { left: 0; top: 36px; width: 56px; height: 34px; opacity: 0; clip-path: polygon(22% 0, 78% 0, 100% 100%, 0 100%);
  background: linear-gradient(180deg, rgba(255, 214, 102, .35), rgba(255, 214, 102, 0)); pointer-events: none; }
.lamp-shade { left: 8px; top: 8px; width: 40px; height: 30px; clip-path: polygon(22% 0, 78% 0, 100% 100%, 0 100%);
  background: linear-gradient(180deg, #c9a66b, #8a6a35); }
.lamp-stem { left: 26px; top: 38px; width: 4px; height: 22px; border-radius: 2px; background: #b08850; }
.lamp-base { left: 13px; top: 59px; width: 30px; height: 9px; border-radius: 8px 8px 3px 3px; background: #6b4a24; }
/* Allumée : à l'arrivée (après un court délai), au survol et au clavier */
.reading-lamp.is-on .lamp-glow, .reading-lamp:hover .lamp-glow, .reading-lamp:focus-within .lamp-glow { opacity: .95; animation: lamp-pulse 3.4s ease-in-out infinite; }
.reading-lamp.is-on .lamp-beam, .reading-lamp:hover .lamp-beam, .reading-lamp:focus-within .lamp-beam { opacity: 1; }
.reading-lamp.is-on .lamp-shade, .reading-lamp:hover .lamp-shade, .reading-lamp:focus-within .lamp-shade {
  background: linear-gradient(180deg, #fde68a, #f59e0b); filter: drop-shadow(0 0 7px rgba(255, 214, 102, .85)); }
@keyframes lamp-pulse { 0%, 100% { transform: scale(1); opacity: .8; } 50% { transform: scale(1.1); opacity: 1; } }
/* Bulle d'invitation : visible quelques secondes à l'arrivée, puis au survol / au clavier */
.reading-lamp-bubble {
  position: absolute; right: 66px; top: 4px; width: 11.5rem; padding: .55rem .75rem; border-radius: 12px;
  background: #1d2742; border: 1px solid rgba(255, 214, 102, .55); color: var(--text); box-shadow: 0 8px 18px rgba(0, 0, 0, .45);
  opacity: 0; transform: translateX(8px); pointer-events: none; transition: opacity .35s ease, transform .35s ease;
}
.reading-lamp-bubble::after { content: ""; position: absolute; right: -7px; top: 18px; width: 12px; height: 12px; background: #1d2742;
  border-top: 1px solid rgba(255, 214, 102, .55); border-right: 1px solid rgba(255, 214, 102, .55); transform: rotate(45deg); }
.reading-lamp.show-bubble .reading-lamp-bubble, .reading-lamp-link:hover .reading-lamp-bubble, .reading-lamp-link:focus-visible .reading-lamp-bubble { opacity: 1; transform: none; }
.reading-lamp-title { display: block; font-family: "Dancing Script", cursive; font-weight: 700; font-size: 1.3rem; line-height: 1; color: #fcd34d; }
.reading-lamp-sub { display: block; margin-top: .3rem; font-size: .78rem; line-height: 1.25; }
.reading-lamp-close {
  position: absolute; top: -6px; left: -6px; width: 20px; height: 20px; padding: 0; border-radius: 50%;
  display: grid; place-items: center; font-size: .65rem; line-height: 1; cursor: pointer;
  background: #1d2742; color: var(--text); border: 1px solid var(--border); box-shadow: 0 2px 4px rgba(0, 0, 0, .4);
}
@media (max-width: 620px) {
  .reading-lamp { top: 10.5rem; right: .5rem; transform: scale(.88); transform-origin: top right; }
  .reading-lamp-bubble { width: 9.5rem; }
}
@media (prefers-reduced-motion: reduce) {
  .reading-lamp-body > span, .reading-lamp-bubble { transition: none; }
  .reading-lamp.is-on .lamp-glow, .reading-lamp:hover .lamp-glow, .reading-lamp:focus-within .lamp-glow { animation: none; }
}
@media print { .reading-lamp { display: none; } }

/* ===== Social : défi entre amis, partage, derniers petits mots ===== */
.home-wall[hidden] { display: none; }
.home-wall .wall-list { margin: 1rem 0 1.25rem; }
.challenge-banner {
  margin: .6rem 0 0; padding: .55rem .8rem; border-radius: var(--radius-sm);
  background: rgba(245, 158, 11, .15); border: 1px solid rgba(245, 158, 11, .5);
  color: #fcd34d; font-weight: 700; font-size: .9rem;
}
.challenge-box { margin: 1rem 0; padding: .9rem 1rem; border: 1px dashed var(--border); border-radius: var(--radius-md); display: grid; gap: .6rem; justify-items: start; }
.challenge-box .account-note { margin: 0; }
.challenge-result { margin: 0; font-weight: 800; font-size: 1.05rem; }
.challenge-result.is-win { color: var(--accent-teal); }
.challenge-result.is-tie { color: #fcd34d; }
.challenge-result.is-lose { color: var(--text); }
.account-share { margin: .75rem 0 1rem; display: grid; gap: .4rem; justify-items: start; }
.account-share .account-note { margin: 0; }

/* ===== Boutons de partage (simples liens, aucun script tiers) ===== */
.share-wrap { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem .9rem; margin: 1rem 0 1.25rem; }
.share-label { font-weight: 700; font-size: .9rem; }
.share-bar { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }
.share-link {
  display: inline-flex; align-items: center; gap: .45rem; padding: .4rem .85rem; border-radius: 999px;
  background: var(--surface); border: 1px solid var(--border); color: var(--text);
  font: inherit; font-size: .85rem; font-weight: 600; line-height: 1.2; text-decoration: none; cursor: pointer;
}
.share-link::before { content: ""; width: .55rem; height: .55rem; border-radius: 50%; background: var(--share-c, var(--text-muted)); flex: none; }
.share-link:hover { border-color: var(--accent-teal); }
.share-whatsapp { --share-c: #25d366; } .share-facebook { --share-c: #1877f2; } .share-x { --share-c: #e7ecf3; }
.share-telegram { --share-c: #27a7e7; } .share-viber { --share-c: #7360f2; } .share-email { --share-c: #f59e0b; }
.share-copy { --share-c: #2dd4bf; } .share-native { --share-c: #f55254; }
.share-status { font-size: .82rem; color: var(--accent-teal); }
.home-share { padding-top: 0; }
.challenge-box .share-bar, .account-share .share-bar { margin-top: .1rem; }

/* ===== Vrais drapeaux dessinés en CSS (les emojis de drapeau ne s'affichent pas sous Windows) ===== */
.lang-dropdown-flag {
  display: inline-block; flex: none; width: 20px; height: 14px; font-size: 0; line-height: 0; vertical-align: middle;
  border-radius: 2px; background-size: 100% 100%; background-repeat: no-repeat; box-shadow: 0 0 0 1px rgba(255,255,255,.22);
}
.choice-flag[data-flag] {
  display: block; width: 72px; height: 48px; font-size: 0; line-height: 0; margin-bottom: 1rem;
  border-radius: 6px; background-size: 100% 100%; background-repeat: no-repeat; box-shadow: 0 0 0 1px rgba(255,255,255,.25), 0 6px 14px rgba(0,0,0,.35);
}
.lang-dropdown-flag[data-flag="fr"], .lang-dropdown-item[data-lang-btn="fr"] .lang-dropdown-flag, .choice-flag[data-flag="fr"] { background-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%203%202'%3E%3Crect%20width='1'%20height='2'%20fill='%230055A4'/%3E%3Crect%20x='1'%20width='1'%20height='2'%20fill='%23fff'/%3E%3Crect%20x='2'%20width='1'%20height='2'%20fill='%23EF4135'/%3E%3C/svg%3E"); }
.lang-dropdown-flag[data-flag="en"], .lang-dropdown-item[data-lang-btn="en"] .lang-dropdown-flag, .choice-flag[data-flag="en"] { background-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2060%2030'%3E%3CclipPath%20id='s'%3E%3Cpath%20d='M0,0%20v30%20h60%20v-30%20z'/%3E%3C/clipPath%3E%3CclipPath%20id='t'%3E%3Cpath%20d='M30,15%20h30%20v15%20z%20v15%20h-30%20z%20h-30%20v-15%20z%20v-15%20h30%20z'/%3E%3C/clipPath%3E%3Cg%20clip-path='url(%23s)'%3E%3Cpath%20d='M0,0%20v30%20h60%20v-30%20z'%20fill='%23012169'/%3E%3Cpath%20d='M0,0%20L60,30%20M60,0%20L0,30'%20stroke='%23fff'%20stroke-width='6'/%3E%3Cpath%20d='M0,0%20L60,30%20M60,0%20L0,30'%20clip-path='url(%23t)'%20stroke='%23C8102E'%20stroke-width='4'/%3E%3Cpath%20d='M30,0%20v30%20M0,15%20h60'%20stroke='%23fff'%20stroke-width='10'/%3E%3Cpath%20d='M30,0%20v30%20M0,15%20h60'%20stroke='%23C8102E'%20stroke-width='6'/%3E%3C/g%3E%3C/svg%3E"); }
.lang-dropdown-flag[data-flag="de"], .lang-dropdown-item[data-lang-btn="de"] .lang-dropdown-flag, .choice-flag[data-flag="de"] { background-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%205%203'%3E%3Crect%20width='5'%20height='1'%20fill='%23000'/%3E%3Crect%20y='1'%20width='5'%20height='1'%20fill='%23DD0000'/%3E%3Crect%20y='2'%20width='5'%20height='1'%20fill='%23FFCE00'/%3E%3C/svg%3E"); }
.lang-dropdown-flag[data-flag="sq"], .lang-dropdown-item[data-lang-btn="sq"] .lang-dropdown-flag, .choice-flag[data-flag="sq"] { background-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2028%2020'%3E%3Crect%20width='28'%20height='20'%20fill='%23e41e20'/%3E%3Cg%20fill='%23000'%3E%3Cellipse%20cx='14'%20cy='11'%20rx='3.2'%20ry='5'/%3E%3Ccircle%20cx='11.6'%20cy='5.2'%20r='1.7'/%3E%3Ccircle%20cx='16.4'%20cy='5.2'%20r='1.7'/%3E%3Cpath%20d='M9.9%205%208.2%205.6%209.9%206.4z'/%3E%3Cpath%20d='M18.1%205%2019.8%205.6%2018.1%206.4z'/%3E%3Cpath%20d='M11.2%208.5%204%205%205.2%208%202.8%208.8%204.8%2010.6%203.2%2012.4%206.2%2012.6%205.6%2014.8%209.4%2013.4z'/%3E%3Cpath%20d='M16.8%208.5%2024%205%2022.8%208%2025.2%208.8%2023.2%2010.6%2024.8%2012.4%2021.8%2012.6%2022.4%2014.8%2018.6%2013.4z'/%3E%3Cpath%20d='M11.8%2015%2012.6%2018.8%2014%2017.2%2015.4%2018.8%2016.2%2015z'/%3E%3C/g%3E%3C/svg%3E"); }
.lang-dropdown-flag[data-flag="al"], .lang-dropdown-item[data-lang-btn="al"] .lang-dropdown-flag, .choice-flag[data-flag="al"] { background-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2028%2020'%3E%3Crect%20width='28'%20height='20'%20fill='%23e41e20'/%3E%3Cg%20fill='%23000'%3E%3Cellipse%20cx='14'%20cy='11'%20rx='3.2'%20ry='5'/%3E%3Ccircle%20cx='11.6'%20cy='5.2'%20r='1.7'/%3E%3Ccircle%20cx='16.4'%20cy='5.2'%20r='1.7'/%3E%3Cpath%20d='M9.9%205%208.2%205.6%209.9%206.4z'/%3E%3Cpath%20d='M18.1%205%2019.8%205.6%2018.1%206.4z'/%3E%3Cpath%20d='M11.2%208.5%204%205%205.2%208%202.8%208.8%204.8%2010.6%203.2%2012.4%206.2%2012.6%205.6%2014.8%209.4%2013.4z'/%3E%3Cpath%20d='M16.8%208.5%2024%205%2022.8%208%2025.2%208.8%2023.2%2010.6%2024.8%2012.4%2021.8%2012.6%2022.4%2014.8%2018.6%2013.4z'/%3E%3Cpath%20d='M11.8%2015%2012.6%2018.8%2014%2017.2%2015.4%2018.8%2016.2%2015z'/%3E%3C/g%3E%3C/svg%3E"); }

/* ===== Récompense de fin de leçon : lien vers le coin lecture ===== */
.reading-reward {
  display: flex; align-items: center; gap: .8rem; margin: 1rem 0; padding: .7rem .95rem; border-radius: var(--radius-md);
  border: 1px solid rgba(255, 214, 102, .45); background: rgba(255, 214, 102, .08); color: var(--text); text-decoration: none;
}
.reading-reward:hover { background: rgba(255, 214, 102, .16); border-color: rgba(255, 214, 102, .8); }
.reading-reward-icon { font-size: 1.6rem; line-height: 1; }
.reading-reward-text { display: grid; gap: .15rem; }
.reading-reward-text strong { color: #fcd34d; }
.reading-reward-text span { font-size: .85rem; color: var(--text-muted); }

/* ===== Livre d'or (page « Vos petits mots ») ===== */
.wall-hero { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.75rem; align-items: start; margin: 1.25rem 0 1.25rem; }
@media (min-width: 900px) { .wall-hero { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); } }
.wall-form.wall-card {
  max-width: none; margin: 0; padding: 1.4rem 1.5rem; border-radius: 18px;
  border: 1px solid rgba(255, 214, 102, .32); background: linear-gradient(145deg, rgba(255, 214, 102, .08), var(--surface) 55%);
  box-shadow: 0 14px 34px rgba(0, 0, 0, .35);
}
.wall-intro { margin: 0; font-size: 1.05rem; line-height: 1.5; color: var(--text); }
.wall-chips { border: 0; margin: 0; padding: 0; min-width: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.wall-chips legend { padding: 0; margin-bottom: .55rem; font-weight: 700; font-size: .9rem; }
.wall-chip {
  display: inline-flex; align-items: center; gap: .4rem; padding: .4rem .85rem; border-radius: 999px;
  border: 1px solid var(--border); background: var(--bg); color: var(--text); font: inherit; font-size: .88rem; font-weight: 600; cursor: pointer;
}
.wall-chip:hover { border-color: rgba(255, 214, 102, .7); }
.wall-chip[aria-pressed="true"] { background: rgba(255, 214, 102, .16); border-color: #fcd34d; color: #fde68a; }
.wall-side { display: none; }
@media (min-width: 900px) { .wall-side { display: grid; justify-items: center; gap: 1rem; position: sticky; top: 7rem; } }
.wall-mascot { width: min(230px, 70%); height: auto; filter: drop-shadow(0 12px 22px rgba(0, 0, 0, .4)); }
.wall-bubble {
  order: -1; position: relative; margin: 0; padding: .8rem 1rem; max-width: 17rem; text-align: center; font-weight: 600; line-height: 1.4; color: var(--text);
  border-radius: 16px; background: var(--surface); border: 1px solid var(--border);
}
.wall-bubble::after {
  content: ""; position: absolute; left: 50%; bottom: -8px; width: 14px; height: 14px; background: var(--surface);
  border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); transform: translateX(-50%) rotate(45deg);
}
.wall-msg { display: grid; grid-template-columns: auto 1fr; gap: .9rem; align-items: start; border-left: 3px solid rgba(255, 214, 102, .55); }
.wall-avatar {
  width: 42px; height: 42px; border-radius: 50%; display: grid; place-items: center; font-weight: 800; font-size: 1.05rem; color: #fff;
  background: hsl(var(--h, 200) 55% 34%); box-shadow: 0 0 0 2px rgba(255, 255, 255, .14);
}
.wall-msg-body { min-width: 0; }
.wall-empty { margin: 0; padding: 1.3rem; text-align: center; font-weight: 600; color: var(--text-muted); border: 2px dashed var(--border); border-radius: var(--radius-md); }

/* ============================================================
   HEADER V2 : navigation regroupée (desktop + accordéon mobile)
   ============================================================ */
.stat-hud-link { color: inherit; text-decoration: none; border-radius: 10px; }
.stat-hud-link:focus-visible { outline: 2px solid var(--accent-teal); outline-offset: 3px; }
.stat-hud-link:hover .stat-hud { border-color: rgba(20,184,166,.7); transform: translateY(-1px); }
.stat-hud { transition: border-color .18s var(--ease), transform .18s var(--ease); }

.main-nav { display:flex; align-items:center; gap:.2rem; }
.nav-group { position:relative; }
.nav-group-top { display:flex; align-items:center; border-radius:10px; }
.main-nav .nav-group-link {
  color:var(--text-muted); font-weight:700; font-size:.88rem; text-decoration:none;
  padding:.55rem .2rem .55rem .65rem; white-space:nowrap; transition:color .15s var(--ease);
}
.main-nav .nav-group-link::after { display:none; }
.main-nav .nav-group-link:hover, .nav-group.is-open .nav-group-link { color:var(--text); }
.nav-group-toggle {
  display:inline-flex; align-items:center; justify-content:center; width:28px; height:34px; padding:0;
  border:0; background:transparent; color:var(--text-muted); cursor:pointer; border-radius:8px;
}
.nav-group-toggle:hover, .nav-group-toggle:focus-visible { color:var(--accent-teal); background:rgba(20,184,166,.08); outline:none; }
.nav-group-caret { font-size:.85rem; line-height:1; transition:transform .18s var(--ease); transform:translateY(-1px); }
.nav-group.is-open .nav-group-caret { transform:rotate(180deg) translateY(1px); }
.nav-panel {
  position:absolute; top:calc(100% + .65rem); left:50%; transform:translateX(-50%);
  width:min(390px, calc(100vw - 2rem)); padding:.55rem; z-index:120;
  background:rgba(15,23,42,.98); border:1px solid rgba(148,163,184,.22); border-radius:16px;
  box-shadow:0 24px 55px rgba(0,0,0,.45), inset 0 1px 0 rgba(255,255,255,.03);
  backdrop-filter:blur(16px);
}
.nav-panel[hidden] { display:none !important; }
.nav-panel::before {
  content:""; position:absolute; top:-5px; left:50%; width:10px; height:10px; transform:translateX(-50%) rotate(45deg);
  background:#0f172a; border-left:1px solid rgba(148,163,184,.22); border-top:1px solid rgba(148,163,184,.22);
}
.main-nav .nav-panel-item {
  display:flex; align-items:center; gap:.75rem; min-height:58px; padding:.62rem .7rem; border-radius:11px;
  text-decoration:none; color:var(--text); transition:background .15s var(--ease), transform .15s var(--ease);
}
.main-nav .nav-panel-item::after { display:none; }
.main-nav .nav-panel-item:hover, .main-nav .nav-panel-item:focus-visible { background:rgba(20,184,166,.09); transform:translateX(2px); outline:none; }
.nav-panel-icon {
  display:grid; place-items:center; flex:0 0 38px; width:38px; height:38px; border-radius:10px;
  background:linear-gradient(145deg, rgba(20,184,166,.15), rgba(148,163,184,.07));
  border:1px solid rgba(20,184,166,.18); font-size:1.05rem;
}
.nav-panel-copy { display:flex; flex-direction:column; min-width:0; line-height:1.25; }
.nav-panel-copy strong { color:var(--text); font-size:.86rem; font-weight:800; }
.nav-panel-copy > span { color:var(--text-muted); font-size:.73rem; margin-top:.18rem; white-space:normal; }

@media (max-width:1049px) {
  .header-inner { padding-right:1.25rem; }
  .header-actions { position:static; top:auto; right:auto; flex-direction:row; align-items:center; gap:.5rem; margin-left:auto; order:2; }
  .nav-toggle { display:inline-flex; order:3; align-items:center; justify-content:center; width:40px; height:40px; border-radius:var(--radius-sm); background:var(--surface); border:1px solid var(--border); color:var(--text); font-size:1.1rem; cursor:pointer; flex:none; }
  .nav-toggle:hover, .nav-toggle:focus-visible { border-color:var(--accent-teal); outline:none; }
  .main-nav { display:none; }
  .main-nav.is-open {
    display:flex; position:absolute; top:100%; left:0; right:0; width:auto; max-height:calc(100vh - 72px); overflow:auto;
    flex-direction:column; align-items:stretch; gap:.3rem; padding:.7rem 1rem 1rem; background:rgba(15,23,42,.99);
    border-top:1px solid var(--border); border-bottom:1px solid var(--border); box-shadow:0 18px 35px rgba(0,0,0,.38);
  }
  .nav-group { width:100%; border-bottom:1px solid rgba(148,163,184,.12); }
  .nav-group:last-child { border-bottom:0; }
  .nav-group-top { width:100%; min-height:50px; }
  .main-nav .nav-group-link { flex:1; padding:.8rem .55rem; font-size:.95rem; }
  .nav-group-toggle { width:46px; height:42px; border:1px solid rgba(148,163,184,.14); background:rgba(255,255,255,.02); }
  .nav-panel { position:static; transform:none; width:auto; padding:0 0 .65rem .35rem; background:transparent; border:0; border-radius:0; box-shadow:none; backdrop-filter:none; }
  .nav-panel::before { display:none; }
  .main-nav .nav-panel-item { min-height:54px; padding:.5rem .55rem; }
  .nav-panel-icon { flex-basis:34px; width:34px; height:34px; border-radius:9px; }
}
@media (min-width:1050px) {
  .nav-toggle { display:none !important; }
}
@media (max-width:620px) {
  .header-inner { flex-wrap:nowrap; gap:.45rem; padding:.6rem; }
  .logo-word { display:none; }
  .logo-mascot img { width:34px; height:34px; }
  .header-actions { gap:.35rem; }
  .stat-hud-item { padding:.32rem .48rem; }
  .lang-dropdown-toggle { padding:.36rem .52rem; }
  .main-nav.is-open { padding:.55rem .7rem .85rem; }
}
@media (min-width:1050px) and (max-width:1279px) {
  .main-nav { display:flex !important; position:static; width:auto; flex-direction:row; align-items:center; padding:0; border:0; box-shadow:none; background:transparent; }
  .header-inner { justify-content:space-between; }
  .header-actions { margin-left:0; }
}

/* Culture & traditions */
.culture-page{padding-bottom:3rem}.culture-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2rem;align-items:center;margin:1rem 0 2rem;padding:clamp(1.5rem,4vw,3rem);border-radius:28px;background:linear-gradient(135deg,rgba(245,82,84,.12),var(--surface));border:1px solid var(--border)}.culture-kicker{font-weight:800;letter-spacing:.08em;text-transform:uppercase;font-size:.78rem;color:var(--accent-red-text)}.culture-hero h1{margin:.35rem 0 .7rem}.culture-hero-mark{font-size:clamp(4rem,10vw,7rem);filter:drop-shadow(0 10px 18px rgba(0,0,0,.4))}.culture-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}.culture-card{overflow:hidden;border-radius:22px;background:var(--surface);border:1px solid var(--border);box-shadow:0 10px 30px rgba(0,0,0,.38)}.culture-photo img{display:block;width:100%;height:280px;object-fit:cover}.culture-card-body{padding:1.35rem}.culture-card h2{margin:.35rem 0 .55rem;font-size:1.25rem}.culture-card p{margin:0;line-height:1.7}.culture-label{display:inline-block;font-size:.74rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-red-text)}.culture-text{min-height:220px;display:flex;align-items:center;background:linear-gradient(145deg,var(--surface),var(--surface-2))}.culture-link{display:inline-block;margin-top:1rem;font-weight:700}.culture-note,.culture-credits{margin-top:1.5rem;padding:1.5rem;border-radius:20px;background:rgba(255,255,255,.04);border:1px solid var(--border)}.culture-credits{font-size:.86rem;color:var(--text-muted)}.culture-note h2,.culture-credits h2{margin-top:0}@media(max-width:760px){.culture-hero{grid-template-columns:1fr}.culture-hero-mark{display:none}.culture-grid{grid-template-columns:1fr}.culture-photo img{height:230px}}

/* Culture & traditions : article pages */
.culture-card-link{color:inherit;text-decoration:none;display:block;transition:transform .18s ease,box-shadow .18s ease}.culture-card-link:hover{transform:translateY(-3px)}.culture-card-link:focus-visible{outline:3px solid var(--accent-teal);outline-offset:4px}.culture-card-cta{display:inline-block;margin-top:1rem;font-weight:800;color:var(--accent-red-text)}.culture-article{max-width:980px;margin:0 auto;padding:4.5rem 1.5rem 4rem}.culture-article-hero{margin:1rem 0 2rem;overflow:hidden;border-radius:28px;background:linear-gradient(135deg,rgba(245,82,84,.12),var(--surface));border:1px solid var(--border)}.culture-article-hero img{width:100%;height:min(45vw,430px);object-fit:cover;display:block}.culture-article-hero-copy{padding:clamp(1.4rem,4vw,3rem)}.culture-article-hero h1{margin:.3rem 0 .65rem}.culture-lead{font-size:1.08rem;line-height:1.75;max-width:760px}.culture-article-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.culture-info{padding:1.35rem;border:1px solid var(--border);border-radius:20px;background:var(--surface)}.culture-info h2{font-size:1.15rem;margin:0 0 .6rem}.culture-info p{margin:0;line-height:1.72}.culture-info:last-child{background:rgba(245,82,84,.09)}.culture-back{margin-top:2rem;padding:1.4rem;border-radius:20px;background:rgba(255,255,255,.04)}.culture-back a{font-weight:800}.culture-photo-credit{font-size:.78rem;color:var(--text-muted);padding:.55rem 1rem;text-align:right}.culture-related{margin-top:2rem}.culture-related-links{display:flex;gap:.65rem;flex-wrap:wrap}.culture-related-links a{padding:.65rem .85rem;border:1px solid var(--border);border-radius:999px;text-decoration:none;font-weight:700;background:var(--surface)}@media(max-width:700px){.culture-article-grid{grid-template-columns:1fr}.culture-article-hero img{height:260px}}

/* Culture & traditions : passerelles éditoriales */
.culture-learning-bridge,.culture-unesco{margin-top:2rem;padding:clamp(1.25rem,3vw,2rem);border-radius:24px;background:linear-gradient(145deg,rgba(45,212,191,.08),var(--surface));border:1px solid var(--border)}
.culture-learning-bridge h2,.culture-unesco h2{margin:0 0 .5rem}.culture-learning-intro,.culture-unesco>p{max-width:760px;line-height:1.7;color:var(--text-muted)}
.culture-learning-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem;margin-top:1.2rem}.culture-learning-card{display:flex;gap:.8rem;align-items:flex-start;padding:1rem;border-radius:17px;background:var(--surface);border:1px solid var(--border);text-decoration:none;color:inherit;transition:transform .18s ease,box-shadow .18s ease}.culture-learning-card:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(0,0,0,.38)}.culture-learning-icon{font-size:1.35rem}.culture-learning-card strong,.culture-learning-card small{display:block}.culture-learning-card small{margin-top:.25rem;line-height:1.45;color:var(--text-muted)}
.culture-heritage-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.75rem;margin-top:1.2rem}.culture-heritage-item{padding:1rem;border-radius:16px;background:var(--surface);border:1px solid var(--border)}.culture-heritage-item>span{font-size:.75rem;font-weight:800;color:var(--accent-red-text)}.culture-heritage-item h3{font-size:.95rem;margin:.25rem 0 .4rem}.culture-heritage-item p{font-size:.82rem;line-height:1.5;margin:0;color:var(--text-muted)}.culture-source{font-size:.78rem!important;margin:1rem 0 0!important}.culture-source a{font-weight:700}
@media(max-width:900px){.culture-heritage-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.culture-learning-grid{grid-template-columns:1fr}}@media(max-width:520px){.culture-heritage-grid{grid-template-columns:1fr}}

/* Home + Discover editorial gateways */
.home-culture-feature{margin:clamp(2.5rem,6vw,4.5rem) 0 1rem;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr);gap:clamp(1.5rem,4vw,3rem);align-items:center;padding:clamp(1.4rem,4vw,2.5rem);border:1px solid var(--border,#e5e7eb);border-radius:24px;background:linear-gradient(135deg,rgba(220,38,38,.055),rgba(15,23,42,.025));overflow:hidden}.home-culture-copy h2{margin:.25rem 0 .75rem;font-size:clamp(1.65rem,3vw,2.35rem)}.home-culture-copy>p:not(.culture-kicker){max-width:62ch;line-height:1.7}.home-culture-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.25rem}.home-culture-visual{position:relative;display:block;min-height:260px;border-radius:18px;overflow:hidden;box-shadow:0 16px 40px rgba(15,23,42,.14)}.home-culture-visual img{width:100%;height:100%;min-height:260px;object-fit:cover;display:block}.home-culture-visual span{position:absolute;left:1rem;bottom:1rem;padding:.45rem .7rem;border-radius:999px;background:rgba(15,23,42,.82);color:#fff;font-weight:700;font-size:.85rem}.discover-portals{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:1rem;margin:2rem 0 3rem}.discover-portal{display:flex;flex-direction:column;gap:.9rem;padding:1.35rem;border:1px solid var(--border,#e5e7eb);border-radius:20px;background:var(--surface,#fff);color:inherit;text-decoration:none;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.discover-portal:hover{transform:translateY(-3px);box-shadow:0 14px 34px rgba(15,23,42,.10)}.discover-portal-culture{padding:0;overflow:hidden}.discover-portal-culture img{width:100%;height:180px;object-fit:cover}.discover-portal-culture>div{padding:0 1.35rem 1.35rem}.discover-portal-icon{font-size:2.2rem}.discover-portal-kicker{font-size:.76rem;text-transform:uppercase;letter-spacing:.09em;font-weight:800;opacity:.66}.discover-portal h2{font-size:1.25rem;margin:.25rem 0 .45rem}.discover-portal p{margin:0;line-height:1.55}.discover-portal-link{display:block;margin-top:auto;padding-top:.7rem;font-weight:800}.discover-city-heading{display:flex;align-items:end;justify-content:space-between;gap:1.25rem;margin:0 0 1.25rem}.discover-city-heading h2{margin:.15rem 0 .25rem;font-size:clamp(1.55rem,3vw,2.15rem)}.discover-city-heading .section-sub{margin:0}.culture-kicker{font-weight:800;text-transform:uppercase;letter-spacing:.09em;font-size:.78rem;opacity:.68;margin:0}
@media(max-width:850px){.home-culture-feature{grid-template-columns:1fr}.home-culture-visual{min-height:220px}.discover-portals{grid-template-columns:1fr}.discover-portal-culture{display:grid;grid-template-columns:minmax(160px,.75fr) 1.25fr}.discover-portal-culture img{height:100%;min-height:210px}.discover-portal-culture>div{padding:1.25rem}.discover-city-heading{align-items:flex-start;flex-direction:column}}
@media(max-width:560px){.home-culture-feature{padding:1.15rem;border-radius:18px}.home-culture-actions .btn{width:100%;text-align:center}.discover-portal-culture{display:flex}.discover-portal-culture img{height:180px;min-height:0}.discover-city-heading .btn{width:100%;text-align:center}}

/* ===== Apprendre : orientation par objectifs (v4) ===== */
.learn-orientation,.learn-themes{margin:3.2rem 0}.learn-kicker{display:inline-block;font-size:.76rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--accent,#c83b3b);margin-bottom:.45rem}.learn-start-hero{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:1.7rem 1.9rem;border:1px solid var(--border,#e5e7eb);border-radius:22px;background:linear-gradient(135deg,var(--surface,#fff),var(--surface-2,#f7f7f8));box-shadow:0 12px 35px rgba(15,23,42,.06)}.learn-start-hero h2,.learn-section-heading h2,.learn-levels-intro h2{margin:.1rem 0 .45rem}.learn-start-hero p,.learn-section-heading p,.learn-levels-intro p{margin:0;color:var(--muted,#64748b);max-width:720px;line-height:1.65}.starter-steps{list-style:none;padding:0;margin:1rem 0 0;display:grid;grid-template-columns:repeat(4,1fr);gap:.8rem}.starter-steps a{height:100%;display:grid;grid-template-columns:auto 1fr;column-gap:.8rem;align-items:center;text-decoration:none;padding:1rem;border:1px solid var(--border,#e5e7eb);border-radius:16px;background:var(--surface,#fff);color:inherit;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.starter-steps a:hover{transform:translateY(-2px);box-shadow:0 10px 25px rgba(15,23,42,.08);border-color:var(--accent,#c83b3b)}.starter-steps span{grid-row:1/3;font-weight:800;font-size:.78rem;color:var(--accent,#c83b3b);background:var(--surface-2,#f3f4f6);width:2.2rem;height:2.2rem;border-radius:50%;display:grid;place-items:center}.starter-steps strong{font-size:.94rem}.starter-steps small{color:var(--muted,#64748b);margin-top:.15rem}.learn-section-heading{display:flex;align-items:end;justify-content:space-between;gap:2rem;margin-bottom:1.2rem}.learn-section-heading>p{max-width:520px}.learn-theme-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.learn-theme-card{padding:1.35rem;border:1px solid var(--border,#e5e7eb);border-radius:18px;background:var(--surface,#fff)}.learn-theme-icon{font-size:1.55rem}.learn-theme-card h3{margin:.65rem 0 .35rem}.learn-theme-card>p{color:var(--muted,#64748b);line-height:1.55;margin:0 0 1rem;font-size:.94rem}.learn-theme-links{display:flex;flex-wrap:wrap;gap:.45rem}.learn-theme-links a{font-size:.82rem;font-weight:700;text-decoration:none;color:inherit;padding:.42rem .65rem;border-radius:999px;background:var(--surface-2,#f3f4f6);border:1px solid transparent}.learn-theme-links a:hover{border-color:var(--accent,#c83b3b);color:var(--accent,#c83b3b)}.learn-levels-intro{margin:3.5rem 0 1rem;padding-top:2rem;border-top:1px solid var(--border,#e5e7eb)}
@media(max-width:900px){.starter-steps{grid-template-columns:repeat(2,1fr)}.learn-theme-grid{grid-template-columns:repeat(2,1fr)}.learn-section-heading{align-items:start;flex-direction:column;gap:.4rem}}
@media(max-width:620px){.learn-start-hero{align-items:flex-start;flex-direction:column;padding:1.25rem}.starter-steps,.learn-theme-grid{grid-template-columns:1fr}.learn-orientation,.learn-themes{margin:2.2rem 0}.learn-theme-card{padding:1.15rem}}

/* Progress dashboard : v5 */
.account-next{position:relative;overflow:hidden}.account-next-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.account-next-head h2{margin:.25rem 0 .35rem}.account-eyebrow{font-size:.72rem;font-weight:800;letter-spacing:.12em;opacity:.62}.account-progress-pct{font-family:Montserrat,sans-serif;font-size:1.65rem}.account-global-bar{height:10px;border-radius:999px;background:rgba(15,23,42,.09);overflow:hidden;margin:.8rem 0 .45rem}.account-global-bar span{display:block;height:100%;border-radius:inherit;background:currentColor}.account-quick-actions{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:1rem}.account-quick-actions .btn{text-decoration:none}@media(max-width:640px){.account-next-head{align-items:center}.account-quick-actions{display:grid}.account-quick-actions .btn{width:100%;text-align:center}}


/* Daily learning loop : v6 */
.daily-challenge{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;background:linear-gradient(135deg,rgba(220,38,38,.07),rgba(255,255,255,.98));border-color:rgba(220,38,38,.16)}.daily-challenge.is-done{background:linear-gradient(135deg,rgba(20,184,166,.09),rgba(255,255,255,.98));border-color:rgba(20,184,166,.22)}.daily-challenge-copy{max-width:650px}.daily-challenge h2{margin:.25rem 0 .4rem}.daily-challenge p{margin:0;line-height:1.6;color:var(--text-muted,#64748b)}.daily-challenge-actions{display:flex;flex-direction:column;align-items:stretch;gap:.65rem;min-width:210px}.daily-challenge-actions .btn{text-decoration:none;text-align:center}.daily-quick-link{text-align:center;font-size:.82rem;font-weight:800;text-decoration:none;color:inherit;opacity:.78}.daily-quick-link:hover{opacity:1}.account-box--review{scroll-margin-top:100px}@media(max-width:720px){.daily-challenge{align-items:stretch;flex-direction:column}.daily-challenge-actions{min-width:0}.daily-challenge-actions .btn{width:100%}}

/* Interactive practice : v8 */
.practice-lab{margin:3rem 0;padding:clamp(1.2rem,3vw,2rem);border:1px solid var(--border,#e5e7eb);border-radius:22px;background:var(--surface,#fff);box-shadow:0 12px 34px rgba(15,23,42,.06)}.practice-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1.5rem;margin-bottom:1.4rem}.practice-head h2{margin:.15rem 0 .35rem}.practice-head p{margin:0;color:var(--muted,#64748b)}.practice-kicker,.practice-step{font-size:.74rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--accent,#c83b3b)}.practice-score{min-width:100px;text-align:center;padding:.7rem 1rem;border-radius:14px;background:var(--surface-2,#f3f4f6)}.practice-score strong{display:block;font-size:1.35rem}.practice-score span{font-size:.7rem;color:var(--muted,#64748b)}.practice-card h3{font-size:1.12rem;margin:.5rem 0 1rem}.practice-options,.practice-words{display:flex;flex-wrap:wrap;gap:.65rem}.practice-options button,.practice-words button{border:1px solid var(--border,#d9dde5);border-radius:12px;background:var(--surface,#fff);color:inherit;padding:.75rem .9rem;font:inherit;cursor:pointer}.practice-options button:hover,.practice-options button.selected,.practice-words button:hover{border-color:var(--accent,#c83b3b)}.practice-options button.correct,.practice-order-answer.correct{border-color:#159570;background:rgba(21,149,112,.08)}.practice-options button.wrong,.practice-order-answer.wrong{border-color:#d14343;background:rgba(209,67,67,.07)}.practice-order-answer{min-height:54px;display:flex;align-items:center;margin-bottom:.8rem;padding:.75rem .9rem;border:1px dashed var(--border,#cbd5e1);border-radius:12px}.practice-order-answer>span{color:var(--muted,#64748b)}.practice-reset-order{margin-left:auto;border:0;background:transparent;color:inherit;cursor:pointer;font-size:1.1rem}.practice-feedback{margin-top:1rem;padding:.85rem 1rem;border-radius:12px}.practice-feedback p{margin:.25rem 0 0;line-height:1.55}.practice-feedback.is-correct{background:rgba(21,149,112,.08)}.practice-feedback.is-wrong{background:rgba(209,67,67,.07)}.practice-nav{display:flex;gap:.7rem;margin-top:1.2rem}.practice-result{text-align:center;padding:1.5rem}.practice-result>span{font-size:2rem}.practice-result h3{font-size:2rem;margin:.3rem 0}.practice-result p{margin:0;color:var(--muted,#64748b)}@media(max-width:620px){.practice-head{flex-direction:column}.practice-score{align-self:stretch}.practice-nav{display:grid}.practice-nav .btn{width:100%}}

/* Missions en Albanie */
.mission-wrap{max-width:980px}.mission-hero,.mission-entry{display:flex;justify-content:space-between;align-items:center;gap:2rem;margin:2rem 0;padding:clamp(1.3rem,4vw,2.4rem);border:1px solid var(--border,#e5e7eb);border-radius:24px;background:linear-gradient(135deg,rgba(220,38,38,.07),rgba(15,23,42,.025))}.mission-hero>div:first-child,.mission-entry>div{max-width:650px}.mission-hero-badge{min-width:210px;padding:1.4rem;text-align:center;border-radius:20px;background:var(--surface,#fff);box-shadow:0 12px 32px rgba(15,23,42,.08)}.mission-hero-badge span{display:block;font-size:3rem}.mission-hero-badge strong,.mission-hero-badge small{display:block}.mission-catalog{display:grid;gap:1rem;margin:2rem 0}.mission-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:1.2rem;padding:1.3rem;border:1px solid var(--border,#e5e7eb);border-radius:18px;color:inherit;text-decoration:none;background:var(--surface,#fff)}a.mission-card:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(15,23,42,.08)}.mission-num{font-size:1.6rem;font-weight:900;opacity:.35}.mission-level{font-size:.76rem;text-transform:uppercase;letter-spacing:.08em;font-weight:800;opacity:.65}.mission-card h3{margin:.2rem 0}.mission-card p{margin:0}.mission-arrow{font-size:1.6rem}.mission-soon{opacity:.58}.mission-play-head{margin:2rem 0}.mission-progress{height:9px;border-radius:99px;background:rgba(127,127,127,.18);overflow:hidden;margin-top:1.5rem}.mission-progress span{display:block;height:100%;width:0;background:currentColor;transition:width .25s ease}.mission-stage,.mission-result{padding:clamp(1.3rem,4vw,2.3rem);border:1px solid var(--border,#e5e7eb);border-radius:22px;background:var(--surface,#fff);box-shadow:0 12px 34px rgba(15,23,42,.06)}.mission-scene{font-weight:900;font-size:1.05rem}.mission-context{font-size:1.08rem;line-height:1.7}.mission-choices{display:grid;gap:.75rem;margin:1.2rem 0}.mission-choices button{padding:1rem;text-align:left;border:1px solid var(--border,#d1d5db);border-radius:14px;background:transparent;color:inherit;font:inherit;cursor:pointer}.mission-choices button:hover:not(:disabled){border-color:currentColor}.mission-choices button.is-correct{outline:2px solid #16a34a}.mission-choices button.is-wrong{outline:2px solid #dc2626}.mission-feedback{margin-top:1.2rem;padding-top:1rem;border-top:1px solid var(--border,#e5e7eb)}.mission-result{text-align:center}.mission-result-emoji{font-size:3rem}@media(max-width:700px){.mission-hero,.mission-entry{align-items:flex-start;flex-direction:column}.mission-hero-badge{width:100%;min-width:0}.mission-entry .btn{width:100%;text-align:center}.mission-card{grid-template-columns:auto 1fr}.mission-arrow{display:none}}

/* Branching mission : v11 */
.mission-card-featured{border-width:2px;background:linear-gradient(135deg,rgba(220,38,38,.055),var(--surface,#fff))}.mission-hud{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin:1.2rem 0 .25rem;padding:.75rem 1rem;border-radius:14px;background:var(--surface-2,#f3f4f6)}#mission-hearts{letter-spacing:.08em}.mission-skill-report{margin:1.25rem auto;max-width:650px;padding:1rem;border-radius:16px;background:var(--surface-2,#f3f4f6)}.mission-skill-report h3{margin:.1rem 0 .4rem}.mission-review-links{display:flex;justify-content:center;flex-wrap:wrap;gap:.55rem;margin-top:.8rem}.mission-review-links a{padding:.5rem .7rem;border-radius:999px;background:var(--surface,#fff);color:inherit;text-decoration:none;font-weight:800;font-size:.85rem;border:1px solid var(--border,#e5e7eb)}@media(max-width:560px){.mission-hud{align-items:flex-start;flex-direction:column}}
/* V12 : parcours, missions et révisions réunis */
.learning-hub{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:1.5rem 0 2rem}.learning-hub-card{display:grid;grid-template-columns:auto 1fr;column-gap:.8rem;align-items:center;padding:1rem 1.1rem;border:1px solid var(--border,#e5e7eb);border-radius:18px;background:var(--surface,#fff);color:inherit;text-decoration:none;transition:transform .18s ease,box-shadow .18s ease}.learning-hub-card:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(15,23,42,.09)}.learning-hub-card>span{grid-row:1/3;font-size:1.7rem}.learning-hub-card strong{font-size:1.05rem}.learning-hub-card small{opacity:.7}.learning-hub-card.is-active{border-color:rgba(220,38,38,.3);background:linear-gradient(135deg,rgba(220,38,38,.06),transparent)}
.practice-ladder{margin:3rem 0}.practice-ladder-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.practice-ladder-grid article{display:flex;flex-direction:column;padding:1.25rem;border:1px solid var(--border,#e5e7eb);border-radius:18px;background:var(--surface,#fff)}.practice-ladder-grid article>span{font-size:1.8rem}.practice-ladder-grid h3{margin:.55rem 0 .35rem}.practice-ladder-grid p{margin:0 0 1rem;line-height:1.55;opacity:.82}.practice-ladder-grid article>div{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-top:auto}.practice-ladder-grid article>div>a:first-child:not(.btn){font-weight:700}.practice-ladder-final{grid-column:span 2;background:linear-gradient(135deg,rgba(220,38,38,.06),rgba(15,23,42,.025))}
.lesson-mission-bridge{display:grid;grid-template-columns:auto 1fr auto;gap:1rem;align-items:center;margin:2rem 0 0;padding:1.2rem;border:1px solid rgba(220,38,38,.22);border-radius:18px;background:linear-gradient(135deg,rgba(220,38,38,.055),rgba(15,23,42,.02))}.lesson-mission-icon{font-size:2rem}.lesson-mission-bridge h2{font-size:1.2rem;margin:.15rem 0 .25rem}.lesson-mission-bridge p{margin:0;line-height:1.5}.anchor-target{display:block;position:relative;top:-90px;visibility:hidden}
@media(max-width:850px){.practice-ladder-grid{grid-template-columns:1fr 1fr}.practice-ladder-final{grid-column:span 2}.lesson-mission-bridge{grid-template-columns:auto 1fr}.lesson-mission-bridge .btn{grid-column:1/-1;text-align:center}}
@media(max-width:620px){.learning-hub,.practice-ladder-grid{grid-template-columns:1fr}.practice-ladder-final{grid-column:auto}.lesson-mission-bridge{grid-template-columns:1fr}.lesson-mission-icon{font-size:1.7rem}.lesson-mission-bridge .btn{width:100%;text-align:center}}

/* V13 : immersion visuelle */
.today-gallery,.recent-window,.video-spotlight{margin:2.5rem 0}.today-gallery-head{display:flex;justify-content:space-between;gap:1rem;align-items:end;margin-bottom:1rem}.today-gallery-head h2,.recent-window h2,.video-spotlight h2{margin:.25rem 0 .55rem}.today-gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.today-gallery-grid figure{margin:0;border-radius:18px;overflow:hidden;background:var(--surface,#fff);border:1px solid var(--border,#e5e7eb)}.today-gallery-grid img{width:100%;height:180px;object-fit:cover;display:block}.today-gallery-grid figcaption{display:flex;flex-direction:column;padding:.9rem 1rem}.today-gallery-grid figcaption span{font-size:.88rem;opacity:.72;margin-top:.2rem}.recent-window{padding:1.4rem;border:1px solid var(--border,#e5e7eb);border-radius:20px;background:linear-gradient(135deg,rgba(220,38,38,.04),rgba(15,23,42,.02))}.recent-window-links{display:flex;flex-wrap:wrap;gap:.7rem;margin:1rem 0}.media-credit{font-size:.82rem;opacity:.7;margin-bottom:0}.video-spotlight{display:grid;grid-template-columns:1.1fr .9fr;gap:1.5rem;align-items:center;padding:1.4rem;border-radius:22px;background:var(--surface,#fff);border:1px solid var(--border,#e5e7eb)}.video-spotlight-thumb{position:relative;border-radius:16px;overflow:hidden;min-height:220px}.video-spotlight-thumb img{width:100%;height:240px;object-fit:cover;display:block}.video-spotlight-thumb span{position:absolute;left:1rem;bottom:1rem;background:rgba(15,23,42,.82);color:#fff;padding:.5rem .7rem;border-radius:999px;font-weight:800}.immersion-note{display:grid;grid-template-columns:minmax(180px,.7fr) 1.3fr;gap:1.2rem;align-items:center;margin:1.5rem 0 2rem;padding:1rem;border:1px solid var(--border,#e5e7eb);border-radius:20px;background:var(--surface,#fff)}.immersion-note>img{width:100%;height:190px;object-fit:cover;border-radius:14px}.immersion-note h2{margin:.25rem 0 .5rem;font-size:1.35rem}.immersion-note p{margin:0 0 1rem;line-height:1.6}@media(max-width:850px){.today-gallery-grid{grid-template-columns:repeat(2,1fr)}.video-spotlight,.immersion-note{grid-template-columns:1fr}.today-gallery-head{align-items:flex-start;flex-direction:column}}@media(max-width:520px){.today-gallery-grid{grid-template-columns:1fr}.today-gallery-grid img{height:210px}.recent-window-links .btn{width:100%;text-align:center}}


/* V14 : Carnets de ville */
.city-notebook{margin:2rem 0 2.5rem;padding:clamp(1.2rem,3vw,2rem);border:1px solid var(--border,#e5e7eb);border-radius:22px;background:linear-gradient(145deg,rgba(220,38,38,.045),rgba(15,23,42,.02))}.city-notebook-head{max-width:760px}.city-notebook-head h2{margin:.25rem 0 .65rem;font-size:clamp(1.45rem,3vw,2rem)}.city-notebook-head>p:last-child{line-height:1.7}.city-notebook-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.85rem;margin-top:1.35rem}.city-notebook-grid article{padding:1rem;border:1px solid var(--border,#e5e7eb);border-radius:16px;background:var(--surface,#fff)}.city-notebook-grid article>span:first-child{font-size:1.45rem}.city-notebook-grid h3{font-size:1rem;margin:.45rem 0 .4rem}.city-notebook-grid p{margin:0;line-height:1.55;font-size:.94rem}.city-word strong{font-size:1.12rem}.city-notebook-actions{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.25rem}@media(max-width:850px){.city-notebook-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.city-notebook-grid{grid-template-columns:1fr}.city-notebook-actions .btn{width:100%;text-align:center}}

/* ===== Pages « vie pratique » et missions : thème sombre (ex-styles embarqués dans chaque page) ===== */
.life-hero{display:grid;grid-template-columns:1.15fr .85fr;gap:28px;align-items:center;margin:24px 0 36px}
.life-hero img{width:100%;height:360px;object-fit:cover;border-radius:24px}
.life-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:28px 0}
.life-card{display:block;padding:22px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);color:inherit;text-decoration:none;transition:border-color .15s var(--ease),transform .15s var(--ease)}
.life-card:hover{border-color:rgba(45,212,191,.6);transform:translateY(-2px)}
.life-card h2{font-size:1.18rem;margin:.4rem 0}
.life-card p{color:var(--text-muted)}
.life-kicker{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;font-weight:800;color:var(--accent-red-text)}
.fresh{padding:18px 20px;border-radius:16px;background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--accent-red-text);margin:24px 0}
.phrase{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:12px 0;border-bottom:1px solid var(--border)}
.life-links{display:flex;gap:12px;flex-wrap:wrap;margin:24px 0}
.mission-dashboard{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:16px 18px;margin:0 0 16px;border-radius:16px;background:var(--surface);border:1px solid var(--border)}
.mission-score-status{display:inline-block;margin-top:8px;font-size:.82rem;font-weight:800;color:var(--accent-red-text)}
.mission-card.is-complete{border-color:rgba(45,212,191,.55)}
.mission-card.is-complete .mission-score-status{color:var(--accent-teal)}
@media(max-width:800px){.life-hero{grid-template-columns:1fr}.life-hero img{height:240px}.life-grid{grid-template-columns:1fr}.phrase{grid-template-columns:1fr}}





/* V19 : musique chronologique */
.music-story,.music-story *{box-sizing:border-box}.music-story{width:100%;min-width:0}.music-story h1,.music-story h2,.music-story h3,.music-artist,.music-festival{overflow-wrap:anywhere}
.music-story{max-width:1180px}.music-hero{position:relative;min-height:480px;border-radius:28px;overflow:hidden;display:flex;align-items:flex-end;margin:1.5rem 0 3rem;background:#111}.music-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.42}.music-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 5%,rgba(0,0,0,.82) 100%)}.music-hero-copy{position:relative;z-index:1;max-width:760px;padding:clamp(2rem,6vw,5rem);color:#fff}.music-hero-copy h1{color:#fff;font-size:clamp(2.5rem,6vw,5rem);line-height:.95;margin:.4rem 0 1.2rem}.music-timeline,.music-section,.music-learning{margin:4rem 0}.music-era{display:grid;grid-template-columns:64px 1fr;gap:1.25rem;padding:1.6rem 0;border-top:1px solid var(--border-color,#ddd)}.music-era-no{font-size:1.6rem;font-weight:800;opacity:.35}.music-era-date,.music-festival span{font-size:.78rem;text-transform:uppercase;letter-spacing:.12em;font-weight:800}.music-era h3,.music-artist h3,.music-festival h3{margin:.25rem 0 .55rem}.music-video-grid,.music-artist-grid,.music-festival-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem;margin-top:2rem}.music-artist-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.music-artist,.music-video,.music-festival,.music-learning{border:1px solid var(--border-color,#ddd);border-radius:20px;overflow:hidden;background:var(--card-bg,rgba(255,255,255,.04));padding:1.25rem}.music-note{font-size:1.7rem}.video-embed{position:relative;aspect-ratio:16/9;border-radius:14px;overflow:hidden;background:#111}.video-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.music-festival{padding:0}.music-festival img{width:100%;aspect-ratio:16/10;object-fit:cover}.music-festival div{padding:1.2rem}.music-learning{padding:clamp(1.5rem,4vw,3rem)}@media(max-width:900px){.music-artist-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.music-hero{min-height:420px}.music-video-grid,.music-festival-grid,.music-artist-grid{grid-template-columns:1fr}.music-era{grid-template-columns:44px 1fr}.music-hero-copy{padding:1.6rem}}


/* Music page enhancement V21 */
.music-section .section-sub{margin:.35rem 0 1.35rem;color:var(--text-muted);max-width:62ch}
.music-artist-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:1.35rem}
.music-artist{padding:0;display:flex;flex-direction:column;background:linear-gradient(180deg,rgba(17,24,39,.96),rgba(10,16,28,.98));border:1px solid rgba(255,255,255,.09);box-shadow:0 16px 40px rgba(2,6,23,.18)}
.music-artist-media{position:relative;overflow:hidden;background:#0b1220;border-bottom:1px solid rgba(255,255,255,.08)}
.music-artist-photo{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;object-position:center top;transition:transform .35s ease}
.music-artist:hover .music-artist-photo{transform:scale(1.04)}
.music-artist-body{display:flex;flex-direction:column;gap:.45rem;padding:1rem 1rem 1.15rem;height:100%}
.music-artist-kicker{margin:0;color:#f87171;font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.music-artist h3{margin:0;color:#fff;font-size:1.12rem}
.music-artist-desc{margin:0;color:rgba(255,255,255,.82);font-size:.95rem;line-height:1.6;flex:1}
.music-artist-actions{display:flex;gap:.7rem;flex-wrap:wrap;margin-top:.4rem}
.music-artist-link{display:inline-flex;align-items:center;justify-content:center;padding:.72rem 1rem;border-radius:999px;background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;text-decoration:none;font-weight:700;font-size:.92rem;box-shadow:0 12px 24px rgba(220,38,38,.25)}
.music-artist-link:hover,.music-artist-link:focus-visible{filter:brightness(1.05);transform:translateY(-1px)}
@media(max-width:1100px){.music-artist-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.music-artist-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.music-artist-grid{grid-template-columns:1fr}.music-artist-desc{font-size:.98rem}}


/* V22 : Music premium layout */
.music-story{max-width:1260px}
.music-hero{min-height:560px;align-items:center;background:#07131f;box-shadow:0 28px 70px rgba(2,6,23,.22)}
.music-hero>img{opacity:.5;filter:saturate(.9) contrast(1.03)}
.music-hero:after{background:linear-gradient(90deg,rgba(3,10,18,.92) 0%,rgba(3,10,18,.66) 48%,rgba(3,10,18,.25) 72%,rgba(3,10,18,.55) 100%)}
.music-hero-copy{max-width:720px;padding:clamp(2rem,5vw,4.5rem)}
.music-eyebrow{display:inline-flex;margin:0 0 .7rem;padding:.45rem .8rem;border-radius:999px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.16);font-size:.82rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.music-hero-quote{position:absolute;z-index:2;right:clamp(1.2rem,4vw,3.5rem);bottom:clamp(1.2rem,4vw,3rem);max-width:320px;padding:1.2rem 1.35rem;border-radius:18px;background:rgba(4,13,24,.78);border:1px solid rgba(255,255,255,.14);backdrop-filter:blur(12px);color:#fff;font-family:Georgia,serif;font-style:italic;line-height:1.65}
.music-hero-quote p{margin:0}.music-hero-stats{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.15rem}.music-hero-stats span{padding:.45rem .75rem;border-radius:999px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.14);font-size:.82rem;font-weight:700}
.music-timeline-cards{margin-top:3.5rem}.music-timeline-cards .section-sub{margin-bottom:1.3rem}
.music-timeline-cards{display:grid;grid-template-columns:repeat(7,minmax(155px,1fr));gap:.8rem}.music-timeline-cards>h2,.music-timeline-cards>.section-sub,.music-timeline-cards>.music-video-grid{grid-column:1/-1}
.music-timeline-cards .music-era{display:flex;flex-direction:column;gap:0;padding:0;border:1px solid var(--border-color,#ddd);border-radius:18px;overflow:hidden;background:var(--card-bg,rgba(255,255,255,.04));min-width:0}
.music-era-media{aspect-ratio:16/10;overflow:hidden;background:#0b1220}.music-era-media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease}.music-era:hover .music-era-media img{transform:scale(1.04)}
.music-timeline-cards .music-era-no{margin:.85rem .9rem 0;width:32px;height:32px;display:grid;place-items:center;border-radius:50%;background:#dc2626;color:#fff;font-size:.85rem;opacity:1}.music-timeline-cards .music-era>div:last-child{padding:.55rem .9rem 1rem}.music-timeline-cards .music-era h3{font-size:1rem;line-height:1.25}.music-timeline-cards .music-era p{font-size:.88rem;line-height:1.5}
.music-instrument-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin-top:1.4rem}.music-instrument{border:1px solid var(--border-color,#ddd);border-radius:18px;overflow:hidden;background:var(--card-bg,rgba(255,255,255,.04))}.music-instrument img{width:100%;aspect-ratio:4/2.55;object-fit:cover;display:block}.music-instrument>div{padding:1rem}.music-instrument h3{margin:0 0 .35rem}.music-instrument p{margin:0;line-height:1.55}
.music-region-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin-top:1.4rem}.music-region{position:relative;min-height:245px;border-radius:18px;overflow:hidden;background:#08111d}.music-region>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.72}.music-region:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.05),rgba(2,6,23,.88))}.music-region-copy{position:absolute;z-index:1;left:0;right:0;bottom:0;padding:1rem;color:#fff}.music-region-copy span{font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#fca5a5}.music-region-copy h3{margin:.2rem 0 .35rem;color:#fff}.music-region-copy p{margin:0;color:rgba(255,255,255,.88);font-size:.9rem;line-height:1.5}
.music-learning{border:0;background:transparent;padding:0}.music-learning-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:1.2rem}.music-learning-card{padding:1.4rem;border:1px solid var(--border-color,#ddd);border-radius:20px;background:var(--card-bg,rgba(255,255,255,.04));display:flex;flex-direction:column;align-items:flex-start}.music-learning-icon{font-size:2rem}.music-learning-card h3{margin:.55rem 0 .4rem}.music-learning-card p{margin:0 0 1rem;line-height:1.6;flex:1}
@media(max-width:1180px){.music-timeline-cards{grid-template-columns:repeat(4,minmax(0,1fr))}.music-instrument-grid,.music-region-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:800px){.music-hero{min-height:520px;align-items:flex-end}.music-hero-quote{display:none}.music-timeline-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.music-learning-grid{grid-template-columns:1fr}.music-hero-copy{padding:1.7rem}}
@media(max-width:560px){.music-timeline-cards,.music-instrument-grid,.music-region-grid{grid-template-columns:1fr}.music-hero{min-height:480px;border-radius:22px}.music-hero-copy h1{font-size:clamp(2.25rem,12vw,3.4rem)}.music-hero-stats{gap:.4rem}.music-hero-stats span{font-size:.74rem}.music-region{min-height:220px}}


/* V23 : premium home */
.home-premium-hero{position:relative;isolation:isolate;overflow:hidden;padding:0;min-height:680px;background:#08111f}.home-premium-hero-bg{position:absolute;inset:0;z-index:-2}.home-premium-hero-bg img{width:100%;height:100%;object-fit:cover;filter:saturate(.86) contrast(1.05)}.home-premium-hero:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(5,12,24,.96) 0%,rgba(5,12,24,.86) 43%,rgba(5,12,24,.3) 72%,rgba(5,12,24,.55) 100%),linear-gradient(180deg,rgba(8,17,31,.08),rgba(8,17,31,.72))}.home-premium-hero-inner{width:min(1180px,calc(100% - 3rem));margin:auto;min-height:680px;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(340px,.95fr);align-items:center;gap:clamp(2rem,5vw,5rem);padding:5rem 0}.home-premium-hero-copy{max-width:720px;color:#fff}.home-premium-eyebrow{margin:0 0 1rem;text-transform:uppercase;letter-spacing:.14em;font-weight:800;font-size:.78rem;color:#fecaca}.home-premium-hero h1{margin:0 0 1.35rem;color:#fff;font-size:clamp(3rem,6.4vw,5.8rem);line-height:.95;letter-spacing:-.055em}.home-premium-sub{max-width:66ch;margin:0;color:rgba(255,255,255,.84);font-size:clamp(1.02rem,1.5vw,1.18rem);line-height:1.75}.home-premium-actions{display:flex;flex-wrap:wrap;gap:.85rem;margin-top:1.8rem}.home-premium-btn-glass{border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.1);backdrop-filter:blur(12px);color:#fff}.home-premium-micro{margin:1.1rem 0 0;color:rgba(255,255,255,.62);font-size:.86rem}.home-premium-visual{position:relative;min-height:470px;display:flex;align-items:flex-end;justify-content:center}.home-premium-mascot{width:min(390px,86%);filter:drop-shadow(0 30px 55px rgba(0,0,0,.48));z-index:1}.home-premium-glass{position:absolute;right:0;bottom:2rem;z-index:2;width:min(260px,72%);display:grid;gap:.55rem;padding:1rem 1.1rem;border:1px solid rgba(255,255,255,.18);border-radius:20px;background:rgba(8,17,31,.64);backdrop-filter:blur(18px);box-shadow:0 20px 50px rgba(0,0,0,.25);color:#fff}.home-premium-glass span{font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;color:#fecaca}.home-premium-glass strong{font-size:.95rem}.home-premium-intro,.home-premium-today,.home-premium-stories,.home-premium-game,.home-premium-feedback{margin:clamp(3.5rem,7vw,6rem) 0}.home-premium-heading{max-width:760px;margin-bottom:1.7rem}.home-premium-heading h2,.home-premium-game h2,.home-premium-feedback h2{margin:.25rem 0 .7rem;font-size:clamp(1.9rem,4vw,3.25rem);letter-spacing:-.035em}.home-premium-heading>p:last-child,.home-premium-game>div>p:last-child,.home-premium-feedback>div>p:last-child{color:var(--text-muted);line-height:1.75}.home-premium-doors{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}.home-premium-door{position:relative;min-height:360px;border-radius:28px;overflow:hidden;text-decoration:none;color:inherit;border:1px solid var(--border,#e5e7eb);box-shadow:0 18px 45px rgba(15,23,42,.09);transition:transform .22s ease,box-shadow .22s ease}.home-premium-door:hover{transform:translateY(-5px);box-shadow:0 24px 55px rgba(15,23,42,.14)}.home-premium-door-learn{display:grid;grid-template-columns:1fr .7fr;align-items:end;padding:clamp(1.6rem,4vw,2.4rem);background:linear-gradient(135deg,#111827,#1f2937);color:#fff}.home-premium-door-learn img{width:100%;max-height:300px;object-fit:contain;align-self:end}.home-premium-door-discover{display:grid;grid-template-rows:1.05fr .95fr;background:var(--surface,#fff)}.home-premium-door-discover>img{width:100%;height:100%;min-height:190px;object-fit:cover}.home-premium-door-discover>div{padding:1.55rem 1.7rem}.home-premium-door span,.home-premium-story span{font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;font-weight:800;opacity:.68}.home-premium-door h3{font-size:clamp(1.5rem,3vw,2.35rem);margin:.45rem 0 .7rem;letter-spacing:-.03em}.home-premium-door p{line-height:1.65;opacity:.84}.home-premium-door strong{display:inline-block;margin-top:.7rem}.home-premium-today{padding:clamp(1.5rem,4vw,2.5rem);border-radius:28px;background:linear-gradient(135deg,rgba(220,38,38,.06),rgba(15,23,42,.025));border:1px solid var(--border,#e5e7eb)}.home-premium-today .daily-challenge{margin:0}.home-premium-story-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.home-premium-story{position:relative;display:block;min-height:430px;border-radius:24px;overflow:hidden;color:#fff;text-decoration:none;background:#111827;box-shadow:0 18px 45px rgba(15,23,42,.12)}.home-premium-story img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .35s ease}.home-premium-story:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(3,7,18,.04) 20%,rgba(3,7,18,.9) 100%)}.home-premium-story>div{position:absolute;z-index:1;left:0;right:0;bottom:0;padding:1.45rem}.home-premium-story h3{margin:.35rem 0 .55rem;color:#fff;font-size:1.45rem}.home-premium-story p{margin:0;color:rgba(255,255,255,.78);line-height:1.55}.home-premium-story:hover img{transform:scale(1.04)}.home-premium-game{display:grid;grid-template-columns:1fr 1.1fr;gap:2rem;align-items:center;padding:clamp(1.7rem,4vw,3rem);border-radius:28px;background:#0b1220;color:#fff}.home-premium-game .culture-kicker{color:#fca5a5}.home-premium-game>div>p:last-child{color:rgba(255,255,255,.7)}.home-premium-game-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem}.home-premium-game-grid article{min-height:150px;display:flex;flex-direction:column;justify-content:center;gap:.35rem;padding:1.1rem;border:1px solid rgba(255,255,255,.1);border-radius:20px;background:rgba(255,255,255,.05)}.home-premium-game-grid span{font-size:1.8rem}.home-premium-game-grid strong{font-size:.98rem}.home-premium-game-grid small{opacity:.55}.home-premium-feedback{display:flex;justify-content:space-between;align-items:center;gap:2rem;padding:clamp(1.5rem,4vw,2.5rem);border-radius:26px;border:1px solid rgba(220,38,38,.18);background:linear-gradient(135deg,rgba(220,38,38,.06),transparent)}.home-premium-feedback>div{max-width:720px}.home-premium-feedback h2{font-size:clamp(1.6rem,3vw,2.5rem)}
@media(max-width:900px){.home-premium-hero-inner{grid-template-columns:1fr;min-height:auto;padding:4rem 0}.home-premium-visual{min-height:340px}.home-premium-mascot{max-height:340px;object-fit:contain}.home-premium-glass{right:8%}.home-premium-doors{grid-template-columns:1fr}.home-premium-story-grid{grid-template-columns:1fr 1fr}.home-premium-game{grid-template-columns:1fr}.home-premium-feedback{align-items:flex-start;flex-direction:column}}
@media(max-width:620px){.home-premium-hero{min-height:0}.home-premium-hero-inner{width:min(100% - 2rem,1180px);padding:3rem 0 2.5rem}.home-premium-hero h1{font-size:clamp(2.55rem,13vw,4rem)}.home-premium-visual{min-height:290px}.home-premium-glass{right:0;bottom:.5rem;width:220px}.home-premium-actions .btn{width:100%;text-align:center}.home-premium-door-learn{grid-template-columns:1fr;min-height:0}.home-premium-door-learn img{max-height:220px;margin:auto}.home-premium-story-grid{grid-template-columns:1fr}.home-premium-story{min-height:350px}.home-premium-game-grid{grid-template-columns:1fr}.home-premium-feedback .btn{width:100%;text-align:center}}


/* ---- Home premium redesign V24 ---- */
.home-vision-hero{position:relative;overflow:hidden;background:#07111e;color:#fff;isolation:isolate}.home-vision-hero-bg,.home-vision-cta-bg{position:absolute;inset:0;z-index:-2}.home-vision-hero-bg img,.home-vision-cta-bg img{width:100%;height:100%;object-fit:cover}.home-vision-hero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(92deg,rgba(5,11,22,.94) 0%,rgba(5,11,22,.82) 44%,rgba(5,11,22,.42) 72%,rgba(5,11,22,.68) 100%),linear-gradient(180deg,rgba(5,11,22,.08),rgba(5,11,22,.78))}.home-vision-hero-inner{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr);align-items:center;gap:clamp(2rem,5vw,4.5rem);min-height:760px;padding:4.25rem 0 3.4rem}.home-vision-kicker{margin:0 0 .8rem;color:#fca5a5;text-transform:uppercase;letter-spacing:.16em;font-size:.78rem;font-weight:800}.home-vision-copy h1{margin:0;font-size:clamp(3.1rem,6.4vw,5.8rem);line-height:.95;letter-spacing:-.055em;color:#fff}.home-vision-copy h1 span{display:block;color:#ef4444}.home-vision-sub{max-width:62ch;margin:1.25rem 0 0;color:rgba(255,255,255,.85);font-size:clamp(1rem,1.5vw,1.16rem);line-height:1.75}.home-vision-actions{display:flex;flex-wrap:wrap;gap:.9rem;margin-top:1.8rem}.home-vision-btn-secondary{border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.08);backdrop-filter:blur(12px);color:#fff}.home-vision-pills{display:flex;flex-wrap:wrap;gap:.75rem;list-style:none;padding:0;margin:1.25rem 0 0}.home-vision-pills li{display:inline-flex;align-items:center;padding:.65rem .9rem;border-radius:999px;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.12);font-size:.92rem;color:rgba(255,255,255,.92)}.home-vision-note{margin:1rem 0 0;color:rgba(255,255,255,.64);font-size:.88rem}.home-vision-side{position:relative;min-height:480px;display:flex;align-items:flex-end;justify-content:center}.home-vision-mascot{width:min(420px,88%);max-height:500px;object-fit:contain;filter:drop-shadow(0 28px 55px rgba(0,0,0,.45))}.home-vision-glass{position:absolute;right:0;bottom:1rem;display:grid;gap:.55rem;width:min(280px,75%);padding:1rem 1.05rem;border-radius:22px;border:1px solid rgba(255,255,255,.17);background:rgba(8,16,28,.62);backdrop-filter:blur(18px);box-shadow:0 16px 45px rgba(0,0,0,.28)}.home-vision-glass span{font-size:.72rem;color:#fecaca;text-transform:uppercase;letter-spacing:.12em;font-weight:800}.home-vision-glass strong{font-size:.98rem;color:#fff}.home-vision-section{margin:clamp(3rem,7vw,5.75rem) 0}.home-vision-heading{max-width:780px;margin-bottom:1.6rem}.home-vision-heading-split{display:grid;grid-template-columns:minmax(0,.95fr) minmax(260px,.9fr);gap:1.4rem;align-items:end}.home-vision-heading h2,.home-vision-card-head h2,.home-vision-cta-inner h2{margin:.2rem 0 .65rem;font-size:clamp(2rem,4vw,3.15rem);letter-spacing:-.04em}.home-vision-heading p:last-child,.home-vision-section-intro{color:var(--text-muted);line-height:1.8}.home-vision-door-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}.home-vision-door{position:relative;display:grid;min-height:330px;border-radius:30px;overflow:hidden;text-decoration:none;color:inherit;box-shadow:0 18px 45px rgba(15,23,42,.1);border:1px solid rgba(15,23,42,.08)}.home-vision-door:hover{transform:translateY(-4px);transition:transform .2s ease}.home-vision-door-learn{grid-template-columns:1fr .82fr;align-items:end;padding:clamp(1.6rem,4vw,2.25rem);background:linear-gradient(135deg,#0f172a,#16253b);color:#fff}.home-vision-door-learn img{width:100%;max-height:300px;object-fit:contain}.home-vision-door-discover{grid-template-rows:1fr auto;background:#fff}.home-vision-door-discover>img{width:100%;height:100%;min-height:180px;object-fit:cover}.home-vision-door-copy span,.home-vision-story span{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;font-weight:800;opacity:.74}.home-vision-door-copy h3{margin:.45rem 0 .6rem;font-size:clamp(1.55rem,3vw,2.2rem);letter-spacing:-.03em}.home-vision-door-copy p{margin:0;line-height:1.7;opacity:.85}.home-vision-door-copy strong{display:inline-block;margin-top:.9rem}.home-vision-dashboard{display:grid;grid-template-columns:1.2fr .9fr;gap:1rem;align-items:stretch}.home-vision-stats-card,.home-vision-challenge-card{padding:1.35rem 1.35rem 1.45rem;border-radius:26px;background:#091424;color:#fff;box-shadow:0 18px 42px rgba(15,23,42,.12)}.home-vision-stats-card{background:linear-gradient(180deg,#091424,#0d1b31)}.home-vision-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}.home-vision-card-head h2{margin:0;font-size:clamp(1.55rem,3vw,2.3rem);color:inherit}.home-vision-card-head a{white-space:nowrap;color:inherit;text-decoration:none;opacity:.82;font-weight:700}.home-vision-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem}.home-vision-stat{padding:1rem;border-radius:20px;border:1px solid rgba(255,255,255,.09);background:rgba(255,255,255,.045);display:flex;flex-direction:column;gap:.4rem}.home-vision-stat-icon{font-size:1.35rem}.home-vision-stat strong{font-size:1.55rem;color:#fff}.home-vision-stat small,.home-vision-stat em{color:rgba(255,255,255,.72);font-style:normal;line-height:1.4}.home-vision-stat em{font-size:.78rem;opacity:.7}.home-vision-progress-line{margin-top:1rem;height:9px;border-radius:999px;background:rgba(255,255,255,.08);overflow:hidden}.home-vision-progress-line span{display:block;height:100%;width:0;background:linear-gradient(90deg,#f59e0b,#ef4444);border-radius:999px}.home-vision-challenge-card{background:linear-gradient(135deg,rgba(220,38,38,.06),rgba(255,255,255,.04)),#08111f}.home-vision-challenge-card .daily-challenge,.home-vision-challenge-card #daily-challenge>.account-box{height:100%;margin:0;background:transparent;border:0;padding:0;box-shadow:none}.home-vision-challenge-card .daily-challenge-copy h2{font-size:1.45rem;color:#fff}.home-vision-challenge-card .daily-quick-link{color:#fecaca}.home-vision-story-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.home-vision-story{position:relative;display:block;min-height:420px;border-radius:26px;overflow:hidden;color:#fff;text-decoration:none;background:#111827;box-shadow:0 18px 45px rgba(15,23,42,.12)}.home-vision-story img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .35s ease}.home-vision-story::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,11,22,.02) 22%,rgba(5,11,22,.92) 100%)}.home-vision-story>div{position:absolute;left:0;right:0;bottom:0;z-index:1;padding:1.35rem 1.35rem 1.55rem}.home-vision-story h3{margin:.32rem 0 .5rem;font-size:1.6rem;color:#fff}.home-vision-story p{margin:0;color:rgba(255,255,255,.82);line-height:1.6}.home-vision-story strong{display:inline-block;margin-top:.85rem;color:#fff}.home-vision-story:hover img{transform:scale(1.05)}.home-vision-mission-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.home-vision-mission{display:block;text-decoration:none;color:inherit;border-radius:24px;overflow:hidden;background:#fff;border:1px solid rgba(15,23,42,.09);box-shadow:0 14px 35px rgba(15,23,42,.08)}.home-vision-mission img{width:100%;height:170px;object-fit:cover}.home-vision-mission div{padding:1rem 1rem 1.15rem}.home-vision-mission h3{margin:0 0 .45rem;font-size:1.18rem}.home-vision-mission p{margin:0;color:var(--text-muted);line-height:1.6;min-height:5.1em}.home-vision-mission small{display:inline-block;margin-top:.85rem;color:var(--accent,#dc2626);font-weight:700}.home-vision-community-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.home-vision-testimonial{padding:1.2rem;border-radius:22px;background:#07111e;color:#fff;border:1px solid rgba(255,255,255,.08)}.home-vision-avatar{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;margin-bottom:.95rem;background:linear-gradient(135deg,#ef4444,#f59e0b);font-weight:800}.home-vision-testimonial blockquote{margin:0 0 .8rem;font-size:1rem;line-height:1.8;color:rgba(255,255,255,.9)}.home-vision-testimonial p{margin:0;color:rgba(255,255,255,.7)}.home-vision-cta-band{position:relative;overflow:hidden;margin-top:clamp(3rem,7vw,6rem);color:#fff;isolation:isolate}.home-vision-cta-band::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(5,11,22,.84),rgba(5,11,22,.5),rgba(5,11,22,.8))}.home-vision-cta-inner{position:relative;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(260px,.7fr);gap:2rem;align-items:center;padding:3rem 0}.home-vision-cta-inner p{max-width:60ch;color:rgba(255,255,255,.82);line-height:1.8}.home-vision-cta-inner ul{list-style:none;padding:0;margin:0;display:grid;gap:.65rem}.home-vision-cta-inner li{display:flex;align-items:center;gap:.65rem;padding:.75rem 1rem;border-radius:18px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12)}.home-vision-cta-inner li::before{content:"✓";color:#fca5a5;font-weight:800}.home-share{margin-top:4rem}
@media (max-width:1100px){.home-vision-hero-inner{grid-template-columns:1fr;min-height:auto;padding:4rem 0 3rem}.home-vision-side{min-height:340px}.home-vision-dashboard{grid-template-columns:1fr}.home-vision-story-grid{grid-template-columns:1fr 1fr}.home-vision-mission-grid{grid-template-columns:1fr 1fr}.home-vision-community-grid{grid-template-columns:1fr}.home-vision-cta-inner,.home-vision-heading-split{grid-template-columns:1fr}.home-vision-stats-grid{grid-template-columns:1fr 1fr}}
@media (max-width:720px){.home-vision-hero-inner{padding:3rem 0 2.5rem}.home-vision-copy h1{font-size:clamp(2.65rem,13vw,4.2rem)}.home-vision-actions .btn{width:100%;text-align:center}.home-vision-pills{gap:.5rem}.home-vision-pills li{font-size:.84rem;padding:.55rem .72rem}.home-vision-glass{position:relative;right:auto;bottom:auto;width:100%;margin-top:1rem}.home-vision-door-grid,.home-vision-story-grid,.home-vision-mission-grid,.home-vision-stats-grid{grid-template-columns:1fr}.home-vision-door-learn{grid-template-columns:1fr}.home-vision-door-learn img{max-height:210px}.home-vision-story{min-height:360px}.home-vision-mission img{height:190px}.home-vision-cta-inner{padding:2.3rem 0}}

/* ---- Home hero visibility fix V25 ---- */
.home-vision-side{
  align-items:center;
  justify-content:flex-end;
  padding-right:1rem;
}
.home-vision-mascot{
  width:min(500px,100%);
  max-height:560px;
}
.home-vision-glass{
  top:1.6rem;
  bottom:auto;
  right:-0.35rem;
  width:min(255px,66%);
  background:rgba(8,16,28,.78);
}
@media (max-width:1100px){
  .home-vision-side{justify-content:center;padding-right:0;align-items:flex-end}
  .home-vision-glass{right:0;top:1rem;width:min(260px,72%)}
}
@media (max-width:720px){
  .home-vision-mascot{width:min(420px,92%);max-height:420px}
  .home-vision-glass{position:relative;top:auto;right:auto;width:100%;margin-top:1rem}
}


/* ---- Homepage visual alignment V26 ---- */
body.home-premium-page{background:linear-gradient(180deg,#04111d 0%,#071726 22%,#081a2b 100%);color:#eef4ff}
body.home-premium-page main{display:block}
body.home-premium-page .section-inner{max-width:1320px}
body.home-premium-page .home-vision-section{margin:1.15rem auto 0}
body.home-premium-page .home-vision-section + .home-vision-section{margin-top:1.2rem}
body.home-premium-page .home-vision-doors,
body.home-premium-page .home-vision-dashboard,
body.home-premium-page .home-vision-richness,
body.home-premium-page .home-vision-missions,
body.home-premium-page .home-vision-community{padding:0 0 .35rem}
body.home-premium-page .home-vision-heading{margin-bottom:1rem}
body.home-premium-page .home-vision-heading h2,
body.home-premium-page .home-vision-card-head h2,
body.home-premium-page .home-vision-cta-inner h2{color:#fff}
body.home-premium-page .home-vision-heading p:last-child,
body.home-premium-page .home-vision-section-intro,
body.home-premium-page .home-vision-mission p,
body.home-premium-page .home-vision-story p{color:rgba(235,242,255,.82)}
body.home-premium-page .culture-kicker{color:#ff7a7a}
body.home-premium-page .home-vision-hero{margin-bottom:1rem}
body.home-premium-page .home-vision-hero-inner{min-height:690px;padding:3.25rem 0 2rem}
body.home-premium-page .home-vision-copy{padding-top:1rem}
body.home-premium-page .home-vision-sub{max-width:56ch}
body.home-premium-page .home-vision-actions{margin-top:1.4rem}
body.home-premium-page .home-vision-pills{margin-top:1rem;gap:1.1rem}
body.home-premium-page .home-vision-pills li{background:transparent;border:0;padding:0;color:#fff;opacity:.92;position:relative;padding-left:1.4rem}
body.home-premium-page .home-vision-pills li::before{content:"•";position:absolute;left:.25rem;top:0;color:#fca5a5}
body.home-premium-page .home-vision-note{display:none}
body.home-premium-page .home-vision-glass{border-radius:28px;box-shadow:0 24px 60px rgba(1,6,17,.45);border:1px solid rgba(255,255,255,.14)}
body.home-premium-page .home-vision-door-grid,
body.home-premium-page .home-vision-story-grid,
body.home-premium-page .home-vision-mission-grid,
body.home-premium-page .home-vision-community-grid{gap:1rem}
body.home-premium-page .home-vision-door,
body.home-premium-page .home-vision-story,
body.home-premium-page .home-vision-mission,
body.home-premium-page .home-vision-testimonial,
body.home-premium-page .home-vision-stats-card,
body.home-premium-page .home-vision-challenge-card{background:linear-gradient(180deg,#092138 0%,#08192b 100%);border:1px solid rgba(67,109,153,.45);box-shadow:0 12px 34px rgba(0,0,0,.22)}
body.home-premium-page .home-vision-door{min-height:300px;border-radius:18px}
body.home-premium-page .home-vision-door-learn{grid-template-columns:1fr;background:#0a1e33}
body.home-premium-page .home-vision-door-learn img{position:absolute;inset:0;z-index:0;width:100%;height:100%;max-height:none;object-fit:cover;opacity:.42}
body.home-premium-page .home-vision-door-learn::after,
body.home-premium-page .home-vision-door-discover::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(4,15,27,.82),rgba(4,15,27,.38) 56%,rgba(4,15,27,.75));z-index:0}
body.home-premium-page .home-vision-door-discover{display:block;background:#091b2e}
body.home-premium-page .home-vision-door-discover>img{position:absolute;inset:0;width:100%;height:100%;min-height:auto}
body.home-premium-page .home-vision-door-copy{position:relative;z-index:1;padding:1.35rem 1.4rem;max-width:62%}
body.home-premium-page .home-vision-door-copy strong{color:#ff7a7a}
body.home-premium-page .home-vision-stats-card,.home-premium-page .home-vision-challenge-card{border-radius:18px}
body.home-premium-page .home-vision-stats-grid{grid-template-columns:1.1fr 1fr 1fr 1fr}
body.home-premium-page .home-vision-stat{border-radius:14px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.07)}
body.home-premium-page .home-vision-stat strong{font-size:1.9rem}
body.home-premium-page #daily-challenge .daily-challenge{background:transparent;color:#fff}
body.home-premium-page #daily-challenge .daily-challenge-copy h2,
body.home-premium-page #daily-challenge .daily-challenge-copy p,
body.home-premium-page #daily-challenge .daily-quick-link{color:#fff}
body.home-premium-page .home-vision-richness .home-vision-heading{display:grid;grid-template-columns:1.1fr .9fr;gap:1.4rem;align-items:end}
body.home-premium-page .home-vision-story{min-height:350px;border-radius:16px;border:1px solid rgba(92,129,167,.4)}
body.home-premium-page .home-vision-story>div{padding:1.15rem 1.15rem 1.25rem}
body.home-premium-page .home-vision-story h3{font-size:1.85rem}
body.home-premium-page .home-vision-story strong{color:#ff6f6f}
body.home-premium-page .home-vision-missions .home-vision-card-head,
body.home-premium-page .home-vision-community .home-vision-heading{margin-bottom:.85rem}
body.home-premium-page .home-vision-mission{background:#08192b;border-radius:16px;border:1px solid rgba(92,129,167,.4)}
body.home-premium-page .home-vision-mission img{height:160px}
body.home-premium-page .home-vision-mission h3{color:#fff}
body.home-premium-page .home-vision-mission small{color:#ffd28b}
body.home-premium-page .home-vision-community-grid{grid-template-columns:repeat(3,1fr)}
body.home-premium-page .home-vision-testimonial{border-radius:16px;padding:1rem 1rem .9rem;display:grid;grid-template-columns:auto 1fr;gap:.9rem;align-items:center}
body.home-premium-page .home-vision-avatar{margin:0}
body.home-premium-page .home-vision-testimonial blockquote{margin:0 0 .5rem;font-size:.98rem}
body.home-premium-page .home-vision-testimonial p{grid-column:2;color:rgba(255,255,255,.72)}
body.home-premium-page .home-vision-cta-band{margin-top:1.5rem}
body.home-premium-page .home-vision-cta-inner{padding:2.3rem 0}
body.home-premium-page .home-vision-cta-inner ul li{background:rgba(255,255,255,.12)}
body.home-premium-page .home-wall,
body.home-premium-page .home-share{margin-top:1.4rem;color:#fff}
body.home-premium-page .home-share .share-card{background:#08192b;border:1px solid rgba(92,129,167,.4)}
@media (max-width:1100px){body.home-premium-page .home-vision-richness .home-vision-heading{grid-template-columns:1fr}body.home-premium-page .home-vision-door-copy{max-width:75%}body.home-premium-page .home-vision-mission-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:720px){body.home-premium-page .home-vision-section{margin-top:1rem}body.home-premium-page .home-vision-door-copy{max-width:100%;padding:1.1rem}body.home-premium-page .home-vision-story,body.home-premium-page .home-vision-mission{min-height:auto}body.home-premium-page .home-vision-community-grid,body.home-premium-page .home-vision-mission-grid,body.home-premium-page .home-vision-story-grid{grid-template-columns:1fr}}

/* ---- Homepage fine-tuning V27 ---- */
body.home-premium-page .section-inner{width:min(1360px,calc(100% - 2rem));max-width:none}
body.home-premium-page .home-vision-hero{margin-bottom:.75rem}
body.home-premium-page .home-vision-hero-inner{min-height:650px;padding:2.9rem 0 1.5rem;gap:2.2rem}
body.home-premium-page .home-vision-copy h1{font-size:clamp(3.2rem,6vw,5.35rem);letter-spacing:-.06em}
body.home-premium-page .home-vision-sub{font-size:1.1rem;line-height:1.65;max-width:55ch}
body.home-premium-page .home-vision-actions .btn{padding:.95rem 1.4rem;border-radius:999px}
body.home-premium-page .home-vision-side{min-height:430px}
body.home-premium-page .home-vision-glass{top:auto;bottom:1.2rem;right:.25rem;width:min(320px,74%);padding:1.15rem 1.2rem}
body.home-premium-page .home-vision-glass strong{font-size:1.12rem;line-height:1.3}
body.home-premium-page .home-vision-section{margin:1rem auto 0}
body.home-premium-page .home-vision-section + .home-vision-section{margin-top:1rem}
body.home-premium-page .home-vision-heading,
body.home-premium-page .home-vision-card-head{position:relative;padding-bottom:.55rem;border-bottom:1px solid rgba(255,255,255,.08)}
body.home-premium-page .home-vision-heading h2,
body.home-premium-page .home-vision-card-head h2{font-size:clamp(2rem,3.2vw,2.85rem);line-height:1.05}
body.home-premium-page .home-vision-heading::after,
body.home-premium-page .home-vision-card-head::after{content:"";position:absolute;left:0;bottom:-1px;width:72px;height:3px;border-radius:999px;background:linear-gradient(90deg,#ef4444,#fb7185)}
body.home-premium-page .home-vision-card-head > a{align-self:center;color:#ff8d8d}
body.home-premium-page .home-vision-door-grid{grid-template-columns:1fr 1fr;gap:.95rem}
body.home-premium-page .home-vision-door{min-height:275px;border-radius:14px}
body.home-premium-page .home-vision-door-copy{padding:1.15rem 1.2rem 1.2rem;max-width:58%}
body.home-premium-page .home-vision-door-copy h3{font-size:clamp(1.65rem,2.7vw,2.15rem);margin:.25rem 0 .45rem}
body.home-premium-page .home-vision-door-copy p{font-size:1rem;line-height:1.55}
body.home-premium-page .home-vision-dashboard{grid-template-columns:1.65fr 1fr;gap:.9rem}
body.home-premium-page .home-vision-stats-card,
body.home-premium-page .home-vision-challenge-card{padding:1.05rem 1.1rem 1.15rem;border-radius:14px}
body.home-premium-page .home-vision-stats-grid{gap:.6rem}
body.home-premium-page .home-vision-stat{padding:.9rem .85rem;min-height:118px}
body.home-premium-page .home-vision-stat strong{font-size:1.7rem}
body.home-premium-page .home-vision-richness .home-vision-heading{margin-bottom:.8rem}
body.home-premium-page .home-vision-richness .home-vision-heading p:last-child{padding-top:1rem}
body.home-premium-page .home-vision-story-grid{gap:.8rem}
body.home-premium-page .home-vision-story{min-height:330px;border-radius:14px}
body.home-premium-page .home-vision-story > div{padding:1rem 1rem 1.1rem}
body.home-premium-page .home-vision-story h3{font-size:1.65rem;margin:.25rem 0 .4rem}
body.home-premium-page .home-vision-story p{font-size:.98rem;line-height:1.5}
body.home-premium-page .home-vision-missions .home-vision-card-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:1rem}
body.home-premium-page .home-vision-mission-grid{gap:.8rem}
body.home-premium-page .home-vision-mission{border-radius:14px}
body.home-premium-page .home-vision-mission img{height:145px}
body.home-premium-page .home-vision-mission div{padding:.85rem .9rem 1rem}
body.home-premium-page .home-vision-mission h3{font-size:1.28rem;margin-bottom:.35rem}
body.home-premium-page .home-vision-mission p{min-height:4.7em;font-size:.95rem;line-height:1.5}
body.home-premium-page .home-vision-community .home-vision-heading{display:grid;grid-template-columns:1.05fr .95fr;gap:1rem;align-items:end}
body.home-premium-page .home-vision-community-grid{gap:.8rem}
body.home-premium-page .home-vision-testimonial{padding:.95rem;border-radius:14px;grid-template-columns:64px 1fr}
body.home-premium-page .home-vision-avatar{width:58px;height:58px;font-size:1.2rem}
body.home-premium-page .home-vision-testimonial blockquote{font-size:.95rem;line-height:1.6}
body.home-premium-page .home-vision-cta-band{margin-top:1.15rem}
body.home-premium-page .home-vision-cta-inner{padding:2rem 0;grid-template-columns:1.15fr .85fr}
body.home-premium-page .home-vision-cta-inner li{padding:.7rem .9rem;border-radius:14px}
@media (max-width:1100px){
  body.home-premium-page .home-vision-door-copy{max-width:72%}
  body.home-premium-page .home-vision-dashboard{grid-template-columns:1fr}
  body.home-premium-page .home-vision-community .home-vision-heading{grid-template-columns:1fr}
}
@media (max-width:720px){
  body.home-premium-page .section-inner{width:min(100% - 1rem,1360px)}
  body.home-premium-page .home-vision-hero-inner{padding:2.4rem 0 1.5rem;gap:1.3rem}
  body.home-premium-page .home-vision-copy h1{font-size:clamp(2.55rem,11vw,3.55rem)}
  body.home-premium-page .home-vision-sub{font-size:1rem}
  body.home-premium-page .home-vision-door{min-height:240px}
  body.home-premium-page .home-vision-door-copy{max-width:100%}
  body.home-premium-page .home-vision-heading h2,
  body.home-premium-page .home-vision-card-head h2{font-size:1.85rem}
}


/* ---- Discover family premium redesign V29 ---- */
body.discover-premium-page{background:linear-gradient(180deg,#05111e 0%,#081827 34%,#0a1c2e 100%);color:#edf4fb}
body.discover-premium-page main{min-height:70vh}
body.discover-premium-page main>.section-inner{width:min(1320px,calc(100% - 2rem));max-width:none;margin-inline:auto;padding-top:1rem;padding-bottom:3.5rem}
body.discover-premium-page .breadcrumb{color:rgba(235,243,251,.62);font-size:.88rem;margin-bottom:1.1rem}
body.discover-premium-page .breadcrumb a{color:rgba(255,255,255,.85)}
body.discover-premium-page h1,
body.discover-premium-page h2,
body.discover-premium-page h3{color:#fff}
body.discover-premium-page .culture-kicker{color:#ff7b7b}
body.discover-premium-page .btn-primary{box-shadow:0 12px 26px rgba(220,38,38,.22)}
body.discover-premium-page .btn-ghost{border-color:rgba(255,255,255,.18);color:#f7fbff;background:rgba(255,255,255,.04)}
body.discover-premium-page .photo-credit,
body.discover-premium-page .section-sub,
body.discover-premium-page .article-tag{color:rgba(226,236,247,.66)}

/* hub */
body.discover-premium-hub .page-intro-flex{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,.52fr);gap:2rem;align-items:end;padding:clamp(1.6rem,4vw,3rem);margin-bottom:1.2rem;border-radius:26px;overflow:hidden;background:linear-gradient(135deg,rgba(14,38,62,.94),rgba(8,24,39,.98));border:1px solid rgba(87,132,173,.32);box-shadow:0 22px 54px rgba(0,0,0,.2)}
body.discover-premium-hub .page-intro-flex:after{content:"";position:absolute;inset:auto -7% -75% 38%;height:310px;border-radius:50%;background:radial-gradient(circle,rgba(239,68,68,.18),transparent 65%);pointer-events:none}
body.discover-premium-hub .page-intro-text{max-width:760px;position:relative;z-index:1}
body.discover-premium-hub .page-intro-text h1{font-size:clamp(2.8rem,6vw,5rem);letter-spacing:-.055em;line-height:.98;margin:.25rem 0 .85rem}
body.discover-premium-hub .page-intro-text>p:not(.breadcrumb){font-size:1.08rem;line-height:1.75;color:rgba(237,244,251,.78)}
body.discover-premium-hub .discover-portals{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.9rem;margin:1rem 0 1.2rem}
body.discover-premium-hub .discover-portal-card,
body.discover-premium-hub .discover-portals>a{position:relative;overflow:hidden;border-radius:18px;background:linear-gradient(180deg,#0c2238,#08192b);border:1px solid rgba(83,128,168,.38);box-shadow:0 14px 34px rgba(0,0,0,.18);transition:transform .2s ease,border-color .2s ease}
body.discover-premium-hub .discover-portal-card:hover,
body.discover-premium-hub .discover-portals>a:hover{transform:translateY(-3px);border-color:rgba(248,113,113,.48)}
body.discover-premium-hub .discover-portal-icon{background:rgba(239,68,68,.12);border:1px solid rgba(248,113,113,.2)}
body.discover-premium-hub .discover-city-heading{display:grid;grid-template-columns:1fr auto;align-items:end;gap:1rem;margin:1.5rem 0 .8rem;padding-bottom:.65rem;border-bottom:1px solid rgba(255,255,255,.08)}
body.discover-premium-hub .discover-city-heading h2{font-size:clamp(1.9rem,3.5vw,2.7rem);margin:.15rem 0}
body.discover-premium-hub .city-grid{gap:.8rem}
body.discover-premium-hub .city-card{background:#091b2e;border:1px solid rgba(88,132,170,.35);border-radius:15px;overflow:hidden;box-shadow:0 12px 30px rgba(0,0,0,.18)}
body.discover-premium-hub .city-card:hover{transform:translateY(-3px);border-color:rgba(239,68,68,.42)}
body.discover-premium-hub .city-card h3,
body.discover-premium-hub .city-card p{color:#fff}

/* culture hub and articles */
body.discover-premium-culture .culture-hero{position:relative;overflow:hidden;padding:clamp(1.8rem,5vw,3.5rem);border-radius:28px;background:linear-gradient(135deg,#10243a,#091827);border:1px solid rgba(89,132,170,.34);box-shadow:0 22px 55px rgba(0,0,0,.2)}
body.discover-premium-culture .culture-hero h1{font-size:clamp(2.7rem,5.6vw,4.8rem);line-height:.98;letter-spacing:-.05em}
body.discover-premium-culture .culture-hero p{color:rgba(235,243,251,.8);line-height:1.75}
body.discover-premium-culture .culture-hero-mark{filter:drop-shadow(0 20px 35px rgba(0,0,0,.28))}
body.discover-premium-culture .culture-grid{gap:.9rem;margin-top:1rem}
body.discover-premium-culture .culture-card{border-radius:18px;overflow:hidden;background:#091b2e;border:1px solid rgba(82,127,166,.34);box-shadow:0 14px 36px rgba(0,0,0,.18)}
body.discover-premium-culture .culture-card-body{background:linear-gradient(180deg,rgba(10,29,48,.92),#08192b)}
body.discover-premium-culture .culture-card-body p{color:rgba(235,243,251,.74)}
body.discover-premium-culture .culture-note,
body.discover-premium-culture .culture-unesco,
body.discover-premium-culture .culture-credits{border-radius:20px;background:linear-gradient(180deg,#0b2136,#08192b);border:1px solid rgba(82,127,166,.32);box-shadow:0 14px 34px rgba(0,0,0,.14)}
body.discover-premium-culture .culture-heritage-item{background:rgba(255,255,255,.035);border-color:rgba(255,255,255,.08)}
body.discover-premium-culture .culture-heritage-item p{color:rgba(236,243,250,.72)}

/* life and travel */
body.discover-premium-life .life-hero{position:relative;overflow:hidden;border-radius:28px;background:#081827;border:1px solid rgba(82,127,166,.32);box-shadow:0 22px 55px rgba(0,0,0,.2)}
body.discover-premium-life .life-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(4,14,25,.82),rgba(4,14,25,.18) 70%);pointer-events:none}
body.discover-premium-life .life-hero>*{position:relative;z-index:1}
body.discover-premium-life .life-hero h1{font-size:clamp(2.7rem,5.6vw,4.7rem);letter-spacing:-.05em;line-height:.98}
body.discover-premium-life .life-hero p{color:rgba(238,244,250,.82)}
body.discover-premium-life .fresh{border-radius:14px;background:rgba(245,158,11,.09);border:1px solid rgba(245,158,11,.2);color:#fde7b2}
body.discover-premium-life .life-grid{gap:.85rem}
body.discover-premium-life .life-card,
body.discover-premium-life .today-gallery,
body.discover-premium-life .recent-window,
body.discover-premium-life .video-spotlight,
body.discover-premium-life .mission-entry{background:linear-gradient(180deg,#0b2136,#08192b);border:1px solid rgba(83,128,168,.34);border-radius:18px;box-shadow:0 14px 34px rgba(0,0,0,.16)}
body.discover-premium-life .life-card p,
body.discover-premium-life .today-gallery p,
body.discover-premium-life .recent-window p,
body.discover-premium-life .video-spotlight p,
body.discover-premium-life .mission-entry p{color:rgba(236,243,250,.76)}
body.discover-premium-life .today-gallery-grid img,
body.discover-premium-life .video-spotlight-thumb{border-radius:14px}
body.discover-premium-life .recent-window-links a{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.08);color:#fff}

/* city articles */
body.discover-premium-city .article-wrap{max-width:1180px}
body.discover-premium-city #city-article{display:block}
body.discover-premium-city .city-postcard-lg{position:relative;height:clamp(320px,48vw,560px);border-radius:26px;overflow:hidden;margin-bottom:0;box-shadow:0 24px 58px rgba(0,0,0,.28);border:1px solid rgba(93,137,177,.35)}
body.discover-premium-city .city-postcard-lg:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(3,12,22,.75) 100%);pointer-events:none}
body.discover-premium-city .city-postcard-lg .city-photo{width:100%;height:100%;object-fit:cover}
body.discover-premium-city .article-title{position:relative;z-index:2;width:max-content;max-width:90%;margin:-5rem 0 0 1.5rem;padding:.75rem 1rem 0;font-size:clamp(2.8rem,6vw,4.8rem);line-height:.95;letter-spacing:-.05em;color:#fff}
body.discover-premium-city .article-tag{position:relative;z-index:2;margin:.5rem 0 1rem 2.5rem;color:#ffb6b6;font-weight:700}
body.discover-premium-city .article-text{font-size:1.07rem;line-height:1.85;color:rgba(236,243,250,.8);max-width:850px}
body.discover-premium-city .city-gallery{margin:1rem 0}
body.discover-premium-city .city-gallery img{border-radius:14px;border:1px solid rgba(255,255,255,.08)}
body.discover-premium-city .city-notebook{margin:1.3rem 0;padding:1.4rem;border-radius:22px;background:linear-gradient(180deg,#0b2136,#08192b);border:1px solid rgba(83,128,168,.34);box-shadow:0 15px 38px rgba(0,0,0,.18)}
body.discover-premium-city .city-notebook-head p{color:rgba(235,243,251,.74)}
body.discover-premium-city .city-notebook-grid article{background:rgba(255,255,255,.035);border-color:rgba(255,255,255,.08);border-radius:14px}
body.discover-premium-city .city-notebook-grid p{color:rgba(235,243,251,.75)}
body.discover-premium-city .related-box{border-radius:18px;background:#091b2e;border:1px solid rgba(83,128,168,.3)}
body.discover-premium-city .related-link{color:#fff}

/* music inherits its custom premium component, align page shell only */
body.discover-premium-music .music-story{max-width:1260px}
body.discover-premium-music .music-section,
body.discover-premium-music .music-timeline,
body.discover-premium-music .music-learning{scroll-margin-top:100px}

/* shared card text */
body.discover-premium-page .discover-portal-card p,
body.discover-premium-page .discover-portals p,
body.discover-premium-page .city-card p{color:rgba(235,243,251,.72)}

@media(max-width:1000px){
 body.discover-premium-hub .discover-portals{grid-template-columns:repeat(2,minmax(0,1fr))}
 body.discover-premium-hub .page-intro-flex{grid-template-columns:1fr}
}
@media(max-width:720px){
 body.discover-premium-page main>.section-inner{width:min(100% - 1rem,1320px);padding-top:.65rem}
 body.discover-premium-hub .page-intro-flex,
 body.discover-premium-culture .culture-hero,
 body.discover-premium-life .life-hero{border-radius:18px;padding:1.25rem}
 body.discover-premium-hub .discover-portals{grid-template-columns:1fr}
 body.discover-premium-hub .discover-city-heading{grid-template-columns:1fr}
 body.discover-premium-city .city-postcard-lg{height:330px;border-radius:18px}
 body.discover-premium-city .article-title{margin:-4rem 0 0 .8rem;padding:.6rem .6rem 0;font-size:2.7rem}
 body.discover-premium-city .article-tag{margin-left:1.4rem}
 body.discover-premium-city .city-notebook{padding:1rem;border-radius:16px}
}


/* ---- Home hero / discover hub polish V30 ---- */
body.home-premium-page .home-vision-glass{bottom:-.35rem;top:auto;right:.2rem}
@media (max-width:1100px){body.home-premium-page .home-vision-glass{bottom:.2rem;top:auto;right:0}}

body.discover-premium-hub .discover-portals>a{display:flex;flex-direction:column;padding:0;min-height:100%}
body.discover-premium-hub .discover-portals>a img{display:block;width:100%;height:190px;object-fit:cover;object-position:center}
body.discover-premium-hub .discover-portals>a>div{display:flex;flex-direction:column;gap:.25rem;padding:1.15rem 1.15rem 1.2rem;flex:1}
body.discover-premium-hub .discover-portal-kicker{color:#b9cbe0;opacity:1}
body.discover-premium-hub .discover-portals h2{font-size:1.9rem;line-height:1.08;margin:.15rem 0 .4rem;color:#fff}
body.discover-premium-hub .discover-portals p{font-size:1rem;line-height:1.65;color:rgba(235,243,251,.82)}
body.discover-premium-hub .discover-portal-link{margin-top:auto;padding-top:1rem;color:#fff}
body.discover-premium-hub .discover-portals>a:hover img{transform:scale(1.03);transition:transform .35s ease}
body.discover-premium-hub .discover-portals{align-items:stretch}
@media(max-width:1000px){body.discover-premium-hub .discover-portals>a img{height:200px}}
@media(max-width:720px){body.discover-premium-hub .discover-portals>a img{height:210px}}


/* ---- CTA title and discover grid completion V31 ---- */
body.home-premium-page .home-vision-cta-inner h2{font-size:clamp(2.1rem,4.2vw,3.55rem);line-height:1.03;max-width:12ch}
body.discover-premium-hub .discover-portals{grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}
body.discover-premium-hub .discover-portals>a{display:flex;flex-direction:column;min-height:100%}
body.discover-premium-hub .discover-portals>a img{height:205px}
body.discover-premium-hub .discover-portals h2{font-size:1.75rem}
body.discover-premium-hub .discover-portals p{font-size:.98rem;line-height:1.6}
@media(max-width:1000px){body.discover-premium-hub .discover-portals{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){body.home-premium-page .home-vision-cta-inner h2{max-width:none}body.discover-premium-hub .discover-portals{grid-template-columns:1fr}body.discover-premium-hub .discover-portals>a img{height:210px}}

/* ---- Learn family premium redesign V32 ---- */
body.learn-premium-page{background:linear-gradient(180deg,#04111d 0%,#071827 30%,#081a2b 100%);color:#eef4ff}
body.learn-premium-page main>.section-inner{width:min(1320px,calc(100% - 2rem));max-width:none;padding-top:1rem;padding-bottom:2.5rem}
body.learn-premium-page .breadcrumb,body.learn-premium-page .breadcrumb a{color:rgba(225,236,247,.58)}
body.learn-premium-page h1,body.learn-premium-page h2,body.learn-premium-page h3{color:#fff}
body.learn-premium-page .section-sub,body.learn-premium-page .article-text{color:rgba(233,241,249,.78)}
body.learn-premium-page .learn-kicker{color:#ff8f8f}
body.learn-premium-page .btn.btn-ghost{color:#fff;border-color:rgba(255,255,255,.18);background:rgba(255,255,255,.04)}

/* Hub hero */
body.learn-premium-hub .page-intro-flex{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,.45fr);align-items:end;gap:2rem;min-height:390px;padding:clamp(1.6rem,4vw,3rem);margin:.4rem 0 1rem;border-radius:26px;border:1px solid rgba(87,132,173,.32);background:linear-gradient(90deg,rgba(5,16,29,.93),rgba(5,16,29,.72)),url('../assets/images/villes/paris-louvre-nuit.webp') center/cover no-repeat;box-shadow:0 22px 54px rgba(0,0,0,.22)}
body.learn-premium-hub .page-intro-flex:after{content:"";position:absolute;inset:auto -6% -70% 38%;height:300px;border-radius:50%;background:radial-gradient(circle,rgba(239,68,68,.2),transparent 66%);pointer-events:none}
body.learn-premium-hub .page-intro-text{position:relative;z-index:1;max-width:780px}
body.learn-premium-hub .page-intro-text h1{font-size:clamp(3rem,6vw,5.1rem);line-height:.96;letter-spacing:-.055em;margin:.2rem 0 .8rem}
body.learn-premium-hub .page-intro-text .section-sub{font-size:1.08rem;line-height:1.75;max-width:60ch}
body.learn-premium-hub .page-mascot-inset{position:relative;z-index:1;max-height:315px;filter:drop-shadow(0 22px 45px rgba(0,0,0,.4))}

/* Site guide, top learning modes */
body.learn-premium-hub .home-section-title{color:#fff}
body.learn-premium-hub .site-sections-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;margin:1rem 0 1.1rem}
body.learn-premium-hub .site-guide-card{min-height:112px;padding:1rem;border-radius:15px;background:linear-gradient(180deg,#0b2238,#08192b);border:1px solid rgba(83,128,168,.34);color:#fff;box-shadow:0 10px 28px rgba(0,0,0,.14)}
body.learn-premium-hub .site-guide-card:hover{transform:translateY(-2px);border-color:rgba(248,113,113,.45)}
body.learn-premium-hub .site-guide-card-desc{color:rgba(235,243,251,.68)}
body.learn-premium-hub .learning-hub{gap:.8rem;margin:1rem 0 1.2rem}
body.learn-premium-hub .learning-hub-card{padding:1rem 1.1rem;border-radius:16px;background:#091b2e;border:1px solid rgba(83,128,168,.36);color:#fff;box-shadow:0 12px 30px rgba(0,0,0,.16)}
body.learn-premium-hub .learning-hub-card small{color:rgba(235,243,251,.64)}
body.learn-premium-hub .learning-hub-card.is-active{background:linear-gradient(135deg,rgba(220,38,38,.16),#091b2e);border-color:rgba(248,113,113,.45)}

/* Start path */
body.learn-premium-hub .learn-orientation,body.learn-premium-hub .learn-themes,body.learn-premium-hub .practice-ladder{margin:1.5rem 0}
body.learn-premium-hub .learn-start-hero{padding:1.3rem 1.4rem;border-radius:18px;background:linear-gradient(135deg,#0d2740,#08192b);border:1px solid rgba(83,128,168,.36);box-shadow:0 14px 34px rgba(0,0,0,.17)}
body.learn-premium-hub .learn-start-hero p{color:rgba(235,243,251,.7)}
body.learn-premium-hub .starter-steps{gap:.7rem}
body.learn-premium-hub .starter-steps a{border-radius:14px;background:#091b2e;border:1px solid rgba(83,128,168,.34);color:#fff}
body.learn-premium-hub .starter-steps a:hover{border-color:rgba(248,113,113,.5);box-shadow:0 12px 28px rgba(0,0,0,.2)}
body.learn-premium-hub .starter-steps span{background:rgba(239,68,68,.13);color:#ff9b9b}
body.learn-premium-hub .starter-steps small{color:rgba(235,243,251,.62)}

/* Theme cards */
body.learn-premium-hub .learn-section-heading{margin-bottom:.85rem;padding-bottom:.65rem;border-bottom:1px solid rgba(255,255,255,.08)}
body.learn-premium-hub .learn-section-heading h2,body.learn-premium-hub .learn-levels-intro h2{font-size:clamp(1.8rem,3.6vw,2.65rem);letter-spacing:-.035em}
body.learn-premium-hub .learn-section-heading p,body.learn-premium-hub .learn-levels-intro p{color:rgba(235,243,251,.68)}
body.learn-premium-hub .learn-theme-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem}
body.learn-premium-hub .learn-theme-card{padding:1.2rem;border-radius:16px;background:linear-gradient(180deg,#0b2238,#08192b);border:1px solid rgba(83,128,168,.34);box-shadow:0 12px 30px rgba(0,0,0,.15)}
body.learn-premium-hub .learn-theme-card>p{color:rgba(235,243,251,.7)}
body.learn-premium-hub .learn-theme-links a{background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.08);color:#eef4ff}
body.learn-premium-hub .learn-theme-links a:hover{border-color:#f87171;color:#fecaca}

/* Practice ladder */
body.learn-premium-hub .practice-ladder-grid{gap:.8rem}
body.learn-premium-hub .practice-ladder-grid article{padding:1.15rem;border-radius:16px;background:#091b2e;border:1px solid rgba(83,128,168,.34);color:#fff;box-shadow:0 12px 30px rgba(0,0,0,.14)}
body.learn-premium-hub .practice-ladder-grid p{color:rgba(235,243,251,.68)}
body.learn-premium-hub .practice-ladder-final{background:linear-gradient(135deg,rgba(220,38,38,.14),#091b2e);border-color:rgba(248,113,113,.38)}
body.learn-premium-hub .practice-ladder-grid article>div>a:first-child:not(.btn){color:#fecaca}

/* Levels, how-to and readings */
body.learn-premium-hub .learn-levels-intro{margin:1.8rem 0 .8rem;padding-top:1.2rem;border-top:1px solid rgba(255,255,255,.09)}
body.learn-premium-hub .lesson-search-input{background:#091b2e;border-color:rgba(83,128,168,.36);color:#fff}
body.learn-premium-hub .track-block{background:linear-gradient(180deg,#0b2136,#08192b);border-color:rgba(83,128,168,.34);border-radius:16px;box-shadow:0 12px 30px rgba(0,0,0,.13)}
body.learn-premium-hub .track-header:hover{background:rgba(255,255,255,.04)}
body.learn-premium-hub .track-subtitle,body.learn-premium-hub .node-desc{color:rgba(235,243,251,.64)}
body.learn-premium-hub .track-progress{background:rgba(45,212,191,.08);border-color:rgba(45,212,191,.2);color:#7ee7d4}
body.learn-premium-hub .learn-path::before{opacity:.4}
body.learn-premium-hub .node-title{color:#fff}
body.learn-premium-hub .node-btn{color:#fff;border-color:rgba(255,255,255,.15)}
body.learn-premium-hub .howto-grid{gap:.8rem;margin:1rem 0 1.5rem}
body.learn-premium-hub .howto-item{background:#091b2e;border-color:rgba(83,128,168,.34);border-radius:15px}
body.learn-premium-hub .howto-item p{color:rgba(235,243,251,.66)}
body.learn-premium-hub .story-hub-card{background:#091b2e;border-color:rgba(83,128,168,.34);color:#fff}
body.learn-premium-hub .story-hub-desc{color:rgba(235,243,251,.66)}

/* Missions hub */
body.learn-premium-missions .mission-wrap{max-width:1120px}
body.learn-premium-missions .mission-hero{position:relative;overflow:hidden;min-height:340px;margin:1rem 0 1.2rem;padding:clamp(1.5rem,4vw,2.8rem);border-radius:26px;background:linear-gradient(90deg,rgba(5,16,29,.95),rgba(5,16,29,.68)),url('../assets/images/villes/paris-louvre-nuit.webp') center/cover no-repeat;border:1px solid rgba(87,132,173,.34);box-shadow:0 22px 54px rgba(0,0,0,.22)}
body.learn-premium-missions .mission-hero>div:first-child{max-width:670px;position:relative;z-index:1}
body.learn-premium-missions .mission-hero h1{font-size:clamp(3rem,6vw,5rem);line-height:.96;letter-spacing:-.05em;margin:.25rem 0 .7rem}
body.learn-premium-missions .mission-hero-badge{position:relative;z-index:1;background:rgba(6,18,31,.75);border:1px solid rgba(255,255,255,.12);color:#fff;backdrop-filter:blur(14px);box-shadow:0 18px 45px rgba(0,0,0,.28)}
body.learn-premium-missions .mission-catalog{gap:.75rem;margin:1.2rem 0}
body.learn-premium-missions .mission-dashboard{padding:1rem 1.1rem;border-radius:15px;background:#091b2e;border:1px solid rgba(83,128,168,.34);color:#fff}
body.learn-premium-missions .mission-card{padding:1.15rem;border-radius:16px;background:linear-gradient(180deg,#0b2238,#08192b);border:1px solid rgba(83,128,168,.34);color:#fff;box-shadow:0 12px 30px rgba(0,0,0,.14)}
body.learn-premium-missions .mission-card:hover{border-color:rgba(248,113,113,.5);box-shadow:0 14px 34px rgba(0,0,0,.22)}
body.learn-premium-missions .mission-card p,body.learn-premium-missions .mission-level{color:rgba(235,243,251,.67)}
body.learn-premium-missions .mission-score-status{color:#fecaca}
body.learn-premium-missions .mission-card-featured{background:linear-gradient(135deg,rgba(220,38,38,.16),#091b2e);border-color:rgba(248,113,113,.42)}

/* Individual missions */
body.learn-premium-mission-play .mission-wrap{max-width:920px}
body.learn-premium-mission-play .mission-play-head{padding:1.5rem 1.6rem;margin:1rem 0 1rem;border-radius:22px;background:linear-gradient(135deg,#0d2740,#08192b);border:1px solid rgba(83,128,168,.36);box-shadow:0 16px 38px rgba(0,0,0,.17)}
body.learn-premium-mission-play .mission-play-head h1{font-size:clamp(2.8rem,5vw,4.3rem);letter-spacing:-.045em;margin:.15rem 0 .55rem}
body.learn-premium-mission-play .mission-stage,body.learn-premium-mission-play .mission-result{background:#091b2e;border-color:rgba(83,128,168,.34);color:#fff;box-shadow:0 16px 36px rgba(0,0,0,.17)}
body.learn-premium-mission-play .mission-choices button{background:rgba(255,255,255,.035);border-color:rgba(255,255,255,.12);color:#fff}
body.learn-premium-mission-play .mission-feedback{border-color:rgba(255,255,255,.1)}
body.learn-premium-mission-play .mission-progress{background:rgba(255,255,255,.1)}
body.learn-premium-mission-play .mission-progress span{background:linear-gradient(90deg,#ef4444,#f59e0b)}
body.learn-premium-mission-play .mission-hud,body.learn-premium-mission-play .mission-skill-report{background:rgba(255,255,255,.045);color:#fff}
body.learn-premium-mission-play .mission-review-links a{background:#0b2238;border-color:rgba(255,255,255,.1);color:#fff}

/* Lesson pages */
body.learn-premium-lesson .article-wrap,body.learn-premium-story .article-wrap{max-width:1050px}
body.learn-premium-lesson .article-wrap>h1,body.learn-premium-story .article-wrap>h1{margin:.3rem 0 .6rem;padding-top:.25rem;font-size:clamp(2.75rem,5vw,4.4rem);line-height:.98;letter-spacing:-.05em}
body.learn-premium-lesson .article-wrap>.article-text,body.learn-premium-story .article-wrap>.article-text{font-size:1.08rem;line-height:1.75;max-width:760px}
body.learn-premium-lesson .lesson-preview{margin-top:1.2rem;padding:1.3rem 1.4rem;border-radius:18px;background:linear-gradient(180deg,#0b2238,#08192b);border:1px solid rgba(83,128,168,.34);box-shadow:0 14px 34px rgba(0,0,0,.16)}
body.learn-premium-lesson .lesson-preview h2{font-size:1.35rem}
body.learn-premium-lesson .lesson-vocab-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem .8rem;padding-left:0;list-style:none}
body.learn-premium-lesson .lesson-vocab-list li{padding:.72rem .8rem;border-radius:12px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.07);color:rgba(235,243,251,.78)}
body.learn-premium-lesson .lesson-vocab-list strong{color:#fff}
body.learn-premium-lesson .lesson-vocab-en{color:rgba(235,243,251,.5)}
body.learn-premium-lesson .lesson-mission-bridge{margin-top:1rem;border-radius:18px;background:linear-gradient(135deg,rgba(220,38,38,.15),#091b2e);border-color:rgba(248,113,113,.34);color:#fff}
body.learn-premium-lesson .lesson-mission-bridge p{color:rgba(235,243,251,.72)}
body.learn-premium-lesson .immersion-note{margin-top:1rem;border-radius:18px;overflow:hidden;background:#091b2e;border:1px solid rgba(83,128,168,.34);color:#fff}
body.learn-premium-lesson .immersion-note p{color:rgba(235,243,251,.72)}

/* Stories */
body.learn-premium-story #story-page{margin-top:1rem}
body.learn-premium-story .story-line,body.learn-premium-story .story-card,body.learn-premium-story .story-block{background:#091b2e!important;border-color:rgba(83,128,168,.34)!important;color:#fff!important}

@media(max-width:1050px){
 body.learn-premium-hub .site-sections-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 body.learn-premium-hub .learn-theme-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 body.learn-premium-hub .page-intro-flex{grid-template-columns:1fr}
 body.learn-premium-hub .page-mascot-inset{max-height:240px;justify-self:end}
}
@media(max-width:720px){
 body.learn-premium-page main>.section-inner{width:min(100% - 1rem,1320px)}
 body.learn-premium-hub .site-sections-grid,body.learn-premium-hub .learn-theme-grid{grid-template-columns:1fr}
 body.learn-premium-hub .page-intro-flex{min-height:auto;padding:1.25rem;border-radius:18px}
 body.learn-premium-hub .page-intro-text h1{font-size:clamp(2.7rem,12vw,3.6rem)}
 body.learn-premium-missions .mission-hero{min-height:0;border-radius:18px;padding:1.3rem;flex-direction:column;align-items:flex-start}
 body.learn-premium-missions .mission-hero-badge{width:100%}
 body.learn-premium-lesson .lesson-vocab-list{grid-template-columns:1fr}
 body.learn-premium-lesson .article-wrap>h1,body.learn-premium-story .article-wrap>h1{font-size:clamp(2.35rem,10vw,3.3rem)}
}

/* ---- Stable secondary premium pass V34 ----
   Visual-only: no header/nav rules and no layout/grid overrides. */
body.stable-premium{background:linear-gradient(180deg,#04111d 0%,#071726 30%,#081a2b 100%);color:#eef4ff}
body.stable-premium main>.section-inner,
body.stable-premium main>.article-wrap{padding-top:1rem}
body.stable-premium .breadcrumb{color:rgba(235,243,251,.6)}
body.stable-premium .breadcrumb a{color:#dce8f5}
body.stable-premium .page-intro-flex{border-radius:22px;background:linear-gradient(135deg,#0c243b,#08192b);border:1px solid rgba(87,132,173,.34);box-shadow:0 18px 46px rgba(0,0,0,.18);padding:clamp(1.25rem,3vw,2rem)}
body.stable-premium .page-intro-text h1{color:#fff}
body.stable-premium .page-intro-text .section-sub{color:rgba(235,243,251,.76)}
body.stable-premium .page-mascot-inset{filter:drop-shadow(0 18px 32px rgba(0,0,0,.28))}

/* Account: preserve original DOM/layout, skin only */
body.stable-account .progress-box,
body.stable-account .account-box{background:linear-gradient(180deg,#0b2136,#08192b);border-color:rgba(83,128,168,.34);color:#eef4ff;box-shadow:0 12px 30px rgba(0,0,0,.14)}
body.stable-account .account-box h2,
body.stable-account .account-box h3{color:#fff}
body.stable-account .account-note,
body.stable-account .account-motivate{color:rgba(235,243,251,.7)}
body.stable-account .account-stat,
body.stable-account .account-collection-item,
body.stable-account .badge-card{background:rgba(255,255,255,.035);border-color:rgba(255,255,255,.08)}
body.stable-account .account-stat strong{color:#fff}
body.stable-account textarea{background:#06111e;color:#eef4ff;border-color:rgba(117,157,194,.35)}
body.stable-account .daily-challenge{background:linear-gradient(135deg,rgba(239,68,68,.12),rgba(12,33,54,.96));border-color:rgba(239,68,68,.22)}

/* History hub: keep the existing timeline geometry */
body.stable-history .history-item{background:linear-gradient(180deg,#0b2136,#08192b);border-color:rgba(83,128,168,.34);box-shadow:0 12px 30px rgba(0,0,0,.14)}
body.stable-history .history-title{color:#fff}
body.stable-history .history-text{color:rgba(235,243,251,.72)}
body.stable-history .history-year{color:#ff9d9d}
body.stable-history .history-link:hover .history-title{color:#ff9d9d}

/* History article: preserve article flow */
body.stable-history-article #history-article,
body.stable-history-article .related-box{background:linear-gradient(180deg,#0b2136,#08192b);border-color:rgba(83,128,168,.32);box-shadow:0 12px 30px rgba(0,0,0,.14)}
body.stable-history-article .article-title{color:#fff}
body.stable-history-article .article-text{color:rgba(236,243,250,.8)}
body.stable-history-article .article-year{color:#ff9d9d}
body.stable-history-article .related-link,
body.stable-history-article .history-pager a{color:#fff}
body.stable-history-article .history-photo{border-radius:14px;border:1px solid rgba(255,255,255,.08)}

/* Video: never override video-grid columns */
body.stable-video .video-filter-row{background:#08192b;border-color:rgba(83,128,168,.3);border-radius:16px}
body.stable-video .video-filter-btn{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.08);color:#dce8f5}
body.stable-video .video-filter-btn.is-active{background:#ef4444;border-color:#ef4444;color:#fff}
body.stable-video .video-card{background:linear-gradient(180deg,#0b2136,#08192b);border-color:rgba(83,128,168,.34);color:#eef4ff;box-shadow:0 12px 30px rgba(0,0,0,.14)}
body.stable-video .video-title{color:#fff}
body.stable-video .video-desc,
body.stable-video .video-meta{color:rgba(235,243,251,.72)}
body.stable-video .video-category,
body.stable-video .video-level{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.08);color:#dce8f5}
body.stable-video .video-yt-link{color:#ff9d9d}

/* News: preserve original list/column layout */
body.stable-news .news-card,
body.stable-news .news-status{background:linear-gradient(180deg,#0b2136,#08192b);border-color:rgba(83,128,168,.34);color:#eef4ff;box-shadow:0 12px 30px rgba(0,0,0,.14)}
body.stable-news .news-headline a{color:#fff}
body.stable-news .news-desc{color:rgba(235,243,251,.72)}
body.stable-news .news-date,
body.stable-news .news-link{color:#ff9d9d}

/* About: preserve original author-box layout */
body.stable-about .author-box{background:linear-gradient(135deg,#0c243b,#08192b);border-color:rgba(87,132,173,.34);box-shadow:0 16px 42px rgba(0,0,0,.18)}
body.stable-about .author-copy h1,
body.stable-about .author-copy h2{color:#fff}
body.stable-about .author-copy p{color:rgba(235,243,251,.77)}
body.stable-about .author-avatar-img{filter:drop-shadow(0 18px 32px rgba(0,0,0,.28))}
body.stable-about .bmc-note{color:rgba(235,243,251,.6)}

@media(max-width:720px){
  body.stable-premium main>.section-inner,
  body.stable-premium main>.article-wrap{padding-top:.65rem}
  body.stable-premium .page-intro-flex{padding:1rem;border-radius:16px}
}

/* ---- Secondary pages premium alignment V35 ---- */
body.secondary-premium-page{background:linear-gradient(180deg,#051321 0%,#071827 42%,#081b2d 100%);color:#edf4fb}
body.secondary-premium-page main>.section-inner,
body.secondary-premium-page main>.article-wrap{width:min(100% - 2rem,1180px);margin-inline:auto;padding-top:1rem;padding-bottom:2rem}
body.secondary-premium-page .breadcrumb{color:rgba(236,243,250,.62)}
body.secondary-premium-page .breadcrumb a{color:#fff}
body.secondary-premium-page h1,
body.secondary-premium-page h2,
body.secondary-premium-page h3{color:#fff}
body.secondary-premium-page .section-sub,
body.secondary-premium-page .account-note,
body.secondary-premium-page .article-text,
body.secondary-premium-page main p,
body.secondary-premium-page main li{color:rgba(236,243,250,.8)}

/* resources */
body.resources-premium-page .resources-gate-card,
body.resources-premium-page .resources-toolbar,
body.resources-premium-page .resource-card{background:linear-gradient(180deg,#0b2136,#08192b);border:1px solid rgba(83,128,168,.36);box-shadow:0 16px 38px rgba(0,0,0,.2)}
body.resources-premium-page .resources-gate-card{border-radius:24px;padding:clamp(1.4rem,4vw,2.4rem)}
body.resources-premium-page .resources-gate-icon{display:grid;place-items:center;width:64px;height:64px;border-radius:18px;background:rgba(239,68,68,.12);border:1px solid rgba(248,113,113,.22);font-size:1.8rem;margin-bottom:1rem}
body.resources-premium-page .resources-gate-form input,
body.resources-premium-page .resources-toolbar input,
body.resources-premium-page .resources-toolbar select{background:#071727;color:#fff;border:1px solid rgba(116,157,194,.35);border-radius:12px}
body.resources-premium-page .resources-gate-form input::placeholder,
body.resources-premium-page .resources-toolbar input::placeholder{color:rgba(235,243,251,.5)}
body.resources-premium-page .resources-library-title{font-size:clamp(2rem,4vw,3rem);letter-spacing:-.04em}
body.resources-premium-page .resources-grid{gap:1rem}

/* guestbook */
body.wall-premium-page .wall-hero{gap:1.2rem}
body.wall-premium-page .wall-card,
body.wall-premium-page .wall-side,
body.wall-premium-page .wall-list>*,
body.wall-premium-page .wall-coffee{background:linear-gradient(180deg,#0b2136,#08192b);border:1px solid rgba(83,128,168,.34);box-shadow:0 14px 34px rgba(0,0,0,.17);border-radius:18px}
body.wall-premium-page .wall-card{padding:1.25rem}
body.wall-premium-page .wall-field input,
body.wall-premium-page .wall-field textarea{background:#071727;color:#fff;border:1px solid rgba(116,157,194,.34);border-radius:12px}
body.wall-premium-page .wall-field input::placeholder,
body.wall-premium-page .wall-field textarea::placeholder{color:rgba(235,243,251,.48)}
body.wall-premium-page .wall-chip{background:rgba(255,255,255,.045);border-color:rgba(255,255,255,.1);color:#fff}
body.wall-premium-page .wall-chip[aria-pressed="true"]{background:rgba(239,68,68,.14);border-color:rgba(248,113,113,.34)}
body.wall-premium-page .wall-bubble{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);color:#fff}
body.wall-premium-page .wall-list-title{margin-top:1.5rem;padding-bottom:.55rem;border-bottom:1px solid rgba(255,255,255,.08)}
body.wall-premium-page .bmc-note{color:rgba(236,243,250,.68)}

/* legal + privacy */
body.legal-premium-page main>.article-wrap{max-width:900px!important}
body.legal-premium-page main>.article-wrap{background:linear-gradient(180deg,#0b2136,#08192b);border:1px solid rgba(83,128,168,.32);border-radius:22px;padding:clamp(1.25rem,4vw,2.2rem);box-shadow:0 18px 42px rgba(0,0,0,.18);margin-top:1.2rem;margin-bottom:2rem}
body.legal-premium-page main>.article-wrap h1{font-size:clamp(2.4rem,5vw,4rem);letter-spacing:-.05em;line-height:1;margin-bottom:1.2rem}
body.legal-premium-page main>.article-wrap h2{font-size:1.3rem;margin-top:1.7rem;padding-top:.9rem;border-top:1px solid rgba(255,255,255,.08)}
body.legal-premium-page main>.article-wrap a{color:#fecaca}
body.legal-premium-page main>.article-wrap strong{color:#fff}
body.legal-premium-page main>.article-wrap ul{padding-left:1.2rem}

@media(max-width:720px){
 body.secondary-premium-page main>.section-inner,
 body.secondary-premium-page main>.article-wrap{width:min(100% - 1rem,1180px);padding-top:.65rem}
 body.resources-premium-page .resources-gate-card,
 body.wall-premium-page .wall-card,
 body.legal-premium-page main>.article-wrap{border-radius:16px;padding:1rem}
}


/* ---- Save-progress helper bubble V36 ---- */
.header-actions{position:relative}
.save-hint-bubble{
  position:absolute;
  right:0;
  top:calc(100% + .55rem);
  z-index:35;
  display:flex;
  align-items:center;
  gap:.45rem;
  max-width:230px;
  padding:.58rem .85rem;
  border-radius:14px;
  background:linear-gradient(135deg,#ef4444,#dc2626);
  color:#fff;
  font-weight:800;
  font-size:.82rem;
  line-height:1.2;
  box-shadow:0 16px 36px rgba(127,29,29,.35);
  border:1px solid rgba(255,255,255,.18);
  cursor:pointer;
  text-decoration:none;
  animation:saveHintFloat 2.2s ease-in-out infinite;
}
.save-hint-bubble::before{
  content:"";
  position:absolute;
  top:-8px;
  right:34px;
  width:14px;
  height:14px;
  background:inherit;
  border-left:1px solid rgba(255,255,255,.18);
  border-top:1px solid rgba(255,255,255,.18);
  transform:rotate(45deg);
}
.save-hint-bubble strong{display:block;font-weight:800}
.save-hint-bubble small{display:block;font-weight:600;opacity:.92}
.save-hint-bubble-icon{font-size:1rem;line-height:1}
@keyframes saveHintFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
@media (max-width:960px){
  .save-hint-bubble{top:auto;bottom:calc(100% + .55rem);right:0;max-width:195px;padding:.5rem .7rem;font-size:.75rem}
  .save-hint-bubble::before{top:auto;bottom:-8px;right:24px;transform:rotate(225deg)}
}
@media (max-width:640px){
  .save-hint-bubble{right:.1rem;max-width:170px;font-size:.72rem;line-height:1.15}
}


/* ---- Save hint compact header overlay V37 ---- */
.save-hint-bubble{
  position:fixed;
  top:74px;
  right:14px;
  z-index:120;
  display:inline-flex;
  align-items:flex-start;
  gap:.4rem;
  width:min(150px,calc(100vw - 20px));
  max-width:150px;
  padding:.48rem .62rem;
  border-radius:14px;
  background:linear-gradient(135deg,#ef4444,#dc2626);
  color:#fff;
  font-weight:800;
  font-size:.72rem;
  line-height:1.12;
  box-shadow:0 14px 28px rgba(127,29,29,.32);
  border:1px solid rgba(255,255,255,.18);
  cursor:pointer;
  text-decoration:none;
  animation:saveHintFloat 2.2s ease-in-out infinite;
}
.save-hint-bubble::before{
  content:"";
  position:absolute;
  top:-7px;
  right:22px;
  width:12px;
  height:12px;
  background:inherit;
  border-left:1px solid rgba(255,255,255,.18);
  border-top:1px solid rgba(255,255,255,.18);
  transform:rotate(45deg);
}
.save-hint-bubble strong{display:block;font-size:.82rem;line-height:1.05;font-weight:800;margin-bottom:.1rem}
.save-hint-bubble small{display:block;font-size:.66rem;line-height:1.1;font-weight:700;opacity:.95}
.save-hint-bubble-icon{font-size:.9rem;line-height:1;margin-top:.1rem;flex:0 0 auto}
@media (max-width:960px){
  .save-hint-bubble{top:72px;right:10px;width:138px;max-width:138px;padding:.44rem .56rem;font-size:.68rem}
  .save-hint-bubble strong{font-size:.76rem}
  .save-hint-bubble small{font-size:.62rem}
}
@media (max-width:640px){
  .save-hint-bubble{top:120px;right:10px;width:128px;max-width:128px;padding:.42rem .52rem}
}


/* ---- Progress save notice V38 ---- */
.save-hint-bubble{display:none!important}
.progress-save-notice{
  position:fixed;
  right:18px;
  bottom:18px;
  z-index:110;
  width:min(360px,calc(100vw - 28px));
  padding:1rem 1rem .95rem;
  border-radius:18px;
  background:linear-gradient(180deg,#0d2238,#091827);
  border:1px solid rgba(94,139,179,.42);
  box-shadow:0 18px 42px rgba(0,0,0,.34);
  color:#fff;
}
.progress-save-notice strong{display:block;font-size:1rem;line-height:1.25;margin:0 1.8rem .3rem 0}
.progress-save-notice p{margin:0;color:rgba(237,244,251,.78);font-size:.88rem;line-height:1.5}
.progress-save-notice-actions{display:flex;align-items:center;gap:.55rem;margin-top:.8rem;flex-wrap:wrap}
.progress-save-notice .btn{padding:.55rem .8rem;font-size:.82rem}
.progress-save-notice-close{position:absolute;top:.6rem;right:.65rem;border:0;background:transparent;color:rgba(255,255,255,.62);font-size:1rem;cursor:pointer;padding:.25rem}
.progress-save-notice-close:hover{color:#fff}
@media(max-width:640px){.progress-save-notice{right:10px;bottom:10px;width:calc(100vw - 20px);border-radius:15px}}


/* ---- Header actions realignment V39 ---- */
.header-inner{
  padding-right:1.5rem;
}
.header-actions{
  position:static;
  top:auto;
  right:auto;
  z-index:auto;
  display:flex;
  flex-direction:row;
  align-items:center;
  gap:.5rem;
  margin-left:auto;
  order:2;
}
@media (max-width:620px){
  .header-inner{padding-right:.6rem;}
  .header-actions{gap:.35rem;}
}


/* ===== FRANCE PREMIUM V41 ===== */
body.home-premium-page,body.discover-premium-page{background:#061424;color:#f5f8fc}
body.home-premium-page main,body.discover-premium-page main{background:#061424}
body.home-premium-page .section-inner,body.discover-premium-page .section-inner{max-width:1320px}
.home-vision-hero{position:relative;overflow:hidden;isolation:isolate}.home-vision-hero-bg{position:absolute;inset:0;z-index:-2}.home-vision-hero-bg img{width:100%;height:100%;object-fit:cover}.home-vision-hero:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(4,12,22,.96),rgba(4,12,22,.72) 55%,rgba(4,12,22,.35)),linear-gradient(180deg,transparent,rgba(4,12,22,.74))}.home-vision-hero-inner{display:grid;grid-template-columns:1.08fr .92fr;gap:2rem;align-items:center;min-height:650px;padding:3rem 0 1.5rem}.home-vision-kicker,.culture-kicker{color:#fca5a5;text-transform:uppercase;letter-spacing:.14em;font-size:.78rem;font-weight:800}.home-vision-copy h1{margin:0;color:#fff;font-size:clamp(3rem,6vw,5.6rem);line-height:.95;letter-spacing:-.055em}.home-vision-copy h1 span{display:block;color:#ef4444}.home-vision-sub{max-width:62ch;font-size:1.08rem;line-height:1.75;color:rgba(255,255,255,.82)}.home-vision-actions{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:1.5rem}.home-vision-btn-secondary{border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.08);color:#fff}.home-vision-pills{display:flex;gap:.55rem;flex-wrap:wrap;list-style:none;padding:0;margin:1.2rem 0 0}.home-vision-pills li{padding:.55rem .75rem;border-radius:999px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);font-size:.84rem}.home-vision-side{position:relative;min-height:430px;display:flex;align-items:flex-end;justify-content:center}.home-vision-mascot{width:min(430px,88%);max-height:470px;object-fit:contain;filter:drop-shadow(0 24px 48px rgba(0,0,0,.45))}.home-vision-glass{position:absolute;right:0;bottom:.2rem;width:min(290px,76%);display:grid;gap:.5rem;padding:1rem 1.1rem;border-radius:20px;background:rgba(5,14,26,.74);border:1px solid rgba(255,255,255,.15);backdrop-filter:blur(16px)}.home-vision-glass span{font-size:.7rem;color:#fecaca;font-weight:800;letter-spacing:.11em}.home-vision-glass strong{color:#fff}.france-home-sections{padding-top:2rem}.home-vision-section{margin:2.5rem 0 4rem}.home-vision-heading{max-width:800px;margin-bottom:1.2rem}.home-vision-heading h2,.home-vision-cta-inner h2{font-size:clamp(2rem,4vw,3.2rem);margin:.25rem 0 .55rem;letter-spacing:-.04em}.home-vision-heading p{color:#b9c7d8;line-height:1.75}.home-vision-door-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.home-vision-door{display:grid;overflow:hidden;border-radius:24px;text-decoration:none;color:#fff;border:1px solid rgba(112,153,190,.25);background:#0b2035}.home-vision-door-learn{grid-template-columns:1fr .8fr;align-items:end;padding:1.5rem}.home-vision-door-learn img{width:100%;max-height:270px;object-fit:contain}.home-vision-door-discover{grid-template-rows:190px auto}.home-vision-door-discover>img{width:100%;height:100%;object-fit:cover}.home-vision-door-copy h3{font-size:1.75rem;margin:.35rem 0}.home-vision-door-copy p{color:#c3cfdd;line-height:1.65}.home-vision-story-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.home-vision-story{position:relative;min-height:390px;overflow:hidden;border-radius:24px;color:#fff;text-decoration:none;background:#091a2b;border:1px solid rgba(112,153,190,.25)}.home-vision-story>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.home-vision-story:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 20%,rgba(4,12,22,.94) 100%)}.home-vision-story>div{position:absolute;z-index:2;left:0;right:0;bottom:0;padding:1.25rem}.home-vision-story h3{color:#fff;font-size:1.55rem;margin:.3rem 0}.home-vision-story p{color:rgba(255,255,255,.8);line-height:1.55}.france-history-teaser{padding:1.5rem;border-radius:24px;background:#0a1d31;border:1px solid rgba(112,153,190,.25)}.home-vision-cta-band{position:relative;overflow:hidden;isolation:isolate}.home-vision-cta-bg{position:absolute;inset:0;z-index:-2}.home-vision-cta-bg img{width:100%;height:100%;object-fit:cover}.home-vision-cta-band:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(4,12,22,.92),rgba(4,12,22,.56),rgba(4,12,22,.85))}.home-vision-cta-inner{display:grid;grid-template-columns:1.1fr .8fr;gap:2rem;align-items:center;padding:2.6rem 0}.home-vision-cta-inner p{color:rgba(255,255,255,.82);line-height:1.7}.home-vision-cta-inner ul{list-style:none;display:grid;gap:.5rem}.home-vision-cta-inner li{padding:.7rem .9rem;border-radius:15px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.1)}
body.discover-premium-page main>.section-inner{padding-top:1rem}.page-intro-flex{display:grid;grid-template-columns:1fr 280px;gap:1.5rem;align-items:end;padding:1.8rem;margin-bottom:1rem;border-radius:24px;background:linear-gradient(135deg,#0d2943,#081927);border:1px solid rgba(112,153,190,.3)}.page-intro-text h1{font-size:clamp(2.8rem,5vw,4.8rem);margin:.2rem 0}.page-intro-text p{color:#b9c7d8;line-height:1.7}.page-mascot-inset{width:100%;max-height:220px;object-fit:contain}.discover-portals{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin:1rem 0 1.7rem}.discover-portals>a{display:flex;flex-direction:column;overflow:hidden;border-radius:18px;background:#0a2035;border:1px solid rgba(112,153,190,.28);color:#fff;text-decoration:none}.discover-portals>a>img{width:100%;height:185px;object-fit:cover}.discover-portals>a>div{display:flex;flex-direction:column;flex:1;padding:1rem}.discover-portal-kicker{font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:#b7c8da;font-weight:800}.discover-portals h2{font-size:1.45rem;margin:.3rem 0}.discover-portals p{color:#bfccda;line-height:1.6}.discover-portal-link{margin-top:auto;padding-top:.8rem;font-weight:800}.discover-city-heading{display:flex;justify-content:space-between;align-items:end;gap:1rem;margin:1.5rem 0 .8rem;border-bottom:1px solid rgba(255,255,255,.08);padding-bottom:.7rem}.discover-city-heading h2{font-size:2.2rem;margin:.1rem 0}.france-editorial{max-width:1180px!important}.france-editorial-hero{position:relative;min-height:430px;overflow:hidden;border-radius:26px;border:1px solid rgba(112,153,190,.3)}.france-editorial-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.france-editorial-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(4,12,22,.2),rgba(4,12,22,.94))}.france-editorial-hero>div{position:absolute;z-index:2;left:0;right:0;bottom:0;padding:2rem}.france-editorial-hero h1{font-size:clamp(2.7rem,5vw,4.6rem);margin:.2rem 0}.france-editorial-hero p{max-width:760px;color:#d1dbe6;line-height:1.7}.france-editorial-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:1rem 0}.france-editorial-card{padding:1.25rem;border-radius:18px;background:#0a2035;border:1px solid rgba(112,153,190,.28)}.france-editorial-card h2{margin:.1rem 0 .5rem}.france-editorial-card p{color:#bfccda;line-height:1.7}.france-editorial-next{display:flex;gap:.7rem;flex-wrap:wrap;margin-top:1.2rem}
@media(max-width:1000px){.home-vision-hero-inner,.home-vision-cta-inner{grid-template-columns:1fr}.home-vision-side{min-height:320px}.home-vision-door-grid{grid-template-columns:1fr}.discover-portals{grid-template-columns:repeat(2,1fr)}.page-intro-flex{grid-template-columns:1fr}.page-mascot-inset{display:none}.france-editorial-grid{grid-template-columns:1fr 1fr}}
@media(max-width:680px){.home-vision-copy h1{font-size:clamp(2.7rem,13vw,4.2rem)}.home-vision-story-grid,.france-editorial-grid,.discover-portals{grid-template-columns:1fr}.home-vision-door-learn{grid-template-columns:1fr}.home-vision-glass{position:relative;right:auto;bottom:auto;width:100%;margin-top:.75rem}.discover-city-heading{align-items:flex-start;flex-direction:column}.france-editorial-hero{min-height:380px}.france-editorial-hero>div{padding:1.2rem}}


/* ===== FRENCH LEARNING PREMIUM SYNC V42 ===== */
body.learn-premium-page{background:#061424;color:#f5f8fc}
body.learn-premium-page main{background:#061424}
body.learn-premium-hub .page-intro-flex{background:linear-gradient(90deg,rgba(5,16,29,.94),rgba(5,16,29,.67)),url('../assets/images/villes/paris-louvre-nuit.webp') center/cover no-repeat}
body.learn-premium-page .section-inner{max-width:1320px}

/* French missions V43 */
body.learn-premium-missions .mission-hero{background:linear-gradient(100deg,rgba(5,16,29,.96),rgba(5,16,29,.62)),url('../assets/images/villes/paris-louvre-nuit.webp') center/cover no-repeat}
body.learn-premium-missions .mission-card{backdrop-filter:blur(4px)}


/* ---- France editorial discovery V44 ---- */
body.france-editorial-page main{background:linear-gradient(180deg,#071522,#0a1a2a 45%,#071522)}
.france-editorial-shell{max-width:1240px}
.france-editorial-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2rem;align-items:center;padding:clamp(1.6rem,4vw,3rem);margin:1rem 0 1.25rem;border-radius:26px;background:linear-gradient(135deg,#10263d,#081827);border:1px solid rgba(92,136,176,.34);box-shadow:0 20px 48px rgba(0,0,0,.2)}
.france-editorial-hero h1{font-size:clamp(2.5rem,5vw,4.4rem);line-height:.98;letter-spacing:-.045em;margin:.25rem 0 .8rem}
.france-editorial-hero p:not(.culture-kicker){max-width:760px;color:rgba(237,244,251,.8);font-size:1.05rem;line-height:1.75}
.france-editorial-hero-icon{font-size:clamp(4rem,9vw,7rem);filter:drop-shadow(0 18px 28px rgba(0,0,0,.3))}
.france-editorial-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.france-editorial-card{display:flex;flex-direction:column;overflow:hidden;border-radius:18px;background:linear-gradient(180deg,#0c2238,#08192b);border:1px solid rgba(83,128,168,.36);box-shadow:0 14px 34px rgba(0,0,0,.18);color:inherit;text-decoration:none;transition:transform .18s ease,border-color .18s ease}
.france-editorial-card:hover{transform:translateY(-3px);border-color:rgba(248,113,113,.45)}
.france-editorial-card img{width:100%;height:190px;object-fit:cover;background:#0c2238}
.france-editorial-card>div{display:flex;flex-direction:column;flex:1;padding:1.2rem}
.france-editorial-card h2{margin:0 0 .45rem;font-size:1.32rem;color:#fff}
.france-editorial-card p{margin:0;color:rgba(235,243,251,.76);line-height:1.65}
.france-editorial-link{margin-top:auto;padding-top:1rem;font-weight:800;color:#fff}
.france-city-spotlight{margin:2rem 0 1.25rem;padding-top:1.35rem;border-top:1px solid rgba(255,255,255,.08)}
.france-city-spotlight-head{display:flex;justify-content:space-between;align-items:end;gap:1rem;margin-bottom:1rem}
.france-city-spotlight-head h2{margin:.15rem 0 .25rem;font-size:clamp(1.8rem,3vw,2.5rem)}
.france-city-spotlight-head p{margin:0;color:rgba(235,243,251,.72)}
.france-city-spotlight-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.france-city-spotlight-grid>a{display:grid;grid-template-columns:120px 1fr;overflow:hidden;border-radius:16px;background:#091b2e;border:1px solid rgba(83,128,168,.34);color:inherit;text-decoration:none}
.france-city-spotlight-grid img{width:120px;height:120px;object-fit:cover}
.france-city-spotlight-grid div{padding:1rem}
.france-city-spotlight-grid h3{margin:0 0 .35rem;color:#fff}
.france-city-spotlight-grid p{margin:0;color:rgba(235,243,251,.72);font-size:.9rem;line-height:1.5}
@media(max-width:900px){.france-editorial-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.france-city-spotlight-grid{grid-template-columns:1fr}.france-city-spotlight-head{align-items:flex-start;flex-direction:column}}
@media(max-width:620px){.france-editorial-hero{grid-template-columns:1fr;border-radius:18px;padding:1.25rem}.france-editorial-hero-icon{display:none}.france-editorial-grid{grid-template-columns:1fr}.france-editorial-card img{height:210px}.france-city-spotlight-grid>a{grid-template-columns:105px 1fr}.france-city-spotlight-grid img{width:105px;height:110px}}


/* ---- French city notebooks V45 ---- */
body.discover-premium-city .city-notebook-grid .city-word strong{color:#fff;font-size:1.08rem}
body.discover-premium-city .city-notebook-actions .btn{border-color:rgba(239,68,68,.32)}
body.discover-premium-city .city-notebook-actions .btn:not(.btn-ghost){background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff}


/* ---- French account UX V46 ---- */
body.fr-account-premium main>.section-inner{max-width:1180px}
body.fr-account-premium .page-intro-flex{margin-bottom:1rem}
.account-quick-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;margin:1rem 0 1.1rem}
.account-quick-card{display:flex;align-items:flex-start;gap:.8rem;padding:1rem 1.05rem;border-radius:16px;background:linear-gradient(180deg,#0b2136,#08192b);border:1px solid rgba(83,128,168,.34);color:#fff;text-decoration:none;box-shadow:0 12px 28px rgba(0,0,0,.14);transition:transform .18s ease,border-color .18s ease}
.account-quick-card:hover{transform:translateY(-2px);border-color:rgba(239,68,68,.45)}
.account-quick-card>span{font-size:1.35rem;line-height:1.1}
.account-quick-card div{display:flex;flex-direction:column;gap:.25rem}
.account-quick-card strong{font-size:.96rem}
.account-quick-card small{font-size:.78rem;line-height:1.4;color:rgba(236,243,250,.7)}
.account-quick-card-save{border-color:rgba(20,184,166,.38)}
body.fr-account-premium #account-panel{display:grid;gap:1rem}
body.fr-account-premium .account-box{border-radius:18px;background:linear-gradient(180deg,#0b2136,#08192b);border:1px solid rgba(83,128,168,.32);box-shadow:0 12px 30px rgba(0,0,0,.14)}
body.fr-account-premium .account-welcome{margin-bottom:0}
body.fr-account-premium .account-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem}
body.fr-account-premium .account-stat{background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:.85rem}
body.fr-account-premium .account-save-card{margin:1rem 0;padding:1.25rem 1.3rem;border-radius:18px;background:linear-gradient(135deg,rgba(20,184,166,.12),#08192b 60%);border:1px solid rgba(20,184,166,.32);box-shadow:0 12px 30px rgba(0,0,0,.14)}
body.fr-account-premium .account-save-card h3{margin-top:0;color:#fff}
body.fr-account-premium .account-save-card textarea{min-height:105px;width:100%;margin:.65rem 0;border-radius:12px}
body.fr-account-premium .account-collapsible{margin-top:.8rem;opacity:.9}
body.fr-account-premium .account-collapsible summary{cursor:pointer}
@media(max-width:760px){.account-quick-actions{grid-template-columns:1fr}body.fr-account-premium .account-stats{grid-template-columns:1fr}}


/* --- France music & travel enrichments V48 --- */
.music-hero-copy .btn-row{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1rem}
.music-hero-copy .btn-row .btn{margin:0}
.music-artist-link{display:inline-flex;align-items:center;gap:.35rem}
.music-mini-links{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1rem}
.music-mini-links a{font-weight:700}
.france-inline-note{margin-top:.85rem;font-size:.96rem;color:var(--muted-text,#94a3b8)}
.video-link-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:1.2rem}
.video-link-card{padding:1.25rem;border:1px solid var(--border-color,#ddd);border-radius:20px;background:var(--card-bg,rgba(255,255,255,.04));display:flex;flex-direction:column;gap:.7rem}
.video-link-card h3{margin:0}.video-link-card p{margin:0;line-height:1.6}
@media(max-width:900px){.video-link-grid{grid-template-columns:1fr}}


/* ---- Ultra premium visual pass V52: Discover France ---- */
.discover-premium-hub .discover-portal,
.france-editorial-card,
.music-era,
.music-region,
.music-artist,
.music-festival,
.music-learning-card,
.video-link-card,
.video-card,
.culture-focus-card,
.culture-card,
.theme-card {
  overflow:hidden;
}
.discover-premium-hub .discover-portal img,
.france-editorial-card img,
.music-era-media img,
.music-region img,
.music-artist-photo,
.music-festival img,
.culture-focus-card img,
.culture-card img,
.theme-card img {
  width:100%;
  object-fit:cover;
  transform:scale(1.01);
  transition:transform .55s ease, filter .45s ease;
  filter:saturate(1.02) contrast(1.02);
}
.discover-premium-hub .discover-portal:hover img,
.france-editorial-card:hover img,
.music-era:hover img,
.music-region:hover img,
.music-artist:hover img,
.music-festival:hover img,
.culture-focus-card:hover img,
.culture-card:hover img,
.theme-card:hover img {
  transform:scale(1.045);
  filter:saturate(1.06) contrast(1.04);
}
.discover-premium-hub .discover-portal img,
.france-editorial-card img,
.music-festival img,
.music-region img,
.culture-focus-card img,
.culture-card img,
.theme-card img {
  aspect-ratio: 4 / 3;
}
.music-era-media img,
.music-artist-photo {
  aspect-ratio: 5 / 4;
}
.discover-premium-hub .discover-portal,
.france-editorial-card,
.music-era,
.music-region,
.music-artist,
.music-festival,
.music-learning-card,
.video-link-card,
.culture-focus-card,
.culture-card,
.theme-card {
  box-shadow: 0 18px 40px rgba(15, 23, 42, .12);
  border: 1px solid rgba(148,163,184,.14);
}
.music-hero > img,
.france-editorial-hero > img {
  filter: saturate(1.08) contrast(1.04);
}
.music-video .video-embed,
.video-card .video-cover,
.video-card iframe {
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 16px 34px rgba(15,23,42,.16);
}
@media (min-width: 1024px){
  .music-region-grid,
  .music-festival-grid,
  .video-link-grid {
    align-items: stretch;
  }
}


/* ---- Ultra premium image audit V53 ---- */
.video-library-hero-card{
  position:relative;
  flex:0 1 420px;
  min-height:235px;
  border-radius:26px;
  overflow:hidden;
  border:1px solid rgba(148,163,184,.16);
  box-shadow:0 24px 54px rgba(2,6,23,.22);
  background:#07131f;
}
.video-library-hero-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(1.04) contrast(1.05)}
.video-library-hero-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(2,6,23,.08) 15%,rgba(2,6,23,.9) 100%)}
.video-library-hero-copy{position:absolute;z-index:2;left:1.2rem;right:1.2rem;bottom:1.15rem;color:#fff;display:grid;gap:.35rem}
.video-library-hero-copy strong{font-family:Montserrat,sans-serif;font-size:1.05rem}
.video-library-hero-copy span{font-size:.88rem;line-height:1.45;color:rgba(255,255,255,.82)}
.music-region img{aspect-ratio:16/10;object-fit:cover}
.music-era-media img{object-position:center 28%}
.music-festival img{aspect-ratio:4/3;object-fit:cover}
.discover-portal img{object-position:center center}
@media(max-width:820px){.video-library-hero-card{flex-basis:100%;width:100%;min-height:210px}}


/* === Passeport pédagogique V62 === */
.pedagogy-card{margin:1.35rem 0 1.7rem;padding:1.25rem 1.35rem;border:1px solid rgba(239,68,68,.28);border-radius:22px;background:linear-gradient(145deg,rgba(15,23,42,.94),rgba(19,37,55,.9));box-shadow:0 20px 48px rgba(2,6,23,.18)}
.pedagogy-card-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.pedagogy-eyebrow{font:800 .76rem/1.2 Montserrat,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:#f87171}.pedagogy-level{display:inline-flex;padding:.42rem .72rem;border-radius:999px;background:rgba(239,68,68,.13);border:1px solid rgba(239,68,68,.28);font-weight:800;color:#fff}.pedagogy-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.pedagogy-grid>div{padding:.9rem 1rem;border-radius:16px;background:rgba(255,255,255,.045);border:1px solid rgba(148,163,184,.12)}.pedagogy-grid small{display:block;margin-bottom:.35rem;color:#94a3b8;font-weight:700}.pedagogy-grid strong{color:#f8fafc;font-family:Montserrat,sans-serif}.pedagogy-grid p{margin:0;color:#cbd5e1;line-height:1.6}.pedagogy-wide{grid-column:1/-1}.pedagogy-disclaimer{margin:.9rem 0 0;font-size:.78rem;color:#94a3b8;line-height:1.5}.pedagogy-card--mission{max-width:900px;margin-left:auto;margin-right:auto}.pedagogy-hub-banner{max-width:1180px;margin:1.25rem auto 2.25rem;padding:1.5rem 1.6rem;border-radius:26px;background:linear-gradient(125deg,rgba(239,68,68,.12),rgba(15,23,42,.94) 45%,rgba(3,105,161,.12));border:1px solid rgba(239,68,68,.22);box-shadow:0 22px 56px rgba(2,6,23,.18)}.pedagogy-hub-banner h2{margin:.35rem 0 .55rem}.pedagogy-hub-banner p{max-width:850px;color:#cbd5e1;line-height:1.65}.pedagogy-hub-badges{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:1rem}.pedagogy-hub-badges span{padding:.5rem .75rem;border-radius:999px;background:rgba(255,255,255,.06);border:1px solid rgba(148,163,184,.16);font-size:.84rem;font-weight:700;color:#e2e8f0}.language-passport{margin-top:1rem}.passport-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem}.passport-level{font:800 1.65rem/1 Montserrat,sans-serif;color:#f8fafc}.passport-note{color:#94a3b8;font-size:.82rem}.passport-skill-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.7rem;margin-top:1rem}.passport-skill{padding:.9rem;border-radius:16px;background:rgba(255,255,255,.045);border:1px solid rgba(148,163,184,.12)}.passport-skill strong{display:block;font-size:1.1rem}.passport-skill span{font-size:.8rem;color:#94a3b8}.passport-bar{height:7px;margin-top:.6rem;border-radius:999px;background:rgba(148,163,184,.15);overflow:hidden}.passport-bar i{display:block;height:100%;background:linear-gradient(90deg,#ef4444,#fb7185);border-radius:inherit}@media(max-width:720px){.pedagogy-grid,.passport-skill-grid{grid-template-columns:1fr 1fr}.pedagogy-wide{grid-column:1/-1}}@media(max-width:520px){.pedagogy-grid,.passport-skill-grid{grid-template-columns:1fr}.pedagogy-wide{grid-column:auto}.pedagogy-card-head,.passport-head{align-items:flex-start;flex-direction:column}}


/* ============================================================
   MOBILE PRO V63 : robustesse tactile, petits écrans & performance
   ============================================================ */
html{
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
  scroll-padding-top:84px;
}
*,*::before,*::after{box-sizing:border-box}
body{min-width:0;overflow-x:clip}
img,picture,video,canvas,svg,iframe{max-width:100%}
img{height:auto}
iframe{display:block}
main,section,article,aside,nav,header,footer,.section-inner,.article-wrap{min-width:0}
p,a,strong,span,h1,h2,h3,h4,h5,h6{overflow-wrap:anywhere}
button,a,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}
button,.btn,[role="button"],summary{touch-action:manipulation}
.btn,button,input,select,textarea{min-height:44px}
input,select,textarea{max-width:100%}

/* zones tactiles : 44px minimum sans gonfler le desktop */
@media (pointer:coarse){
  .nav-group-toggle,.lang-dropdown-toggle,.lang-dropdown-item,.nav-toggle,
  .main-nav a,.footer-col a,.video-filter-btn,.music-artist-link{min-height:44px}
}

/* header mobile fiable y compris iPhone avec encoche */
@media(max-width:1049px){
  .site-header{top:0;padding-top:env(safe-area-inset-top);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
  .header-inner{position:relative;min-height:60px;padding-left:max(.7rem,env(safe-area-inset-left));padding-right:max(.7rem,env(safe-area-inset-right));gap:.45rem}
  .main-nav.is-open{
    max-height:calc(100dvh - 60px - env(safe-area-inset-top));
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    padding-bottom:max(1rem,env(safe-area-inset-bottom));
  }
  body.mobile-nav-open{overflow:hidden;touch-action:none}
  body.mobile-nav-open .main-nav{touch-action:pan-y}
  .nav-panel{max-width:100%}
}

@media(max-width:620px){
  .section-inner{padding:3rem 1rem}
  .hero{padding-left:1rem;padding-right:1rem}
  .article-wrap,.culture-article{padding-left:1rem;padding-right:1rem}
  .header-inner{padding-top:.5rem;padding-bottom:.5rem}
  .logo{min-width:36px}
  .logo-mascot img{width:36px;height:36px}
  .stat-hud{max-width:44vw}
  .stat-hud-item{min-width:0;padding:.34rem .42rem}
  .stat-hud-value{font-size:.82rem}
  .stat-hud-label{display:none}
  .lang-dropdown-toggle{min-height:44px;padding:.38rem .5rem}
  .lang-dropdown-menu{position:fixed;top:calc(58px + env(safe-area-inset-top));right:max(.55rem,env(safe-area-inset-right));left:auto;max-width:calc(100vw - 1.1rem);min-width:170px}
  .nav-toggle{width:44px;height:44px}
  .main-nav.is-open{padding-left:max(.7rem,env(safe-area-inset-left));padding-right:max(.7rem,env(safe-area-inset-right))}
  .main-nav .nav-group-link{font-size:1rem}
  .main-nav .nav-panel-item{min-height:58px}
  .nav-panel-copy strong{font-size:.92rem}
  .nav-panel-copy>span{font-size:.78rem;line-height:1.35}

  h1{line-height:1.03}
  h2{line-height:1.12}
  .btn{width:auto;min-height:46px;padding:.75rem 1rem}
  .account-actions,.account-quick-actions,.home-premium-actions,.home-vision-actions,.france-editorial-next,.city-notebook-actions{gap:.6rem}
  .account-actions .btn,.account-quick-actions .btn,.home-premium-actions .btn,.home-vision-actions .btn,.france-editorial-next .btn,.city-notebook-actions .btn{width:100%}

  /* pas de zoom automatique iOS au focus */
  input,select,textarea{font-size:16px!important}
  .resources-gate-form,.resources-toolbar{display:grid;grid-template-columns:1fr;width:100%}
  .resources-gate-form input,.resources-gate-form .btn,.resources-toolbar input,.resources-toolbar select{width:100%}

  /* cartes : moins hautes, plus rapides à parcourir au pouce */
  .home-vision-story,.home-premium-story{min-height:310px}
  .home-vision-mission p{min-height:0}
  .discover-portals>a>img,.france-editorial-card img,.culture-photo img{height:190px}
  .music-hero{min-height:360px;border-radius:20px}
  .music-hero-copy{padding:1.25rem}
  .music-hero-copy h1{font-size:clamp(2.2rem,12vw,3.25rem)}
  .music-era{grid-template-columns:1fr;padding:1rem 0}
  .music-era-no{font-size:1.15rem}
  .music-era-media img{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:14px}
  .music-artist,.music-festival,.music-video{padding:1rem}
  .music-festival{padding:0}
  .video-embed{border-radius:12px}
  .france-editorial-hero{min-height:330px}
  .france-editorial-hero>div{padding:1rem}
  .france-editorial-hero h1{font-size:clamp(2.2rem,11vw,3.4rem)}
  .page-intro-flex{padding:1.1rem;border-radius:18px}
  .page-intro-text h1{font-size:clamp(2.15rem,11vw,3.35rem)}

  /* apprentissage et missions : lecture plus confortable */
  .pedagogy-card,.pedagogy-hub-banner,.mission-stage,.mission-result,.mission-hero,.mission-entry{border-radius:18px}
  .pedagogy-card,.pedagogy-hub-banner{padding:1.1rem}
  .pedagogy-grid>div,.passport-skill{padding:.8rem}
  .mission-choices button{min-height:52px;padding:.85rem 1rem;line-height:1.45}
  .mission-card{padding:1rem;gap:.8rem}
  .flashcard{min-height:260px}
  .flashcard-face{padding:1.2rem}
  .story-quiz-q{padding:1rem}
  .story-quiz-opt{min-height:48px;text-align:left}

  /* modales : toujours entièrement accessibles */
  .modal,.site-guide-panel{max-width:calc(100vw - 1rem);max-height:calc(100dvh - 1rem);overflow:auto;overscroll-behavior:contain}
  .modal-body{padding-left:1rem;padding-right:1rem}
  .modal-footer{padding-left:1rem;padding-right:1rem;padding-bottom:max(1rem,env(safe-area-inset-bottom))}

  /* footer et bannière install */
  .footer-inner{padding-left:1rem;padding-right:1rem}
  .install-banner{left:max(.6rem,env(safe-area-inset-left));right:max(.6rem,env(safe-area-inset-right));bottom:max(.6rem,env(safe-area-inset-bottom))}
  .install-banner-inner{align-items:flex-start;flex-wrap:wrap}
}

@media(max-width:390px){
  .header-inner{gap:.25rem}
  .stat-hud-item{padding:.3rem .34rem;gap:.25rem}
  .stat-hud-icon{font-size:.82rem}
  .stat-hud-value{font-size:.76rem}
  .lang-dropdown-toggle{padding:.34rem .4rem}
  .lang-dropdown-caret{display:none}
  .section-inner{padding-left:.85rem;padding-right:.85rem}
  .pedagogy-hub-badges{gap:.4rem}
  .pedagogy-hub-badges span{font-size:.76rem;padding:.42rem .58rem}
}

/* orientation paysage courte : ne pas laisser le menu prendre tout l'écran */
@media(max-height:520px) and (orientation:landscape) and (max-width:1049px){
  .main-nav.is-open{max-height:calc(100dvh - 54px);padding-top:.35rem;padding-bottom:.5rem}
  .main-nav .nav-group-top{min-height:44px}
  .main-nav .nav-panel-item{min-height:46px}
}

/* interactions : pas de hover spectaculaire sur tactile */
@media(hover:none){
  .home-vision-door:hover,.home-vision-story:hover img,.culture-card-link:hover,.discover-premium-hub .discover-portal:hover img,.france-editorial-card:hover img,.music-era:hover img,.music-region:hover img,.music-artist:hover img,.music-festival:hover img{transform:none!important}
}

/* économie de données / confort moteur de rendu */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}

/* ============================================================
   MOBILE HOME FIX V65 : hero stable + guide hidden on mobile
   ============================================================ */
@media (max-width:720px){
  .site-guide-btn{display:none!important}

  body.home-premium-page .home-vision-hero-inner{
    display:block;
    min-height:0;
    width:100%;
    padding:2.35rem 0 1.6rem;
  }
  body.home-premium-page .home-vision-copy,
  body.home-premium-page .home-vision-side,
  body.home-premium-page .home-vision-glass{
    min-width:0;
    width:100%;
  }
  body.home-premium-page .home-vision-copy h1,
  body.home-premium-page .home-vision-copy p,
  body.home-premium-page .home-vision-copy a,
  body.home-premium-page .home-vision-pills li,
  body.home-premium-page .home-vision-glass span,
  body.home-premium-page .home-vision-glass strong,
  body.home-premium-page .home-vision-card-head a{
    overflow-wrap:normal;
    word-break:normal;
  }
  body.home-premium-page .home-vision-copy h1{
    font-size:clamp(2.45rem,11.5vw,3.45rem);
    line-height:1;
  }
  body.home-premium-page .home-vision-sub{
    font-size:1rem;
    line-height:1.62;
  }
  body.home-premium-page .home-vision-pills{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:.5rem!important;
    width:100%;
    margin-top:1rem;
  }
  body.home-premium-page .home-vision-pills li{
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:44px;
    width:100%;
    margin:0;
    padding:.55rem .6rem!important;
    border:1px solid rgba(255,255,255,.12)!important;
    border-radius:14px;
    background:rgba(255,255,255,.075)!important;
    text-align:center;
    line-height:1.28;
    font-size:.8rem;
  }
  body.home-premium-page .home-vision-pills li::before{display:none!important}
  body.home-premium-page .home-vision-side{
    min-height:0;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:flex-start;
    padding:1.25rem 0 0;
  }
  body.home-premium-page .home-vision-mascot{
    width:min(270px,72vw);
    max-height:300px;
    object-fit:contain;
  }
  body.home-premium-page .home-vision-glass{
    position:relative;
    inset:auto;
    right:auto;
    bottom:auto;
    top:auto;
    max-width:420px;
    margin:.7rem auto 0;
    padding:1rem;
    gap:.5rem;
  }
  body.home-premium-page .home-vision-glass span,
  body.home-premium-page .home-vision-glass strong{
    display:block;
    width:100%;
    white-space:normal;
    line-height:1.35;
  }
  body.home-premium-page .home-vision-card-head{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:.45rem;
  }
  body.home-premium-page .home-vision-card-head>a{
    max-width:100%;
    white-space:normal;
    line-height:1.35;
  }
}
@media (max-width:350px){
  body.home-premium-page .home-vision-pills{grid-template-columns:1fr}
}


/* V66 : guide button disabled on mobile/touch devices */
@media (max-width:900px), (hover:none) and (pointer:coarse){
  .site-guide-btn{display:none!important;visibility:hidden!important;pointer-events:none!important}
}


/* Footer tips icon override */
.footer-signature {
  justify-content: flex-end;
}
.footer-signature-inner {
  max-width: none;
}
.footer-signature-mascot {
  width: 0 !important;
  height: 0 !important;
  flex: 0 0 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden;
  opacity: 0;
}
.footer-signature-inner::after {
  content: "?";
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  margin-left: 0;
  border-radius: 999px;
  background: radial-gradient(circle at 35% 32%, #fff8be 0%, #ffe16b 38%, #ffc928 70%, #d89b00 100%);
  color: #4b3000;
  font-family: var(--font-display);
  font-size: 1rem;
  font-weight: 900;
  line-height: 1;
  box-shadow:
    0 0 0 1px rgba(255, 221, 110, 0.45),
    0 0 10px rgba(255, 210, 79, 0.55),
    0 0 22px rgba(255, 196, 47, 0.28),
    inset 0 1px 2px rgba(255, 255, 255, 0.45);
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.45);
  animation: lekaTipsPulse 2.3s ease-in-out infinite;
}
.footer-signature:hover .footer-signature-inner::after {
  box-shadow:
    0 0 0 1px rgba(255, 221, 110, 0.55),
    0 0 14px rgba(255, 210, 79, 0.72),
    0 0 28px rgba(255, 196, 47, 0.4),
    inset 0 1px 2px rgba(255, 255, 255, 0.5);
}
@keyframes lekaTipsPulse {
  0%, 100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-1px) scale(1.04); }
}
@media (max-width: 720px) {
  .footer-signature-inner::after {
    width: 24px;
    height: 24px;
    font-size: .92rem;
  }
}


/* === V78 PATCH: footer signature right + question tips left === */
.footer-signature {
  display: flex !important;
  justify-content: flex-end !important;
  align-items: flex-end !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: .25rem 1.4rem .9rem !important;
  border-top: 1px solid var(--border) !important;
  background: transparent !important;
  text-decoration: none !important;
}
.footer-signature-inner {
  position: relative !important;
  display: block !important;
  flex: 0 0 auto !important;
  width: min(100%, 320px) !important;
  min-height: 112px !important;
  aspect-ratio: 493 / 246 !important;
  margin-left: auto !important;
  background: url("../assets/images/footer-signature-ethem.webp") center right / contain no-repeat !important;
  filter: drop-shadow(0 14px 24px rgba(0,0,0,.28)) !important;
  opacity: 1 !important;
}
.footer-signature-inner::before,
.footer-signature-inner::after {
  content: none !important;
}
.footer-signature-mascot,
.footer-signature [data-i18n="footer.credit"],
.footer-signature .footer-credit-lead,
.footer-signature .footer-signature-name {
  display: none !important;
}
@media (max-width: 900px) {
  .footer-signature { padding: .2rem 1rem .82rem !important; }
  .footer-signature-inner { width: min(100%, 280px) !important; min-height: 96px !important; }
}
@media (max-width: 640px) {
  .footer-signature { padding: .18rem .85rem .72rem !important; }
  .footer-signature-inner { width: min(100%, 230px) !important; min-height: 78px !important; }
}

.mascot-companion {
  left: .9rem !important;
  right: auto !important;
  bottom: .9rem !important;
  z-index: 35 !important;
}
.mascot-companion-avatar.mascot-companion-avatar--question {
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 54px !important;
  height: 54px !important;
  padding: 0 !important;
  border: 1px solid rgba(255, 214, 87, 0.82) !important;
  border-radius: 999px !important;
  background:
    radial-gradient(circle at 40% 35%, rgba(255, 250, 212, 0.98) 0%, rgba(255, 231, 116, 0.94) 34%, rgba(255, 193, 49, 0.86) 63%, rgba(255, 170, 20, 0.56) 78%, rgba(8, 18, 40, 0.18) 100%) !important;
  box-shadow:
    0 10px 20px rgba(0,0,0,.30),
    0 0 0 1px rgba(255, 213, 92, 0.10),
    0 0 18px rgba(255, 207, 79, 0.34),
    0 0 32px rgba(255, 207, 79, 0.16) !important;
  cursor: pointer !important;
  transition: transform .18s ease, box-shadow .18s ease, filter .18s ease !important;
}
.mascot-companion-avatar.mascot-companion-avatar--question::before {
  content: "";
  position: absolute;
  inset: 7px;
  border-radius: 999px;
  background: radial-gradient(circle, rgba(255,255,255,.28) 0%, rgba(255,248,203,.14) 48%, transparent 74%);
  pointer-events: none;
}
.mascot-companion-avatar.mascot-companion-avatar--question:hover,
.mascot-companion-avatar.mascot-companion-avatar--question:focus-visible {
  transform: translateY(-2px) scale(1.04) !important;
  box-shadow:
    0 12px 24px rgba(0,0,0,.34),
    0 0 0 1px rgba(255, 223, 128, 0.16),
    0 0 22px rgba(255, 207, 79, 0.42),
    0 0 40px rgba(255, 207, 79, 0.24) !important;
  outline: none !important;
}
.mascot-companion-question {
  position: relative;
  z-index: 1;
  font-size: 1.6rem;
  line-height: 1;
  font-weight: 900;
  color: #684400;
  text-shadow: 0 1px 0 rgba(255,255,255,.38);
}
@media (max-width: 640px) {
  .mascot-companion { left: .72rem !important; bottom: .72rem !important; }
  .mascot-companion-avatar.mascot-companion-avatar--question { width: 48px !important; height: 48px !important; }
  .mascot-companion-question { font-size: 1.45rem; }
}


/* === V79 PATCH: astuce sparkle icon === */
.mascot-companion {
  left: 1rem !important;
  right: auto !important;
  bottom: 1rem !important;
}
.mascot-companion-avatar.mascot-companion-avatar--spark {
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 50px !important;
  height: 50px !important;
  padding: 0 !important;
  border: 1px solid rgba(255, 211, 112, 0.36) !important;
  border-radius: 999px !important;
  background:
    radial-gradient(circle at 35% 30%, rgba(255,255,255,0.11), rgba(255,255,255,0.01) 36%, transparent 52%),
    linear-gradient(180deg, rgba(12,26,52,0.96), rgba(6,15,33,0.98)) !important;
  box-shadow:
    0 10px 26px rgba(0,0,0,0.32),
    inset 0 1px 0 rgba(255,255,255,0.05),
    0 0 0 1px rgba(18, 212, 206, 0.04),
    0 0 18px rgba(255, 205, 95, 0.18) !important;
  overflow: hidden !important;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease !important;
}
.mascot-companion-avatar.mascot-companion-avatar--spark::before {
  content: "";
  position: absolute;
  inset: 5px;
  border-radius: 999px;
  background: radial-gradient(circle at 50% 50%, rgba(255, 218, 120, 0.20), rgba(255, 218, 120, 0.06) 42%, transparent 72%);
  pointer-events: none;
}
.mascot-companion-avatar.mascot-companion-avatar--spark::after {
  content: "";
  position: absolute;
  inset: -8px;
  border-radius: 999px;
  background: radial-gradient(circle, rgba(255, 213, 97, 0.16), transparent 58%);
  filter: blur(6px);
  opacity: .88;
  pointer-events: none;
  animation: mascotSparkleGlow 2.8s ease-in-out infinite;
}
.mascot-companion-avatar.mascot-companion-avatar--spark:hover,
.mascot-companion-avatar.mascot-companion-avatar--spark:focus-visible {
  transform: translateY(-2px) scale(1.04) !important;
  border-color: rgba(255, 224, 146, 0.55) !important;
  box-shadow:
    0 12px 28px rgba(0,0,0,0.34),
    inset 0 1px 0 rgba(255,255,255,0.08),
    0 0 24px rgba(255, 205, 95, 0.24),
    0 0 44px rgba(255, 205, 95, 0.12) !important;
  outline: none !important;
}
.mascot-companion-sparkle {
  position: relative;
  z-index: 1;
  display: inline-block;
  font-size: 1.3rem;
  line-height: 1;
  color: #ffd66f;
  text-shadow:
    0 0 6px rgba(255, 215, 110, 0.42),
    0 0 14px rgba(255, 215, 110, 0.18);
  animation: mascotSparkleTwinkle 2.8s ease-in-out infinite;
}
@keyframes mascotSparkleGlow {
  0%, 100% { opacity: .58; transform: scale(.98); }
  50% { opacity: .95; transform: scale(1.05); }
}
@keyframes mascotSparkleTwinkle {
  0%, 100% { transform: scale(1) rotate(0deg); opacity: .94; }
  50% { transform: scale(1.08) rotate(8deg); opacity: 1; }
}
@media (max-width: 640px) {
  .mascot-companion { left: .72rem !important; bottom: .72rem !important; }
  .mascot-companion-avatar.mascot-companion-avatar--spark {
    width: 46px !important;
    height: 46px !important;
  }
  .mascot-companion-sparkle { font-size: 1.18rem; }
}


/* === V88 : Home hero journey board: qualitative, no catalogue counters === */
body.home-premium-page .home-vision-glass.home-vision-glass--journey {
  top: 1.15rem;
  right: -.55rem;
  bottom: auto;
  width: min(390px, 82%);
  display: block;
  padding: 1.25rem 1.35rem 1.05rem;
  border: 1px solid rgba(144, 180, 231, .48);
  border-radius: 30px;
  background:
    radial-gradient(circle at 95% 8%, rgba(82, 137, 214, .14), transparent 34%),
    linear-gradient(150deg, rgba(9, 22, 42, .94), rgba(5, 15, 30, .91));
  -webkit-backdrop-filter: blur(20px) saturate(118%);
  backdrop-filter: blur(20px) saturate(118%);
  box-shadow:
    0 26px 70px rgba(1, 6, 17, .48),
    inset 0 1px 0 rgba(255, 255, 255, .055),
    0 0 0 1px rgba(34, 67, 108, .12);
  color: #f7f9ff;
  overflow: hidden;
}
body.home-premium-page .home-vision-glass--journey::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: 34%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(245, 196, 111, .88));
  box-shadow: 0 0 14px rgba(245, 196, 111, .34);
}
body.home-premium-page .home-vision-glass--journey .home-vision-glass-kicker {
  margin: 0 0 .92rem;
  color: #f1c77f;
  font-size: .74rem;
  line-height: 1.25;
  font-weight: 800;
  letter-spacing: .19em;
  text-transform: uppercase;
}
body.home-premium-page .home-vision-glass-list {
  display: grid;
  gap: .62rem;
}
body.home-premium-page .home-vision-glass-item {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  align-items: center;
  gap: .82rem;
  min-height: 46px;
}
body.home-premium-page .home-vision-glass-icon {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.055);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.06), 0 8px 18px rgba(0,0,0,.18);
}
body.home-premium-page .home-vision-glass-icon svg {
  width: 21px;
  height: 21px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
body.home-premium-page .home-vision-glass-item--learn .home-vision-glass-icon { color:#f3c674; background:rgba(211,159,67,.10); border-color:rgba(243,198,116,.24); }
body.home-premium-page .home-vision-glass-item--explore .home-vision-glass-icon { color:#ff827e; background:rgba(224,71,71,.10); border-color:rgba(255,130,126,.22); }
body.home-premium-page .home-vision-glass-item--mission .home-vision-glass-icon { color:#58d6c1; background:rgba(43,175,154,.10); border-color:rgba(88,214,193,.22); }
body.home-premium-page .home-vision-glass-item--read .home-vision-glass-icon { color:#b694ff; background:rgba(125,91,204,.12); border-color:rgba(182,148,255,.22); }
body.home-premium-page .home-vision-glass-item strong {
  display: block;
  min-width: 0;
  color: #fff;
  font-size: clamp(.98rem, 1.32vw, 1.22rem);
  line-height: 1.18;
  font-weight: 750;
  letter-spacing: -.015em;
}
body.home-premium-page .home-vision-glass-meta {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .34rem .65rem;
  margin: 1rem 0 0;
  padding-top: .82rem;
  border-top: 1px solid rgba(255,255,255,.08);
  color: rgba(186, 205, 233, .68);
  font-size: .69rem;
  line-height: 1.3;
  letter-spacing: .14em;
}
body.home-premium-page .home-vision-glass-meta span + span::before {
  content: "•";
  margin-right: .65rem;
  color: rgba(241,199,127,.72);
}
@media (max-width: 1100px) {
  body.home-premium-page .home-vision-glass.home-vision-glass--journey {
    top: .75rem;
    right: 0;
    width: min(390px, 78%);
  }
}
@media (max-width: 720px) {
  body.home-premium-page .home-vision-glass.home-vision-glass--journey {
    position: relative;
    top: auto;
    right: auto;
    width: 100%;
    margin-top: .8rem;
    padding: 1.05rem 1rem .95rem;
    border-radius: 24px;
  }
  body.home-premium-page .home-vision-glass-item {
    grid-template-columns: 38px minmax(0,1fr);
    min-height: 42px;
    gap: .72rem;
  }
  body.home-premium-page .home-vision-glass-icon { width: 38px; height: 38px; }
  body.home-premium-page .home-vision-glass-icon svg { width: 19px; height: 19px; }
  body.home-premium-page .home-vision-glass-item strong { font-size: 1rem; }
  body.home-premium-page .home-vision-glass-meta { font-size: .62rem; letter-spacing: .1em; }
}

/* === V89 : restore visible hero mascot + journey board === */
body.home-premium-page .home-vision-side {
  position: relative !important;
  isolation: isolate;
  min-height: 470px !important;
  display: flex !important;
  align-items: flex-end !important;
  justify-content: flex-start !important;
  overflow: visible !important;
  padding: 0 !important;
}
body.home-premium-page .home-vision-mascot {
  position: relative !important;
  z-index: 2 !important;
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  width: min(360px, 66%) !important;
  max-height: 440px !important;
  margin: 0 !important;
  object-fit: contain !important;
  object-position: center bottom !important;
  transform: none !important;
}
body.home-premium-page .home-vision-glass.home-vision-glass--journey {
  position: absolute !important;
  z-index: 3 !important;
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  top: auto !important;
  right: 0 !important;
  bottom: 1rem !important;
  left: auto !important;
  width: min(350px, 68%) !important;
  margin: 0 !important;
}
@media (max-width: 1100px) and (min-width: 721px) {
  body.home-premium-page .home-vision-side {
    min-height: 430px !important;
    max-width: 760px;
    margin-inline: auto;
  }
  body.home-premium-page .home-vision-mascot {
    width: min(330px, 52%) !important;
  }
  body.home-premium-page .home-vision-glass.home-vision-glass--journey {
    right: 2% !important;
    bottom: 1.25rem !important;
    width: min(370px, 55%) !important;
  }
}
@media (max-width: 720px) {
  body.home-premium-page .home-vision-side {
    min-height: 0 !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: flex-start !important;
    padding-top: 1.15rem !important;
  }
  body.home-premium-page .home-vision-mascot {
    width: min(265px, 72vw) !important;
    max-height: 300px !important;
    margin-inline: auto !important;
  }
  body.home-premium-page .home-vision-glass.home-vision-glass--journey {
    position: relative !important;
    inset: auto !important;
    width: min(100%, 420px) !important;
    margin: .8rem auto 0 !important;
  }
}


/* === V90 : tighten hero journey board so all labels stay inside the panel === */
body.home-premium-page .home-vision-side {
  align-items: flex-end !important;
  justify-content: flex-start !important;
  gap: 0 !important;
}
body.home-premium-page .home-vision-mascot {
  width: min(350px, 58%) !important;
  max-height: 420px !important;
}
body.home-premium-page .home-vision-glass.home-vision-glass--journey {
  right: .4rem !important;
  bottom: 1.1rem !important;
  width: min(310px, 58%) !important;
  padding: 1rem 1rem .88rem !important;
  border-radius: 26px !important;
}
body.home-premium-page .home-vision-glass--journey .home-vision-glass-kicker {
  margin-bottom: .7rem !important;
  font-size: .66rem !important;
  letter-spacing: .15em !important;
}
body.home-premium-page .home-vision-glass-list {
  gap: .45rem !important;
}
body.home-premium-page .home-vision-glass-item {
  grid-template-columns: 34px minmax(0,1fr) !important;
  gap: .6rem !important;
  min-height: 38px !important;
}
body.home-premium-page .home-vision-glass-icon {
  width: 34px !important;
  height: 34px !important;
}
body.home-premium-page .home-vision-glass-icon svg {
  width: 17px !important;
  height: 17px !important;
}
body.home-premium-page .home-vision-glass-item strong {
  font-size: .9rem !important;
  line-height: 1.14 !important;
  letter-spacing: -.01em !important;
}
body.home-premium-page .home-vision-glass-meta {
  margin-top: .8rem !important;
  padding-top: .68rem !important;
  font-size: .61rem !important;
  letter-spacing: .11em !important;
}
@media (max-width: 1100px) and (min-width: 721px) {
  body.home-premium-page .home-vision-mascot {
    width: min(315px, 48%) !important;
  }
  body.home-premium-page .home-vision-glass.home-vision-glass--journey {
    right: 1.2% !important;
    width: min(295px, 46%) !important;
    bottom: 1rem !important;
  }
  body.home-premium-page .home-vision-glass-item strong {
    font-size: .86rem !important;
  }
}
@media (max-width: 720px) {
  body.home-premium-page .home-vision-glass.home-vision-glass--journey {
    width: min(100%, 360px) !important;
    padding: .95rem .9rem .84rem !important;
  }
  body.home-premium-page .home-vision-glass-item {
    grid-template-columns: 34px minmax(0,1fr) !important;
  }
  body.home-premium-page .home-vision-glass-item strong {
    font-size: .92rem !important;
  }
}

/* V91 FULL: no French-subsite hero redesign; retained for consolidated compatibility. */

/* === V93 : discreet roaming Léka cameos === */
.leka-cameo-host{position:relative!important;overflow:visible!important;isolation:isolate}
.leka-cameo-host>img:first-of-type{position:relative;z-index:1}
.leka-cameo{position:absolute!important;z-index:7!important;display:block!important;width:clamp(72px,7.2vw,106px)!important;height:auto!important;max-width:none!important;margin:0!important;pointer-events:none!important;user-select:none!important;filter:drop-shadow(0 10px 14px rgba(0,0,0,.24));transform-origin:center bottom}
.leka-cameo--peek{top:-58px;left:18px}.leka-cameo--right{top:-48px;right:-30px;width:clamp(78px,7.8vw,112px)!important}.leka-cameo--point{top:-48px;right:12px;width:clamp(78px,7.8vw,110px)!important}.leka-cameo--reader{right:-24px;bottom:-24px;width:clamp(78px,8vw,116px)!important}.leka-cameo--cinema{right:-22px;top:-52px;width:clamp(82px,8vw,118px)!important}.leka-cameo--tip{left:-20px;bottom:-22px;width:clamp(78px,7.6vw,108px)!important}.leka-cameo-host:hover .leka-cameo{transform:translateY(-2px) rotate(-1deg);transition:transform .18s ease}@media(max-width:820px){.leka-cameo{display:none!important}}@media(prefers-reduced-motion:reduce){.leka-cameo-host:hover .leka-cameo{transform:none!important}}


/* === V94 : Léka intégré proprement dans les cartes === */
.leka-cameo-host{
  position:relative!important;
  overflow:hidden!important;
  isolation:isolate;
}
.leka-cameo-host>img:first-of-type{position:relative;z-index:1}
.leka-cameo{
  --leka-x:0;
  --leka-y:0;
  --leka-rotate:0deg;
  position:absolute!important;
  z-index:7!important;
  display:block!important;
  width:clamp(56px,5.7vw,88px)!important;
  height:auto!important;
  max-width:none!important;
  margin:0!important;
  pointer-events:none!important;
  user-select:none!important;
  filter:drop-shadow(0 8px 14px rgba(0,0,0,.24));
  transform:translate(var(--leka-x),var(--leka-y)) rotate(var(--leka-rotate));
  transform-origin:center bottom;
  transition:transform .18s ease,filter .18s ease;
}
.leka-cameo--peek{top:10px;left:12px}
.leka-cameo--right{top:10px;right:10px;width:clamp(58px,6vw,90px)!important}
.leka-cameo--point{top:10px;right:12px;width:clamp(58px,6.1vw,92px)!important}
.leka-cameo--reader{right:12px;bottom:12px;width:clamp(60px,6.2vw,94px)!important}
.leka-cameo--cinema{right:12px;top:12px;width:clamp(60px,6.2vw,94px)!important}
.leka-cameo--tip{left:12px;bottom:12px;width:clamp(58px,6vw,90px)!important}
.leka-cameo-host:hover .leka-cameo{
  --leka-y:-2px;
  --leka-rotate:-1deg;
  filter:drop-shadow(0 10px 16px rgba(0,0,0,.28));
}
/* Les portails gardent leur rayon et ne laissent plus la mascotte sortir du cadre. */
body.discover-premium-hub .discover-portals>a.leka-cameo-host{overflow:hidden!important}
body.discover-premium-hub .discover-portals>a.leka-cameo-host>img:first-of-type{border-radius:18px 18px 0 0}
@media(max-width:820px){
  .leka-cameo{width:52px!important}
  .leka-cameo--right,.leka-cameo--point,.leka-cameo--reader,.leka-cameo--cinema,.leka-cameo--tip{width:56px!important}
}
@media(max-width:560px){
  .leka-cameo{width:44px!important}
  .leka-cameo--right,.leka-cameo--point,.leka-cameo--reader,.leka-cameo--cinema,.leka-cameo--tip{width:48px!important}
  .leka-cameo--peek{top:8px;left:8px}
  .leka-cameo--right,.leka-cameo--point,.leka-cameo--cinema{top:8px;right:8px}
  .leka-cameo--reader{right:8px;bottom:8px}
  .leka-cameo--tip{left:8px;bottom:8px}
}
@media(prefers-reduced-motion:reduce){.leka-cameo{transition:none!important}.leka-cameo-host:hover .leka-cameo{--leka-y:0;--leka-rotate:0deg}}


/* === V94 : portraits artistes : visages lisibles et cartes stables === */
.discover-premium-music .music-artist{
  padding:0;
  display:flex;
  flex-direction:column;
  min-height:100%;
}
.discover-premium-music .music-artist-media{
  position:relative;
  width:100%;
  aspect-ratio:4/3;
  min-height:210px;
  overflow:hidden;
  background:#0b1220;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.discover-premium-music .music-artist-photo{
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center center;
  background:#0b1220;
  transform:none;
}
.discover-premium-music .music-artist:hover .music-artist-photo{transform:scale(1.015)}
.discover-premium-music .music-artist-body{flex:1}
.discover-premium-music .music-artist-actions{margin-top:auto;padding-top:.45rem}
@media(min-width:1101px){
  .discover-premium-music .music-artist-media{min-height:230px}
}
@media(max-width:650px){
  .discover-premium-music .music-artist-media{min-height:260px;aspect-ratio:16/11}
}


/* === V96 : Léka conforme aux maquettes : au-dessus, mains posées sur le bord === */
.leka-cameo-lane{padding-top:0!important}
.leka-cameo-host{
  --leka-anchor:50%;
  position:relative!important;
  overflow:visible!important;
  isolation:isolate;
}
.leka-cameo-host>.leka-cameo{
  position:absolute!important;
  z-index:20!important;
  display:block!important;
  top:0!important;
  left:var(--leka-anchor)!important;
  right:auto!important;
  bottom:auto!important;
  width:clamp(132px,12vw,190px)!important;
  height:auto!important;
  max-width:none!important;
  margin:0!important;
  pointer-events:none!important;
  user-select:none!important;
  transform:translate(-50%,-86%)!important;
  transform-origin:50% 88%;
  filter:drop-shadow(0 15px 24px rgba(0,0,0,.34));
  transition:transform .2s ease,filter .2s ease;
}
.leka-cameo-host:hover>.leka-cameo{
  transform:translate(-50%,calc(-86% - 3px)) rotate(-1deg)!important;
  filter:drop-shadow(0 18px 28px rgba(0,0,0,.4));
}
body.discover-premium-hub .discover-portals>a.leka-cameo-host,
body.discover-premium-page .discover-portals>a.leka-cameo-host{overflow:visible!important}
body.discover-premium-hub .discover-portals>a.leka-cameo-host>img:first-of-type,
body.discover-premium-page .discover-portals>a.leka-cameo-host>img:first-of-type{border-radius:18px 18px 0 0}
@media(max-width:900px){
  .leka-cameo-host>.leka-cameo{width:clamp(104px,18vw,145px)!important;transform:translate(-50%,-85%)!important}
  .leka-cameo-host:hover>.leka-cameo{transform:translate(-50%,calc(-85% - 2px)) rotate(-1deg)!important}
}
@media(max-width:620px){
  .leka-cameo-host>.leka-cameo{width:92px!important;transform:translate(-50%,-84%)!important}
  .leka-cameo-host:hover>.leka-cameo{transform:translate(-50%,-84%)!important}
}
@media(prefers-reduced-motion:reduce){
  .leka-cameo-host>.leka-cameo{transition:none!important}
  .leka-cameo-host:hover>.leka-cameo{transform:translate(-50%,-86%)!important}
}

/* === V105 · French mirror home hero === */
body.france-mirror-home .france-mirror-hero{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  min-height:min(780px,calc(100vh - 112px));
  background:#061322;
  color:#fff;
  border-bottom:1px solid rgba(74,116,164,.35);
}
body.france-mirror-home .france-mirror-bg{
  position:absolute;inset:0;z-index:-4;
}
body.france-mirror-home .france-mirror-bg img{
  width:100%;height:100%;object-fit:cover;object-position:center 52%;
  filter:saturate(.82) contrast(1.07) brightness(.72);
}
body.france-mirror-home .france-mirror-hero::before{
  content:"";position:absolute;inset:0;z-index:-3;
  background:
    radial-gradient(circle at 72% 42%,rgba(37,99,235,.13),transparent 28%),
    linear-gradient(90deg,rgba(5,12,23,.95) 0%,rgba(5,12,23,.88) 34%,rgba(5,12,23,.42) 62%,rgba(5,12,23,.55) 100%),
    linear-gradient(180deg,rgba(3,10,22,.08) 0%,rgba(3,10,22,.18) 58%,rgba(3,10,22,.86) 100%);
}
body.france-mirror-home .france-mirror-hero::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:130px;z-index:-2;
  background:linear-gradient(180deg,transparent,rgba(4,13,24,.92));
}
body.france-mirror-home .france-mirror-vignette{
  position:absolute;inset:-12%;z-index:-1;pointer-events:none;
  box-shadow:inset 0 0 160px 80px rgba(0,0,0,.52);
}
body.france-mirror-home .france-mirror-inner{
  width:min(1450px,calc(100% - 4.5rem));max-width:none;
  min-height:min(780px,calc(100vh - 112px));
  display:grid;
  grid-template-columns:minmax(460px,.9fr) minmax(650px,1.1fr);
  align-items:center;
  gap:clamp(1.5rem,3.2vw,4rem);
  padding:3.25rem 0 2.4rem;
}
body.france-mirror-home .france-mirror-copy{position:relative;z-index:3;max-width:660px;padding-left:clamp(.2rem,1.2vw,1rem)}
body.france-mirror-home .france-mirror-kicker{
  margin:0;color:#f5e5c6;font-family:Montserrat,Inter,sans-serif;
  font-size:.82rem;font-weight:700;letter-spacing:.32em;text-transform:uppercase;
  text-shadow:0 2px 12px rgba(0,0,0,.45);
}
body.france-mirror-home .france-mirror-rule{display:block;width:45px;height:2px;margin:1rem 0 1.6rem;background:#eed39a;border-radius:99px;box-shadow:70px 0 0 rgba(238,211,154,.2)}
body.france-mirror-home .france-mirror-copy h1{
  margin:0;color:#fff;font-family:Georgia,'Times New Roman',serif;
  font-size:clamp(4rem,6.4vw,6.9rem);font-weight:700;line-height:.86;letter-spacing:-.055em;
  text-wrap:balance;text-shadow:0 7px 28px rgba(0,0,0,.42);
}
body.france-mirror-home .france-mirror-copy h1 span{color:#f6d99d}
body.france-mirror-home .france-mirror-sub{
  max-width:610px;margin:1.55rem 0 0;color:rgba(245,247,252,.9);
  font-size:clamp(1rem,1.25vw,1.18rem);line-height:1.65;letter-spacing:.01em;
  text-shadow:0 2px 12px rgba(0,0,0,.45);
}
body.france-mirror-home .france-mirror-actions{display:flex;flex-wrap:wrap;gap:1rem;margin-top:1.75rem}
body.france-mirror-home .france-mirror-actions .btn{
  min-height:58px;display:inline-flex;align-items:center;justify-content:center;gap:.65rem;
  padding:.95rem 1.45rem;border-radius:999px;font-weight:800;text-decoration:none;
  transition:transform .18s ease,box-shadow .18s ease,background .18s ease;
}
body.france-mirror-home .france-mirror-actions .btn:hover{transform:translateY(-2px)}
body.france-mirror-home .france-mirror-primary{
  color:#281c0e;background:linear-gradient(180deg,#ffe2a7,#efbd68);
  border:1px solid rgba(255,243,211,.88);box-shadow:0 12px 28px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.55);
}
body.france-mirror-home .france-mirror-secondary{
  color:#fff;background:rgba(7,18,32,.36);border:1px solid rgba(246,220,164,.7);
  backdrop-filter:blur(10px);box-shadow:0 12px 30px rgba(0,0,0,.18);
}
body.france-mirror-home .france-mirror-secondary:hover{background:rgba(255,255,255,.1)}
body.france-mirror-home .france-mirror-tricolor{
  display:flex;align-items:center;gap:.7rem;margin:1.3rem 0 0;color:rgba(255,255,255,.76);
  font-size:.71rem;font-weight:800;letter-spacing:.16em;
}
body.france-mirror-home .france-mirror-tricolor i{width:5px;height:5px;border-radius:50%;background:#ef4444;box-shadow:-8px 0 0 #2563eb}

body.france-mirror-home .france-mirror-visual{
  position:relative;min-height:610px;z-index:2;display:flex;align-items:flex-end;justify-content:flex-start;
}
body.france-mirror-home .france-mirror-halo{
  position:absolute;left:15%;top:14%;width:410px;height:410px;border-radius:50%;
  background:radial-gradient(circle,rgba(255,186,91,.2),rgba(255,186,91,.07) 34%,transparent 70%);
  filter:blur(3px);pointer-events:none;
}
body.france-mirror-home .france-mirror-mascot{
  position:absolute;z-index:3;left:0;bottom:1.1rem;width:min(500px,49%);max-height:555px;object-fit:contain;
  filter:drop-shadow(0 26px 30px rgba(0,0,0,.5)) drop-shadow(0 0 16px rgba(255,151,50,.17));
}
body.france-mirror-home .france-mirror-sign{
  position:absolute;z-index:2;right:1%;bottom:1.2rem;width:min(500px,54%);
  transform:rotate(-.5deg);filter:drop-shadow(0 25px 30px rgba(0,0,0,.48));
}
body.france-mirror-home .france-mirror-sign::before,
body.france-mirror-home .france-mirror-sign::after{
  content:"";position:absolute;top:-17px;bottom:-35px;width:35px;z-index:-2;border-radius:10px;
  background:linear-gradient(90deg,#4b230e,#8a4d1e 40%,#a96125 58%,#51250f);
  border:2px solid rgba(45,20,8,.72);box-shadow:inset 0 0 0 2px rgba(255,192,92,.08);
}
body.france-mirror-home .france-mirror-sign::before{left:34px;transform:rotate(-1.4deg)}
body.france-mirror-home .france-mirror-sign::after{right:30px;transform:rotate(1.1deg)}
body.france-mirror-home .france-mirror-sign-plank{
  position:relative;padding:1rem 1.25rem .9rem;text-align:center;color:#3c1f0e;
  border:2px solid #6d3514;border-radius:14px 14px 6px 6px;
  background:
    linear-gradient(180deg,rgba(255,225,158,.18),transparent 32%),
    repeating-linear-gradient(3deg,rgba(92,44,17,.08) 0 2px,transparent 2px 9px),
    linear-gradient(90deg,#9d561e,#d58b35 12%,#c97426 45%,#d58b35 76%,#9b511b);
  box-shadow:inset 0 0 0 3px rgba(80,35,12,.18),inset 0 -12px 22px rgba(83,39,12,.17);
}
body.france-mirror-home .france-mirror-sign-title strong{
  display:block;font-family:Georgia,'Times New Roman',serif;font-size:clamp(2rem,2.7vw,3rem);font-weight:500;line-height:.86;
  text-shadow:0 1px 0 rgba(255,218,151,.44);
}
body.france-mirror-home .france-mirror-leaves{position:absolute;right:1rem;bottom:.4rem;font-size:2rem;color:#38511e;transform:rotate(-15deg)}
body.france-mirror-home .france-mirror-paper{
  position:relative;margin:-2px 14px 0;padding:.65rem .95rem .8rem;
  background:
    radial-gradient(circle at 25% 20%,rgba(116,69,20,.08),transparent 24%),
    linear-gradient(180deg,#f5d9a0,#efd092 58%,#e7c17d);
  color:#4a2813;border:2px solid #754218;border-top:0;border-radius:0 0 10px 10px;
  box-shadow:inset 0 0 22px rgba(99,51,17,.14);
}
body.france-mirror-home .france-mirror-paper a{
  display:grid;grid-template-columns:50px 1fr;align-items:center;gap:.8rem;min-height:66px;
  color:#492914;text-decoration:none;border-bottom:1px solid rgba(93,50,17,.3);
  font-family:Georgia,'Times New Roman',serif;font-size:clamp(1rem,1.3vw,1.35rem);
}
body.france-mirror-home .france-mirror-paper a:last-child{border-bottom:0}
body.france-mirror-home .france-mirror-paper a:hover strong{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
body.france-mirror-home .france-mirror-icon{
  width:42px;height:42px;display:grid;place-items:center;border-radius:50%;color:#fff;font-family:Inter,sans-serif;font-size:1.05rem;
  box-shadow:inset 0 0 0 2px rgba(255,255,255,.12),0 4px 8px rgba(62,29,8,.2);
}
body.france-mirror-home .icon-book{background:#1d4ed8}
body.france-mirror-home .icon-pin{background:#dc2626}
body.france-mirror-home .icon-mission{background:#0f766e}
body.france-mirror-home .icon-read{background:#7e22ce}
body.france-mirror-home .france-mirror-lantern{
  position:absolute;right:-1.5rem;bottom:-1rem;z-index:4;width:60px;height:130px;border:4px solid #5a2f11;border-radius:12px 12px 18px 18px;
  background:linear-gradient(90deg,rgba(255,191,72,.15),rgba(255,238,166,.55),rgba(255,166,52,.16));
  box-shadow:0 0 34px rgba(255,166,54,.4),inset 0 0 18px rgba(255,214,117,.3);
}
body.france-mirror-home .france-mirror-lantern::before{content:"";position:absolute;left:8px;right:8px;top:-16px;height:17px;border-radius:7px 7px 0 0;background:#6d3914;border:2px solid #3d210e}
body.france-mirror-home .france-mirror-lantern span{position:absolute;left:20px;right:20px;bottom:18px;height:58px;border-radius:50%;background:#ffe19a;filter:blur(2px);box-shadow:0 0 25px 10px rgba(255,184,65,.5)}

@media (max-width:1180px){
  body.france-mirror-home .france-mirror-inner{grid-template-columns:minmax(400px,.95fr) minmax(530px,1.05fr);width:min(100% - 2.5rem,1320px)}
  body.france-mirror-home .france-mirror-copy h1{font-size:clamp(3.7rem,6vw,5.7rem)}
  body.france-mirror-home .france-mirror-visual{min-height:550px}
  body.france-mirror-home .france-mirror-sign{width:min(455px,56%)}
  body.france-mirror-home .france-mirror-mascot{width:min(445px,50%)}
}
@media (max-width:930px){
  body.france-mirror-home .france-mirror-hero{min-height:auto}
  body.france-mirror-home .france-mirror-inner{grid-template-columns:1fr;min-height:auto;padding:3.2rem 0 2.5rem;gap:1.2rem}
  body.france-mirror-home .france-mirror-copy{max-width:760px;padding-left:0}
  body.france-mirror-home .france-mirror-copy h1{font-size:clamp(3.3rem,10vw,5.5rem)}
  body.france-mirror-home .france-mirror-visual{min-height:550px;width:min(760px,100%);margin:0 auto}
  body.france-mirror-home .france-mirror-mascot{left:2%;width:48%}
  body.france-mirror-home .france-mirror-sign{right:2%;width:52%}
}
@media (max-width:640px){
  body.france-mirror-home .france-mirror-inner{width:min(100% - 1.35rem,700px);padding:2.35rem 0 1.7rem}
  body.france-mirror-home .france-mirror-kicker{font-size:.68rem;letter-spacing:.22em}
  body.france-mirror-home .france-mirror-rule{margin:.8rem 0 1.2rem}
  body.france-mirror-home .france-mirror-copy h1{font-size:clamp(3rem,15vw,4.4rem);line-height:.9}
  body.france-mirror-home .france-mirror-sub{font-size:1rem;margin-top:1rem}
  body.france-mirror-home .france-mirror-actions{gap:.7rem;margin-top:1.25rem}
  body.france-mirror-home .france-mirror-actions .btn{width:100%;min-height:52px}
  body.france-mirror-home .france-mirror-tricolor{justify-content:center;font-size:.64rem}
  body.france-mirror-home .france-mirror-visual{min-height:590px;display:block;margin-top:.4rem}
  body.france-mirror-home .france-mirror-sign{right:0;bottom:1.2rem;width:76%;transform:rotate(0)}
  body.france-mirror-home .france-mirror-mascot{left:-5%;bottom:4.5rem;width:50%;z-index:3}
  body.france-mirror-home .france-mirror-sign-title strong{font-size:2rem}
  body.france-mirror-home .france-mirror-paper{margin-left:8px;margin-right:8px;padding:.5rem .65rem}
  body.france-mirror-home .france-mirror-paper a{grid-template-columns:40px 1fr;gap:.55rem;min-height:57px;font-size:1rem}
  body.france-mirror-home .france-mirror-icon{width:34px;height:34px;font-size:.9rem}
  body.france-mirror-home .france-mirror-lantern{display:none}
}
@media (max-width:430px){
  body.france-mirror-home .france-mirror-visual{min-height:540px}
  body.france-mirror-home .france-mirror-sign{width:82%}
  body.france-mirror-home .france-mirror-mascot{left:-8%;bottom:4.8rem;width:47%}
  body.france-mirror-home .france-mirror-paper a{font-size:.94rem}
}


/* V149 - Explore / Discover links */
.culture-card-cta,
.discover-portal-link{
  display:inline-flex!important;
  align-items:center;
  width:max-content;
  font-size:.84rem!important;
  line-height:1.15!important;
  font-weight:750!important;
  letter-spacing:.01em!important;
  padding:.28rem .46rem!important;
  margin-top:.55rem!important;
  border-radius:7px;
  color:#ff5b5b!important;
  background:transparent!important;
  transition:color .16s ease, background-color .16s ease, transform .16s ease!important;
}
.culture-card:hover .culture-card-cta,
.culture-card:focus-within .culture-card-cta,
.discover-portal:hover .discover-portal-link,
.discover-portal:focus-within .discover-portal-link{
  color:#39dfca!important;
  background:rgba(57,223,202,.09)!important;
  transform:translateX(2px);
}
@media(max-width:600px){
  .culture-card-cta,
  .discover-portal-link{
    font-size:.79rem!important;
    padding:.25rem .4rem!important;
  }
}


/* V152 — 5 niveaux directement sous "Toutes les leçons" */
.nav-levels-v152{
  display:grid;
  grid-template-columns:1fr;
  gap:.22rem;
  margin:-.1rem .72rem .55rem 3.85rem;
  padding:.42rem 0 .58rem;
  border-bottom:1px solid rgba(93,117,158,.2);
}
.nav-level-link{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.7rem;
  min-height:38px;
  padding:.42rem .62rem;
  border-radius:9px;
  color:var(--text-muted,#9aa8bf)!important;
  text-decoration:none!important;
  background:transparent;
  transition:background .15s ease,color .15s ease,transform .15s ease;
}
.nav-level-link:hover{
  color:var(--text,#f4f7fb)!important;
  background:rgba(45,212,191,.08);
  transform:translateX(3px);
}
.nav-level-link:focus-visible{
  outline:2px solid var(--accent-teal,#2dd4bf);
  outline-offset:1px;
}
.nav-level-main{
  display:flex;
  flex-direction:column;
  min-width:0;
  gap:.02rem;
}
.nav-level-main strong{
  color:inherit;
  font-size:.79rem;
  line-height:1.15;
  font-weight:800;
}
.nav-level-desc{
  max-width:180px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:.64rem;
  line-height:1.2;
  opacity:.74;
}
.nav-level-cefr{
  flex:0 0 auto;
  min-width:45px;
  padding:.18rem .34rem;
  border:1px solid rgba(45,212,191,.22);
  border-radius:999px;
  color:var(--accent-teal,#2dd4bf);
  background:rgba(45,212,191,.055);
  font-size:.62rem;
  font-weight:850;
  text-align:center;
}
.nav-level-link:hover .nav-level-cefr{
  border-color:rgba(45,212,191,.5);
  background:rgba(45,212,191,.12);
}
@media(max-width:900px){
  .nav-levels-v152{
    margin-left:2.7rem;
    margin-right:.45rem;
  }
}


/* V157 - slider villes : rendu robuste + adaptation aux images */
body.discover-premium-city .city-slider{
  position:relative!important;
  display:block!important;
  width:100%!important;
  height:auto!important;
  min-height:0!important;
  aspect-ratio:var(--city-slider-ratio, 12 / 5)!important;
  overflow:hidden!important;
  margin:0 0 .65rem!important;
  border-radius:26px!important;
  border:1px solid rgba(93,137,177,.35)!important;
  background:#071321!important;
  box-shadow:0 24px 58px rgba(0,0,0,.28)!important;
}
body.discover-premium-city .city-slider:after{
  content:"";
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
  background:linear-gradient(180deg,transparent 58%,rgba(3,12,22,.68) 100%);
}
body.discover-premium-city .city-slider-viewport,
body.discover-premium-city .city-slider-track,
body.discover-premium-city .city-slider-slide{
  width:100%!important;
  height:100%!important;
}
body.discover-premium-city .city-slider-viewport{
  position:relative!important;
  overflow:hidden!important;
}
body.discover-premium-city .city-slider-track{
  display:flex!important;
  transition:transform .5s cubic-bezier(.22,.61,.36,1)!important;
  will-change:transform;
}
body.discover-premium-city .city-slider-slide{
  position:relative!important;
  flex:0 0 100%!important;
  margin:0!important;
  overflow:hidden!important;
  background:#071321!important;
}
body.discover-premium-city .city-slider-slide .city-photo{
  position:relative!important;
  inset:auto!important;
  z-index:1!important;
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  max-height:none!important;
  object-fit:contain!important;
  object-position:center center!important;
  margin:0!important;
  border-radius:0!important;
}
body.discover-premium-city .city-slider-caption{
  position:absolute!important;
  left:1.1rem!important;
  right:5rem!important;
  bottom:1rem!important;
  z-index:4!important;
  display:flex!important;
  flex-direction:column!important;
  gap:.18rem!important;
  color:#fff!important;
  text-shadow:0 2px 12px rgba(0,0,0,.7)!important;
  pointer-events:none;
}
body.discover-premium-city .city-slider-control{
  position:absolute!important;
  z-index:5!important;
  top:50%!important;
  width:42px!important;
  height:42px!important;
  display:grid!important;
  place-items:center!important;
  padding:0!important;
  border:1px solid rgba(255,255,255,.28)!important;
  border-radius:999px!important;
  background:rgba(5,14,25,.68)!important;
  color:#fff!important;
  font-size:1.25rem!important;
  line-height:1!important;
  cursor:pointer!important;
  transform:translateY(-50%)!important;
}
body.discover-premium-city .city-slider-control:hover{
  background:rgba(45,212,191,.88)!important;
  border-color:#2dd4bf!important;
}
body.discover-premium-city .city-slider-prev{left:.8rem!important}
body.discover-premium-city .city-slider-next{right:.8rem!important}
body.discover-premium-city .city-slider-dots{
  position:absolute!important;
  z-index:5!important;
  right:1rem!important;
  bottom:1rem!important;
  display:flex!important;
  align-items:center!important;
  gap:.34rem!important;
}
body.discover-premium-city .city-slider-dot{
  width:8px!important;
  height:8px!important;
  min-width:0!important;
  min-height:0!important;
  padding:0!important;
  border:0!important;
  border-radius:999px!important;
  background:rgba(255,255,255,.5)!important;
}
body.discover-premium-city .city-slider-dot.is-active{
  width:24px!important;
  background:#2dd4bf!important;
}
body.discover-premium-city .city-slider-counter{
  position:absolute!important;
  z-index:5!important;
  top:.85rem!important;
  right:.9rem!important;
  padding:.28rem .48rem!important;
  border:1px solid rgba(255,255,255,.2)!important;
  border-radius:999px!important;
  background:rgba(5,14,25,.62)!important;
  color:#fff!important;
  font-size:.68rem!important;
  font-weight:800!important;
}
@media(max-width:760px){
  body.discover-premium-city .city-slider{
    aspect-ratio:4 / 3!important;
    border-radius:18px!important;
  }
  body.discover-premium-city .city-slider-control{width:38px!important;height:38px!important}
}
@media(prefers-reduced-motion:reduce){
  body.discover-premium-city .city-slider-track{transition:none!important}
}


/* V196 : soutien discret via Buy Me a Coffee */
.main-nav .nav-coffee-v196{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  align-self:center;
  min-height:36px;
  padding:.5rem .85rem;
  margin-left:.25rem;
  border:1px solid rgba(244,63,94,.72);
  border-radius:999px;
  color:#ffe5ee!important;
  background:linear-gradient(135deg,rgba(190,24,93,.22),rgba(244,63,94,.11));
  box-shadow:0 0 0 1px rgba(244,63,94,.08),0 7px 22px rgba(190,24,93,.16);
  font-weight:800;
  text-decoration:none;
  white-space:nowrap;
}
.main-nav .nav-coffee-v196::after{display:none!important}
.main-nav .nav-coffee-v196:hover,
.main-nav .nav-coffee-v196:focus-visible{
  color:#fff!important;
  border-color:#fb7185;
  background:linear-gradient(135deg,rgba(190,24,93,.34),rgba(244,63,94,.18));
  box-shadow:0 0 20px rgba(244,63,94,.18);
}
.support-coffee-v196{
  max-width:900px;
  margin:2.25rem auto 2.75rem;
  padding:1.15rem 1.25rem;
  border:1px solid rgba(244,63,94,.3);
  border-radius:18px;
  background:
    radial-gradient(circle at 88% 18%,rgba(244,63,94,.11),transparent 30%),
    rgba(255,255,255,.025);
}
.support-coffee-v196 .support-coffee-inner{
  display:grid;
  grid-template-columns:1fr auto;
  gap:1rem 1.25rem;
  align-items:center;
}
.support-coffee-v196 .support-coffee-copy{min-width:0}
.support-coffee-v196 .support-coffee-eyebrow{
  margin:0 0 .25rem;
  color:#fb7185;
  font-weight:800;
  font-size:.72rem;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.support-coffee-v196 h2{
  margin:.05rem 0 .38rem;
  font-size:clamp(1.15rem,2vw,1.45rem);
}
.support-coffee-v196 p{
  margin:0;
  max-width:68ch;
  line-height:1.58;
}
.support-coffee-v196 .support-coffee-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:.72rem 1rem;
  border:1px solid #fb7185;
  border-radius:999px;
  background:linear-gradient(135deg,#be185d,#e11d48);
  color:#fff!important;
  font-weight:800;
  text-decoration:none;
  white-space:nowrap;
  box-shadow:0 8px 22px rgba(190,24,93,.22);
}
.support-coffee-v196 .support-coffee-btn:hover,
.support-coffee-v196 .support-coffee-btn:focus-visible{
  transform:translateY(-1px);
  box-shadow:0 10px 26px rgba(190,24,93,.3);
}
@media(max-width:1100px){
  .main-nav .nav-coffee-v196{font-size:.78rem;padding:.45rem .65rem}
}
@media(max-width:760px){
  .support-coffee-v196 .support-coffee-inner{grid-template-columns:1fr}
  .support-coffee-v196 .support-coffee-btn{justify-self:start}
  .main-nav .nav-coffee-v196{
    width:100%;
    margin:.35rem 0 0;
    border-radius:10px;
  }
}
@media(prefers-reduced-motion:reduce){
  .support-coffee-v196 .support-coffee-btn{transition:none}
}


/* V206 — switch apprentissage hors header, rail gauche au-dessus de l'aide */
@media (min-width: 821px){
  .site-switcher{
    position:fixed!important;
    left:0!important;
    right:auto!important;
    top:calc(50% - 92px)!important;
    z-index:94!important;
    margin:0!important;
    max-width:min(320px,calc(100vw - 24px));
  }
  .site-switcher-inner{
    border-radius:0 14px 14px 0!important;
    box-shadow:6px 8px 24px rgba(0,0,0,.38)!important;
  }
  .site-guide-btn{
    left:0!important;
    right:auto!important;
    border-radius:0 999px 999px 0!important;
    padding:.5rem .5rem .5rem 1rem!important;
    box-shadow:6px 6px 22px rgba(0,0,0,.4)!important;
  }
  .site-guide-btn:hover{transform:translateY(-50%) translateX(4px)!important}
  .header-tools{min-width:0!important}
}
