/* ============================================================
   ASTRO.CSS · Fondation unique de stephane-astro.com
   ------------------------------------------------------------
   Un composant, deux thèmes. Toute couleur, toute typographie,
   tout état visuel part d'ici. Les pages déclarent leur thème
   une seule fois : <html data-theme="light"> ou "dark".
   Règles : aucune couleur en dur hors de ce fichier, aucun
   !important, aucune italique, aucun eyebrow.
   Chaque paire texte/fond ci-dessous est validée >= 4.5:1
   (>= 3:1 en grand corps) par tools/astro-contrast.mjs.
   ============================================================ */

/* ---------- 1. TOKENS ---------- */
:root,
[data-theme="light"] {
  color-scheme: light;
  --bg:            #FAF8F4;
  --bg-2:          #F3EFE8;
  --surface:       #FFFFFF;
  --surface-2:     #F3EFE8;
  --surface-3:     #EAE4D9;
  --surface-hover: #F6F1E7;
  --glass:         rgba(255,255,255,.82);
  --ink:           #16130E;
  --ink-2:         #3F3A31;
  --ink-3:         #5C554A;
  --ink-4:         #665F53;
  --line:          rgba(22,19,14,.14);
  --line-2:        rgba(22,19,14,.26);
  --gold:          #7F6027;
  --gold-2:        #5E461C;
  --gold-fill:     #C9A24C;
  --gold-fill-2:   #D9B65C;
  --on-gold:       #14110A;
  --gold-tint:     rgba(201,162,76,.14);
  --gold-line:     rgba(201,162,76,.45);
  --danger:        #9A2F35;
  --danger-tint:   rgba(154,47,53,.10);
  --on-danger:     #FFFFFF;
  --ok:            #2E6B3E;
  --info:          #2F5C99;
  --el-feu:        #A8431B;
  --el-terre:      #3F6127;
  --el-air:        #74600B;
  --el-eau:        #2B5590;
  --focus:         rgba(127,96,39,.45);
  --scrim:         rgba(8,7,14,.82);
  --scrim-soft:    rgba(8,7,14,.38);
  --on-photo:      #F6F2E8;
  --on-photo-2:    rgba(246,242,232,.86);
  --on-photo-gold: #E4C07E;
  --photo-shadow:  0 1px 3px rgba(0,0,0,.55);
  --shadow:        0 10px 30px -18px rgba(22,19,14,.35);
  --nav-bg:        rgba(250,248,244,.9);
  --nav-line:      rgba(22,19,14,.12);
  --sheet-bg:      #FAF8F4;
  --tooltip-bg:    #16130E;
  --tooltip-ink:   #FAF8F4;
  --code-bg:       #F3EFE8;
  --autofill-bg:   #FFFFFF;
  --modal-bg:      #FAF8F4;
  --footer-bg:     #F3EFE8;
  --backdrop:      rgba(22,19,14,.55);
  --danger-hover:  #9A2F35;
  --radius-s: 4px;
  --radius-m: 6px;
  --radius-l: 8px;
}

[data-theme="dark"] {
  color-scheme: dark;
  --bg:            #05040d;
  --bg-2:          #0c0a18;
  --surface:       rgba(18,14,34,.55);
  --surface-2:     rgba(24,19,44,.62);
  --surface-3:     rgba(30,24,54,.7);
  --surface-hover: rgba(228,192,126,.10);
  --glass:         rgba(18,14,34,.55);
  --ink:           #F6F2E8;
  --ink-2:         #D9D4C9;
  --ink-3:         #B8B2A6;
  --ink-4:         #9A9489;
  --line:          rgba(246,242,232,.14);
  --line-2:        rgba(246,242,232,.28);
  --gold:          #E4C07E;
  --gold-2:        #F3D89B;
  --gold-fill:     #E4C07E;
  --gold-fill-2:   #F3D89B;
  --on-gold:       #0a0612;
  --gold-tint:     rgba(228,192,126,.12);
  --gold-line:     rgba(228,192,126,.45);
  --danger:        #FFB3B3;
  --danger-tint:   rgba(180,60,60,.16);
  --on-danger:     #1a0a0a;
  --ok:            #9BD8A6;
  --info:          #9CC3F0;
  --el-feu:        #F08A5A;
  --el-terre:      #9CCB74;
  --el-air:        #EBD077;
  --el-eau:        #8FB9F0;
  --focus:         rgba(228,192,126,.45);
  --scrim:         rgba(5,4,13,.86);
  --scrim-soft:    rgba(5,4,13,.42);
  --on-photo:      #F6F2E8;
  --on-photo-2:    rgba(246,242,232,.86);
  --on-photo-gold: #E4C07E;
  --photo-shadow:  0 1px 3px rgba(0,0,0,.55);
  --shadow:        0 30px 70px -40px rgba(0,0,0,.85);
  --nav-bg:        rgba(10,7,20,.55);
  --nav-line:      rgba(246,242,232,.12);
  --sheet-bg:      #0a0715;
  --tooltip-bg:    rgba(10,7,20,.97);
  --tooltip-ink:   #F6F2E8;
  --code-bg:       rgba(18,14,34,.7);
  --autofill-bg:   #14101f;
  --modal-bg:      #100d1f;
  --footer-bg:     rgba(5,4,13,.6);
  --backdrop:      rgba(4,5,13,.66);
  --danger-hover:  rgba(180,60,60,.32);
  --radius-s: 8px;
  --radius-m: 12px;
  --radius-l: 18px;
}

/* Polices : les trois seules familles du site */
:root {
  --font-serif: 'Fraunces', 'Cormorant Garamond', Georgia, serif;
  --font-sans:  'Hanken Grotesk', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-mono:  'IBM Plex Mono', ui-monospace, 'SFMono-Regular', Menlo, monospace;
  --font-glyph: 'DejaVu Sans', 'Segoe UI Symbol', 'Apple Symbols', 'Noto Sans Symbols2', 'Symbola', sans-serif;
  --radius-pill: 999px;
  --ease: cubic-bezier(.2,.8,.2,1);
  /* Tokens de géométrie référencés par layout.css (anciennement définis par design-system.css) */
  --max-width: 1440px;
  --container-max: 1440px;
  --text-width: 680px;
  --gutter: clamp(1.25rem, 4vw, 2.5rem);
  --section-y: clamp(5rem, 10vw, 9rem);
  --transition: .35s cubic-bezier(.2, 0, .2, 1);
  --sbEase: cubic-bezier(.2, .8, .2, 1);
  --safe-top: env(safe-area-inset-top, 0px);
  --safe-bottom: env(safe-area-inset-bottom, 0px);
}


/* Alias de compatibilité (référencés par le CSS inline conservé de la home) : suivent les tokens du thème */
:root { --r-fg: var(--ink); --r-fg-dim: var(--ink-2); --r-fg-mute: var(--ink-3); --r-fg-line: var(--line); --r-fg-line-strong: var(--line-2); --r-gold: var(--gold); --r-gold-bright: var(--gold-2); --r-gold-deep: var(--gold-2); --r-bg-0: var(--bg); --r-bg-1: var(--surface); --r-bg-2: var(--surface-2); --r-bg-3: var(--surface-3); --r-serif: var(--font-serif); --r-sans: var(--font-sans); --r-mono: var(--font-mono); --lx-surfa-86: var(--sheet-bg); }

/* ---------- 2. BASE ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { background: var(--bg); -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: var(--font-sans);
  font-size: 1rem;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
[data-theme="dark"] body { background: transparent; }

/* Zéro italique, partout, sans exception. */
html, html *, html *::before, html *::after { font-style: normal; }
em, i, cite, dfn, var, address, blockquote { font-style: normal; }
em { color: var(--gold); }

/* Zéro eyebrow. */
.meta-label, .cn-meta-label, #celebs-crit-eyebrow, .eyebrow, .kicker,
.cta-after-chart::before, .cn-step-num, .pr-how-num, .pillar-num { display: none; }
/* Vrais libellés (pas des eyebrows) : réaffichés en libellé courant. */
.chart-meta-row .meta-label, .meta-label.birth-bornon { display: inline; font-family: var(--font-sans); font-size: .92rem; font-weight: 400; letter-spacing: 0; text-transform: none; color: var(--ink-3); }
.chart-meta-row { border-left-width: 1px; background: var(--surface); border-radius: var(--radius-m); }
.chart-meta-row strong { color: var(--ink); font-weight: 500; }

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-serif);
  font-weight: 300;
  color: var(--ink);
  letter-spacing: -0.02em;
  line-height: 1.12;
  margin: 0 0 .6em;
  text-transform: none;
  text-wrap: balance;
}
h1 { font-size: clamp(2.2rem, 5vw, 3.6rem); }
h2 { font-size: clamp(1.7rem, 3.4vw, 2.4rem); }
h3 { font-size: clamp(1.3rem, 2.4vw, 1.7rem); }
h4 { font-size: 1.12rem; font-weight: 400; letter-spacing: 0; }
h5, h6 { font-size: 1rem; font-family: var(--font-sans); font-weight: 600; letter-spacing: 0; }
h1 em, h2 em, h3 em { color: var(--gold); }

p { margin: 0 0 1em; color: var(--ink); }
p, li, td, th, dd, dt, label, figcaption, summary, legend, small, span, div { text-wrap: pretty; }
small, .small, .hint, .sub, .meta, .caption, .lead-sub { color: var(--ink-3); }
.lead { color: var(--ink-2); font-size: 1.08rem; }
strong, b { font-weight: 600; color: inherit; }
hr { border: 0; border-top: 1px solid var(--line); margin: 2rem 0; }
code, kbd, pre { font-family: var(--font-mono); background: var(--code-bg); color: var(--ink); border-radius: var(--radius-s); }
code { padding: .1em .35em; font-size: .92em; }
pre { padding: 1rem; overflow: auto; }
blockquote { margin: 1.5rem 0; padding: 0 0 0 1.2rem; border-left: 2px solid var(--gold-line); color: var(--ink-2); }
img, svg, video { max-width: 100%; height: auto; }
::selection { background: var(--gold-tint); color: var(--ink); }
:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; border-radius: var(--radius-s); }

a { color: var(--gold); text-decoration: none; transition: color .18s var(--ease); }
a:hover { color: var(--gold-2); }
a.plain, .card a, .celeb-card, .celeb-card * , .profil-card-title, .aff-card { color: inherit; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms; animation-iteration-count: 1; transition-duration: .001ms; scroll-behavior: auto; }
}

/* ---------- 2b. PONT HÉRITÉ : surfaces des anciennes feuilles, ré-exprimées en rôles + tokens ----------
   Généré depuis l'inventaire des sélecteurs porteurs de fond. Les peaux dédiées (sections 3+) priment. */
#main,
.bg-mesh,
.bg-mesh-blob-1,
.bg-mesh-blob-2,
.bg-mesh-blob-3,
.bg-mesh-blob-4,
.booking-embed,
.brand-astro,
.brand-sep,
.calendly-inline-widget,
.celebs-hero-sky,
.chart-table td,
.chart-table th,
.cn-hero,
.container,
.divider,
.dominantes-table thead th,
.home-sky-moon,
.hv-ghost,
.long-read,
.natal-wheel,
.nav-links,
.nav-toggle span,
.portrait,
.side-menu,
.site-nav,
.space-toolbar,
.theme-hero,
.v5-brand-astro,
.v5-brand-sep,
[data-scrolltop],
main,
section,
video {
  background: transparent;
}

