/* ==========================================================================
   Onyx - locked luxury dark theme (loaded AFTER vanilla).
   Near-black charcoal, champagne-gold accent, thin elegant Cormorant serif
   headings over Inter. Premium and restrained.
     page #14130f   cards #1e1c17   bands #000   accent gold #c9a86a
   ========================================================================== */

.theme-onyx {
    --font-heading: 'Cormorant', Georgia, 'Times New Roman', serif;
    --font-body: 'Inter', system-ui, -apple-system, sans-serif;

    --color-accent: #c9a86a;
    --color-accent-hover: #d8bd86;

    --color-bg: #14130f;
    --color-surface: #1e1c17;
    --color-surface-dark: #000000;
    --color-border: #322f27;

    --color-text: #f3efe6;
    --color-text-secondary: #a8a293;
    --color-text-muted: #cabfa6;
    --color-text-on-dark: #ffffff;
    --color-text-on-dark-muted: #8c8678;

    --radius-sm: 2px;
    --radius-md: 4px;
    --radius-lg: 8px;
}

body.theme-onyx { background: var(--color-bg); }

/* Large, light, elegant serif headings. */
.theme-onyx h1,
.theme-onyx h2,
.theme-onyx h3,
.theme-onyx h4 { font-weight: 600; letter-spacing: 0; }
.theme-onyx .c-hero__title { font-weight: 500; font-size: clamp(3rem, 6.5vw, 5rem); }
.theme-onyx .c-nav__link,
.theme-onyx .c-nav__mobile a { letter-spacing: 0.08em; text-transform: uppercase; font-weight: 500; font-size: 0.95rem; }

/* Buttons: gold fill, BLACK label (white fails on gold). */
.theme-onyx .btn-primary,
.theme-onyx .btn--primary { color: #1a160d; font-weight: 600; }
.theme-onyx .btn-primary:hover,
.theme-onyx .btn--primary:hover { background: var(--color-accent-hover); color: #1a160d; }
.theme-onyx .btn-secondary,
.theme-onyx .btn--secondary { color: var(--color-text); border-color: var(--color-border); }
.theme-onyx .btn-secondary:hover,
.theme-onyx .btn--secondary:hover { border-color: var(--color-accent); }

/* Nav: translucent charcoal, gold CTA with black label. */
.theme-onyx .c-nav { background: rgba(20, 19, 15, 0.88); border-bottom: 1px solid var(--color-border); }
.theme-onyx .c-nav__logo,
.theme-onyx .c-nav__link { color: var(--color-text); }
.theme-onyx .c-nav__link:hover { opacity: 0.62; }
.theme-onyx .c-nav__link--button { background: var(--color-accent); color: #1a160d; }
.theme-onyx .c-nav__link--button:hover { background: var(--color-accent-hover); opacity: 1; }
.theme-onyx .c-nav__hamburger span { background: var(--color-text); }
.theme-onyx .c-nav__mobile { background: rgba(20, 19, 15, 0.98); }
.theme-onyx .c-nav__mobile a { border-bottom-color: var(--color-border); }

/* Eyebrows in gold. */
.theme-onyx .c-hero__label,
.theme-onyx .c-section-head__label,
.theme-onyx .c-services__label,
.theme-onyx .c-label { color: var(--color-accent); letter-spacing: 0.18em; }
.theme-onyx .c-hero--image .c-hero__label { color: rgba(255, 255, 255, 0.9); }

/* Cards lifted off the page; gold hairline on hover. */
.theme-onyx .c-service-card,
.theme-onyx .c-pricing-index__card,
.theme-onyx .oh-dept { background: var(--color-surface); }
.theme-onyx .c-service-card__image { background: var(--color-bg); }
.theme-onyx .c-service-card:hover { border-color: var(--color-accent); box-shadow: 0 16px 44px rgba(0, 0, 0, 0.6); }
.theme-onyx .c-pricing-index__card:hover { border-color: var(--color-accent); }
.theme-onyx .c-services,
.theme-onyx .c-tabs,
.theme-onyx .c-cta { background: var(--color-bg); }

/* Dark bands. */
.theme-onyx .c-footer,
.theme-onyx .c-stats,
.theme-onyx .c-quote-cta { background-color: #000; border-top: 1px solid var(--color-border); }

/* Prose links in gold. */
.theme-onyx .c-prose a { color: var(--color-accent); border-bottom-color: var(--color-accent); }

/* Forms: dark fields, gold focus ring. */
.theme-onyx .field input,
.theme-onyx .field select,
.theme-onyx .field textarea,
.theme-onyx .bk-search input { background: var(--color-surface); color: var(--color-text); border-color: var(--color-border); }
.theme-onyx .field input::placeholder,
.theme-onyx .field textarea::placeholder { color: var(--color-text-secondary); }
.theme-onyx .field input:focus,
.theme-onyx .field select:focus,
.theme-onyx .field textarea:focus,
.theme-onyx .bk-search input:focus { border-color: var(--color-accent); box-shadow: 0 0 0 3px rgba(201, 168, 106, 0.20); }

/* Selected states: gold fill, black mark. */
.theme-onyx .slot-btn { background: var(--color-surface); color: var(--color-text); }
.theme-onyx .slot-btn:hover { border-color: var(--color-accent); }
.theme-onyx .slot-btn.is-selected { background: var(--color-accent); color: #1a160d; border-color: var(--color-accent); }
.theme-onyx .bk-card,
.theme-onyx .bk-upsell { background: var(--color-surface); }
.theme-onyx .bk-card.is-selected .bk-card__check,
.theme-onyx .bk-card--option:has(input:checked) .bk-card__check,
.theme-onyx .bk-upsell:has(input:checked) .bk-upsell__check { color: #1a160d; }
.theme-onyx .bk-cart__toggle { color: #1a160d; }
.theme-onyx .bk-cart__count { background: #000; color: var(--color-accent); }

/* Quote-CTA button on the black band: gold fill, black label. */
.theme-onyx .c-quote-cta .btn-primary,
.theme-onyx .c-quote-cta .btn--primary { background: var(--color-accent); color: #1a160d; }
.theme-onyx .c-quote-cta .btn-primary:hover,
.theme-onyx .c-quote-cta .btn--primary:hover { background: var(--color-accent-hover); }

/* ===== HERO: solid-gold "banner" - black text, black button ===== */
.theme-onyx .c-hero--banner { background: var(--color-accent); color: #1a160d; }
.theme-onyx .c-hero--banner .c-hero__title,
.theme-onyx .c-hero--banner .c-hero__desc { color: #1a160d; }
.theme-onyx .c-hero--banner .c-hero__label { color: rgba(26, 22, 13, 0.7); }
.theme-onyx .c-hero--banner .btn-primary,
.theme-onyx .c-hero--banner .btn--primary { background: #14130f; color: var(--color-accent); }
.theme-onyx .c-hero--banner .btn-primary:hover,
.theme-onyx .c-hero--banner .btn--primary:hover { background: #000; }
