/* Rallypac — variante « cuir noir » de la deuxième version (chargée après modern.css quand site_theme() vaut « noir »).
   Même mise en page et mêmes couleurs du logo ; seul le fond passe en cuir noir grainé (assets/leather-noir.webp, généré
   par le script leather2.py : grain fin + gros grain + plis + pores + reflet satiné) et le texte posé dessus passe en clair. */
.th-noir {
  /* cuir noir au grain fin (12/11, demande de l'utilisateur) : tuile 1024 px affichée en 512 px (outils-textures/leather_fin.py) */
  --bg-tex: url("leather-noir-fin.webp") 0 0 / 512px 512px repeat, #181717;
  --bg: #181717; --bg-2: #201F1E;
  --ink: #F2EEE6; --ink-soft: #CBC4B8;
  --border: rgba(255, 255, 255, 0.14); --border-2: rgba(255, 255, 255, 0.28);
  color-scheme: dark;
}
/* fond « siège en cuir » (générés par le script seat.py : rembourrage, coutures creusées, surpiqûre rouge du logo, grain) */
.th-siege, .th-matelasse {
  --bg: #181717; --bg-2: #201F1E; --ink: #F2EEE6; --ink-soft: #CBC4B8;
  --border: rgba(255, 255, 255, 0.14); --border-2: rgba(255, 255, 255, 0.28); color-scheme: dark;
}
.th-siege { --bg-tex: url("seat-boudins.webp") 0 0 / 512px 512px repeat, #181717; }
.th-matelasse { --bg-tex: url("seat-losanges.webp") 0 0 / 512px 512px repeat, #181717; }
.th-siege .rp-stage::before, .th-matelasse .rp-stage::before { background: radial-gradient(ellipse 72% 80% at 50% 56%, transparent 70%, rgba(24, 23, 23, 0.6) 100%) !important; }
.th-siege .eyebrow, .th-matelasse .eyebrow, .th-siege .demo-band .rp-caption, .th-matelasse .demo-band .rp-caption { background: rgba(14, 13, 13, 0.75); color: var(--ink-soft); border-color: rgba(255, 255, 255, 0.22); }
.th-siege .flag, .th-matelasse .flag { background: rgba(255, 255, 255, 0.12); }
.th-siege .webui-section .btn-ghost, .th-matelasse .webui-section .btn-ghost { background: rgba(14, 13, 13, 0.75); }
.th-siege .model, .th-siege .compat-col, .th-siege .g-card, .th-siege .faq details, .th-siege .reassure > div, .th-siege .rp-live, .th-siege .panel,
.th-matelasse .model, .th-matelasse .compat-col, .th-matelasse .g-card, .th-matelasse .faq details, .th-matelasse .reassure > div, .th-matelasse .rp-live, .th-matelasse .panel {
  box-shadow: 0 26px 50px -24px rgba(0, 0, 0, 0.9);
}
/* sur un fond aussi chargé, le texte posé directement sur le cuir reçoit un léger halo sombre pour rester lisible */
.th-siege .section-head p, .th-matelasse .section-head p, .th-siege .compat-note p, .th-matelasse .compat-note p,
.th-siege .section-head h2, .th-matelasse .section-head h2,
.th-siege .demo-top h1, .th-matelasse .demo-top h1, .th-siege .demo-top .launch-price, .th-matelasse .demo-top .launch-price { text-shadow: 0 1px 2px rgba(0, 0, 0, 0.9), 0 0 12px rgba(0, 0, 0, 0.8); }

.th-noir ::selection { background: rgba(141, 38, 50, 0.6); color: #FFFFFF; }
.th-noir .rp-stage::before { background: radial-gradient(ellipse 72% 80% at 50% 56%, transparent 70%, rgba(24, 23, 23, 0.6) 100%) !important; }
.th-noir .eyebrow { background: rgba(255, 255, 255, 0.06); color: var(--ink-soft); border-color: rgba(255, 255, 255, 0.22); }
.th-noir .flag { background: rgba(255, 255, 255, 0.12); }
.th-noir .webui-section .btn-ghost:hover, .th-noir .hero .btn-ghost:hover { background: rgba(255, 255, 255, 0.08); }
.th-noir .demo-band .rp-caption { color: var(--ink-soft); background: rgba(255, 255, 255, 0.05); border-color: rgba(255, 255, 255, 0.2); }
/* encadrés bleus : une ombre plus marquée pour qu'ils se détachent du cuir sombre */
.th-noir .model, .th-noir .compat-col, .th-noir .g-card, .th-noir .faq details, .th-noir .reassure > div, .th-noir .rp-live, .th-noir .panel {
  box-shadow: 0 26px 50px -24px rgba(0, 0, 0, 0.85);
}

/* haut de page sans fond (12/11) sur cuir sombre : titre en clair (le rouge du logo y serait illisible), ombre plus marquée */
.th-noir .hero-v3 h1, .th-siege .hero-v3 h1, .th-matelasse .hero-v3 h1 { color: var(--ink); }
.th-noir .hero-v3 .btn-ghost:hover, .th-siege .hero-v3 .btn-ghost:hover, .th-matelasse .hero-v3 .btn-ghost:hover { background: rgba(255, 255, 255, 0.1); }
.th-noir .hv-frame, .th-siege .hv-frame, .th-matelasse .hv-frame { border-color: rgba(255, 255, 255, 0.14); box-shadow: 0 30px 60px -28px rgba(0, 0, 0, 0.9); }
.th-noir .hv-offer, .th-siege .hv-offer, .th-matelasse .hv-offer { box-shadow: 0 26px 50px -24px rgba(0, 0, 0, 0.9); }
/* siège / matelassé : léger halo sombre sous le texte posé directement sur le cuir, comme les autres titres */
.th-siege .hero-v3 h1, .th-matelasse .hero-v3 h1, .th-siege .hv-lead, .th-matelasse .hv-lead,
.th-siege .hv-points li, .th-matelasse .hv-points li, .th-siege .hero-v3 .hero-note, .th-matelasse .hero-v3 .hero-note { text-shadow: 0 1px 2px rgba(0, 0, 0, 0.9), 0 0 12px rgba(0, 0, 0, 0.8); }
.th-siege .hero-v3 .btn-ghost, .th-matelasse .hero-v3 .btn-ghost { background: rgba(14, 13, 13, 0.75); }