#celebs-search .cx-search-input,
#celebs-search input.cx-search-input,
#home-gallery-input,
#packs-preview,
#planet-detail .planet-detail-text,
#testimonials,
#three-results .r-dom-card,
#three-results .r-planet,
.aff-accordions .aff-family > summary,
.aff-block-families .aff-family > summary,
.aff-block-top3,
.aff-block-top3 .aff-card,
.aff-card,
.aff-card-photo,
.aff-family > summary,
.affinites-wrap,
.approche-v6 .approche-card,
.article-body code,
.articles-sidebar,
.articles-sidebar #articleSearch,
.aspect-detail,
.aspect-trans-mark,
.auth-aside,
.auth-banner,
.auth-banner.is-err,
.auth-banner.is-info,
.auth-banner.is-ok,
.auth-card,
.auth-error,
.auth-form,
.auth-reset-card,
.auth-reset-modal,
.birth-form,
.booking-fallback,
.bsm-chapter,
.bsm-chapter-aspect-note,
.bsm-chapter-conseil,
.bsm-chapter-keywords li,
.bsm-chapter-touche,
.bsm-empty,
.bsm-form,
.bsm-form input[type="date"],
.bsm-form input[type="text"],
.bsm-form input[type="time"],
.bsm-period-peak,
.bsm-share-card,
.bsm-upsell-card,
.cap-card,
.card,
.cdj-city-input,
.cdj-panel,
.cdj-picker,
.cdj-select,
.chart-card,
.chart-meta-row,
.chart-select,
.chart-table,
.ciel-hero,
.ciel-hero-compact,
.cma-archetype-card,
.cma-field input[type="date"],
.cma-field input[type="text"],
.cma-field input[type="time"],
.cma-force-item,
.cma-forces-empty,
.cma-form,
.cma-ombre-box,
.cma-person-card,
.cma-person-card legend,
.cma-place-autocomplete .place-suggestions,
.cma-score-card,
.cma-share-card,
.cma-solar-warning,
.cn-auth-tabs,
.cn-card-flat-gold,
.cn-card-photo-fond,
.cn-celeb-card-photo,
.cn-eyebrow-meta-line,
.cn-liquid-glass,
.cn-liquid-glass-card,
.cn-liquid-glass-card .compte-zone-commandes > *,
.cn-liquid-glass-card .empty-state,
.cn-liquid-glass-card .palazzo-bloc-card,
.cn-liquid-glass-card.cn-glass-keep,
.cn-liquid-glass-strong,
.cn-modal,
.cn-modal-body,
.cn-modal-close,
.cn-section-veil,
.cn-toggle-group,
.commande-card,
.compte-accordion,
.compte-zone .empty-state,
.crois-block,
.crois-body blockquote,
.crois-body hr.crois-sep,
.crois-readmore,
.cx-grid .celeb-card-photo,
.cx-search-field,
.demo-banner,
.dominantes-card,
.dominantes-card-strong,
.dominantes-panel,
.email-gate,
.fam-card,
.fam-field input[type="date"],
.fam-field input[type="text"],
.fam-field input[type="time"],
.fam-form,
.fam-form-msg.is-err,
.fam-keyword,
.fam-link-card,
.fam-link-selector .fam-link-card,
.fam-person-card,
.fam-place-autocomplete .place-suggestions,
.fam-score-card,
.fam-share-card,
.fam-share-keywords li,
.fam-signed-note,
.fam-solar-warning,
.fam-source-saved select,
.form-group input,
.form-group select,
.form-group textarea,
.form-msg.is-err,
.form-msg.is-ok,
.fx-rodden-code,
.google-map-wrap,
.google-review-card,
.gr-card,
.gr-head,
.grimoire-aspect-pair,
.grimoire-aspect-pair blockquote,
.grimoire-card,
.grimoire-card-air,
.grimoire-card-angle,
.grimoire-card-aspect-fluide,
.grimoire-card-aspect-neutre,
.grimoire-card-aspect-tendu,
.grimoire-card-croisement,
.grimoire-card-eau,
.grimoire-card-feu,
.grimoire-card-maison,
.grimoire-card-planete-maison,
.grimoire-card-terre,
.grimoire-grid-planetes .grimoire-card,
.grimoire-head-air,
.grimoire-head-eau,
.grimoire-head-feu,
.grimoire-head-terre,
.grimoire-pm-card,
.grimoire-pm-parchemin .grimoire-pm-card,
.grimoire-subcard,
.hb-card,
.hero-v2-meta .line,
.hero-v2-unified,
.hero-visual,
.hero-visual-wheel,
.home-analysis-card,
.home-bf-field input,
.home-birth-form,
.home-faq-item,
.home-gallery-suggest,
.home-sky-block,
.home-toc,
.home-transit-row,
.interp-block,
.liquid-glass,
.liquid-glass-card,
.lunation-card,
.manifesto-band,
.manifesto-band.manifesto-band-parchemin,
.manifesto-band.manifesto-band-parchemin .manifesto-inner .sig span,
.modal-card,
.modal-msg.is-err,
.modal-msg.is-ok,
.next-card,
.nv-liquid-glass,
.nv-liquid-glass-card,
.pa-axis-card,
.pack-card.featured,
.packs-grid-v5 .pack-card,
.packs-grid-v5 .pack-card.featured,
.page-header-meta .middle-line,
.palazzo-bloc-card,
.palazzo-bloc-card.active,
.palazzo-bloc-sub-info,
.palazzo-card,
.palazzo-card-portrait,
.palazzo-card-portrait-fallback,
.panel,
.parchemin-card,
.parchemin-card .crois-body blockquote,
.parcours-card,
.pdf-download-box,
.pl-details,
.pl-select,
.place-suggestions,
.planet-detail,
.planet-detail-aspect,
.planet-detail-text,
.portrait-band,
.portrait-frame,
.profil-card,
.profil-card-gerer,
.profil-card-gerer svg,
.profil-card-head,
.profil-cell-value,
.prog-legend-empty,
.prog-legend-item,
.ra-card,
.ra-form,
.ra-form input[type="date"],
.ra-form input[type="text"],
.ra-form input[type="time"],
.ra-mantra,
.ra-share-card,
.ra-share-ornament,
.reload-saved-chart,
.reload-saved-row select,
.review-card,
.sabian-grid > *,
.save-chart-box,
.save-chart-msg.is-err,
.save-chart-msg.is-info,
.save-chart-msg.is-ok,
.section-card,
.section-veil,
.sg-delete-card,
.sg-delete-card input,
.sg-delete-card textarea,
.sg-delete-export,
.sg-push-accept,
.sg-push-card,
.sg-sticky-pricing,
.share-box,
.share-modal-content,
.share-modal-preview,
.share-sheet-content,
.share-sheet-copy,
.sidebar-search input[type="search"],
.sky-context,
.sky-zone,
.sm-nav a[aria-current="page"],
.solar-chart-banner,
.surface,
.surface-dark,
.surface-light,
.syn-field input[type="date"],
.syn-field input[type="text"],
.syn-field input[type="time"],
.syn-field select,
.syn-form,
.syn-form-msg.is-err,
.syn-key-item,
.syn-keys-empty,
.syn-person-card,
.syn-place-autocomplete .place-suggestions,
.syn-score-card,
.syn-solar-warning,
.syn-wheel-container,
.t-card,
.t-state.is-exact,
.testi-card,
.testimonial-card,
.tfc,
.tfc-field input,
.tfc-field select,
.tfc-field-saved select,
.tfc-split-field input:not(#birth-form input),
.theme-actions-bar,
.theme-form-card,
.theme-form-card .place-suggestions,
.theme-hero-glow,
.three-fab,
.three-fab.is-on,
.three-sheet-handle,
.three-sidebar,
.three-sidebar .three-sep,
.tla-card,
.tla-crosssell,
.tla-form,
.tla-form input[type="date"],
.tla-form input[type="text"],
.tla-form input[type="time"],
.tla-share-card,
.toast,
.transit-card,
.transit-state.is-exact,
.transits-toggle-box,
.trinite-card,
.trinite-card[data-body="dialogue"],
.trinite-form,
.trinite-form input[type="date"],
.trinite-form input[type="text"],
.trinite-form input[type="time"],
.trinite-share-card,
.voyage-modal-close,
.wheel-birth-info,
.wheel-params,
[role="alert"]:not([hidden]),
input[aria-invalid="true"],
input[type="date"],
input[type="email"],
input[type="text"],
input[type="time"],
select,
select option,
textarea,
textarea[aria-invalid="true"] {
  background: var(--surface); border-color: var(--line); color: var(--ink); box-shadow: none;
}

.account-form,
.aff-count,
.aff-pill,
.bsm-method-pill,
.cma-solar-pill,
.commande-icon,
.dir-tag.applying,
.dir-tag.exact,
.dir-tag.separating,
.fam-person-label,
.fam-solar-pill,
.filter-badge,
.gr-avatar-placeholder,
.grimoire-pillar,
.hb-card-glyphs,
.nav-badge,
.plan-badge[data-popular],
.pr-price-badge-warm,
.pricing-badge-popular,
.profil-card-solar-pill,
.profil-cell-glyph,
.profil-pill,
.profil-pill-icon,
.prog-legend-tag,
.radio-pill,
.sg-premium-badge,
.share-sheet-icon,
.sm-account[aria-current="page"],
.solar-chart-pill,
.syn-person-label,
.syn-solar-pill,
.syn-verdict-label,
.syn-verdict-label.sn-verdict-good,
.syn-verdict-label.sn-verdict-hard,
.syn-verdict-label.sn-verdict-neutral,
.syn-verdict-label.sn-verdict-strong,
.syn-verdict-label.sn-verdict-tense,
.syn-wheel-legend-inner .syn-wheel-dot,
.tfc-pill,
.theme-hero-tag .tag-tick {
  background: var(--surface-2); border-color: var(--line); color: var(--ink-2);
}

.articles-sidebar::-webkit-scrollbar-thumb,
.cma-score-ring,
.cma-share-score-ring,
.fam-score-ring,
.orb-meter,
.progressions-control input[type="date"],
.progressions-meta,
.progressions-panel,
.progressions-toggle > summary,
.side-menu::-webkit-scrollbar-thumb,
.syn-score-ring,
.tfc-ticks i,
.transits-switch-slider {
  background: var(--gold-fill); border-color: var(--gold-line);
}

.back-to-top,
.btn-danger,
.btn-ghost,
.btn-primary,
.btn-scrolltop,
.btn-secondary,
.btn.btn-primary,
.cdj-panel-cta,
.cdj-reset-btn,
.cdj-unit-btn.is-on,
.celeb-relais-actions .btn-gold,
.celeb-sticky-cta,
.celeb-sticky-cta a,
.chart-export-btn,
.cma-cta,
.cn-btn-primary,
.cn-btn-primary.cn-liquid-glass-strong,
.ds-btn-primary,
.fam-cta,
.gr-cta,
.grimoire-cta-aspects-glyphs,
.grimoire-cta-band,
.grimoire-cta-card,
.grimoire-cta-glyphs,
.grimoire-cta-romans,
.grimoire-cta-sabians,
.home-bf-submit,
.hv-cta,
.palazzo-bloc-btn,
.palazzo-card-cta,
.ra-cta,
.sg-apple-btn,
.sg-apple-btn--white,
.sg-btn-danger,
.sg-btn-danger:disabled,
.sg-google-btn,
.sg-google-btn--dark,
.sg-sticky-pricing-cta,
.share-modal-btn-primary,
.share-sheet-btn,
.share-sheet-image-block .share-modal-btn,
.syn-cta,
.tarif-cta--gold,
.tfc-cta,
.tla-form-submit .btn-primary,
.transits-toggle-btn,
.transits-toggle-btn[aria-pressed="true"],
.video-pause-btn,
button.btn-danger,
input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="submit"]):not([type="button"]):not([type="hidden"]) {
  color: var(--gold); background: transparent; border-color: var(--gold-line);
}

.articles-page .cat-btn.is-active,
.articles-page .cat-btn:hover,
.articles-sidebar .cat-btn.is-active,
.articles-sidebar .cat-btn:hover,
.back-to-top:focus-visible,
.back-to-top:hover,
.btn-danger:hover,
.btn-ghost:hover,
.btn-primary:hover,
.btn.btn-primary:hover,
.cat-btn.is-active,
.cat-btn:hover,
.cdj-offset-btn:hover,
.cdj-panel-cta:hover,
.cdj-reset-btn:hover:not(:disabled),
.celeb-relais-actions .btn-gold:focus-visible,
.celeb-relais-actions .btn-gold:hover,
.celeb-sticky-cta a:focus-visible,
.celeb-sticky-cta a:hover,
.chart-export-btn:hover,
.cma-cta:hover,
.cn-auth-tabs button.is-active,
.cn-btn-primary:hover,
.cx-loadmore:hover,
.ds-btn-danger:hover,
.ds-btn-ghost:hover,
.ds-btn-primary:hover,
.fam-cta:hover,
.gr-cta a.gr-cta-link:focus-visible,
.gr-cta a.gr-cta-link:hover,
.grimoire-cta-card:focus-visible,
.grimoire-cta-card:hover,
.modal-actions .btn-danger:hover,
.palazzo-bloc-btn.ghost:hover,
.palazzo-bloc-btn:hover,
.palazzo-card-cta:hover,
.sg-apple-btn--white:hover:not(:disabled),
.sg-apple-btn:active:not(:disabled),
.sg-apple-btn:hover:not(:disabled),
.sg-btn-danger:hover:not(:disabled),
.sg-btn-ghost:hover,
.sg-google-btn--dark:hover:not(:disabled),
.sg-google-btn:active:not(:disabled),
.sg-google-btn:hover:not(:disabled),
.share-modal-btn-primary:hover,
.share-sheet-btn:hover,
.share-sheet-image-block .share-modal-btn:hover,
.syn-cta:hover,
.tarif-cta--gold:hover,
.tfc-cta:hover,
.tla-crosssell-cta:hover,
.tla-form-submit .btn-primary:hover,
.transits-toggle-btn:hover,
.video-pause-btn:focus-visible,
.video-pause-btn:hover {
  color: var(--gold-2); background: var(--gold-tint); border-color: var(--gold);
}

