/* ==========================================================================
   Orbit - pitch-black, photo-led "mission control" theme (loaded AFTER vanilla).
   Pure black page, near-white text, condensed DIN-flavoured headlines
   (Barlow Condensed over Barlow), white primary buttons with dark labels,
   translucent frosted panels, hairline borders.
     page #000   cards #121316   hairline #26282c   text #fafafa
   ========================================================================== */

.theme-orbit {
    --font-heading: 'Barlow Condensed', 'Barlow', 'Arial Narrow', sans-serif;
    --font-body: 'Barlow', 'Helvetica Neue', Arial, sans-serif;

    /* White is the accent: actions are achromatic, imagery carries colour. */
    --color-accent: #fafafa;
    --color-accent-hover: #ffffff;

    --color-bg: #000000;
    --color-surface: #121316;
    --color-surface-dark: #000000;
    --color-border: #26282c;

    --color-text: #fafafa;
    --color-text-secondary: rgba(250, 250, 250, 0.62);
    --color-text-muted: rgba(250, 250, 250, 0.55);
    --color-text-on-dark: #fafafa;
    --color-text-on-dark-muted: rgba(250, 250, 250, 0.55);

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

body.theme-orbit { background: var(--color-bg); letter-spacing: 0.01em; }

/* ===== Type: big, bold, slightly condensed; tight leading ===== */
.theme-orbit h1,
.theme-orbit h2,
.theme-orbit h3,
.theme-orbit h4 { font-weight: 700; letter-spacing: 0; line-height: 1.05; }
.theme-orbit .c-hero__title { font-weight: 700; font-size: clamp(3rem, 7vw, 5.5rem); }
.theme-orbit .c-hero__desc { color: var(--color-text-secondary); font-size: 1.1rem; }

/* Eyebrows: tiny, bold, tracked-out uppercase at 55% white. */
.theme-orbit .c-hero__label,
.theme-orbit .c-section-head__label,
.theme-orbit .c-services__label,
.theme-orbit .c-label {
    color: var(--color-text-muted);
    font-family: var(--font-body);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

/* ===== Buttons: white fill / frosted glass, small radius, bold label ===== */
.theme-orbit .btn-primary,
.theme-orbit .btn--primary {
    background: #fafafa;
    color: rgba(0, 0, 0, 0.87);
    border: none;
    border-radius: 4px;
    font-weight: 700;
    font-size: 0.9rem;
    padding: 0.55rem 2rem;
}
.theme-orbit .btn-primary:hover,
.theme-orbit .btn--primary:hover { background: #fff; color: #000; transform: none; }
.theme-orbit .btn-secondary,
.theme-orbit .btn--secondary {
    background: rgba(255, 255, 255, 0.14);
    color: #fafafa;
    border: none;
    border-radius: 4px;
    font-weight: 700;
    font-size: 0.9rem;
    padding: 0.55rem 2rem;
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
}
.theme-orbit .btn-secondary:hover,
.theme-orbit .btn--secondary:hover { background: rgba(255, 255, 255, 0.24); color: #fff; }

/* ===== Nav: frosted black bar, tracked-out wordmark, white CTA ===== */
.theme-orbit .c-nav {
    background: rgba(0, 0, 0, 0.72);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.theme-orbit .c-nav__logo {
    color: #fafafa;
    letter-spacing: 0.26em;
    text-transform: uppercase;
    font-weight: 700;
    font-family: var(--font-body);
}
.theme-orbit .c-nav__link { color: rgba(250, 250, 250, 0.85); font-weight: 600; font-size: 0.9rem; }
.theme-orbit .c-nav__link:hover { color: #fff; opacity: 1; }
.theme-orbit .c-nav__link--button {
    background: #fafafa;
    color: rgba(0, 0, 0, 0.87);
    border-radius: 4px;
    font-weight: 700;
}
.theme-orbit .c-nav__link--button:hover { background: #fff; color: #000; }
.theme-orbit .c-nav__hamburger span { background: #fafafa; }
.theme-orbit .c-nav__mobile { background: rgba(0, 0, 0, 0.96); }
.theme-orbit .c-nav__mobile a { border-bottom-color: var(--color-border); color: #fafafa; }

/* ===== Heroes: full-height imagery, text lifted left, soft bottom fade ===== */
.theme-orbit .c-hero--image { min-height: 82vh; display: flex; align-items: center; }
.theme-orbit .c-hero--image::after {
    content: "";
    position: absolute;
    inset: auto 0 0 0;
    height: 18%;
    background: linear-gradient(rgba(0, 0, 0, 0), #000);
    pointer-events: none;
}
.theme-orbit .c-hero { position: relative; }
.theme-orbit .c-hero--image .c-hero__label { color: rgba(250, 250, 250, 0.7); }

/* ===== Sections & cards: black bands, lifted dark panels, hairlines ===== */
.theme-orbit .c-services,
.theme-orbit .c-tabs,
.theme-orbit .c-cta { background: var(--color-bg); }
.theme-orbit .c-service-card,
.theme-orbit .c-pricing-index__card,
.theme-orbit .oh-dept,
.theme-orbit .bk-card,
.theme-orbit .bk-upsell { background: var(--color-surface); border-color: var(--color-border); }
.theme-orbit .c-service-card__image { background: #0a0b0d; }
.theme-orbit .c-service-card:hover,
.theme-orbit .c-pricing-index__card:hover {
    border-color: rgba(250, 250, 250, 0.5);
    box-shadow: 0 18px 48px rgba(0, 0, 0, 0.7);
}

/* Dark bands stay pure black with a hairline seam. */
.theme-orbit .c-footer,
.theme-orbit .c-stats,
.theme-orbit .c-quote-cta { background-color: #000; border-top: 1px solid var(--color-border); }
.theme-orbit .c-footer a { font-weight: 600; }

/* Prose links: white with a hairline underline. */
.theme-orbit .c-prose a { color: #fafafa; border-bottom-color: rgba(250, 250, 250, 0.4); }

/* ===== Forms: dark fields, white focus ring ===== */
.theme-orbit .field input,
.theme-orbit .field select,
.theme-orbit .field textarea,
.theme-orbit .bk-search input { background: var(--color-surface); color: var(--color-text); border-color: var(--color-border); }
.theme-orbit .field input::placeholder,
.theme-orbit .field textarea::placeholder { color: var(--color-text-muted); }
.theme-orbit .field input:focus,
.theme-orbit .field select:focus,
.theme-orbit .field textarea:focus,
.theme-orbit .bk-search input:focus { border-color: #fafafa; box-shadow: 0 0 0 3px rgba(250, 250, 250, 0.16); }

/* ===== Selected states: white fill, dark mark ===== */
.theme-orbit .slot-btn { background: var(--color-surface); color: var(--color-text); border-color: var(--color-border); }
.theme-orbit .slot-btn:hover { border-color: #fafafa; }
.theme-orbit .slot-btn.is-selected { background: #fafafa; color: rgba(0, 0, 0, 0.87); border-color: #fafafa; }
.theme-orbit .bk-card.is-selected .bk-card__check,
.theme-orbit .bk-card--option:has(input:checked) .bk-card__check,
.theme-orbit .bk-upsell:has(input:checked) .bk-upsell__check { color: rgba(0, 0, 0, 0.87); }
.theme-orbit .bk-cart__toggle { color: rgba(0, 0, 0, 0.87); }
.theme-orbit .bk-cart__count { background: #000; color: #fafafa; }

/* ===== Pricing tables: hairline grid, tabular numerals ===== */
.theme-orbit .c-pricing__table th { background: var(--color-surface); }
.theme-orbit .c-pricing__table th,
.theme-orbit .c-pricing__table td { border-color: var(--color-border); }
.theme-orbit .c-pricing__price { font-variant-numeric: tabular-nums; }

/* Quote-CTA band button: white fill, dark label. */
.theme-orbit .c-quote-cta .btn-primary,
.theme-orbit .c-quote-cta .btn--primary { background: #fafafa; color: rgba(0, 0, 0, 0.87); }
.theme-orbit .c-quote-cta .btn-primary:hover,
.theme-orbit .c-quote-cta .btn--primary:hover { background: #fff; }

/* Accent-filled chips that vanilla labels with on-dark text: on Orbit the
   accent IS near-white, so those labels need dark ink. */
.theme-orbit .c-step__num { color: rgba(0, 0, 0, 0.87); }
.theme-orbit .skip-link { color: rgba(0, 0, 0, 0.87); }
.theme-orbit .c-pricing__add:hover { color: rgba(0, 0, 0, 0.87); }
