/* Bleu Élite uses the two dominant colors sampled from the supplied logo. */
:root, [data-theme="bleu"] {
  --ink: #112b4b; --navy: #04245d; --navy-light: #09467f;
  --copper: #b9dafe; --copper-dark: #09467f; --paper: #f7faff;
  --line: #d7e2f0; --muted: #536579; --panel: #eaf1fb; --panel-soft: #f0f5fc;
  --header-bg: #04245d; --header-ink: #fff; --header-muted: #d8e6f7;
  --topbar-bg: #031b47; --footer-bg: #031b47; --on-dark-muted: #d8e6f7;
  --hero-rgb: 4, 36, 93; --hero-ink: #fff; --hero-muted: #d8e6f7; --hero-em: #c6e0ff;
  --action-bg: #09467f; --action-ink: #fff; --action-hover: #063866;
}
[data-theme="signature"] {
  --ink: #142b34; --navy: #10252d; --navy-light: #1b343d;
  --copper: #d5aa82; --copper-dark: #865733; --paper: #fbfaf7;
  --line: #d9dedc; --muted: #5a686b; --panel: #e9e2d6; --panel-soft: #f6f3ee;
  --header-bg: #10252d; --header-ink: #fff; --header-muted: #e0e7e9;
  --topbar-bg: #0b1d24; --footer-bg: #0c1e26; --on-dark-muted: #c4cfd1;
  --hero-rgb: 16, 37, 45; --hero-ink: #fff; --hero-muted: #d2d9d9; --hero-em: #e3b78d;
  --action-bg: #d5aa82; --action-ink: #10252d; --action-hover: #e9c29c;
}
[data-theme="ivoire"] {
  --ink: #173451; --navy: #173451; --navy-light: #2d506f;
  --copper: #e5c99f; --copper-dark: #805a36; --paper: #fffdf8;
  --line: #e0d8cc; --muted: #596776; --panel: #f0e8dc; --panel-soft: #f8f3eb;
  --header-bg: #fffdf8; --header-ink: #173451; --header-muted: #455b73;
  --topbar-bg: #f0e8dc; --footer-bg: #173451; --on-dark-muted: #dce5ee;
  --hero-rgb: 255, 253, 248; --hero-ink: #173451; --hero-muted: #385572; --hero-em: #805a36;
  --action-bg: #805a36; --action-ink: #fff; --action-hover: #654325;
}
[data-theme="foret"] {
  --ink: #1b3930; --navy: #173e36; --navy-light: #285b4e;
  --copper: #cdddac; --copper-dark: #3f684a; --paper: #fafbf6;
  --line: #d7e0d3; --muted: #57695e; --panel: #e8efdf; --panel-soft: #f2f6ea;
  --header-bg: #173e36; --header-ink: #fff; --header-muted: #e2ecd9;
  --topbar-bg: #112f29; --footer-bg: #112f29; --on-dark-muted: #d8e7d8;
  --hero-rgb: 23, 62, 54; --hero-ink: #fff; --hero-muted: #d8e7d8; --hero-em: #d5e7b7;
  --action-bg: #cdddac; --action-ink: #173e36; --action-hover: #e0edc5;
}
:focus-visible { outline-color: var(--copper-dark); }
::selection { background: var(--copper); color: var(--navy); }
.button-copper { background: var(--action-bg); color: var(--action-ink); }
.button-copper:hover { background: var(--action-hover); }
.hero .button-copper { background: var(--copper); color: var(--navy); }
.hero .button-copper:hover { background: color-mix(in srgb, var(--copper) 85%, white); }
.button-dark:hover, .final-cta .button:hover { background: var(--navy-light); }
.topbar { background: var(--topbar-bg); color: var(--header-muted); position: relative; z-index: 40; }
.topbar a { color: var(--header-muted); }
.topbar .container { gap: 16px; min-height: 44px; }
.topbar-start { display: flex; align-items: center; gap: 24px; }
.site-header, .site-header nav.is-open, .language-picker select { background: var(--header-bg); color: var(--header-ink); }
.site-header { border-color: color-mix(in srgb, var(--header-ink) 18%, transparent); }
.site-header nav a { color: var(--header-muted); }
.header-cta, .language-picker select { border-color: color-mix(in srgb, var(--header-ink) 40%, transparent); }
.header-cta:hover { background: var(--copper); color: var(--navy); }
.menu-toggle span { background: var(--header-ink); }
.language-picker select:focus-visible { outline-color: var(--copper); }
.site-header :focus-visible, .theme-toggle:focus-visible { outline-color: var(--header-ink); }
.hero :focus-visible { outline-color: var(--hero-ink); }
.hero { color: var(--hero-ink); }
.hero::after, [dir="rtl"] .hero::after {
  background: linear-gradient(var(--hero-angle, 90deg), rgba(var(--hero-rgb), .98) 0%, rgba(var(--hero-rgb), .87) 25%, rgba(var(--hero-rgb), .60) 51%, rgba(var(--hero-rgb), .10) 83%), linear-gradient(0deg, rgba(var(--hero-rgb), .65), transparent 45%);
}
[dir="rtl"] { --hero-angle: 270deg; }
.hero .eyebrow, .hero h1 em, .hero-location svg { color: var(--hero-em); }
.hero :is(.hero-description, .hero-secondary, .hero-location small, .hero-bottom) { color: var(--hero-muted); }
.hero-location { border-color: color-mix(in srgb, var(--hero-ink) 40%, transparent); }
.hero-bottom { border-color: color-mix(in srgb, var(--hero-ink) 25%, transparent); }
.hero .eyebrow-line { background: var(--hero-em); }
[data-theme="ivoire"] .hero { background: var(--panel); }
[data-theme="ivoire"] .hero-image { opacity: .38; }
.trust-strip svg, .faq-number, .final-cta h2 em, .journey-teaser-copy h2 em { color: var(--copper-dark); }
.portrait-block, .final-cta, .journey-teaser, .orientation-card { background: var(--panel); }
.assistant-band, .chat-message.user { background: var(--navy-light); }
.site-footer { background: var(--footer-bg); }
.site-footer :is(p, .footer-bottom), .page-intro, .breadcrumb, .chat-header p, .steps p, .assistant-band p:not(.eyebrow), .approach-intro > p:last-child { color: var(--on-dark-muted); }
.page-hero .eyebrow, .approach .eyebrow, .approach h2 em, .steps article > span, .assistant-band .eyebrow, .journey-intro h1 em { color: var(--copper); }
.preparation, .chat-message, .chat-message.notice, .journey-teaser-card, .contact-journey-context { background: var(--panel-soft); }
.chat-message, .chat-message.notice, .journey-consent { color: var(--muted); }
.chat-message.user { color: #fff; background: var(--navy-light); }
.chat-quick button:hover { background: var(--panel-soft); }
.chat-launcher { border-color: color-mix(in srgb, var(--copper) 55%, var(--navy)); }
.chat-launcher:hover { background: var(--navy-light); }
.chat-launcher svg { color: var(--copper); }
.journey-case-number, .journey-topic-icon, .journey-teaser-card li > span { color: var(--copper-dark); }
.contact-journey-context { border-color: var(--copper-dark); }
.journey-intro > .container > p:not(.eyebrow) { color: var(--on-dark-muted); }
.journey-teaser-card { box-shadow: 10px 10px 0 var(--line); border-color: var(--line); }

.theme-picker { position: relative; flex-shrink: 0; letter-spacing: normal; }
.theme-toggle { display: flex; align-items: center; gap: 8px; min-height: 44px; border: 0; padding: 6px 0; background: none; color: var(--header-ink); font-size: .75rem; }
.theme-toggle svg { width: 17px; height: 17px; }
.theme-toggle:hover { text-decoration: underline; text-underline-offset: 4px; }
.theme-panel { position: absolute; inset-inline-start: 0; top: calc(100% + 8px); width: 350px; max-width: calc(100vw - 40px); max-height: calc(100dvh - 80px); overflow: auto; background: var(--paper); border: 1px solid var(--line); box-shadow: 0 16px 50px #001b3933; padding: 20px; border-radius: 12px; color: var(--ink); }
.theme-panel-heading { display: flex; justify-content: space-between; align-items: center; gap: 14px; margin-bottom: 16px; }
.theme-panel h2 { font: 700 .95rem/1.5 var(--font); letter-spacing: normal; }
.theme-close { display: grid; place-items: center; width: 36px; height: 36px; border: 0; background: transparent; color: var(--ink); font-size: 1.5rem; }
.theme-options { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; padding: 0; margin: 0; border: 0; min-width: 0; }
.theme-option { display: flex; flex-direction: column; gap: 6px; padding: 12px; border: 2px solid var(--line); border-radius: 8px; cursor: pointer; min-width: 0; background: #fff; color: #172e46; }
.theme-option:has(input:checked) { border-color: var(--copper-dark); background: var(--panel-soft); }
.theme-option:has(input:focus-visible) { outline: 2px solid var(--copper-dark); outline-offset: 3px; }
.theme-option-name { display: flex; align-items: center; gap: 7px; font-size: .8125rem; font-weight: 700; line-height: 1.5; }
.theme-option input { margin: 0; flex-shrink: 0; accent-color: var(--copper-dark); width: 15px; height: 15px; }
.theme-option small { font-size: .6875rem; line-height: 1.6; color: #536171; }
.theme-preview { height: 30px; border: 1px solid #172e461a; border-radius: 4px; background: linear-gradient(105deg, var(--swatch-dark) 0 50%, var(--swatch-light) 50% 75%, var(--swatch-accent) 75%); }
[data-theme-option="bleu"] { --swatch-dark: #04245d; --swatch-light: #fafaf8; --swatch-accent: #ce1e3e; }
[data-theme-option="signature"] { --swatch-dark: #10252d; --swatch-light: #fbfaf7; --swatch-accent: #d5aa82; }
[data-theme-option="ivoire"] { --swatch-dark: #fffdf8; --swatch-light: #f0e8dc; --swatch-accent: #805a36; }
[data-theme-option="foret"] { --swatch-dark: #173e36; --swatch-light: #fafbf6; --swatch-accent: #cdddac; }
.theme-note, .theme-status { font-size: .6875rem; line-height: 1.7; margin-top: 13px; color: var(--muted); }
.theme-status:empty { display: none; }
@media (max-width: 680px) {
  .topbar-start > span { display: none; }
  .topbar .container, html[lang="hi"] .topbar .container { justify-content: space-between; }
  .topbar-start { gap: 0; }
  .theme-toggle { font-size: .6875rem; }
  .theme-panel { width: 320px; padding: 16px; }
  .theme-option { padding: 10px; }
  .site-header nav .mobile-contact-link { color: var(--header-ink); }
  .hero::after, [dir="rtl"] .hero::after { background: linear-gradient(var(--hero-angle, 90deg), rgba(var(--hero-rgb), .94), rgba(var(--hero-rgb), .50)), linear-gradient(0deg, rgba(var(--hero-rgb), .90), transparent 65%); }
}
@media print {
  .theme-picker { display: none !important; }
}