#celebs-search .cx-search-input:focus,
.aff-card:focus-visible,
.aff-card:hover,
.article-card:hover,
.article-row:hover,
.cdj-arrow:active,
.cdj-arrow:hover,
.cdj-panel-close:hover,
.cdj-panel-link:hover,
.chart-table tbody tr:hover td,
.chart-table.aspects-table .aspect-row:hover td,
.cma-place-autocomplete .place-suggestions li:hover,
.cn-auth-tabs .cn-auth-tab.is-active,
.cn-toggle-group input:checked + span,
.cn-toggle-group label:has(input:checked),
.contact-card:hover,
.crois-readmore:focus-visible,
.crois-readmore:hover,
.cx-era.is-active,
.cx-search-field:focus-within,
.cx-sign.is-active,
.cx-sign:hover,
.ecrits-card:hover,
.fam-link-card.is-active,
.fam-link-selector .fam-link-card.is-active,
.fam-link-selector .fam-link-card:hover,
.fam-place-autocomplete .place-suggestions li:hover,
.filter-badge-clear:hover,
.grimoire-card-croisement:hover,
.grimoire-card-planete-maison:hover,
.grimoire-card:hover,
.grimoire-grid-planetes .grimoire-card:hover,
.grimoire-pillar-planetes-signes:hover,
.grimoire-pillar:hover,
.grimoire-subcard-toggle:hover,
.hb-card:focus-visible,
.hb-card:hover,
.hg-filter:hover,
.hg-suggest-item:hover,
.home-bf-field input:focus,
.home-tab.is-active,
.lineage-card:hover,
.methode-pillar:hover,
.pack-card:hover,
.packs-grid-v5 .pack-card:hover,
.password-toggle:focus,
.password-toggle:hover,
.place-suggestions li:hover,
.planet-detail-aspect:hover,
.planet-detail-close:hover,
.profil-card-gerer:hover,
.progressions-toggle > summary:hover,
.radio-pill:has(input:checked),
.sg-push-accept:hover,
.sg-push-dismiss:hover,
.share-sheet-copy:hover .share-sheet-icon,
.share-sheet-fb:hover .share-sheet-icon,
.share-sheet-mail:hover .share-sheet-icon,
.share-sheet-pi:hover .share-sheet-icon,
.share-sheet-wa:hover .share-sheet-icon,
.share-sheet-x:hover .share-sheet-icon,
.sidebar-search input[type="search"]:focus,
.sm-account:hover,
.sm-instagram:hover,
.syn-field input:focus,
.syn-field select:focus,
.syn-place-autocomplete .place-suggestions li:hover,
.syn-tab.is-active,
.testimonial-card:hover,
.tfc-pill:has(input:checked),
.theme-form-card .place-suggestions li:hover,
.three-fab:hover,
.transits-switch input:checked + .transits-switch-slider,
.voyage-modal-close:focus-visible,
.voyage-modal-close:hover,
a.dominantes-card-clickable:hover,
ul.three-planet-list li:hover {
  background: var(--surface-hover); border-color: var(--line-2);
}

#three-results .r-clamp::after,
.birth-form::before,
.bsm-chapter--jupiter::before,
.bsm-chapter--neptune::before,
.bsm-chapter--northnode::before,
.bsm-chapter--pluto::before,
.bsm-chapter--saturn::before,
.bsm-chapter--uranus::before,
.bsm-chapter::before,
.btn-primary::after,
.btn::after,
.cat-btn.is-active::before,
.celebs-hero-sky::after,
.celebs-hero-sky::before,
.cn-card-photo-fond::after,
.cn-liquid-glass-card.cn-glass-keep::before,
.cn-liquid-glass-strong::before,
.cn-liquid-glass::before,
.contact-socials a::after,
.cta-after-chart::before,
.email-gate::before,
.eyebrow::before,
.grimoire-detail-head::after,
.hero-visual::after,
.lineage-card::before,
.manifesto-inner .sig::after,
.manifesto-inner .sig::before,
.meta-label::before,
.nav-links a.active::before,
.nav-links a:hover::before,
.nav-links a[aria-current="page"]::after,
.nav-links li.nav-right::before,
.pack-features li::before,
.palazzo-card::before,
.parcours-card::before,
.portrait-frame.placeholder::before,
.ra-card::before,
.ra-card[data-volet="circulation"]::before,
.ra-card[data-volet="noeud"]::before,
.ra-card[data-volet="valeur"]::before,
.ra-mantra::after,
.ra-mantra::before,
.sm-section a.is-active::before,
.testimonial-solo .attr::after,
.testimonial-solo .attr::before,
.tfc-pill:has(input:checked)::before,
.transits-switch input:checked + .transits-switch-slider::before,
.transits-switch-slider::before,
[data-tooltip]::after,
section + section::before {
  background: var(--gold-line);
}


/* ---------- 3. NAV v5 (peau ; la géométrie est dans layout.css) ---------- */
.v5-nav {
  background: var(--nav-bg);
  -webkit-backdrop-filter: blur(18px) saturate(140%);
  backdrop-filter: blur(18px) saturate(140%);
  border-bottom: 1px solid var(--nav-line);
  color: var(--ink);
}
.v5-brand-lockup { color: var(--ink); font-family: var(--font-serif); }
.v5-brand-name { color: var(--ink); font-weight: 300; letter-spacing: .01em; }
.v5-brand-sep { background: var(--line-2); }
.v5-brand-astro { color: var(--gold); font-weight: 600; letter-spacing: .14em; }
.v5-nav-links a, .v5-nav-links button {
  font-family: var(--font-sans); font-weight: 500; color: var(--ink-2); background: transparent; border: 0;
  transition: color .18s var(--ease);
}
.v5-nav-links a:hover, .v5-nav-links button:hover,
.v5-nav-links a:focus-visible, .v5-nav-links button:focus-visible,
.v5-nav-links .v5-has-sub:hover > button, .v5-nav-links button[aria-expanded="true"] { color: var(--ink); }
.v5-nav-links a::after, .v5-nav-links button::after { background: var(--gold); }
.v5-nav-primary, .v5-nav-links a.v5-nav-primary { color: var(--gold); font-weight: 600; }
.v5-nav-primary:hover { color: var(--gold-2); }
.v5-nav-signin { color: var(--ink-2); font-weight: 500; }
.v5-nav-signin:hover { color: var(--ink); }
.v5-nav-cta, .v5-nav-sheet-cta {
  font-family: var(--font-sans); font-weight: 600; color: var(--on-gold);
  background: linear-gradient(120deg, var(--gold-fill-2), var(--gold-fill));
  border: 0; border-radius: var(--radius-m);
  box-shadow: 0 0 26px -10px var(--gold-fill);
  transition: box-shadow .25s var(--ease);
}
.v5-nav-cta:hover, .v5-nav-sheet-cta:hover { color: var(--on-gold); box-shadow: 0 0 30px -6px var(--gold-fill); }
.v5-nav-cta::before, .v5-nav-cta::after { content: none; }
.v5-nav-burger { background: transparent; border: 1px solid var(--line); border-radius: var(--radius-s); color: var(--ink); }
.v5-nav-burger-lines { background: linear-gradient(var(--ink), var(--ink)) center / 100% 1.5px no-repeat; }
.v5-nav-burger-lines::before, .v5-nav-burger-lines::after { background: var(--ink); }
.v5-nav-burger[aria-expanded="true"] .v5-nav-burger-lines { background: transparent; }

/* Sous-menu : même famille que la nav, texte contrasté */
.v5-nav-submenu {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius-l);
  box-shadow: var(--shadow);
  color: var(--ink);
}
[data-theme="dark"] .v5-nav-submenu { background: var(--sheet-bg); -webkit-backdrop-filter: blur(18px); backdrop-filter: blur(18px); }
.v5-nav-submenu a { color: var(--ink); font-weight: 500; border-radius: var(--radius-s); transition: background .16s var(--ease), color .16s var(--ease); }
.v5-nav-submenu a:hover, .v5-nav-submenu a:focus-visible { background: var(--gold-tint); color: var(--gold-2); }
[data-theme="dark"] .v5-nav-submenu a:hover, [data-theme="dark"] .v5-nav-submenu a:focus-visible { color: var(--gold-2); }
.v5-nav-submenu a small { color: var(--ink-3); font-family: var(--font-mono); font-size: .72rem; letter-spacing: .04em; }
.v5-nav-submenu a:hover small { color: var(--gold); }
.v5-nav-submenu-group { color: var(--ink-3); font-family: var(--font-sans); font-size: .78rem; font-weight: 600; letter-spacing: .04em; text-transform: none; }

/* Menu mobile (sheet) */
.v5-nav-sheet { background: var(--sheet-bg); color: var(--ink); border-left: 1px solid var(--line); }
.v5-nav-sheet-head { border-bottom: 1px solid var(--line); }
.v5-nav-sheet-close { background: transparent; border: 1px solid var(--line); color: var(--ink); border-radius: var(--radius-s); }
.v5-nav-sheet-item { border-bottom: 1px solid var(--line); }
.v5-nav-sheet-item > a, .v5-nav-sheet-item > summary { color: var(--ink); font-family: var(--font-sans); font-weight: 500; }
.v5-nav-sheet-item > summary::marker, .v5-nav-sheet-item > summary::-webkit-details-marker { color: var(--gold); }
.v5-nav-sheet-sub a { color: var(--ink-2); }
.v5-nav-sheet-sub a:hover { color: var(--gold); }
.v5-nav-sheet-sub small { color: var(--ink-3); font-family: var(--font-mono); font-size: .72rem; }
.v5-nav-sheet-account, .v5-nav-signin-mobile { color: var(--ink-2); }
.skip-link { background: var(--ink); color: var(--bg); }

/* ---------- 4. FOOTER v5 ---------- */
.v5-footer { background: var(--footer-bg); border-top: 1px solid var(--line); color: var(--ink-2); }
.v5-footer p, .v5-footer li, .v5-footer span { color: var(--ink-2); }
.v5-footer a { color: var(--ink-2); transition: color .18s var(--ease); }
.v5-footer a:hover { color: var(--gold); }
.v5-footer .v5-brand-name { color: var(--ink); }
.v5-footer .v5-brand-astro { color: var(--gold); }
.v5-footer-tagline { color: var(--ink-2); }
.v5-footer-tagline em { color: var(--gold); }
.footer-col-label, .v5-footer-col h4 { color: var(--ink); font-family: var(--font-sans); font-size: .8rem; font-weight: 600; letter-spacing: .04em; text-transform: none; }
.v5-footer-meta, .v5-footer-bottom-legal, .v5-footer-bottom-signature { color: var(--ink-3); }
.v5-footer-bottom { border-top: 1px solid var(--line); }
.v5-footer-instagram { color: var(--ink-2); }
.v5-footer-instagram:hover { color: var(--gold); }

/* ---------- 5. BOUTONS ---------- */
button, .btn, [role="button"] { font-family: var(--font-sans); cursor: pointer; }
/* Base neutre pour tout bouton sans peau dédiée (évite le rendu natif gris/noir du navigateur). */
button { color: var(--ink); background: var(--surface-2); border: 1px solid var(--line); border-radius: var(--radius-s); }
button:hover { border-color: var(--line-2); }
.btn, .cbtn, .tarif-cta, .cplan-cta, .section-cta, .chart-export-btn, .transits-toggle-btn, .cn-btn, .cx-crit-tab, .cx-sign, .celebs-loadmore, #celebs-loadmore, .back-to-top, .btn-link-arrow {
  font-family: var(--font-sans); font-weight: 600; letter-spacing: .01em; text-decoration: none;
  border-radius: var(--radius-m); border: 1px solid var(--gold-line);
  color: var(--gold); background: transparent;
  transition: background .18s var(--ease), color .18s var(--ease), box-shadow .25s var(--ease), border-color .18s var(--ease);
}
.btn:hover, .cbtn:hover, .tarif-cta:hover, .cplan-cta:hover, .section-cta:hover, .chart-export-btn:hover, .transits-toggle-btn:hover, .cn-btn:hover, #celebs-loadmore:hover, .btn-link-arrow:hover { background: var(--gold-tint); color: var(--gold-2); border-color: var(--gold); }

/* Or plein */
.btn-primary, .cn-btn-primary, .cbtn-primary, .btn-gold, .tarif-cta--gold, .cplan-cta.gold, .waitlist-btn, .cine-unlock-btn, .profil-card-gerer, #save-chart-btn, #email-gate-btn, .btn.btn-primary, button[type="submit"].btn, .v5-nav-sheet-cta, .back-to-top, .auth-submit, .signup-submit {
  color: var(--on-gold); background: linear-gradient(120deg, var(--gold-fill-2), var(--gold-fill));
  border: 0; box-shadow: 0 0 28px -12px var(--gold-fill);
}
.btn-primary:hover, .cn-btn-primary:hover, .cbtn-primary:hover, .btn-gold:hover, .tarif-cta--gold:hover, .cplan-cta.gold:hover, .waitlist-btn:hover, .cine-unlock-btn:hover, .profil-card-gerer:hover, #save-chart-btn:hover, #email-gate-btn:hover, .v5-nav-sheet-cta:hover, .back-to-top:hover { color: var(--on-gold); box-shadow: 0 0 36px -8px var(--gold-fill); background: linear-gradient(120deg, var(--gold-fill-2), var(--gold-fill)); }
.btn-primary *, .cn-btn-primary *, .cbtn-primary *, .btn-gold *, .tarif-cta--gold *, .cplan-cta.gold *, .profil-card-gerer *, .v5-nav-cta *, .back-to-top * { color: var(--on-gold); }
.btn-primary:disabled, .cn-btn-primary:disabled, button:disabled { opacity: .72; cursor: not-allowed; box-shadow: none; }

/* Contour / fantôme */
.btn-ghost, .btn-secondary, .btn-outline, .tarif-cta--outline, .account-logout, .section-cta, .btn-add {
  color: var(--gold); background: transparent; border: 1px solid var(--gold-line);
}
.btn-ghost:hover, .btn-secondary:hover, .btn-outline:hover, .tarif-cta--outline:hover, .account-logout:hover, .section-cta:hover { background: var(--gold-tint); color: var(--gold-2); border-color: var(--gold); }

/* Lien-bouton (sans cadre) */
.btn-link, .forgot-password-btn, #forgot-password-btn, .profil-card-cta, .m-link, .metric-sub a, .empty-editorial .btn-ghost, .wheel-params-summary { color: var(--gold); background: transparent; border: 0; padding: 0; font-weight: 500; }
.btn-link:hover, .profil-card-cta:hover { color: var(--gold-2); }

/* Danger */
.btn-danger, .sg-delete-confirm, .gerer-delete, #delete-account-btn, .profil-delete-btn {
  color: var(--danger); background: var(--danger-tint); border: 1px solid var(--danger); border-radius: var(--radius-m); font-weight: 600;
}
.btn-danger:hover, #delete-account-btn:hover { background: var(--danger-hover); color: var(--on-danger); }
[data-theme="dark"] .btn-danger:hover, [data-theme="dark"] #delete-account-btn:hover { color: var(--danger); }

/* Boutons tabulaires / pastilles sélectionnables */
.tfc-pill, .radio-pill, .pill, .cn-pill, .cx-crit-tab, .cx-sign, .param-toggle, .auth-tab, .cn-auth-tab, .filter-chip, .cat-btn {
  font-family: var(--font-sans); font-weight: 500; color: var(--ink-2); background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-pill);
  transition: background .18s var(--ease), color .18s var(--ease), border-color .18s var(--ease);
}
.tfc-pill:hover, .radio-pill:hover, .cn-pill:hover, .cx-crit-tab:hover, .cx-sign:hover, .auth-tab:hover, .cat-btn:hover { color: var(--ink); border-color: var(--line-2); background: var(--surface-hover); }
.tfc-pill.is-active, .radio-pill.is-active, .cn-pill.is-active, .cx-crit-tab.is-active, .cx-sign.is-active, .auth-tab.is-active, .cn-auth-tab.is-active, .cat-btn.is-active,
.tfc-pill:has(input:checked), .radio-pill:has(input:checked), .param-toggle:has(input:checked) {
  color: var(--on-gold); background: linear-gradient(120deg, var(--gold-fill-2), var(--gold-fill)); border-color: transparent;
}
.tfc-pill:has(input:checked) *, .radio-pill:has(input:checked) *, .cx-crit-tab.is-active *, .cx-sign.is-active *, .auth-tab.is-active * { color: var(--on-gold); }
.cx-sign-glyph { color: var(--gold); }
.cx-sign-label { color: var(--ink-2); }

/* ---------- 6. CHAMPS ---------- */
label, .form-group label, .cn-form label, legend { color: var(--ink-2); font-weight: 500; font-family: var(--font-sans); }
input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="submit"]):not([type="button"]):not([type="file"]),
select, textarea {
  font-family: var(--font-sans); font-size: 1rem; color: var(--ink);
  background: var(--surface); border: 1px solid var(--line-2); border-radius: var(--radius-m);
  caret-color: var(--gold); -webkit-text-fill-color: var(--ink);
  transition: border-color .18s var(--ease), box-shadow .18s var(--ease);
}
input::placeholder, textarea::placeholder { color: var(--ink-3); -webkit-text-fill-color: var(--ink-3); opacity: 1; }
input:focus, select:focus, textarea:focus { outline: none; border-color: var(--gold); box-shadow: 0 0 0 3px var(--focus); }
input:disabled, select:disabled, textarea:disabled { color: var(--ink-3); -webkit-text-fill-color: var(--ink-3); background: var(--surface-2); }
input:-webkit-autofill, input:-webkit-autofill:hover, input:-webkit-autofill:focus { -webkit-text-fill-color: var(--ink); transition: background-color 9999s ease-out; }
input:-webkit-autofill { -webkit-box-shadow: 0 0 0 1000px var(--autofill-bg) inset; }
select option { background: var(--surface); color: var(--ink); }
input[type="checkbox"], input[type="radio"] { accent-color: var(--gold-fill); width: 1.05rem; height: 1.05rem; }
.hint, .form-group small, .field-hint, .save-chart-form .hint { color: var(--ink-3); }
.form-msg, .save-chart-msg, .auth-banner, .form-error, .form-success { border-radius: var(--radius-m); border: 1px solid var(--line); background: var(--surface); color: var(--ink); }
.form-msg.is-ok, .save-chart-msg.is-ok, .form-success { border-color: var(--ok); color: var(--ok); }
.form-msg.is-err, .save-chart-msg.is-err, .form-error, .is-error { border-color: var(--danger); color: var(--danger); }
.form-msg.is-info, .save-chart-msg.is-info { border-color: var(--gold-line); color: var(--ink-2); }

/* ---------- 7. SURFACES, TABLEAUX, ONGLETS, DÉTAILS, TOOLTIPS, MODALES ---------- */
.card, .cn-card, .cn-liquid-glass, .cn-liquid-glass-card, .cn-liquid-glass-strong, .liquid-glass, .nv-liquid-glass, .glass,
.theme-form-card, .result-preview-wrap, .email-gate, .share-box, .cta-after-chart, .save-chart-box, .wheel-params, .wheel-birth-info,
.aspect-detail, .planet-detail, .sabian-card, .dominantes-card, .interp-block, .cn-result-card, .syn-panel, .syn-score-card,
.profil-card, .commande-card, .settings-card, .metrics, .empty-editorial, .auth-card, .auth-aside, .celeb-card, .aff-card,
.pack-card, .tarif-card, .cplan, .grimoire-card, .article-card, .faq-item, .contact-card, .pr-card, .parchemin-card, .lineage-card {
  background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-l); color: var(--ink); box-shadow: var(--shadow);
}
[data-theme="dark"] .card, [data-theme="dark"] .cn-liquid-glass, [data-theme="dark"] .cn-liquid-glass-card, [data-theme="dark"] .theme-form-card,
[data-theme="dark"] .result-preview-wrap, [data-theme="dark"] .email-gate, [data-theme="dark"] .share-box, [data-theme="dark"] .cta-after-chart,
[data-theme="dark"] .save-chart-box, [data-theme="dark"] .wheel-params, [data-theme="dark"] .wheel-birth-info, [data-theme="dark"] .aspect-detail,
[data-theme="dark"] .planet-detail, [data-theme="dark"] .sabian-card, [data-theme="dark"] .profil-card, [data-theme="dark"] .commande-card,
[data-theme="dark"] .settings-card, [data-theme="dark"] .metrics, [data-theme="dark"] .empty-editorial, [data-theme="dark"] .auth-card, [data-theme="dark"] .auth-aside {
  -webkit-backdrop-filter: blur(16px) saturate(130%); backdrop-filter: blur(16px) saturate(130%);
}
.card-hover:hover, .celeb-card:hover, .aff-card:hover, .article-card:hover, .grimoire-card:hover, .pack-card:hover { border-color: var(--line-2); background: var(--surface-hover); }
.surface-2, .card-inset, .profil-pill, .profil-cell, .fact, .metric-bar, .chip { background: var(--surface-2); border: 1px solid var(--line); color: var(--ink-2); }

/* Puces & badges */
.badge, .pill-static, .account-pill, .account-pill--premium, .solar-chart-pill, .profil-card-solar-pill, .premium-badge, .sg-premium-badge, .cplan-badge, .pr-price-badge, .tarif-badge, .tag, .kw, .keyword {
  font-family: var(--font-sans); font-size: .78rem; font-weight: 600; letter-spacing: .02em; text-transform: none;
  color: var(--gold); background: var(--gold-tint); border: 1px solid var(--gold-line); border-radius: var(--radius-pill);
}
.badge-solid, .cplan-badge, .pr-price-badge, .premium-badge.is-solid, .tarif-badge { color: var(--on-gold); background: linear-gradient(120deg, var(--gold-fill-2), var(--gold-fill)); border-color: transparent; }
.account-pill--premium::before { background: var(--gold); box-shadow: 0 0 8px var(--gold); }

/* Tableaux (positions, aspects, dominantes, comparatifs) */
table { border-collapse: collapse; color: var(--ink); }
td, th, .chart-table td, .chart-table th, .dominantes-table th { background: transparent; }
th { color: var(--ink-3); font-family: var(--font-sans); font-size: .78rem; font-weight: 600; letter-spacing: .04em; text-transform: none; border-bottom: 1px solid var(--line-2); }
td { color: var(--ink); border-bottom: 1px solid var(--line); }
tbody tr { transition: background .15s var(--ease); }
tbody tr:hover td, .chart-table tbody tr:hover td, .aspect-row:hover td { background: var(--gold-tint); color: var(--ink); }
.chart-table .col-name { color: var(--ink); font-weight: 600; }
.chart-table .col-deg, .col-orb { font-family: var(--font-mono); color: var(--ink-2); }
.chart-table .retro, .retro-r, .planet-retro { color: var(--gold); font-weight: 600; }
.chart-table .col-tier em { color: var(--ink-3); }
.tarif-compare th, .compare-table th { color: var(--ink); }
.check { color: var(--ok); }
.cross, .no { color: var(--ink-3); }

/* Onglets */
[role="tab"]:not(.cx-crit-tab):not(.cx-sign), .tab { color: var(--ink-2); background: transparent; border: 0; border-bottom: 2px solid transparent; font-family: var(--font-sans); font-weight: 500; }
[role="tab"][aria-selected="true"]:not(.cx-crit-tab):not(.cx-sign), .tab.is-active, .auth-tab.is-active { color: var(--ink); border-bottom-color: var(--gold); background: transparent; }
.auth-tab, .cn-auth-tab { border-radius: 0; background: transparent; border: 0; border-bottom: 2px solid transparent; }
.auth-tab.is-active, .cn-auth-tab.is-active { color: var(--ink); background: transparent; border-bottom: 2px solid var(--gold); }

/* Détails / accordéons */
details { border-top: 1px solid var(--line); }
summary { color: var(--ink); font-weight: 500; cursor: pointer; list-style: none; }
summary::-webkit-details-marker { display: none; }
/* Indicateur générique ; les accordéons qui portent déjà leur propre signe (+ / − / ▾) en sont exclus. */
summary:where(:not(.progressions-toggle > summary, .interp-more > summary, .aff-family > summary, .home-faq-item > summary, .v5-nav-sheet-item > summary, .wheel-params-summary, .settings-details summary, .dominantes-method-detail summary, .progressions-method-detail summary))::before { content: "+"; color: var(--gold); font-weight: 600; margin-right: .6em; }
details[open] > summary:where(:not(.progressions-toggle > summary, .interp-more > summary, .aff-family > summary, .home-faq-item > summary, .v5-nav-sheet-item > summary, .wheel-params-summary, .settings-details summary, .dominantes-method-detail summary, .progressions-method-detail summary))::before { content: "−"; }
summary::after, summary::before { color: var(--gold); }
.settings-details summary, .wheel-params-summary, .compte-accordion summary, .faq-item summary, .aff-family > summary { color: var(--gold); }
.v5-nav-submenu-group::before { content: none; }

/* Tooltip de la roue et autres info-bulles */
.wheel-tooltip, .tooltip, [data-tooltip]::after, .tip {
  background: var(--tooltip-bg); color: var(--tooltip-ink); border: 1px solid var(--gold-line); border-radius: var(--radius-m);
  box-shadow: var(--shadow);
}
.wheel-tooltip .tip-sym, .wheel-tooltip .tip-body strong { color: var(--tooltip-ink); }
.wheel-tooltip .tip-body span { color: var(--tooltip-ink); opacity: .82; }

/* Modales */
.modal-backdrop, .cn-modal .modal-backdrop, .sg-delete-overlay, .sg-push-overlay { background: var(--backdrop); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
.modal-card, .cn-modal .modal-card, .sg-delete-card, .sg-push-card, .dialog {
  background: var(--bg); color: var(--ink); border: 1px solid var(--line-2); border-radius: var(--radius-l); box-shadow: var(--shadow);
}
.modal-card, .cn-modal .modal-card, .sg-delete-card, .sg-push-card { background: var(--modal-bg); }
.modal-head, .cn-modal .modal-head { background: transparent; border-bottom: 1px solid var(--line); color: var(--ink); }
.modal-head h3, .modal-head h2, .sg-delete-card h2, .sg-push-card h3 { color: var(--ink); font-family: var(--font-serif); }
.modal-body, .cn-modal-body, .cn-modal .modal-body { background: transparent; color: var(--ink); }
.modal-body label, .cn-modal label { color: var(--ink-2); }
.modal-close, .sg-delete-close, [data-close-modal].btn-close { background: transparent; border: 1px solid var(--line); color: var(--ink); border-radius: var(--radius-s); }
.modal-foot, .modal-actions, .form-actions { border-top: 1px solid var(--line); }

/* Bannières, cookies, badges premium, alertes */
#sg-cookie-banner, #sgastro-cookie-banner, .cookie-banner { background: var(--bg); color: var(--ink); border-top: 1px solid var(--line-2); box-shadow: var(--shadow); }
.cookie-banner a, #sg-cookie-banner a { color: var(--gold); }
.auth-banner, .solar-chart-banner, .cma-solar-warning, .fam-solar-warning, .syn-solar-warning, .callout, .note { background: var(--gold-tint); border: 1px solid var(--gold-line); color: var(--ink); border-radius: var(--radius-m); }
.auth-banner p, .solar-chart-banner p { color: var(--ink); }
.reload-saved-chart, .sg-sticky-pricing { background: var(--surface); border: 1px solid var(--line); color: var(--ink); }

/* Ornements de section : filets et séparateurs */
.divider, .compte-divider, .crois-sep-ornee, .middle-line { border: 0; border-top: 1px solid var(--line); background: transparent; }
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: var(--bg-2); }
::-webkit-scrollbar-thumb { background: var(--line-2); border-radius: var(--radius-pill); }

/* ---------- 8. COMPOSANTS DE PAGE ---------- */

/* 8a. Mon compte */
.account-title { color: var(--ink); }
.account-title em { color: var(--gold); }
.account-email { color: var(--ink-3); font-family: var(--font-mono); }
.section-label { font-family: var(--font-serif); font-weight: 300; font-size: clamp(1.6rem, 3.2vw, 2.1rem); letter-spacing: -.02em; text-transform: none; color: var(--ink); }
.metric-label { color: var(--ink-2); font-family: var(--font-serif); font-size: .98rem; letter-spacing: 0; text-transform: none; }
.metric-value { color: var(--ink); font-family: var(--font-serif); font-weight: 300; }
.metric-value span { color: inherit; }
.metric-sub { color: var(--ink-3); }
.metric-bar { background: var(--line); }
.metric-bar-fill { background: linear-gradient(90deg, var(--gold-fill), var(--gold-fill-2)); }
.profil-card-title { color: var(--ink); font-family: var(--font-serif); }
.profil-card-cta { color: var(--gold); font-family: var(--font-sans); text-transform: none; letter-spacing: 0; }
.profil-pill, .profil-pill-meta, .profil-cell { color: var(--ink); background: var(--surface-2); border: 1px solid var(--line); }
.profil-pill-icon { color: var(--gold); }
.profil-cell-glyph { color: var(--gold); font-family: var(--font-glyph); }
.profil-cell-text { color: var(--ink-3); font-family: var(--font-mono); }
.profil-cell-value { color: var(--ink); }
.commande-title { color: var(--ink); } .commande-subtitle { color: var(--ink-2); } .commande-date { color: var(--ink-3); font-family: var(--font-mono); } .commande-icon { color: var(--gold); }
.settings-card h2, .settings-card h3 { color: var(--ink); }
.settings-card-lead { color: var(--ink-2); }
.settings-card--danger { border-color: var(--danger); }
.empty-editorial p { color: var(--ink-2); } .empty-editorial .signature { color: var(--ink); font-family: var(--font-serif); }
.check-list li { color: var(--ink-2); } .check-list li::marker { color: var(--gold); }

/* 8b. Calculateurs : en-tête + formulaire + résultat */
.cn-hero, .theme-hero, .calc-hero { background: transparent; }
.cn-hero h1, .cn-sec-heading, .cn-sec-heading--hero { color: var(--ink); }
.cn-hero .lead, .calc-lead { color: var(--ink-2); }
.big-3 { color: var(--ink); }
.big-3-label { color: var(--ink-3); font-family: var(--font-sans); font-size: .8rem; letter-spacing: .02em; text-transform: none; }
.big-3-value { color: var(--ink); font-family: var(--font-serif); }
.big-3-house { color: var(--ink-2); }
.big-3-symbol { color: var(--gold); font-family: var(--font-glyph); }
.big-3-disclaim { color: var(--ink-3); }
.wheel-hint { color: var(--ink-3); }
.wheel-params-hint { color: var(--ink-2); }
.birth-line, .birth-when { color: var(--ink); } .birth-name { color: var(--gold); } .birth-coords { color: var(--ink-3); font-family: var(--font-mono); }
.param-toggle span { color: var(--ink-2); }
/* Roue : les labels hors disque suivent le thème ; le disque crème garde ses encres propres */
.wheel-container svg text.planet-deg,
.wheel-container svg text.transit-deg { fill: var(--ink); paint-order: stroke; stroke: var(--bg); stroke-width: 2.2px; stroke-linejoin: round; font-weight: 700; }
.wheel-container svg text.planet-glyph { paint-order: stroke; stroke: var(--bg); stroke-width: 1.4px; }
.chart-export-row { background: transparent; }
.chart-export-icon, .chart-export-label, .transits-toggle-btn-icon, .transits-toggle-btn-label { color: inherit; }
.transits-toggle-desc, .prog-legend-orb, .prog-note { color: var(--ink-2); }
.sabian-card h4, .sabian-card-meta h4 { color: var(--ink); text-transform: none; letter-spacing: 0; }
.sabian-card-pos { color: var(--ink-3); font-family: var(--font-mono); }
.sabian-card-text { color: var(--ink-2); }
.sabian-card-sym { color: var(--gold); font-family: var(--font-glyph); }
.dominantes-head h3, .dominantes-table th { color: var(--ink); }
.dominantes-method h4, .method-detail h4 { color: var(--ink); text-transform: none; letter-spacing: 0; }
.aspect-row { cursor: pointer; }
.aspect-detail h3, .planet-detail h3 { color: var(--ink); }
.aspect-detail p, .planet-detail p, .planet-detail-text { color: var(--ink-2); }
.share-box h3, .cta-after-chart h3, .save-chart-head h3 { color: var(--ink); }
.share-box .lead, .cta-after-chart p, .save-chart-box .lead { color: var(--ink-2); }
.share-box-hint, .share-box-hint a { color: var(--ink-3); } .share-box-hint a { color: var(--gold); }
.cta-after-chart .cta-row { justify-content: center; }
.cine-unlock-inner { background: var(--surface); border: 1px solid var(--gold-line); border-radius: var(--radius-l); box-shadow: var(--shadow); }
.cine-unlock-title { color: var(--ink); } .cine-unlock-title em { color: var(--gold); } .cine-unlock-note { color: var(--ink-3); } .cine-unlock-icon { color: var(--gold); }
.place-suggestions { background: var(--surface); border: 1px solid var(--line-2); color: var(--ink); box-shadow: var(--shadow); }
.place-suggestions li { color: var(--ink); } .place-suggestions li:hover, .place-suggestions li[aria-selected="true"] { background: var(--gold-tint); color: var(--gold-2); }
.place-loading, .place-empty { color: var(--ink-3); }
.score-ring, .cma-score-ring, .fam-score-ring, .syn-score-ring { color: var(--gold); background: transparent; border-color: var(--gold-line); }
.keyword, .fam-keyword, .syn-key, .bsm-chapter-keywords li, .fam-share-keywords li { color: var(--ink-2); background: var(--surface-2); border: 1px solid var(--line); }

/* 8c. Célébrités */
.celebs-hero-title, .celeb-name { color: var(--ink); }
.celebs-hero-title em, .celeb-name em { color: var(--gold); }
.celebs-hero-sub, .celeb-tagline, .celeb-card-tagline { color: var(--ink-2); }
#celebs-total, .celebs-count-num { color: var(--gold); }
#celebs-count { color: var(--ink-3); }
.cx-search-input { background: var(--surface); color: var(--ink); border: 1px solid var(--line-2); }
.cx-search-icon { color: var(--gold); }
.cx-sort-label { color: var(--ink-3); }
.celeb-card { color: var(--ink); }
.celeb-card-name, .celeb-card h3 { color: var(--ink); } .celeb-card-name em { color: var(--gold); }
.celeb-card-meta, .celeb-card small { color: var(--ink-3); }
.celeb-birth-label { color: var(--ink-3); font-family: var(--font-sans); text-transform: none; letter-spacing: 0; font-size: .8rem; }
.celeb-birth-value { color: var(--ink); }
.fx-rodden-code { color: var(--gold); background: var(--gold-tint); border: 1px solid var(--gold-line); }
.three-d-cta, .cta-mode-3d { color: var(--ink); background: var(--surface); border: 1px solid var(--gold-line); }
.three-d-cta em, .cta-mode-3d em { color: var(--gold); }

/* 8d. Tarifs, packs, plans */
.tarif-name, .pack-tier, .cplan-name { color: var(--ink); font-family: var(--font-serif); }
.tarif-price, .pack-price, .cplan-price, .price-display { color: var(--gold); font-family: var(--font-serif); font-weight: 500; }
.tarif-period, .cplan-period, .price-period { color: var(--ink-3); }
.tarif-lead, .pack-lead, .cplan-desc { color: var(--ink-2); }
.tarif-feature, .cplan li, .pack-feature { color: var(--ink-2); }
.tarif-feature.is-off, .cplan li.out, .pack-feature.is-off, .is-out { color: var(--ink-3); text-decoration: line-through; }
.tarif-feature .check, .cplan li::marker { color: var(--ok); }
.tarif { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-l); }
.tarif--featured { border-color: var(--gold); box-shadow: 0 0 0 1px var(--gold-line); }
.pr-portrait-cap, .pr-how-desc { color: var(--ink-2); }
.cn-step-title { color: var(--ink); }

/* 8e. Grimoire & articles */
.grimoire-pillar-title, .article-title, .grimoire-detail-head h1 { color: var(--ink); }
.grimoire-pillar-desc, .article-excerpt, .article-lead { color: var(--ink-2); }
.grimoire-detail-body, .article-body, .long-read { color: var(--ink); }
.article-body p, .grimoire-detail-body p { color: var(--ink); }
.article-meta, .grimoire-meta, .page-header-meta { color: var(--ink-3); }
.sig, .signature { color: var(--ink-2); font-family: var(--font-serif); }
.pillar-num, .roman, .step-num { color: var(--gold); font-family: var(--font-serif); }

/* 8f. Inscription / auth */
.signup-app, .auth-shell { background: transparent; color: var(--ink); }
.brand-name { color: var(--ink); font-family: var(--font-serif); }
.step-text { color: var(--ink-2); } .step-item.is-active { background: var(--gold-tint); border: 1px solid var(--gold-line); color: var(--ink); } .step-item.is-active .step-num { color: var(--gold); }

/* Badges de plan (tarifs / packs) */
.plan-badge, .pricing-badge-popular, .plan-badge[data-popular] { color: var(--on-gold); background: linear-gradient(120deg, var(--gold-fill-2), var(--gold-fill)); border-color: transparent; border-radius: var(--radius-pill); font-family: var(--font-sans); font-size: .74rem; font-weight: 600; letter-spacing: .04em; }

/* Grands calques décoratifs hérités : neutres (seuls les ornements fins prennent la teinte or) */
.celebs-hero-sky::before, .celebs-hero-sky::after, .cn-liquid-glass::before, .cn-liquid-glass-strong::before, .cn-liquid-glass-card.cn-glass-keep::before,
.email-gate::before, .birth-form::before, .hero-visual::after, .cn-card-photo-fond::after, .grimoire-detail-head::after, .palazzo-card::before,
.parcours-card::before, .ra-card::before, .ra-card[data-volet="circulation"]::before, .ra-card[data-volet="noeud"]::before, .ra-card[data-volet="valeur"]::before,
.lineage-card::before, .bsm-chapter::before, .bsm-chapter--jupiter::before, .bsm-chapter--neptune::before, .bsm-chapter--northnode::before, .bsm-chapter--pluto::before,
.bsm-chapter--saturn::before, .bsm-chapter--uranus::before, .portrait-frame.placeholder::before, .ra-mantra::before, .ra-mantra::after, #three-results .r-clamp::after { background: transparent; }

/* Couleurs sémantiques d'aspects (classes émises par les scripts, jamais de couleur inline) */
.asp-tense { color: var(--el-feu); } .asp-soft { color: var(--el-eau); } .asp-conj { color: var(--gold); } .asp-minor { color: var(--ink-3); }
.syn-key-glyph, .cdj-tr-sym, .planet-detail-sym, #pd-sym, .pd-sym { color: var(--gold); font-family: var(--font-glyph); }
/* Carte Map 3D (markup généré) */
.three-d-cta { color: var(--ink); background: var(--surface); border: 1px solid var(--gold-line); border-radius: var(--radius-l); box-shadow: var(--shadow); transition: border-color .2s var(--ease), box-shadow .25s var(--ease); }
.three-d-cta:hover { border-color: var(--gold); box-shadow: 0 0 34px -12px var(--gold-fill); color: var(--ink); }
.three-d-cta > span:first-child { color: var(--gold); border: 1px solid var(--gold-line); background: var(--gold-tint); }
.three-d-cta > span:nth-child(2) > span:first-child { font-family: var(--font-serif); color: var(--ink); }
.three-d-cta > span:nth-child(2) > span:last-child { color: var(--ink-2); font-family: var(--font-sans); }
.three-d-cta > span:last-child { color: var(--gold); }
.palazzo-badge { color: var(--gold); background: var(--gold-tint); border: 1px solid var(--gold-line); border-radius: var(--radius-pill); font-size: .78rem; font-weight: 600; }

/* Barre CTA collante des fiches célébrités : fond verre + bouton or */
.celeb-sticky-cta { background: var(--glass); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); border-top: 1px solid var(--line); box-shadow: var(--shadow); color: var(--ink); }
.celeb-sticky-cta a { color: var(--on-gold); background: linear-gradient(120deg, var(--gold-fill-2), var(--gold-fill)); border: 0; border-radius: var(--radius-m); font-weight: 600; }
.celeb-sticky-cta a:hover { color: var(--on-gold); }

/* Grimoire : piliers = cartes */
.grimoire-pillar, .grimoire-pillar-planetes-signes { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-l); color: var(--ink); box-shadow: var(--shadow); }
.grimoire-pillar:hover { background: var(--surface-hover); border-color: var(--line-2); }
.grimoire-pillar-glyphs, .hb-card-glyphs { color: var(--gold); background: transparent; border: 0; }
/* Méta d'en-tête numérotée (motif eyebrow) et filets latéraux épais */
.page-header-meta { display: none; }
.parchemin-card, .manifesto-band, .crois-block, .lineage-card, .callout, .note { border-left: 1px solid var(--line); }
/* Eyebrow de la page inscription */
.form-meta, #meta-label { display: none; }

/* Conteneurs de modale : transparents (seul le voile et la carte sont peints) */
.modal, .cn-modal, #gerer-modal, #sg-push-prompt, .share-modal, .share-sheet { background: transparent; border: 0; box-shadow: none; }
.cn-modal-close { background: transparent; border: 1px solid var(--line); color: var(--ink); }
.metric { background: transparent; border-color: var(--line); }
.legal-note, .rgpd-note { color: var(--ink-3); font-size: .85rem; }

/* ---------- 9. COMPLÉMENTS (revue adversariale) ---------- */
/* M3 · eyebrows des calculateurs : les titres de carte sont re-typés en titres, les labels décoratifs masqués */
.trinite-card-eyebrow, .tla-card-eyebrow, .ra-card-eyebrow, .three-section-label { font-family: var(--font-serif); font-size: 1.25rem; font-weight: 300; letter-spacing: -.01em; text-transform: none; color: var(--ink); }
.cma-eyebrow, .cma-archetype-eyebrow, .cma-ombre-eyebrow, .cma-share-eyebrow, .bsm-results-eyebrow, .bsm-upsell-eyebrow, .bsm-share-eyebrow, .bsm-chapter-eyebrow,
.tla-crosssell-eyebrow, .tla-share-eyebrow, .ra-sub-label, .ra-mantra-eyebrow, .ra-share-eyebrow, .ia-eyebrow, .palazzo-eyebrow, .palazzo-section-label,
.block-eyebrow, .placeholder-eyebrow, .palazzo-bloc-eyebrow, .share-modal-eyebrow, .fam-eyebrow, .syn-eyebrow, .pa-eyebrow, .grimoire-eyebrow, [class$="-eyebrow"]:not(.trinite-card-eyebrow):not(.tla-card-eyebrow):not(.ra-card-eyebrow) { display: none; }
/* Labels de formulaires et petits titres : jamais en capitales espacées */
label, legend, .metric-label, .profil-card-cta, .profil-cell-text, .signature, .empty-editorial .signature, .settings-details summary, .account-pill, h1, h2, h3, h4, .cn-hero-mega, .article-body h3, .grimoire-group-title, .chart-summary h3, .day-pulse h3, .transits-active h4, .progressions-panel h4, .dominantes-coef-block h4, .sidebar-nav .cat-group h3, .v5-nav-sheet-item > summary, .v5-nav-sheet-item > a { text-transform: none; letter-spacing: 0; }
/* M5 · Inscription et boutons nus */
.submit-btn, .auth-submit, .signup-submit, .login-submit { color: var(--on-gold); background: linear-gradient(120deg, var(--gold-fill-2), var(--gold-fill)); border: 0; border-radius: var(--radius-m); font-family: var(--font-sans); font-size: 1rem; font-weight: 600; box-shadow: 0 0 28px -12px var(--gold-fill); }
.submit-btn:hover { color: var(--on-gold); box-shadow: 0 0 36px -8px var(--gold-fill); }
.social-btn, .sg-google-btn, .sg-apple-btn { color: var(--ink); background: var(--surface); border: 1px solid var(--line-2); border-radius: var(--radius-m); font-family: var(--font-sans); font-weight: 500; }
.social-btn:hover, .sg-google-btn:hover, .sg-apple-btn:hover { background: var(--surface-hover); border-color: var(--gold); color: var(--ink); }
.pw-toggle, #footer-toggle, .password-toggle, .cx-sort-btn, .cx-search-clear, .celeb-photo-replace, .nav-sheet-close, .pa-quick-test-link, #degMinus, #degPlus, .cdj-arrow, .cdj-offset-btn, .cdj-unit-btn, button:not([class]):not([type="submit"]):not(.v5-nav-links button):not(#sb-root button):not(.palazzo-form button) { background: transparent; border: 1px solid var(--line); color: var(--ink-2); border-radius: var(--radius-s); font-family: var(--font-sans); }
.pw-toggle, .password-toggle, #footer-toggle, .cx-search-clear { border: 0; }
.cx-sort-btn.is-active, .cdj-unit-btn.is-on, .cdj-unit-btn[aria-pressed="true"] { color: var(--on-gold); background: linear-gradient(120deg, var(--gold-fill-2), var(--gold-fill)); border-color: transparent; }
.sabians-sign, .sign-btn, .sign { color: var(--ink-2); background: var(--surface); border: 1px solid var(--line); }
.sign.is-active, .sign-btn.is-active { color: var(--on-gold); background: linear-gradient(120deg, var(--gold-fill-2), var(--gold-fill)); border-color: transparent; }
.hero-col { color: var(--ink); }
/* M6 · composants injectés par script */
.ca-suggestions { background: var(--surface); color: var(--ink); border: 1px solid var(--line-2); border-radius: var(--radius-m); box-shadow: var(--shadow); }
.ca-suggestions li { color: var(--ink); }
.ca-suggestions li:hover, .ca-suggestions li.is-active, .ca-suggestions li[aria-selected="true"] { background: var(--gold-tint); color: var(--gold-2); }
.ca-empty, .ca-loading { color: var(--ink-3); }
.pl-feedback { color: var(--gold); }
#three-results, #three-results .r-dom-card, #three-results .r-planet, .three-sidebar, .three-sheet { color: var(--ink); background: var(--surface); border-color: var(--line); }
#three-results .r-dom-card-value, #three-results .r-planet-name, #three-results .r-interp-title { color: var(--ink); font-family: var(--font-serif); }
#three-results .r-dom-card-sub, #three-results .r-planet-pos, #three-results .r-interp-missing, #three-results .r-empty { color: var(--ink-3); }
#three-results .r-planet-pos .retro { color: var(--gold); }
.three-fab { color: var(--ink); background: var(--surface); border: 1px solid var(--line-2); }
.three-fab.is-on { color: var(--on-gold); background: linear-gradient(120deg, var(--gold-fill-2), var(--gold-fill)); border-color: transparent; }
/* Éléments d'affinités / transits : glyphes colorés par le thème */
.aff-glyph, .aff-card-glyph, .transit-glyph-inline, .tr-sym { color: var(--gold); font-family: var(--font-glyph); }

/* ---- 10. Opacités d'état et calques de grain (le purificateur ne conserve que 0/1 : on redéclare ici ce qui est fonctionnel) ---- */
body::before, body::after, .manifesto-band::after, .portrait-frame.placeholder::after { display: none; }
[data-theme="light"] #starfield { display: none; }
#starfield { opacity: .85; }
.natal-wheel.is-filtered .aspect-group:not(.matches-selected) .aspect-line { opacity: .08; }
.natal-wheel.is-filtered .planet-group:not(.is-selected) { opacity: .5; }
.natal-wheel.is-filtered .angle-marker.is-clickable:not(.is-selected) { opacity: .32; }
.natal-wheel .planet-group:hover .planet-halo, .natal-wheel .planet-group:focus-visible .planet-halo { opacity: .28; }
.bi-wheel-svg.is-filtered .bi-aspect:not(.matches-selected) { opacity: .05; }
.bi-wheel-svg.is-filtered .bi-planet-natal:not(.is-selected) { opacity: .18; }
.bi-wheel-svg.is-filtered .bi-planet-transit:not(.is-selected) { opacity: .22; }
[data-transits-list] [data-natal-id].is-dimmed { opacity: .5; }
input:disabled, select:disabled, textarea:disabled, .param-toggle.is-disabled, .tfc-pill[data-disabled="true"], .btn.is-loading, .sg-google-btn.is-loading, .sg-apple-btn.is-loading { opacity: .6; }
.portrait img { filter: grayscale(.4) contrast(1.05); }
.portrait-frame img { filter: grayscale(.2) contrast(1.05); }
.parchemin-card .parchemin-section { border-left: 1px solid var(--line); }
/* En-tête de page réduit à son eyebrow (masqué) : on retire le bloc vide. */
.page-header:not(:has(h1, h2, h3, p, .page-header-title)) { display: none; }

/* Sabians (page à identifiant racine : spécificité alignée) */
#sb-root span.eyebrow, #sb-root span.block-eyebrow, #sb-root .hero-in .eyebrow, #sb-root .wrap .block-eyebrow { display: none; }
#sb-root .sky { text-align: center; }
#sb-root .sky .lead { color: var(--ink-2); }
#sb-root .search { background: var(--surface); border-color: var(--line); border-radius: var(--radius-m); }
#sb-root .search input { background: transparent; color: var(--ink); }
#sb-root .search svg { color: var(--ink-3); }
#sb-root .sign { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-s); color: var(--ink-2); }
#sb-root .sign .g { color: var(--gold); font-family: var(--font-glyph); }
#sb-root .sign:hover { border-color: var(--line-2); background: var(--surface-hover); }
#sb-root .sign.on { background: var(--gold-tint); border-color: var(--gold); color: var(--ink); }
#sb-root .deg-row .lab, #sb-root .card .pos, #sb-root .list-head .n, #sb-root .sym-row .d { color: var(--ink-3); font-family: var(--font-mono); text-transform: none; letter-spacing: 0; }
#sb-root .deg-ctl { background: var(--surface); border-color: var(--line); border-radius: var(--radius-s); }
#sb-root .deg-ctl button { background: transparent; color: var(--gold); border: 0; border-radius: 0; }
#sb-root .deg-val { color: var(--ink); font-family: var(--font-mono); }
#sb-root .card { background: var(--surface); border-radius: var(--radius-l); }
#sb-root .card .glyph { color: var(--gold); font-family: var(--font-glyph); }
#sb-root .card .sym { color: var(--ink); font-family: var(--font-serif); }
#sb-root .card-link { color: var(--gold); }
#sb-root .sym-row .t { color: var(--ink); }
#sb-root .sym-row:hover { background: var(--surface-hover); }
#sb-root .grp h3 .g { color: var(--gold); font-family: var(--font-glyph); }

/* ---- 11. Cabinet de Palazzo (conversation) : page sombre, composants en tokens ---- */
.palazzo-gate-card, .palazzo-thinking-card, .palazzo-message.palazzo-paywall-cadenced, .palazzo-quota, .palazzo-profile-banner { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-l); }
.palazzo-gate-photo, .palazzo-welcome-photo { border: 2px solid var(--gold); border-radius: 50%; }
.palazzo-side-photo { border: 1px solid var(--gold-line); border-radius: 50%; }
.palazzo-gate-card h2, .palazzo-welcome h2, .palazzo-conv-header h1, .palazzo-profile-name { color: var(--ink); }
.palazzo-gate-card h2 em, .palazzo-welcome h2 em { color: var(--gold); }
.palazzo-gate-card p, .palazzo-welcome-foot, .palazzo-recap-cta-line, .palazzo-disclaimer-top { color: var(--ink-2); }
.palazzo-btn-primary, .palazzo-send, .palazzo-quota-upgrade, .palazzo-recap-cta-primary, .palazzo-new-session, body.palazzo-deep-reading .palazzo-reading-toggle { background: linear-gradient(120deg, var(--gold-fill-2), var(--gold-fill)); color: var(--on-gold); border: 1px solid transparent; border-radius: var(--radius-pill); box-shadow: none; }
.palazzo-btn-primary:hover, .palazzo-send:hover, .palazzo-quota-upgrade:hover, .palazzo-recap-cta-primary:hover, .palazzo-new-session:hover { box-shadow: 0 0 36px -8px var(--gold-fill); color: var(--on-gold); }
.palazzo-btn-ghost, .palazzo-recap-cta-ghost, .palazzo-reading-toggle, .palazzo-drawer-burger { background: transparent; color: var(--gold); border: 1px solid var(--gold-line); border-radius: var(--radius-pill); box-shadow: none; }
.palazzo-btn-ghost:hover, .palazzo-recap-cta-ghost:hover, .palazzo-reading-toggle:hover, .palazzo-chip:hover { background: var(--gold-tint); border-color: var(--gold); color: var(--gold-2); }
.palazzo-reading-toggle, .palazzo-drawer-burger { border-radius: 50%; background: var(--surface); }
.palazzo-drawer-burger span { background: var(--gold); }
.palazzo-drawer-close, .palazzo-profile-toggle { background: transparent; border: 0; color: var(--gold); }
.palazzo-drawer-overlay { background: var(--backdrop); }
.palazzo-sidebar { background: var(--sheet-bg); border-right: 1px solid var(--line); box-shadow: none; }
.palazzo-sidebar-disclaimer, .palazzo-side-role, .palazzo-quota-label, .palazzo-quota-info, .palazzo-recap-fineprint, .palazzo-disclaimer-bottom, .palazzo-footer-link, .palazzo-suggestions-loading, .palazzo-message.thinking { color: var(--ink-3); }
.palazzo-sidebar-disclaimer a, .palazzo-disclaimer-top a, .palazzo-disclaimer-bottom a, .palazzo-footer-link:hover, .palazzo-message.assistant a { color: var(--gold); }
.palazzo-sep-gold, .palazzo-message.assistant hr { background: var(--gold-line); height: 1px; border: 0; }
.palazzo-side-name, .palazzo-conv-status, .palazzo-quota-count, .palazzo-profile-chevron, .palazzo-recap-title, .palazzo-msg-title, .palazzo-suggestions-intro, .palazzo-followups-intro, .palazzo-thinking-body, .palazzo-cursor, .palazzo-glyph, .palazzo-quota-pill-text, .palazzo-message.assistant strong { color: var(--gold); }
.palazzo-profile-label, .palazzo-profile-sub, .palazzo-quota-total, .palazzo-sigil, .palazzo-footer-sep, .palazzo-section-label { color: var(--ink-3); text-transform: none; letter-spacing: 0; }
.palazzo-section-label { border-bottom: 1px solid var(--line); }
.palazzo-profile-dropdown, .palazzo-quota-pill { background: var(--modal-bg); border: 1px solid var(--line); border-radius: var(--radius-m); box-shadow: var(--shadow); }
.palazzo-profile-option { background: transparent; border: 0; color: var(--ink-2); border-radius: var(--radius-s); }
.palazzo-profile-option:hover, .palazzo-session-item:hover { background: var(--surface-hover); color: var(--ink); }
.palazzo-profile-option.is-active, .palazzo-session-item.active { background: var(--gold-tint); color: var(--gold); }
.palazzo-session-item { color: var(--ink-2); border-radius: var(--radius-s); }
.palazzo-session-item::before { color: var(--ink-4); }
.palazzo-session-item:hover::before, .palazzo-session-item.active::before { color: var(--gold); }
.palazzo-quota-bar { background: var(--surface-3); border-radius: var(--radius-pill); }
.palazzo-quota-bar-fill { background: linear-gradient(90deg, var(--gold-fill), var(--gold-fill-2)); border-radius: var(--radius-pill); }
.palazzo-message, .palazzo-message.assistant, .palazzo-frame-wrap .palazzo-message { background: transparent; border: 0; color: var(--ink); }
.palazzo-message.assistant { border-left: 1px solid var(--gold-line); border-radius: 0; }
.palazzo-message.assistant p, .palazzo-message.assistant em, .palazzo-aphorisme, .palazzo-message.assistant blockquote { color: var(--ink-2); }
.palazzo-message.assistant blockquote { border-left: 1px solid var(--gold-line); }
.palazzo-message.user, .palazzo-frame-wrap .palazzo-message.user { background: var(--surface); border: 1px solid var(--line); color: var(--ink); border-radius: var(--radius-m); }
.palazzo-message.system { background: var(--gold-tint); border: 1px solid var(--gold-line); color: var(--ink); border-radius: var(--radius-m); }
.palazzo-msg-title { border-bottom: 1px solid var(--line); }
.palazzo-aphorisme { border-bottom: 1px solid var(--line); }
.palazzo-recap-list li, .palazzo-thinking-label { color: var(--ink-2); }
.palazzo-chip { background: var(--surface-2); border: 1px solid var(--line); color: var(--ink); border-radius: var(--radius-pill); }
.palazzo-form textarea, .palazzo-frame-wrap > .palazzo-form textarea { background: var(--surface); border: 1px solid var(--line); color: var(--ink); border-radius: var(--radius-m); box-shadow: none; }
.palazzo-form textarea::placeholder, .palazzo-frame-wrap > .palazzo-form textarea::placeholder { color: var(--ink-3); }
.palazzo-form textarea:focus, .palazzo-frame-wrap > .palazzo-form textarea:focus { border-color: var(--gold); box-shadow: 0 0 0 3px var(--focus); }
.palazzo-frame-wrap > .palazzo-form { background: transparent; border-top: 0; }
.palazzo-frame-wrap > .palazzo-form::before { background: var(--gold-line); }
.palazzo-frame-wrap > .palazzo-messages::-webkit-scrollbar-thumb, .palazzo-sessions-list::-webkit-scrollbar-thumb { background: var(--line-2); }
.palazzo-thinking-rich { background: transparent; border: 0; }
.palazzo-eyebrow { display: none; }

/* ---- 12. Bordures « réservées » (transparentes à l'origine) : on rend la transparence, et l'état actif ---- */
.v5-nav-links .v5-has-sub > button::before { border-left-color: transparent; border-right-color: transparent; border-top-color: currentColor; }
.v5-nav-signin, .grimoire-breadcrumb a, .grimoire-detail-nav a { border-bottom-color: transparent; }
.v5-nav-signin:hover, .grimoire-breadcrumb a:hover, .grimoire-detail-nav a:hover { border-bottom-color: var(--gold); }
.cx-sign, .cx-crit-tab, .cx-sort-btn, .auth-tab { border-bottom-width: 1px; }
.syn-source-tab, .fam-source-tab { background: transparent; border: 0; border-bottom: 2px solid transparent; color: var(--ink-3); font-family: var(--font-sans); font-weight: 500; border-radius: 0; }
.syn-source-tab:hover, .fam-source-tab:hover { color: var(--ink); }
.syn-source-tab.is-active, .fam-source-tab.is-active, .syn-source-tab[aria-selected="true"], .fam-source-tab[aria-selected="true"], .syn-source-tab.active, .fam-source-tab.active { color: var(--gold); border-bottom-color: var(--gold); }
.cn-toggle-group label { border-color: transparent; }
.sg-push-actions button { border: 1px solid var(--line); }

/* ---- 13. Liste éditoriale des articles ---- */
.article-row { color: var(--ink); border-bottom: 1px solid var(--line); }
.article-row h3 { color: var(--ink); }
.article-row p { color: var(--ink-2); }
.article-row .article-num, .article-row .article-date { color: var(--ink-3); font-family: var(--font-mono); text-transform: none; letter-spacing: 0; }
.article-row .article-tag { color: var(--gold); font-family: var(--font-sans); font-weight: 500; text-transform: none; letter-spacing: 0; }
.article-row:hover h3 { color: var(--gold-2); }
.v5-nav-signin, .v5-nav-cta { white-space: nowrap; }

/* ---- 14. Texte posé sur photo (cartes célébrités) : scrim sombre + texte clair + ombre fine ---- */
.celeb-card-photo { position: relative; overflow: hidden; }
.celeb-card-photo-overlay { background: linear-gradient(to bottom, transparent 0%, var(--scrim) 100%); padding-top: 3.2rem; }
.celeb-card-photo-overlay .celeb-card-name, .celeb-card-photo-overlay .celeb-card-name em { color: var(--on-photo); text-shadow: var(--photo-shadow); }
.celeb-card-photo-overlay .celeb-card-name em { color: var(--on-photo-gold); }
.celeb-card-photo-overlay .celeb-card-tagline { color: var(--on-photo-2); text-shadow: var(--photo-shadow); }
.celeb-card-photo:has(img[hidden]) .celeb-card-photo-overlay { background: none; padding-top: 1.4rem; }
.celeb-card-photo:has(img[hidden]) .celeb-card-name, .celeb-card-photo:has(img[hidden]) .celeb-card-name em { color: var(--ink); text-shadow: none; }
.celeb-card-photo:has(img[hidden]) .celeb-card-name em { color: var(--gold); }
.celeb-card-photo:has(img[hidden]) .celeb-card-tagline { color: var(--ink-2); text-shadow: none; }
.celeb-card-photo-placeholder { color: var(--gold); font-family: var(--font-serif); }

/* ---- 15. Index célébrités : un seul cadre de recherche, pastilles plus larges ---- */
.cx-search-field { background: var(--surface); border: 1px solid var(--line-2); border-radius: var(--radius-pill); padding: 0 1.25rem; }
.cx-search-field:focus-within { border-color: var(--gold); box-shadow: 0 0 0 3px var(--focus); }
#celebs-search .cx-search-input, #celebs-search input.cx-search-input, #celebs-search .cx-search-input:focus { background: transparent; border: 0; box-shadow: none; outline: none; border-radius: 0; }
.cx-crit-tab { padding: .5rem 1.15rem; }
.cx-sign { min-width: 78px; padding: .6rem .95rem .55rem; gap: .28rem; }
.cx-sign[data-sign="all"] { min-width: 78px; }
.cx-sign-label { font-size: .78rem; }
.cx-era { padding: .45rem 1.05rem; }
.cx-sort-btn { padding: .38rem .85rem; }
.cn-hero .container.celebs-hero-inner { padding-left: 1.1rem; padding-right: 1.1rem; box-sizing: border-box; }
.cx-crit-tabs { gap: .5rem .6rem; }

/* ---- 16. TV Astro : texte posé sur vidéo (voile dégradé + or) ---- */
.voyage-card-overlay { background: linear-gradient(to top, var(--scrim) 0%, var(--scrim-soft) 46%, transparent 78%); }
.voyage-card-glyph { color: var(--on-photo-gold); font-family: var(--font-glyph); text-shadow: var(--photo-shadow); }
.voyage-card-title, .voyage-card-title em { color: var(--on-photo-gold); font-family: var(--font-serif); text-shadow: var(--photo-shadow); }
.voyage-card-body { color: var(--on-photo-gold); text-shadow: var(--photo-shadow); }
.voyage-card-cta { color: var(--on-photo-gold); border-color: var(--on-photo-gold); background: var(--scrim-soft); border-radius: var(--radius-pill); }
.voyage-card-video-wrap { border-color: var(--line); border-radius: var(--radius-l); background: var(--surface); }
.voyage-card-video-wrap:hover { border-color: var(--gold-line); }
.voyage-hero-title, .voyage-hero-title em { color: var(--ink); }
.voyage-hero-title em { color: var(--gold); }
.voyage-hero-body { color: var(--ink-2); }
.voyage-card-overlay { padding-bottom: calc(clamp(20px, 4vw, 28px) + 38px); }

/* Navigation : les déclencheurs de sous-menu restent nus (aucun cadre) ; le survol souligne, comme les liens. */
.v5-nav-links .v5-has-sub > button, .v5-nav-links .v5-has-sub > button:hover { background: transparent; border: 0; border-radius: 0; box-shadow: none; padding-left: 0; padding-right: 0; }

/* ---- 17. Cartes en grille : la marge d'empilement « article + article » ne s'applique pas aux enfants d'une grille ---- */
:is([class*="grid"], [class*="cards"], [class*="-list"], .packs-grid-v5, .settings-grid, .profils-grid, .commandes-grid) > article + article,
:is([class*="grid"], [class*="cards"], [class*="-list"]) > section + section { margin-top: 0; }

/* ---- 18. Révolution solaire ---- */
.rs-hero-title, .rs-hero-title em { color: var(--ink); }
.rs-hero-title em { color: var(--gold); }
.rs-hero-body { color: var(--ink-2); }
.rs-fieldset { background: var(--surface); border-color: var(--line); border-radius: var(--radius-l); }
.rs-legend { color: var(--gold); font-family: var(--font-serif); font-size: 1.15rem; font-weight: 400; }
.rs-check { color: var(--ink); }
.rs-check input { accent-color: var(--gold-fill); }
.rs-head { background: var(--surface); border-color: var(--line); border-radius: var(--radius-l); }
.rs-head-instant { color: var(--ink-2); font-family: var(--font-serif); font-size: clamp(1.15rem, 2.4vw, 1.55rem); font-weight: 300; }
.rs-head-instant strong { color: var(--gold); font-weight: 400; }
.rs-head-meta { color: var(--ink-3); font-family: var(--font-mono); font-size: .82rem; }
.rs-head-note { color: var(--ink-2); font-size: .92rem; }
.rs-time-warning { color: var(--ink-2); background: var(--gold-tint); border: 1px solid var(--gold-line); border-radius: var(--radius-m); padding: .9rem 1.1rem; }
.rs-wheel { background: transparent; }
.rs-card { background: var(--surface); border-color: var(--line); border-radius: var(--radius-l); }
.rs-card-title { color: var(--ink); font-family: var(--font-serif); font-size: 1.15rem; font-weight: 400; }
.rs-card-sub { color: var(--gold); font-family: var(--font-mono); font-size: .8rem; }
.rs-card-body { color: var(--ink-2); }
.rs-table-caption { color: var(--ink-3); font-family: var(--font-sans); font-size: .85rem; }
.rs-aspects-table tr { border-bottom-color: var(--line); }
.rs-aspects-table tr:hover { background: var(--surface-hover); }
.rs-asp-sr { color: var(--ink); display: block; }
.rs-asp-head { font-weight: 400; }
.rs-asp-link { color: var(--ink-3); display: block; font-size: .88rem; }
.rs-asp-link.asp-conj { color: var(--gold); }
.rs-asp-link.asp-tense { color: var(--el-feu); }
.rs-asp-link.asp-soft { color: var(--ok); }
.rs-head-degraded { color: var(--ink-2); font-size: .92rem; }
.rs-asp-natal { color: var(--ink); display: block; font-size: .92rem; }
.rs-asp-orb { color: var(--ink-3); font-family: var(--font-mono); font-size: .85rem; }
.rs-asp-text { color: var(--ink-2); }
.rs-empty { color: var(--ink-3); }
.rs-method summary { color: var(--gold); }
.rs-method-body p { color: var(--ink-3); font-size: .92rem; }
.rs-upsell-card { background: var(--surface); border-color: var(--gold-line); border-radius: var(--radius-l); }
.rs-upsell-card h2 { color: var(--ink); }
.rs-upsell-card p { color: var(--ink-2); }

/* ---- 19. Page « Deux façons d'avancer » (consultations et accès au site) ---- */
.of-hero h1, .of-hero h1 em { color: var(--ink); }
.of-hero h1 em { color: var(--gold); }
.of-lead { color: var(--ink-2); font-size: 1.05rem; }
.of-door { background: var(--surface); border-color: var(--line); border-radius: var(--radius-l); transition: border-color .2s var(--ease), background .2s var(--ease); }
.of-door:hover { border-color: var(--gold); background: var(--surface-hover); }
.of-door-title { color: var(--ink); font-family: var(--font-serif); font-size: clamp(1.3rem, 2.6vw, 1.7rem); }
.of-door-text { color: var(--ink-2); }
.of-door-price strong { color: var(--gold); font-family: var(--font-serif); font-size: 1.35rem; font-weight: 400; }
.of-door-price span { color: var(--ink-3); font-family: var(--font-mono); font-size: .78rem; }
.of-door-link { color: var(--gold); font-family: var(--font-sans); font-size: .88rem; font-weight: 500; }
.of-door:hover .of-door-link { color: var(--gold-2); }

.of-section-head p, .of-note { color: var(--ink-2); }
.of-format { background: var(--surface); border-color: var(--line); border-radius: var(--radius-l); }
.of-format .pack-head { border-bottom-color: var(--line); }
.of-format .pack-tier { color: var(--ink-3); font-family: var(--font-sans); font-size: .82rem; letter-spacing: 0; text-transform: none; }
.of-format .pack-price { color: var(--gold); font-family: var(--font-serif); font-size: 1.75rem; font-weight: 400; }
.of-format .pack-price-unit { color: var(--ink-3); font-family: var(--font-mono); font-size: .68rem; }
.of-format h3 { color: var(--ink); font-family: var(--font-serif); font-size: 1.3rem; font-weight: 400; }
.of-format .pack-pitch { color: var(--ink-2); font-size: .95rem; }
.of-format .pack-features { border-top-color: var(--line); color: var(--ink-2); font-size: .9rem; }
.of-format .pack-features li::before { content: "—"; position: absolute; left: 0; color: var(--gold); }
.of-format .btn-arrow { color: var(--gold); background: transparent; }
.of-format:hover .btn-arrow { color: var(--gold-2); }
.of-note a { color: var(--gold); }
.of-steps-title { color: var(--ink); font-family: var(--font-serif); font-size: clamp(1.3rem, 2.6vw, 1.8rem); font-weight: 300; }
.of-steps { border-left-color: var(--line); }
.of-step-num { color: var(--gold); font-family: var(--font-mono); font-size: .82rem; }
.of-step h4 { color: var(--ink); font-family: var(--font-serif); font-size: 1.15rem; font-weight: 400; }
.of-step p { color: var(--ink-2); }

.of-booking-head h3 { color: var(--ink); font-family: var(--font-serif); font-size: clamp(1.3rem, 2.6vw, 1.8rem); }
.of-booking-head p { color: var(--ink-2); }
.of-calendly { background: var(--surface); border-color: var(--line); border-radius: var(--radius-l); }
.of-booking-alt { background: var(--surface); border-color: var(--gold-line); border-radius: var(--radius-m); }
.of-booking-alt p { color: var(--ink); }
.of-tip { background: var(--surface); border-color: var(--line); border-radius: var(--radius-m); color: var(--ink-2); font-size: .92rem; }
.of-tip strong { color: var(--ink); font-weight: 500; }
.of-tip a { color: var(--gold); }

.of-plan { background: var(--surface); border-color: var(--line); border-radius: var(--radius-l); }
.of-plan--featured { border-color: var(--gold); box-shadow: inset 0 0 0 1px var(--gold-line); }
.of-plan-badge { color: var(--on-gold); background: linear-gradient(120deg, var(--gold-fill-2), var(--gold-fill)); border-radius: var(--radius-pill); font-family: var(--font-sans); font-size: .75rem; font-weight: 600; letter-spacing: .02em; text-transform: none; }
.of-plan-name { color: var(--ink); font-family: var(--font-serif); font-size: 1.4rem; font-weight: 400; }
.of-plan-price strong { color: var(--gold); font-family: var(--font-serif); font-size: 1.9rem; font-weight: 400; }
.of-plan-price span { color: var(--ink-3); font-family: var(--font-mono); font-size: .76rem; }
.of-plan-pitch { color: var(--ink-2); font-size: .95rem; }
.of-plan-list { border-top-color: var(--line); color: var(--ink-2); font-size: .92rem; }
.of-plan-list li span:first-child { color: var(--ok); }

.of-compare caption { color: var(--ink-3); font-family: var(--font-sans); font-size: .85rem; }
.of-compare thead th { color: var(--ink); font-family: var(--font-sans); font-size: .82rem; font-weight: 600; letter-spacing: 0; text-transform: none; border-bottom-color: var(--line-2); }
.of-compare tbody th { color: var(--ink); font-weight: 400; }
.of-compare td { color: var(--ink-2); font-family: var(--font-mono); font-size: .84rem; }
.of-compare tbody tr:hover td, .of-compare tbody tr:hover th { background: var(--surface-hover); }

.of-faq-col h3 { color: var(--gold); font-family: var(--font-serif); font-size: 1.2rem; font-weight: 400; }
.of-faq-item { border-bottom-color: var(--line); border-top: 0; }
.of-faq-item summary { color: var(--ink); font-family: var(--font-sans); font-weight: 500; }
.of-faq-item p { color: var(--ink-2); }
.of-faq-item a { color: var(--gold); }

.of-contact { background: var(--surface); border-color: var(--gold-line); border-radius: var(--radius-l); }
.of-contact-head h3 { color: var(--ink); font-family: var(--font-serif); font-size: clamp(1.3rem, 2.6vw, 1.8rem); font-weight: 300; }
.of-contact-head p { color: var(--ink-2); }
.of-contact-form label span { color: var(--ink); font-family: var(--font-sans); font-size: .92rem; font-weight: 500; }
.of-contact-form label em { color: var(--ink-3); font-family: var(--font-mono); font-size: .7rem; }
.of-contact-form input, .of-contact-form textarea { background: var(--bg); border-color: var(--line); color: var(--ink); border-radius: var(--radius-m); font-family: var(--font-sans); }
.of-contact-form input::placeholder, .of-contact-form textarea::placeholder { color: var(--ink-4); }
.of-contact-form input:focus, .of-contact-form textarea:focus { border-color: var(--gold); box-shadow: 0 0 0 3px var(--focus); outline: none; }
.of-contact-legal { color: var(--ink-3); font-size: .82rem; }
.of-contact-legal a { color: var(--gold); }
.of-end { background: var(--surface); border-color: var(--gold-line); border-radius: var(--radius-l); }
.of-end h2 { color: var(--ink); }
.of-end p { color: var(--ink-2); }

/* ---- 20. Méga menu ---- */
.v5-nav-submenu.v5-mega { background: var(--surface); border-bottom-color: var(--line); box-shadow: var(--shadow); border-radius: 0; }
[data-theme="dark"] .v5-nav-submenu.v5-mega { background: var(--sheet-bg); }
.v5-mega-rail { border-right-color: var(--line); }
.v5-mega-rail a { color: var(--ink); background: transparent; }
.v5-mega-rail a:hover { color: var(--gold); background: transparent; }
.v5-mega-rail a small { color: var(--ink-3); font-family: var(--font-mono); font-size: .7rem; }
.v5-mega-rail a:hover small { color: var(--gold); }
.v5-mega-stage { border: 1px solid var(--line); border-radius: var(--radius-m); background: var(--surface-2); overflow: hidden; }
.v5-mega-shot img { filter: saturate(.94); transform: scale(1.03); transition: transform .9s var(--ease); }
.v5-mega-shot::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, var(--scrim-soft), transparent 58%); pointer-events: none; }
.v5-mega-shot:hover img { transform: scale(1.06); }
.v5-mega-shot-cap { z-index: 2; background: linear-gradient(to top, var(--scrim) 0%, var(--scrim) 62%, transparent 100%); }
.v5-mega-shot-title { color: var(--on-photo); font-family: var(--font-serif); font-size: clamp(1.15rem, 1.5vw, 1.45rem); font-weight: 300; text-shadow: var(--photo-shadow); }
.v5-mega-shot-text { color: var(--on-photo-2); font-size: .88rem; line-height: 1.55; text-shadow: var(--photo-shadow); }
.v5-mega-shot-go { color: var(--on-photo-gold); font-family: var(--font-sans); font-size: .82rem; margin-top: 3px; text-shadow: var(--photo-shadow); }
.v5-mega-foot { border-top-color: var(--line); color: var(--ink-3); font-size: .85rem; }
.v5-mega-foot a { color: var(--gold); }

/* ---------- 21. LISIBILITÉ DES ÉTATS SÉLECTIONNÉS ----------
   Tout ce qui prend le fond doré force son contenu en encre sombre.
   Sans cette passe, une règle de couleur posée plus bas dans la feuille sur un
   enfant (.param-toggle span, .cx-sign-glyph…) repeignait le texte en gris ou en
   doré PAR-DESSUS le fond doré : illisible. On la place en fin de fichier pour
   qu'elle gagne à la fois par spécificité et par ordre. */
.tfc-pill:has(input:checked), .tfc-pill:has(input:checked) *,
.radio-pill:has(input:checked), .radio-pill:has(input:checked) *,
.param-toggle:has(input:checked), .param-toggle:has(input:checked) *,
.rs-check:has(input:checked), .rs-check:has(input:checked) *,
.pill.is-active, .pill.is-active *,
.cn-pill.is-active, .cn-pill.is-active *,
.cx-crit-tab.is-active, .cx-crit-tab.is-active *,
.cx-sign.is-active, .cx-sign.is-active *,
.cx-sort-btn.is-active, .cx-sort-btn.is-active *,
.auth-tab.is-active, .auth-tab.is-active *,
.cn-auth-tab.is-active, .cn-auth-tab.is-active *,
.cat-btn.is-active, .cat-btn.is-active *,
.filter-chip.is-active, .filter-chip.is-active *,
.filter-chip[aria-pressed="true"], .filter-chip[aria-pressed="true"] *,
.sign.is-active, .sign.is-active *,
.sign-btn.is-active, .sign-btn.is-active *,
.cdj-unit-btn.is-on, .cdj-unit-btn.is-on *,
.cdj-unit-btn[aria-pressed="true"], .cdj-unit-btn[aria-pressed="true"] *,
.three-fab.is-on, .three-fab.is-on *,
.badge-solid *, .cplan-badge *, .pr-price-badge *, .tarif-badge *,
.plan-badge *, .of-plan-badge *, .celeb-sticky-cta a *,
.submit-btn *, .auth-submit *, .signup-submit *, .login-submit *,
.palazzo-btn-primary *, .palazzo-send *, .palazzo-quota-upgrade *,
.palazzo-recap-cta-primary *, .palazzo-new-session * { color: var(--on-gold); }
/* la case à cocher elle-même : doré sur doré = case fantôme */
.tfc-pill:has(input:checked) input, .radio-pill:has(input:checked) input,
.param-toggle:has(input:checked) input, .rs-check:has(input:checked) input { accent-color: var(--on-gold); }
