/* ─────────────────────────────────────────────────────────────────────
   I18N-FOUC-1 — pre-paint Hebrew bootstrap.
   The inline script at the top of <head> adds .i18n-pending to <html>
   when localStorage holds Hebrew. We hide ONLY the translatable nodes
   (not the whole page) so the layout is intact, the dark backdrop
   remains visible, but English fallback text never paints before
   setLang('he') swaps it. Removed by lang.js (and by a ~1.2 s failsafe
   in head.ejs) once translations have applied. visibility:hidden keeps
   the box flowing → no layout shift.
   ───────────────────────────────────────────────────────────────────── */
html.i18n-pending [data-i18n],
html.i18n-pending [data-i18n-html],
html.i18n-pending [data-i18n-placeholder] {
    visibility: hidden;
}

:root {
    /* MSLuxury palette — pulled directly from the silver/chrome monogram on black.
       The --gold variable name is retained for backwards compatibility; its value
       is now a brushed-silver tone so every element previously coloured gold reads
       as polished chrome instead. */
    --gold: #c8c8cc;            /* brushed silver — primary accent */
    --gold-hover: #a8a8ac;      /* deeper silver for hover/active states */
    --gold-light: rgba(200, 200, 204, 0.1);
    --silver-bright: #e6e6e8;   /* chrome highlight (matches monogram top edge) */
    --silver-shadow: #6e6e72;   /* engraved silver depth */
    --dark: #050505;            /* deep black backplate */
    --dark-2: #121214;          /* one step up */
    --dark-3: #1f1f23;          /* card surfaces */
    --light: #f4f4f5;
    --white: #ffffff;
    --gray: #888;
    --gray-light: #bbb;
    --border: #e0e0e0;
    --success: #2e7d32;
    --error: #c62828;
}

* { margin: 0; padding: 0; box-sizing: border-box; }

body {
    font-family: 'Inter', sans-serif;
    background-color: var(--light);
    color: var(--dark);
    line-height: 1.6;
}

/* RTL Support */
html[dir="rtl"] { overflow-x: hidden; }
html[dir="rtl"] body { direction: rtl; text-align: right; overflow-x: hidden; }
html[dir="rtl"] .nav-links { flex-direction: row-reverse; }
/* Phase HEBREW-LAUNCH-FIX-1 — RTL polish for buttons, badges, hero
   steps, mobile bottom-bar padding, and WhatsApp-float position. The
   uppercase + 2px letter-spacing that looks premium in Latin script
   reads as cramped in Hebrew, so we soften both. The featured-card +
   competition-card badges flip to right:14px so they sit at the
   visual start of the card in RTL mode. */
html[dir="rtl"] .cta-btn,
html[dir="rtl"] .lc-cta,
html[dir="rtl"] .section-eyebrow,
html[dir="rtl"] .why-enter-tag,
html[dir="rtl"] .hero-featured-badge,
html[dir="rtl"] .lc-card-badge {
    letter-spacing: 0.02em;
    text-transform: none;
}
html[dir="rtl"] .hero-featured-badge,
html[dir="rtl"] .lc-card-badge {
    left: auto;
    right: 14px;
}
html[dir="rtl"] .hero-flow {
    direction: rtl;
}
html[dir="rtl"] body {
    padding-bottom: calc(var(--mobile-bar-height, 64px) + 16px);
}
@media (max-width: 768px) {
    html[dir="rtl"] .whatsapp-float {
        bottom: 80px;
    }
}
html[dir="rtl"] .breadcrumb { direction: rtl; }
html[dir="rtl"] .spec-row { flex-direction: row-reverse; }
html[dir="rtl"] .detail-actions { flex-direction: row-reverse; }
html[dir="rtl"] .whatsapp-float { left: 25px; right: auto; }
html[dir="rtl"] .comp-badge { left: auto; right: 15px; }
html[dir="rtl"] .filter-inner { flex-direction: row-reverse; }
html[dir="rtl"] .detail-info { overflow-x: hidden; overflow-y: visible; word-wrap: break-word; }
html[dir="rtl"] .watch-detail { overflow-x: hidden; overflow-y: visible; }
/* RTL: Insurance Page */
html[dir="rtl"] .ins-cov-list { text-align: right; }
html[dir="rtl"] .ins-cov-list li { padding-left: 0; padding-right: 22px; }
html[dir="rtl"] .ins-cov-list li::before { left: auto; right: 0; }
html[dir="rtl"] .ins-form label { text-align: right; }
html[dir="rtl"] .ins-form input, html[dir="rtl"] .ins-form select, html[dir="rtl"] .ins-form textarea { text-align: right; }
html[dir="rtl"] .ins-info-item { flex-direction: row-reverse; text-align: right; }
html[dir="rtl"] .ins-partner-badge { flex-direction: row-reverse; text-align: right; }
html[dir="rtl"] .ins-form-legal label { flex-direction: row-reverse; }
html[dir="rtl"] .ins-watch-details { text-align: right; }
/* RTL: Payment Plans Page */
html[dir="rtl"] .pay-plan-list { text-align: right; }
html[dir="rtl"] .pay-plan-list li { padding-left: 0; padding-right: 20px; }
html[dir="rtl"] .pay-plan-list li::before { left: auto; right: 0; }

a { text-decoration: none; color: inherit; }

/* ── Language Bar ── */
.lang-bar {
    background: var(--dark);
    padding: 8px 5%;
    text-align: right;
}
.lang-btn {
    background: none;
    border: none;
    color: #666;
    cursor: pointer;
    margin-left: 15px;
    font-weight: 600;
    font-size: 12px;
    transition: 0.3s;
    letter-spacing: 1px;
}
.lang-btn.active { color: var(--gold); }

/* ── Navigation ── */
nav {
    padding: 18px 5%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: var(--white);
    border-bottom: 1px solid var(--border);
    position: sticky;
    top: 0;
    z-index: 1000;
}
.logo {
    display: flex;
    align-items: center;
    gap: 12px;
    text-decoration: none;
    color: var(--dark);
}
.logo-mark {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: linear-gradient(135deg, #0a1628 0%, #1a2942 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    border: 2px solid #c8c8cc;
}
.logo-mark-inner {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: #7cc5e8;
    display: flex;
    align-items: center;
    justify-content: center;
}
.logo-watch {
    font-size: 18px;
    line-height: 1;
}
.logo-text {
    font-family: 'Inter', sans-serif;
    font-weight: 900;
    font-size: 0.9rem;
    line-height: 1;
    letter-spacing: 2px;
    color: var(--dark);
    text-transform: uppercase;
}
.logo-text-accent {
    color: #c8c8cc;
    font-size: 1.1rem;
    letter-spacing: 3px;
}

/* MSLuxury monogram logo */
.logo-mark-msl {
    background: var(--dark);
    border: 1px solid var(--gold);
    position: relative;
    overflow: hidden;
}
.logo-mark-msl::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 30% 30%, rgba(197, 160, 89, 0.35), transparent 60%);
}
.logo-monogram {
    position: relative;
    color: var(--gold);
    font-family: 'Playfair Display', Georgia, serif;
    font-weight: 700;
    font-size: 18px;
    letter-spacing: 1px;
    z-index: 1;
}
.logo-msl .logo-text {
    font-weight: 800;
    letter-spacing: 2.5px;
}
.logo-msl .logo-text-accent {
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic;
    font-size: 0.7rem;
    letter-spacing: 1.5px;
    text-transform: none;
    color: var(--gold);
    font-weight: 400;
}
/* MSLuxury image logo in nav — sits on the white nav bar, framed in a small
   dark plinth so the silver monogram reads well against the page chrome. */
.logo-msl-image {
    display: flex;
    align-items: center;
    gap: 14px;
    text-decoration: none;
}
.logo-image {
    /* LOGO-ASSET-OPTIMIZE-1 — the WantThat.watch powered-by-MS-Luxury
       artwork is a square promotional lockup, so its readable wordmark
       scales with the rendered box. Give it a stronger presence in the
       header (taller box) while keeping the nav on one line. Constrained
       by max-height with width:auto so the square never distorts or crops.
       The duplicate "by Moti Sadon" text beside the logo was removed (the
       artwork already carries it), which frees the width to size up.
       LOGO-ASSET-OPTIMIZE-1.1 — sized up further so the WantThat.watch
       wordmark inside the square reads as a proper brand mark.
       LOGO-HEADER-SIZE-1 — controlled box (both max-width AND max-height
       capped to the same value) so the full square lockup renders large
       and readable as a proper brand mark, never overflowing the nav and
       never letterboxing. object-fit:contain guarantees the aspect ratio
       (no crop/stretch/distortion) even if the box is ever non-square. */
    max-height: 170px;
    max-width: 170px;
    height: auto;
    width: auto;
    object-fit: contain;
    display: block;
    /* Borderless: the logo sits cleanly in the header with no box,
       outline, or background plate. */
    transition: transform 0.25s ease, filter 0.25s ease;
}
.logo-msl-image:hover .logo-image {
    transform: translateY(-1px);
    filter: drop-shadow(0 4px 14px rgba(197, 160, 89, 0.25));
}
/* Footer image logo — borderless, matching the header logo. No box,
   background plate, padding, or frame around the mark. */
.footer-logo-image {
    display: block;
    width: auto;
    max-width: 240px;
    height: auto;
    margin-bottom: 10px;
}

@media (max-width: 640px) {
    .logo-image { max-height: 110px; max-width: 150px; }
}
.nav-links {
    display: flex;
    align-items: center;
    gap: 38px;
}
.nav-links a {
    position: relative;
    font-size: 0.78rem;
    font-weight: 500;
    color: #555;
    transition: color 0.3s ease;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    padding: 6px 0;
}
.nav-links a:not(.nav-cta)::after {
    content: '';
    position: absolute;
    left: 50%;
    bottom: 0;
    width: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--gold), transparent);
    transition: width 0.3s ease, left 0.3s ease;
}
.nav-links a:not(.nav-cta):hover {
    color: var(--dark);
}
.nav-links a:not(.nav-cta):hover::after {
    width: 100%;
    left: 0;
}
.nav-cta {
    font-size: 0.72rem !important;
    padding: 11px 24px !important;
    letter-spacing: 2.5px !important;
    background: linear-gradient(135deg, #1a1a1d 0%, #0a0a0c 100%) !important;
    color: var(--white) !important;
    border: 1px solid var(--gold) !important;
    text-transform: uppercase;
    /* LOGO-ASSET-OPTIMIZE-1 — keep the nav CTAs on a single line so the
       enlarged header logo never forces "Shop Now" to wrap. */
    white-space: nowrap;
}
.nav-cta:hover {
    border-color: var(--silver-bright) !important;
    color: var(--silver-bright) !important;
    box-shadow: 0 4px 18px rgba(200, 200, 204, 0.2);
}
/* Returning-client Login — Rolex green with an ivory label and a subtle
   bronze-gold edge. Premium and clearly distinct from the charcoal Shop
   Now button beside it. Reuses .nav-cta sizing; recolours to green. */
.nav-links a.nav-login {
    background: linear-gradient(135deg, #0d3b2c 0%, #14513b 100%) !important;
    color: #f5f1e8 !important;
    border: 1px solid rgba(197, 160, 89, 0.55) !important;
}
.nav-links a.nav-login:hover {
    background: linear-gradient(135deg, #0f4634 0%, #1a6347 100%) !important;
    border-color: #c5a059 !important;
    color: #ffffff !important;
    box-shadow: 0 4px 18px rgba(20, 81, 59, 0.28);
}
/* DESIGN-CTA-SYSTEM-UNIFY-1 — the persistent nav "Enter Competition" CTA
   (.cta-btn.cta-btn-comp.nav-cta). The generic .nav-cta rule above forces a
   charcoal gradient + WHITE text with !important, so the canonical
   .cta-btn-comp treatment can't reach it; this nav-scoped override (mirroring
   .nav-login) wins on specificity + !important and recolours the CTA to the
   shared Rolex green ground + Rolex-gold token text + gold hairline border, so
   the nav primary CTA reads as gold-on-green instead of white-on-charcoal.
   The 52px/flex page-level sizing from .cta-btn-comp is reset back to the
   compact nav sizing so the header layout is preserved. */
.nav-links a.nav-cta.cta-btn-comp {
    background: #006039 !important;
    color: var(--gold, #c5a059) !important;
    border: 1px solid rgba(197, 160, 89, 0.55) !important;
    display: inline-block;
    min-height: 0;
}
.nav-links a.nav-cta.cta-btn-comp:hover {
    background: #007a47 !important;
    border-color: var(--gold, #c5a059) !important;
    color: #ffffff !important;
    box-shadow: 0 4px 18px rgba(0, 96, 57, 0.28);
}
.hamburger {
    display: none;
    flex-direction: column;
    gap: 5px;
    background: none;
    border: none;
    cursor: pointer;
}
.hamburger span {
    display: block;
    width: 25px;
    height: 2px;
    background: var(--dark);
    transition: 0.3s;
}

/* ── Buttons ──
   MSLuxury luxury CTA system:
   - Primary (.cta-btn):  charcoal base, silver border, WHITE text, chrome
                          shine on hover. Strong, immediately visible.
   - Secondary (.cta-btn-outline): transparent base, silver border,
                          WHITE/silver text. Elegant but clearly there. */
.cta-btn {
    display: inline-block;
    position: relative;
    overflow: hidden;
    background: linear-gradient(135deg, #1a1a1d 0%, #0a0a0c 100%);
    color: var(--white);
    padding: 15px 36px;
    border: 1px solid var(--gold);
    border-radius: 0;
    text-transform: uppercase;
    letter-spacing: 2px;
    font-weight: 600;
    font-size: 0.8rem;
    cursor: pointer;
    transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
    text-align: center;
    font-family: 'Inter', sans-serif;
    text-decoration: none;
}
/* Subtle chrome sheen that travels across the button on hover */
.cta-btn::before {
    content: '';
    position: absolute;
    top: 0;
    left: -120%;
    width: 100%;
    height: 100%;
    background: linear-gradient(
        100deg,
        transparent 30%,
        rgba(230, 230, 232, 0.18) 50%,
        transparent 70%
    );
    transition: left 0.7s ease;
    pointer-events: none;
}
.cta-btn:hover::before { left: 120%; }
.cta-btn:hover {
    transform: translateY(-1px);
    border-color: var(--silver-bright);
    box-shadow: 0 6px 22px rgba(200, 200, 204, 0.18),
                inset 0 0 0 1px rgba(230, 230, 232, 0.08);
}
.cta-btn:active { transform: translateY(0); }

.cta-btn-outline {
    background: transparent;
    color: var(--white);
    border-color: var(--gold);
}
.cta-btn-outline:hover {
    background: rgba(200, 200, 204, 0.08);
    border-color: var(--silver-bright);
    color: var(--silver-bright);
}

/* ── Hero ── */
.hero {
    height: 85vh;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    text-align: left;
    background: url('/images/hero-patek-tiffany.svg');
    background-size: cover;
    background-position: center;
    color: var(--white);
    padding: 0 5%;
    position: relative;
}
.hero-content { position: relative; z-index: 2; max-width: 600px; }
.hero .badge {
    border-color: var(--gold);
    color: var(--gold);
    margin-bottom: 25px;
}
.hero h1 {
    font-family: 'Playfair Display', serif;
    font-size: 3.8rem;
    margin-bottom: 20px;
    line-height: 1.15;
    letter-spacing: 1px;
}
.hero p {
    font-size: 1.15rem;
    max-width: 650px;
    margin: 0 0 35px;
    font-weight: 300;
    color: #ddd;
}
.hero-actions {
    display: flex;
    gap: 20px;
    justify-content: flex-start;
    flex-wrap: wrap;
}

/* HERO-PAYMENT-SOCIAL-STRIP-1 / -1.1 — premium trust + social badge
   strip directly below the hero CTAs. The three payment badges are
   DISPLAY-ONLY (no link, no behaviour). The Instagram badge is the
   only clickable element. Stays aligned with the left hero content
   on desktop; wraps onto two rows on narrow viewports without
   triggering horizontal scroll.

   -1.1 update: badges are larger, more readable, and each method
   pill now carries its own distinct payment-badge silhouette
   (Apple = black premium pill, Google = light luxe pill) — built
   entirely with text + CSS, no image assets, no unlicensed brand
   glyphs. */
.hero-pay-strip {
    margin: 20px 0 0;
    max-width: 620px;
    align-self: flex-start;
}
.hero-pay-badges {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 10px 12px;
    align-items: center;
}
.hero-pay-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 9px 16px;
    min-height: 36px;
    border: 1px solid rgba(197, 160, 89, 0.38);
    background: rgba(13, 13, 13, 0.6);
    color: rgba(245, 241, 232, 0.92);
    font-size: 0.82rem;
    letter-spacing: 0.6px;
    font-weight: 600;
    border-radius: 999px;
    line-height: 1.2;
    white-space: nowrap;
    transition: border-color 0.2s ease, background 0.2s ease;
}
.hero-pay-badge-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--gold, #c5a059);
}
.hero-pay-badge-secure {
    color: #fff;
    border-color: rgba(197, 160, 89, 0.55);
    background: rgba(20, 20, 24, 0.72);
    text-transform: uppercase;
    font-size: 0.74rem;
    letter-spacing: 1.4px;
}

/* HERO-PAYMENT-SOCIAL-STRIP-1.1 — payment-method badges.
   The brief: "make Apple Pay and Google Pay look more like
   recognizable payment badges using text/CSS only, no image
   assets, no unlicensed logos". Two distinct silhouettes so
   the eye recognises them as separate methods at a glance. */
.hero-pay-badge-apple,
.hero-pay-badge-google {
    /* Reset the default gold-on-dark base — each method has its
       own treatment. */
    border-radius: 8px;
    font-family: -apple-system, BlinkMacSystemFont, 'SF Pro Display',
                 'Helvetica Neue', Arial, sans-serif;
    text-transform: none;
    letter-spacing: 0.2px;
    font-size: 0.86rem;
    font-weight: 600;
    padding: 8px 18px;
    min-height: 36px;
}
.hero-pay-badge-apple {
    background: #000;
    border-color: #000;
    color: #fff;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.45);
}
.hero-pay-badge-google {
    background: #fff;
    border-color: rgba(0, 0, 0, 0.12);
    color: #202124;             /* Google body text colour */
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.18);
}
/* Subtle non-interactive emphasis on hover — these badges DON'T do
   anything (no link, no payment), so the effect is intentionally
   minimal: a slight border highlight only. */
.hero-pay-badge-apple:hover  { border-color: #1a1a1a; }
.hero-pay-badge-google:hover { border-color: rgba(0, 0, 0, 0.22); }

/* Instagram badge — clickable, with a touch of gold accent on hover */
.hero-pay-badge-ig {
    padding: 0;
    border: none;
    background: transparent;
    min-height: 0;
}
.hero-pay-badge-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 9px 16px;
    min-height: 36px;
    border: 1px solid rgba(197, 160, 89, 0.45);
    background: rgba(20, 20, 24, 0.72);
    color: #fff;
    font-size: 0.82rem;
    letter-spacing: 0.6px;
    font-weight: 600;
    border-radius: 999px;
    text-decoration: none;
    line-height: 1.2;
    transition: border-color 0.2s ease, color 0.2s ease, background 0.2s ease, transform 0.2s ease;
    white-space: nowrap;
}
.hero-pay-badge-link:hover,
.hero-pay-badge-link:focus-visible {
    border-color: var(--gold, #c5a059);
    color: #fff;
    background: rgba(13, 13, 13, 0.85);
    transform: translateY(-1px);
}
.hero-pay-note {
    margin: 12px 0 0;
    font-size: 0.72rem;
    letter-spacing: 0.4px;
    color: rgba(245, 241, 232, 0.55);
    line-height: 1.4;
}
@media (max-width: 560px) {
    .hero-pay-strip { margin-top: 16px; max-width: 100%; }
    .hero-pay-badges { gap: 8px 10px; }
    .hero-pay-badge,
    .hero-pay-badge-link {
        font-size: 0.78rem;
        padding: 8px 14px;
        min-height: 38px;       /* keep ≥38px tap target on touch */
    }
    .hero-pay-badge-secure { font-size: 0.7rem; letter-spacing: 1.1px; }
    .hero-pay-badge-apple,
    .hero-pay-badge-google { font-size: 0.84rem; padding: 8px 16px; }
    .hero-pay-note { font-size: 0.68rem; }
}

/* ── Page Hero ── */
.page-hero {
    background: var(--dark);
    color: var(--white);
    text-align: center;
    padding: 80px 5% 60px;
}
.page-hero h1 {
    font-family: 'Playfair Display', serif;
    font-size: 2.8rem;
    margin-bottom: 15px;
    letter-spacing: 1px;
}
.page-hero p {
    font-size: 1.1rem;
    font-weight: 300;
    max-width: 600px;
    margin: 0 auto;
    color: #aaa;
}

/* ── Section Titles ── */
.section-title {
    text-align: center;
    font-family: 'Playfair Display', serif;
    font-size: 2.2rem;
    margin-bottom: 10px;
    letter-spacing: 1px;
}
.section-subtitle {
    text-align: center;
    color: var(--gray);
    font-size: 1rem;
    font-weight: 300;
    margin-bottom: 50px;
}
.section-cta {
    text-align: center;
    margin-top: 50px;
}

/* ── Badge ── */
.badge {
    display: inline-block;
    padding: 8px 18px;
    border: 1px solid var(--gold);
    color: var(--gold);
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 3px;
    text-transform: uppercase;
}

/* ── Watch Cards ── */
.watches-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 30px;
    padding: 0 5%;
    max-width: 1400px;
    margin: 0 auto;
}
.featured-section {
    padding: 80px 0;
}
.catalog-section {
    padding: 40px 0 80px;
}
.watch-card {
    background: var(--white);
    overflow: hidden;
    transition: transform 0.3s, box-shadow 0.3s;
    display: block;
}
.watch-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 20px 40px rgba(0,0,0,0.08);
}
.watch-card-image {
    height: 320px;
    background-size: cover;
    background-position: center;
    position: relative;
}
.comp-badge {
    position: absolute;
    top: 15px;
    left: 15px;
    background: var(--gold);
    color: var(--white);
    padding: 5px 12px;
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
}
.status-badge {
    position: absolute;
    top: 15px;
    right: 15px;
    padding: 5px 12px;
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
}
.status-available { background: var(--success); color: white; }
.status-sold { background: var(--error); color: white; }
.status-consignment { background: var(--dark-3); color: white; }
.watch-card-info {
    padding: 25px;
}
.watch-brand {
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--gold);
    display: block;
    margin-bottom: 5px;
}
.watch-model {
    font-family: 'Playfair Display', serif;
    font-size: 1.3rem;
    margin-bottom: 5px;
    color: var(--dark);
}
.watch-ref {
    font-size: 0.8rem;
    color: var(--gray);
    margin-bottom: 15px;
}
.watch-meta {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: 15px;
    border-top: 1px solid var(--border);
}
.watch-price {
    font-weight: 700;
    font-size: 1.1rem;
    color: var(--dark);
}
.watch-size {
    font-size: 0.85rem;
    color: var(--gray);
}

/* ── Competition Cards ── */
.competitions-section {
    padding: 80px 0;
    background: var(--dark);
    color: var(--white);
}
.competitions-section .section-title { color: var(--white); }
.competitions-section .section-subtitle { color: var(--gray); }
.comp-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(400px, 1fr));
    gap: 30px;
    padding: 0 5%;
    max-width: 1400px;
    margin: 0 auto;
}
.comp-card {
    background: var(--dark-2);
    overflow: hidden;
    border: 1px solid var(--dark-3);
    transition: border-color 0.3s;
}
.comp-card:hover { border-color: var(--gold); }
.comp-card-image {
    height: 250px;
    background-size: cover;
    background-position: center;
    position: relative;
}
.comp-countdown {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    background: rgba(0,0,0,0.85);
    padding: 12px 20px;
    display: flex;
    align-items: center;
    gap: 10px;
}
.countdown-label {
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--gray);
}
.countdown-timer {
    font-family: 'Inter', sans-serif;
    font-weight: 700;
    font-size: 0.9rem;
    color: var(--gold);
    letter-spacing: 1px;
}
.comp-card-info {
    padding: 25px;
}
.comp-card-info h3 {
    font-family: 'Playfair Display', serif;
    font-size: 1.3rem;
    margin-bottom: 5px;
}
.comp-watch {
    font-size: 0.85rem;
    color: var(--gray);
    margin-bottom: 20px;
}
.comp-details {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
    margin-bottom: 20px;
}
.comp-detail { text-align: center; }
.detail-label {
    display: block;
    font-size: 0.65rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--gray);
    margin-bottom: 5px;
}
.detail-value {
    font-weight: 700;
    font-size: 0.95rem;
    color: var(--gold);
}
.comp-enter-btn { width: 100%; }

/* ── Competition List Page ── */
.comp-hero {
    background: linear-gradient(rgba(0,0,0,0.7), rgba(0,0,0,0.7)),
                url('https://images.unsplash.com/photo-1547996160-81dfa63595aa?auto=format&fit=crop&w=1920&q=80');
    background-size: cover;
    background-position: center;
}
.legal-notice {
    background: var(--gold-light);
    border-top: 2px solid var(--gold);
}
.legal-inner {
    max-width: 900px;
    margin: 0 auto;
    padding: 20px 5%;
    display: flex;
    align-items: center;
    gap: 15px;
}
.legal-icon { font-size: 1.5rem; }
.legal-inner p { font-size: 0.85rem; color: var(--gray); }

.comp-list-section {
    padding: 60px 5%;
    max-width: 1100px;
    margin: 0 auto;
}
.comp-list-card {
    display: grid;
    grid-template-columns: 1fr 1.5fr;
    background: var(--white);
    margin-bottom: 30px;
    overflow: hidden;
    box-shadow: 0 5px 20px rgba(0,0,0,0.05);
    transition: box-shadow 0.3s;
}
.comp-list-card:hover { box-shadow: 0 10px 40px rgba(0,0,0,0.1); }
.comp-list-image {
    min-height: 300px;
    background-size: cover;
    background-position: center;
    position: relative;
}
.comp-list-info {
    padding: 35px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.comp-list-info h2 {
    font-family: 'Playfair Display', serif;
    font-size: 1.6rem;
    margin-bottom: 8px;
}
.comp-watch-name {
    color: var(--gray);
    font-size: 0.9rem;
    margin-bottom: 25px;
}
.comp-stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 15px;
    margin-bottom: 25px;
}
.comp-stat { text-align: center; }
.stat-value {
    display: block;
    font-weight: 700;
    color: var(--gold);
    font-size: 0.95rem;
}
.stat-label {
    font-size: 0.65rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--gray);
}

/* ── Quiz / Competition Detail ── */
.quiz-hero {
    background: var(--dark);
    color: var(--white);
    padding: 60px 5%;
}
.quiz-hero-grid {
    max-width: 1200px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1.5fr;
    gap: 50px;
    align-items: center;
}
.quiz-watch-image {
    height: 400px;
    background-size: cover;
    background-position: center;
}
.quiz-info .breadcrumb {
    font-size: 0.8rem;
    color: var(--gray);
    margin-bottom: 20px;
}
.quiz-info .breadcrumb a { color: var(--gold); }
.quiz-info h1 {
    font-family: 'Playfair Display', serif;
    font-size: 2.2rem;
    margin-bottom: 10px;
}
.quiz-watch-name {
    color: var(--gray);
    margin-bottom: 25px;
}
.quiz-meta { display: flex; flex-direction: column; gap: 20px; }
.quiz-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
}

/* ══════════════════════════════════════════════════════════════════
   COMPETITION ENTRY / SKILL-QUIZ — MS Luxury dark restyle.
   The whole entry funnel (skill question + qualified entry + result)
   uses the SAME black / deep-charcoal panels + gold (#c5a059) hairlines
   + ivory (#f5f1e8) text as the rest of the competition detail page.
   No white / light blocks remain — it visually blends with the page.
   ══════════════════════════════════════════════════════════════════ */
.quiz-section {
    /* Span the same 1200px column as the top entry area so the funnel reads
       as one continuous page instead of a narrow boxed-in card. */
    padding: 8px 5% 48px;
    max-width: 1200px;
    margin: 0 auto;
    background: transparent; /* page dark shows through — no light block */
}
.quiz-container {
    /* Snug while showing the skill question (keeps it elegant and centred);
       widens for the Confirm Entry step so the two-column Billing + Order
       Summary checkout has room and aligns with the rest of the page. */
    max-width: 760px;
    margin: 0 auto;
    background: linear-gradient(165deg, rgba(30,22,45,0.55), rgba(10,7,16,0.72));
    border: 1px solid rgba(197,160,89,0.28);
    border-radius: 16px;
    padding: 40px 38px;
    box-shadow: 0 30px 70px rgba(0,0,0,0.5);
    transition: max-width 0.4s ease;
}
.quiz-container:has(.quiz-entry-step.active) { max-width: 1080px; }
/* Keep the skill question itself elegant and centred even inside the wider
   panel (so the answer grid never stretches into sparse full-width cards). */
.quiz-question-step[data-step="0"] { max-width: 660px; margin-left: auto; margin-right: auto; }
.quiz-header { text-align: center; margin-bottom: 32px; }
.quiz-badge {
    display: inline-block;
    padding: 6px 16px;
    background: rgba(197,160,89,0.1);
    color: #c5a059;
    border: 1px solid rgba(197,160,89,0.45);
    border-radius: 999px;
    font-size: 0.64rem;
    font-weight: 700;
    letter-spacing: 2.4px;
    text-transform: uppercase;
    margin-bottom: 16px;
}
.quiz-header h2 {
    font-family: 'Playfair Display', serif;
    font-size: clamp(1.5rem, 3vw, 1.9rem);
    color: #f5f1e8;
    margin-bottom: 10px;
}
.quiz-header p { color: rgba(245,241,232,0.7); font-size: 0.92rem; line-height: 1.55; }

.quiz-question {
    margin-bottom: 26px;
    padding: 20px 22px;
    background: rgba(255,255,255,0.03);
    border: 1px solid rgba(197,160,89,0.18);
    border-left: 3px solid #c5a059;
    border-radius: 10px;
}
.question-text {
    font-family: 'Playfair Display', serif;
    font-size: 1.15rem;
    line-height: 1.5;
    color: #f5f1e8;
}

.quiz-options {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-bottom: 30px;
}
.quiz-option {
    display: flex;
    align-items: center;
    padding: 16px 18px;
    background: rgba(255,255,255,0.03);
    border: 1px solid rgba(255,255,255,0.14);
    border-radius: 10px;
    color: #f5f1e8;
    cursor: pointer;
    transition: background 0.2s, border-color 0.2s, transform 0.2s, box-shadow 0.2s;
}
.quiz-option:hover {
    border-color: rgba(197,160,89,0.6);
    background: rgba(197,160,89,0.06);
    transform: translateY(-1px);
}
.quiz-option input { display: none; }
.quiz-option input:checked + .option-label { font-weight: 700; }
.quiz-option:has(input:checked) {
    border-color: #c5a059;
    background: rgba(197,160,89,0.12);
    box-shadow: 0 0 0 1px rgba(197,160,89,0.5), 0 8px 22px rgba(0,0,0,0.35);
}
.option-label {
    font-size: 0.95rem;
    letter-spacing: 0.4px;
    color: #f5f1e8;
}

.quiz-entrant {
    margin-bottom: 24px;
    padding-top: 24px;
    border-top: 1px solid rgba(255,255,255,0.1);
}
.quiz-entrant h3 {
    font-family: 'Playfair Display', serif;
    color: #f5f1e8;
    margin-bottom: 18px;
}
.quiz-legal {
    margin-bottom: 24px;
}
.checkbox-label {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    /* CHECKOUT-CONFIRMATION-UX-1 — slightly larger so the required
       confirmations read clearly on the dark panel. The label colour itself is
       forced by a global `label { color … !important }` rule, so the readable
       ivory tone is set on the inner <span> below (which is not a <label>). */
    font-size: 0.92rem;
    line-height: 1.55;
    cursor: pointer;
}
.checkbox-label > span { color: #f5f1e8; }
.checkbox-label a { color: #d8b878; text-decoration: underline; }
.checkbox-label input { margin-top: 3px; accent-color: #c5a059; }
.quiz-submit { width: 100%; }

/* Entry (billing & contact) fields — dark inputs scoped to the quiz funnel
   only, so the shared global .form-group (contact/insurance forms) is
   untouched. No white input wells inside the dark panel. */
.quiz-entrant .form-group label {
    color: rgba(245,241,232,0.7);
}
.quiz-entrant .form-group input,
.quiz-entrant .form-group select,
.quiz-entrant .form-group textarea {
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(197,160,89,0.22);
    color: #f5f1e8;
    border-radius: 8px;
}
.quiz-entrant .form-group input::placeholder,
.quiz-entrant .form-group textarea::placeholder { color: #8f887c; }
.quiz-entrant .form-group input:focus,
.quiz-entrant .form-group select:focus,
.quiz-entrant .form-group textarea:focus {
    border-color: #c5a059;
    background: rgba(255,255,255,0.06);
    outline: none;
}

/* Quiz Result — qualified confirmation, dark luxury (no white card) */
.quiz-result {
    padding: 48px 5% 60px;
    text-align: center;
    background: transparent;
}
.result-container {
    max-width: 600px;
    margin: 0 auto;
    background: linear-gradient(165deg, rgba(30,22,45,0.55), rgba(10,7,16,0.72));
    border: 1px solid rgba(197,160,89,0.28);
    border-radius: 16px;
    padding: 56px 40px;
    box-shadow: 0 30px 70px rgba(0,0,0,0.5);
}
.result-icon { font-size: 4rem; margin-bottom: 20px; }
.result-container h2 {
    font-family: 'Playfair Display', serif;
    font-size: 1.8rem;
    color: #f5f1e8;
    margin-bottom: 15px;
}
.result-container p { color: rgba(245,241,232,0.72); margin-bottom: 10px; line-height: 1.6; }
.entry-id {
    font-family: monospace;
    font-size: 1.2rem;
    font-weight: 700;
    color: #c5a059;
    padding: 15px;
    background: rgba(197,160,89,0.1);
    margin: 20px 0;
}

/* ── Watch Detail ── */
.watch-detail {
    padding: 60px 5%;
    max-width: 1300px;
    margin: 0 auto;
}
.detail-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    align-items: start;
}
.detail-image {
    position: relative;
}
.detail-image img {
    width: 100%;
    display: block;
}
.viewer-toggle {
    display: flex;
    gap: 0;
    margin-bottom: 10px;
}
.view-btn {
    flex: 1;
    padding: 10px 0;
    border: 1px solid var(--border);
    background: var(--white);
    cursor: pointer;
    font-size: 0.8rem;
    font-weight: 600;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--gray);
    transition: all 0.2s;
}
.view-btn:first-child { border-radius: 4px 0 0 4px; }
.view-btn:last-child { border-radius: 0 4px 4px 0; border-left: none; }
.view-btn.active {
    background: var(--dark);
    color: var(--white);
    border-color: var(--dark);
}
.viewer-3d-container {
    width: 100%;
    height: 500px;
    background: radial-gradient(ellipse at center, #1a1a1a 0%, #0a0a0a 100%);
    border-radius: 8px;
    overflow: hidden;
}
.viewer-photo {
    width: 100%;
    border-radius: 8px;
    overflow: hidden;
    background: #1a1a1a;
}
.viewer-photo img {
    width: 100%;
    display: block;
}
.viewer-hint {
    text-align: center;
    padding: 10px 0;
    color: var(--gray);
    font-size: 0.8rem;
    font-weight: 300;
    letter-spacing: 1px;
}
.hint-icon {
    font-size: 1.1rem;
    margin-right: 6px;
    vertical-align: middle;
}
.detail-comp-badge {
    top: 20px;
    left: 20px;
    font-size: 0.7rem;
}
.breadcrumb {
    font-size: 0.8rem;
    color: var(--gray);
    margin-bottom: 20px;
}
.breadcrumb a { color: var(--gold); }
.detail-info .watch-brand { font-size: 0.75rem; margin-bottom: 8px; }
.detail-info .watch-model {
    font-size: 2.2rem;
    margin-bottom: 5px;
}
.detail-info .watch-ref {
    font-size: 0.9rem;
    margin-bottom: 25px;
}
.detail-price {
    margin-bottom: 20px;
}
.price-label {
    display: block;
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--gray);
    margin-bottom: 5px;
}
.price-value {
    font-family: 'Playfair Display', serif;
    font-size: 2rem;
    font-weight: 700;
    color: var(--dark);
}
.detail-status {
    position: static;
    display: inline-block;
    margin-bottom: 25px;
}
.detail-specs {
    margin-bottom: 30px;
    border: 1px solid var(--border);
}
.spec-row {
    display: flex;
    justify-content: space-between;
    padding: 14px 20px;
    border-bottom: 1px solid var(--border);
}
.spec-row:last-child { border-bottom: none; }
.spec-label {
    font-size: 0.85rem;
    color: var(--gray);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.spec-value { font-weight: 600; }
.detail-description {
    margin-bottom: 30px;
}
.detail-description h3 {
    font-family: 'Playfair Display', serif;
    margin-bottom: 12px;
}
.detail-description p { color: var(--gray); line-height: 1.7; }
.detail-actions {
    display: flex;
    gap: 15px;
    margin-bottom: 30px;
}
.wa-btn {
    background: #25d366;
    border-color: #25d366;
    display: flex;
    align-items: center;
    justify-content: center;
}
.wa-btn:hover { background: #20bd5a; border-color: #20bd5a; }

/* ── Buy Options ── */
.buy-options { margin-top: 30px; }
.buy-options h3 {
    font-family: 'Playfair Display', serif;
    font-size: 1.3rem;
    margin-bottom: 18px;
}
.buy-option-cards {
    display: flex;
    flex-direction: column;
    gap: 14px;
}
.buy-option-card {
    border: 1px solid var(--border);
    padding: 20px;
    border-radius: 6px;
    transition: border-color 0.2s;
}
.buy-option-card:hover { border-color: var(--gold); }
.buy-option-icon {
    font-size: 1.4rem;
    margin-bottom: 6px;
}
.buy-option-card h4 {
    font-size: 0.95rem;
    margin-bottom: 4px;
}
.buy-condition {
    font-size: 0.75rem;
    color: var(--gray);
    margin-bottom: 8px;
    letter-spacing: 0.5px;
}
.buy-option-price {
    font-size: 1.2rem;
    font-weight: 700;
    margin-bottom: 8px;
}
.buy-option-price-secondary {
    color: var(--gray);
    font-size: 1rem;
}
.buy-option-price-draw {
    color: var(--gold);
}
.buy-option-price-draw span {
    font-size: 0.75rem;
    font-weight: 400;
    color: var(--gray);
}
.buy-option-detail {
    font-size: 0.82rem;
    color: #666;
    line-height: 1.5;
    margin-bottom: 14px;
}
.buy-option-btn {
    display: block;
    text-align: center;
    font-size: 0.8rem;
    padding: 10px 20px;
}
/* WATCH-DETAIL-COMPETITION-CARD-UX-1 — distinct premium "Win by
   Draw" panel. Rewrites the legacy cream→white gradient into a
   dark-luxury surface that reads as a featured conversion module
   without competing with the Buy New / Buy Pre-Owned boxes
   above it.

   - Background: graphite gradient
   - Border: gold-tinted with a brighter top accent (2px) so
     the card reads as "featured" without a loud banner
   - Internal padding nudged up so the content has more
     breathing room than the simpler buy cards
   - Hover: brighter gold edge + lift shadow

   Only the CTA inside this card uses the Rolex-green + Rolex-
   gold treatment (see .buy-option-btn-comp). The card body
   itself stays dark/ivory — green stays reserved for the
   action. */
.buy-option-card.buy-option-draw {
    background: linear-gradient(160deg, rgba(20, 20, 24, 0.96) 0%, rgba(10, 10, 12, 0.96) 100%);
    border: 1px solid rgba(197, 160, 89, 0.4);
    border-top: 2px solid rgba(197, 160, 89, 0.75);
    padding: 26px 24px 22px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.32);
    transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.18s ease;
}
.buy-option-card.buy-option-draw:hover {
    border-color: rgba(197, 160, 89, 0.7);
    box-shadow: 0 14px 36px rgba(0, 0, 0, 0.42);
    transform: translateY(-1px);
}
.buy-option-card.buy-option-draw .buy-option-draw-eyebrow {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.7rem;
    letter-spacing: 2.2px;
    text-transform: uppercase;
    color: var(--gold, #c5a059);
    font-weight: 600;
    margin-bottom: 12px;
    line-height: 1.2;
}
.buy-option-card.buy-option-draw .buy-option-draw-eyebrow .buy-option-icon {
    font-size: 1.05rem;
    margin: 0;
    line-height: 1;
}
.buy-option-card.buy-option-draw h4 {
    color: #fff;
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 1.3rem;
    line-height: 1.2;
    margin-bottom: 8px;
}
.buy-option-card.buy-option-draw .buy-condition {
    color: rgba(245, 241, 232, 0.7);
    font-size: 0.78rem;
    margin-bottom: 10px;
}
.buy-option-card.buy-option-draw .buy-option-price-draw {
    color: var(--gold, #c5a059);
    font-size: 1.35rem;
    font-weight: 700;
    line-height: 1.1;
}
.buy-option-card.buy-option-draw .buy-option-price-draw span {
    color: rgba(245, 241, 232, 0.55);
    font-size: 0.76rem;
    font-weight: 500;
    letter-spacing: 0.5px;
}
.buy-option-card.buy-option-draw .buy-option-detail {
    color: rgba(245, 241, 232, 0.78);
    font-size: 0.85rem;
    line-height: 1.65;
    margin: 12px 0 18px;
}
/* WATCH-DETAIL-COMPETITION-CARD-UX-1 — the ONLY green surface on
   this card is the CTA. Rolex green background, Rolex-gold
   lettering, full-width, strong contrast, premium hover. No
   gradient — flat green so it reads as a calm premium action,
   not a casino button.

   WATCH-DETAIL-COMPETITION-CARD-CTA-1 — refined per brief:
     - Border swapped from matching-green to a quiet 1px muted-
       gold edge so the CTA has a soft luxury frame against the
       graphite card surface.
     - Explicit min-height: 44px so the button hits the standard
       tap-target threshold on every viewport without depending
       on padding math.
     - All other properties — flat Rolex green background,
       Rolex-gold lettering, full-width, 2.4px letter-spacing,
       hover lift + warmer gold + soft green-tinted glow — kept
       unchanged from the previous commit.
   The legacy .buy-option-btn-gold rule (preserved below as a
   compatibility shim) is untouched. */
.buy-option-btn-comp {
    display: block;
    width: 100%;
    text-align: center;
    background: #006039;
    border: 1px solid rgba(197, 160, 89, 0.55);
    color: var(--gold, #c5a059);
    font-weight: 700;
    font-size: 0.82rem;
    letter-spacing: 2.4px;
    text-transform: uppercase;
    padding: 14px 22px;
    min-height: 44px;
    border-radius: 4px;
    text-decoration: none;
    transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease, transform 0.18s ease, box-shadow 0.2s ease;
}
.buy-option-btn-comp:hover,
.buy-option-btn-comp:focus-visible {
    background: #007a47;
    border-color: var(--gold, #c5a059);
    color: #f5dba2;
    box-shadow: 0 8px 24px rgba(0, 96, 57, 0.32);
    transform: translateY(-1px);
}
.buy-option-btn-comp:active {
    transform: translateY(0);
    box-shadow: 0 4px 12px rgba(0, 96, 57, 0.28);
}
/* Quiet trust microcopy under the CTA — three signals, dot-
   separated. Reads as legally careful confidence, not as
   marketing. */
.buy-option-card.buy-option-draw .buy-option-draw-trust {
    margin: 12px 0 0;
    color: rgba(245, 241, 232, 0.5);
    font-size: 0.72rem;
    line-height: 1.55;
    letter-spacing: 0.4px;
    text-align: center;
}
/* Mobile — keep the panel readable at 320-375px without
   crowding text. Slightly tighter padding, CTA stays full-
   width and easy to tap. */
@media (max-width: 560px) {
    .buy-option-card.buy-option-draw { padding: 22px 18px 20px; }
    .buy-option-card.buy-option-draw h4 { font-size: 1.2rem; }
    .buy-option-card.buy-option-draw .buy-option-price-draw { font-size: 1.25rem; }
    .buy-option-card.buy-option-draw .buy-option-detail { font-size: 0.82rem; }
    .buy-option-btn-comp { padding: 13px 18px; font-size: 0.78rem; letter-spacing: 2px; }
}

/* WATCH-DETAIL-COMPETITION-CARD-UX-1 — the legacy
   .buy-option-btn-gold rule (flat gold-on-gold) is preserved
   as a compatibility shim in case any other surface still
   uses it, but the canonical competition CTA on /watches/{id}
   now uses .buy-option-btn-comp above. */
.buy-option-btn-gold {
    background: var(--gold);
    border-color: var(--gold);
}

/* ── Services (Insurance & Payment Plans) ── */
.services-section {
    margin-top: 35px;
    padding-top: 25px;
    border-top: 1px solid var(--border);
}
.services-section h3 {
    font-family: 'Playfair Display', serif;
    font-size: 1.3rem;
    margin-bottom: 18px;
}
.svc-cards {
    display: flex;
    flex-direction: column;
    gap: 14px;
}
.svc-card {
    display: flex;
    gap: 18px;
    border: 1px solid var(--border);
    padding: 22px;
    border-radius: 6px;
    transition: border-color 0.2s;
}
.svc-card:hover { border-color: var(--gold); }
.svc-icon {
    font-size: 1.8rem;
    flex-shrink: 0;
    margin-top: 2px;
}
.svc-body { flex: 1; }
.svc-body h4 {
    font-size: 0.95rem;
    margin-bottom: 6px;
}
.svc-desc {
    font-size: 0.82rem;
    color: #666;
    line-height: 1.5;
    margin-bottom: 12px;
}
.svc-highlights {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 14px;
}
.svc-tag {
    font-size: 0.68rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    padding: 4px 10px;
    background: var(--gold-light);
    color: var(--gold-hover);
    font-weight: 600;
    border-radius: 3px;
}
.svc-plan-examples {
    display: flex;
    gap: 12px;
    margin-bottom: 12px;
}
.svc-plan {
    flex: 1;
    text-align: center;
    padding: 10px 8px;
    background: #f9f9f7;
    border: 1px solid var(--border);
    border-radius: 4px;
}
.plan-term {
    display: block;
    font-weight: 700;
    font-size: 1.05rem;
    margin-bottom: 2px;
}
.plan-term span {
    font-size: 0.65rem;
    font-weight: 400;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--gray);
}
.plan-rate {
    display: block;
    font-size: 0.75rem;
    color: var(--gold);
    font-weight: 600;
}
.plan-rate span {
    font-weight: 400;
    color: var(--gray);
}
.svc-example {
    font-size: 0.78rem;
    color: var(--gray);
    font-style: italic;
    margin-bottom: 14px;
}
.svc-btn {
    display: inline-block;
    font-size: 0.78rem;
    padding: 8px 20px;
}
.svc-insurance { border-left: 3px solid #2e7d32; }
.svc-payment { border-left: 3px solid var(--gold); }

/* Service forms */
.svc-form {
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid var(--border);
}
.svc-form input, .svc-form select, .svc-form textarea {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid var(--border);
    border-radius: 4px;
    font-size: 0.85rem;
    font-family: 'Inter', sans-serif;
    margin-bottom: 8px;
    background: var(--white);
}
.svc-form input:focus, .svc-form select:focus, .svc-form textarea:focus {
    outline: none;
    border-color: var(--gold);
}
.svc-form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
}
.svc-submit-btn {
    width: 100%;
    font-size: 0.82rem;
    margin-top: 4px;
}
.svc-feedback {
    margin-top: 10px;
    font-size: 0.82rem;
    padding: 10px;
    border-radius: 4px;
    line-height: 1.5;
}
.svc-success {
    background: #e8f5e9;
    color: #2e7d32;
    border: 1px solid #c8e6c9;
}
.svc-error {
    background: #ffebee;
    color: #c62828;
    border: 1px solid #ffcdd2;
}

/* Plan selector */
.plan-selectable {
    cursor: pointer;
    transition: all 0.2s;
}
.plan-selectable:hover {
    border-color: var(--gold);
}
.plan-selectable.active {
    border-color: var(--gold);
    background: var(--gold-light);
}

/* Calculator */
.plan-calculator {
    background: #f9f9f7;
    border: 1px solid var(--border);
    border-radius: 4px;
    padding: 12px 15px;
    margin-bottom: 14px;
}
.calc-row {
    display: flex;
    justify-content: space-between;
    font-size: 0.82rem;
    padding: 4px 0;
}
.calc-row strong {
    color: var(--gold);
    font-size: 1rem;
}
.calc-interest-row {
    color: var(--gray);
    font-size: 0.75rem;
}
.plan-selected-display {
    display: flex;
    align-items: center;
    font-size: 0.82rem;
    padding: 0 10px;
    color: var(--gray);
}

.detail-competition { margin-top: 30px; }
.comp-callout {
    background: var(--dark);
    color: var(--white);
    padding: 30px;
}
.comp-callout h3 {
    font-family: 'Playfair Display', serif;
    color: var(--gold);
    margin-bottom: 10px;
}
.comp-callout p { color: var(--gray-light); font-size: 0.9rem; margin-bottom: 20px; }
.comp-callout-meta {
    display: flex;
    gap: 25px;
    margin-bottom: 20px;
    font-size: 0.85rem;
    color: var(--gold);
    font-weight: 600;
}

/* ── Authenticity Registry ── */
.auth-section {
    padding: 60px 5%;
    background: #fafaf8;
}
.auth-container {
    max-width: 1300px;
    margin: 0 auto;
}
.auth-header {
    text-align: center;
    margin-bottom: 40px;
}
.auth-shield {
    font-size: 2.5rem;
    display: block;
    margin-bottom: 10px;
    color: var(--gold);
}
.auth-header h2 {
    font-family: 'Playfair Display', serif;
    font-size: 1.8rem;
    margin-bottom: 8px;
}
.auth-header p {
    color: var(--gray);
    font-size: 0.95rem;
    font-weight: 300;
}
.auth-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 25px;
    margin-bottom: 25px;
}
.auth-card {
    background: var(--white);
    padding: 25px;
    border: 1px solid var(--border);
    border-radius: 6px;
}
.auth-card-wide {
    grid-column: 1 / -1;
}
.auth-card h4 {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 2px;
    color: var(--gold);
    margin-bottom: 18px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--border);
}
.auth-row {
    display: flex;
    justify-content: space-between;
    padding: 8px 0;
    border-bottom: 1px solid #f0f0f0;
}
.auth-row:last-child { border-bottom: none; }
.auth-label {
    font-size: 0.85rem;
    color: var(--gray);
}
.auth-value {
    font-size: 0.85rem;
    font-weight: 600;
    text-align: right;
}
.auth-provenance, .auth-service {
    font-size: 0.9rem;
    color: #555;
    line-height: 1.6;
    margin-bottom: 8px;
}
.auth-hash {
    text-align: center;
    padding: 15px;
    background: var(--dark);
    border-radius: 6px;
}
.auth-hash-label {
    display: block;
    font-size: 0.65rem;
    text-transform: uppercase;
    letter-spacing: 2px;
    color: var(--gold);
    margin-bottom: 6px;
}
.auth-hash-value {
    font-size: 0.7rem;
    color: #888;
    word-break: break-all;
    font-family: monospace;
}

/* ── How It Works ── */
.how-it-works {
    padding: 80px 5%;
    background: var(--white);
}
.steps-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 40px;
    max-width: 1000px;
    margin: 0 auto;
}
.step-card { text-align: center; }
.step-number {
    font-family: 'Playfair Display', serif;
    font-size: 3rem;
    color: var(--gold);
    margin-bottom: 15px;
    line-height: 1;
}
.step-card h3 {
    font-family: 'Playfair Display', serif;
    font-size: 1.2rem;
    margin-bottom: 10px;
}
.step-card p { color: var(--gray); font-size: 0.9rem; }

/* ── Trust Bar ── */
.trust-bar {
    display: flex;
    justify-content: center;
    gap: 60px;
    padding: 40px 5%;
    background: var(--light);
    border-top: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
    flex-wrap: wrap;
}
.trust-item {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--dark);
    letter-spacing: 0.5px;
}
.trust-icon { font-size: 1.3rem; }

/* ── Filter Bar ── */
/* Collection filter bar — dark luxury (MS Luxury black/gold). No white
   strip: deep charcoal base with a subtle gold hairline, warm-grey
   labels, deep-charcoal readable selects, and a gold focus glow. */
.filter-bar {
    background: #0f0f12;
    padding: 20px 5%;
    border-bottom: 1px solid rgba(212, 175, 55, 0.18);
}
.filter-inner {
    max-width: 1400px;
    margin: 0 auto;
    display: flex;
    gap: 25px;
    align-items: center;
}
.filter-group {
    display: flex;
    align-items: center;
    gap: 10px;
}
.filter-group label {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    font-weight: 600;
    color: #b9b1a3;
}
.filter-group select {
    padding: 8px 12px;
    border: 1px solid rgba(212, 175, 55, 0.22);
    border-radius: 4px;
    font-family: 'Inter', sans-serif;
    font-size: 0.85rem;
    background: #1a1820;
    color: #f0ece4;
    transition: border-color 0.18s ease, box-shadow 0.18s ease;
}
.filter-group select:focus {
    outline: none;
    border-color: var(--gold, #c5a059);
    box-shadow: 0 0 0 3px rgba(197, 160, 89, 0.20);
}

/* ── CTA Section ── */
.cta-section {
    text-align: center;
    padding: 80px 5%;
    background: var(--dark);
    color: var(--white);
}
.cta-section h2 {
    font-family: 'Playfair Display', serif;
    font-size: 2rem;
    margin-bottom: 15px;
}
.cta-section p {
    color: #aaa;
    margin-bottom: 30px;
    font-weight: 300;
}

/* ── About ── */
.about-content {
    padding: 80px 5%;
    max-width: 1200px;
    margin: 0 auto;
}
.about-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    margin-bottom: 60px;
}
.about-grid h2 {
    font-family: 'Playfair Display', serif;
    font-size: 1.8rem;
    margin-bottom: 20px;
}
.about-grid p {
    color: var(--gray);
    margin-bottom: 15px;
}
.stats-row {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 30px;
    text-align: center;
    padding: 40px 0;
    border-top: 1px solid var(--border);
}
.stat { display: flex; flex-direction: column; }
.stat-number {
    font-family: 'Playfair Display', serif;
    font-size: 2.5rem;
    color: var(--gold);
}
.stat-label {
    color: var(--gray);
    font-size: 0.9rem;
    margin-top: 5px;
}

/* ── Contact ── */
.contact-section {
    padding: 60px 5%;
    max-width: 1200px;
    margin: 0 auto;
}
.contact-grid {
    display: grid;
    grid-template-columns: 1fr 1.5fr;
    gap: 60px;
}
.contact-info h3 {
    font-family: 'Playfair Display', serif;
    font-size: 1.5rem;
    margin-bottom: 25px;
}
.office { margin-bottom: 25px; }
.office h4 { color: var(--gold); margin-bottom: 5px; }
.office p { color: var(--gray); font-size: 0.9rem; }
.wa-link { color: var(--gold) !important; font-weight: 600; }

/* ── Forms ── */
/* Contact "Send Us a Message" panel — dark luxury (MS Luxury black/gold),
   matching the filter-bar cleanup. No white block: deep charcoal panel
   with a subtle gold hairline, warm-grey labels, deep-charcoal readable
   inputs, and a gold focus glow. The input rules are scoped to
   .contact-form and use !important so they beat the sitewide input reset
   (which is itself !important) without affecting other forms. */
.contact-form {
    background: #0f0f12;
    padding: 40px;
    border: 1px solid rgba(212, 175, 55, 0.18);
    border-radius: 6px;
    box-shadow: 0 18px 50px rgba(0,0,0,0.45);
}
.contact-form h3 {
    font-family: 'Playfair Display', serif;
    margin-bottom: 25px;
    color: #f5f1e8;
}
.contact-form .form-group label {
    color: #b9b1a3 !important;
}
.contact-form .form-group input,
.contact-form .form-group select,
.contact-form .form-group textarea {
    background: #1a1820 !important;
    border: 1px solid rgba(212, 175, 55, 0.20) !important;
    color: #f5f1e8 !important;
    border-radius: 4px;
}
.contact-form .form-group input::placeholder,
.contact-form .form-group textarea::placeholder { color: #8f887c !important; }
.contact-form .form-group input:focus,
.contact-form .form-group select:focus,
.contact-form .form-group textarea:focus {
    border-color: var(--gold, #c5a059) !important;
    box-shadow: 0 0 0 3px rgba(197, 160, 89, 0.20) !important;
}
.inquiry-notice {
    background: rgba(197, 160, 89, 0.10);
    border: 1px solid rgba(212, 175, 55, 0.22);
    color: #e8e2d4;
    padding: 12px 16px;
    margin-bottom: 20px;
    font-size: 0.9rem;
    border-radius: 4px;
}
.inquiry-notice strong { color: var(--gold, #c5a059); }
.form-group {
    margin-bottom: 20px;
    flex: 1;
}
.form-group label {
    display: block;
    margin-bottom: 6px;
    font-weight: 600;
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--dark);
}
.form-group input,
.form-group select,
.form-group textarea {
    width: 100%;
    padding: 12px 15px;
    border: 1px solid #ddd;
    border-radius: 0;
    font-family: 'Inter', sans-serif;
    font-size: 0.95rem;
    transition: border 0.3s;
}
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
    outline: none;
    border-color: var(--gold);
}
.form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}
.form-feedback {
    margin-top: 15px;
    font-size: 0.9rem;
    font-weight: 600;
}
.form-feedback.success { color: var(--success); }
.form-feedback.error { color: var(--error); }

/* ── Error Page ── */
.error-page {
    min-height: 60vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 40px;
    background: var(--dark);
    color: var(--white);
}
.error-page h1 {
    font-family: 'Playfair Display', serif;
    font-size: 6rem;
    color: var(--gold);
    margin-bottom: 15px;
}
.error-page p {
    color: var(--gray);
    margin-bottom: 30px;
}

/* ── Empty State ── */
.empty-state {
    text-align: center;
    padding: 80px 20px;
}
.empty-state h3 {
    font-family: 'Playfair Display', serif;
    font-size: 1.5rem;
    margin-bottom: 10px;
}
.empty-state p { color: var(--gray); }

/* ── WhatsApp Float ── */
.whatsapp-float {
    position: fixed;
    bottom: 25px;
    right: 25px;
    width: 56px;
    height: 56px;
    background: #25d366;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 15px rgba(37, 211, 102, 0.4);
    z-index: 9999;
    transition: transform 0.3s;
}
.whatsapp-float:hover { transform: scale(1.1); }

/* ── Footer ── */
footer {
    background: var(--dark);
    color: #888;
    padding: 60px 5% 30px;
}
.footer-grid {
    max-width: 1200px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 40px;
    margin-bottom: 40px;
}
.footer-grid h4 {
    color: var(--white);
    margin-bottom: 15px;
    font-family: 'Playfair Display', serif;
    letter-spacing: 1px;
}
.footer-grid a {
    display: block;
    color: #888;
    margin-bottom: 8px;
    transition: color 0.3s;
    font-size: 0.9rem;
}
.footer-grid a:hover { color: var(--gold); }
.footer-grid p { font-size: 0.9rem; margin-bottom: 5px; }
.footer-bottom {
    text-align: center;
    padding-top: 30px;
    border-top: 1px solid #333;
    font-size: 0.85rem;
}
/* TRUST-LEGAL-UK-1 — quiet legal-entity small-print below the
   copyright line. Smaller + muted so it reads as a regulatory
   disclosure, not promotional copy. */
.footer-legal-entity {
    margin: 10px auto 0;
    max-width: 880px;
    padding: 0 16px;
    color: rgba(245, 241, 232, 0.5);
    font-size: 0.72rem;
    line-height: 1.55;
    text-align: center;
}
.footer-legal-entity small { font-size: inherit; }

/* ── Legal / T&Cs ── */
.legal-content {
    padding: 60px 5%;
    max-width: 900px;
    margin: 0 auto;
}
/* TRUST-LEGAL-UK-1 — calm pending-review banner at the top of
   each customer-facing legal page so it's transparent that the
   UK-entity transition is ongoing. Gold-outline, dark fill,
   small. */
.legal-pending-notice {
    margin: 18px 0 32px;
    padding: 14px 18px;
    background: rgba(13, 13, 13, 0.65);
    border: 1px solid rgba(197, 160, 89, 0.4);
    border-left: 3px solid var(--gold, #c5a059);
    border-radius: 4px;
    color: rgba(245, 241, 232, 0.78);
    font-size: 0.86rem;
    line-height: 1.6;
}
.legal-pending-notice strong { color: #fff; }
.legal-container h2 {
    font-family: 'Playfair Display', serif;
    font-size: 1.3rem;
    margin: 35px 0 15px;
    color: var(--dark);
}
.legal-container h3 {
    font-size: 0.95rem;
    font-weight: 700;
    margin: 20px 0 8px;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--gold);
}
.legal-container p {
    color: var(--gray);
    font-size: 0.9rem;
    line-height: 1.8;
    margin-bottom: 10px;
}

/* ── Draw Result & Info ── */
.draw-result-section {
    padding: 80px 5%;
    text-align: center;
    background: var(--light);
}
.draw-result-container {
    max-width: 700px;
    margin: 0 auto;
}
.draw-result-badge {
    display: inline-block;
    padding: 8px 20px;
    background: var(--gold);
    color: var(--white);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 2px;
    margin-bottom: 20px;
}
.draw-result-container h2 {
    font-family: 'Playfair Display', serif;
    font-size: 2.2rem;
    margin-bottom: 30px;
}
.draw-winner-card {
    background: var(--white);
    padding: 40px;
    box-shadow: 0 10px 40px rgba(0,0,0,0.08);
    margin-bottom: 30px;
}
.winner-icon { font-size: 4rem; margin-bottom: 15px; }
.draw-winner-card h3 {
    font-family: 'Playfair Display', serif;
    font-size: 1.8rem;
    margin-bottom: 8px;
}
.winner-entry {
    color: var(--gray);
    font-size: 0.9rem;
    margin-bottom: 25px;
}
.winner-entry strong {
    color: var(--gold);
    font-family: monospace;
    font-size: 1rem;
}
.draw-stats-row {
    display: flex;
    justify-content: center;
    gap: 50px;
    margin-bottom: 20px;
}
.draw-stat { text-align: center; }
.draw-stat-value {
    display: block;
    font-family: 'Playfair Display', serif;
    font-size: 2rem;
    color: var(--gold);
}
.draw-stat-label {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--gray);
}
.draw-date-text {
    color: var(--gray);
    font-size: 0.85rem;
}
.draw-delivery-note {
    background: var(--gold-light);
    padding: 20px 25px;
    margin-bottom: 30px;
    font-size: 0.9rem;
    color: var(--dark);
    line-height: 1.7;
}
.draw-info-section {
    padding: 50px 5%;
    background: var(--white);
}
.draw-info-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
    max-width: 1100px;
    margin: 0 auto;
}
.draw-info-card {
    text-align: center;
    padding: 30px 20px;
    border: 1px solid var(--border);
}
.draw-info-icon {
    font-size: 2.5rem;
    margin-bottom: 15px;
}
.draw-info-card h3 {
    font-family: 'Playfair Display', serif;
    font-size: 1.1rem;
    margin-bottom: 10px;
}
.draw-info-card p {
    color: var(--gray);
    font-size: 0.85rem;
    line-height: 1.6;
}

/* ── Competition Entry Section ── */
.comp-entry-section {
    padding: 60px 5%;
    max-width: 1100px;
    margin: 0 auto;
}
.comp-entry-header {
    text-align: center;
    margin-bottom: 40px;
}
.comp-entry-header h2 {
    font-family: 'Playfair Display', serif;
    font-size: 2rem;
    margin-bottom: 25px;
}

/* ── Competition detail — high-conversion hero ────────────────────
   Sits at the very top of /competitions/:slug for active comps.
   Dark luxury base, large watch image with gold halo, gold-accent
   countdown/value numbers, refined CTA — never a cheap promo look. */
.cd-hero {
    position: relative;
    padding: 56px 5% 64px;
    background: radial-gradient(ellipse at top, #1a1224 0%, #0c0814 55%, #050308 100%);
    color: #f8f6f1;
    overflow: hidden;
}
.cd-hero::before {
    /* Long gold glow behind the image — adds physical depth without
       a hard border. Mirrors the homepage hero treatment so the two
       feel like one design system. */
    content: '';
    position: absolute;
    top: 8%; left: -10%;
    width: 60%; height: 80%;
    background: radial-gradient(ellipse at center, rgba(197,160,89,0.16) 0%, transparent 65%);
    pointer-events: none;
    z-index: 0;
}
.cd-hero-inner {
    position: relative;
    z-index: 1;
    max-width: 1280px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    gap: 48px;
    align-items: center;
}
.cd-hero-media {
    position: relative;
    aspect-ratio: 4 / 3;
    background: #150e21 center/cover no-repeat;
    box-shadow:
        inset 0 0 0 1px rgba(197,160,89,0.32),
        0 36px 80px rgba(0,0,0,0.55),
        0 12px 24px rgba(0,0,0,0.35);
}
.cd-hero-media[data-fallback="1"] {
    /* No-image placeholder. Same gold-radial palette as the homepage
       hero placeholder so the brand stays coherent. */
    background:
        radial-gradient(circle at 30% 25%, rgba(197,160,89,0.22) 0%, transparent 55%),
        radial-gradient(circle at 70% 80%, rgba(122,96,50,0.18) 0%, transparent 50%),
        linear-gradient(135deg, #1d142b 0%, #0a0612 65%);
}
.cd-hero-badge {
    position: absolute;
    top: 14px;
    left: 14px;
    padding: 5px 12px;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 1.6px;
    text-transform: uppercase;
    background: var(--gold, #c5a059);
    color: #1a1a1a;
}
.cd-hero-info { display: flex; flex-direction: column; gap: 0; }
.cd-hero-info .cd-eyebrow {
    display: inline-block;
    margin-bottom: 14px;
    color: var(--gold, #c5a059);
    font-size: 0.72rem;
    letter-spacing: 3px;
    text-transform: uppercase;
    font-weight: 600;
}
.cd-hero-info .cd-headline {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: clamp(2rem, 3.8vw, 2.8rem);
    line-height: 1.1;
    color: #f8f6f1;
    margin: 0 0 14px;
}
.cd-subline {
    color: #cfccc4;
    font-size: 1.02rem;
    line-height: 1.55;
    margin: 0 0 24px;
    max-width: 560px;
}
.cd-hero-countdown {
    padding: 18px 0 6px;
    margin: 0 0 18px;
    border-top: 1px solid rgba(255,255,255,0.07);
    border-bottom: 1px solid rgba(255,255,255,0.07);
}
.cd-hero-countdown .countdown-segments-lg {
    display: flex;
    gap: 22px;
    flex-wrap: wrap;
}
.cd-hero-countdown .countdown-seg {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}
.cd-hero-countdown .countdown-num {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: clamp(1.8rem, 4vw, 2.4rem);
    color: var(--gold, #c5a059);
    line-height: 1;
}
.cd-hero-countdown .countdown-unit {
    font-size: 0.66rem;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: #918e88;
    margin-top: 4px;
}
.cd-hero-countdown .cd-no-date {
    font-size: 0.92rem;
    color: #a8a59f;
    font-style: italic;
    margin: 0;
}
.cd-hero-meta {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
    margin: 0 0 22px;
}
.cd-hero-meta div { display: flex; flex-direction: column; }
.cd-hero-meta dt {
    font-size: 0.66rem;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    color: #918e88;
    margin: 0 0 6px;
}
.cd-hero-meta dd {
    margin: 0;
    color: #f8f6f1;
    font-size: 1.02rem;
    font-weight: 600;
}
.cd-hero-meta dd.is-fallback {
    color: #b0aea9;
    font-weight: 400;
    font-style: italic;
    font-size: 0.92rem;
}
.cd-hero-urgency {
    color: #a8a59f;
    font-size: 0.85rem;
    line-height: 1.55;
    font-style: italic;
    margin: 0 0 24px;
    padding-bottom: 24px;
    border-bottom: 1px solid rgba(255,255,255,0.07);
}
.cd-hero-cta-row {
    display: flex;
    align-items: center;
    gap: 18px;
    flex-wrap: wrap;
}
.cd-cta-primary {
    display: inline-block;
    padding: 16px 32px;
    background: var(--gold, #c5a059);
    color: #1a1a1a;
    font-size: 0.84rem;
    font-weight: 700;
    letter-spacing: 1.8px;
    text-transform: uppercase;
    text-decoration: none;
    transition: background 0.18s ease, transform 0.18s ease;
}
.cd-cta-primary:hover {
    background: #d2b070;
    transform: translateY(-1px);
}
.cd-cta-microcopy {
    font-size: 0.82rem;
    color: #a8a59f;
    letter-spacing: 0.5px;
}

@media (max-width: 960px) {
    .cd-hero { padding: 40px 5% 48px; }
    .cd-hero-inner { grid-template-columns: 1fr; gap: 28px; }
    .cd-hero-media { max-width: 560px; margin: 0 auto; width: 100%; }
    .cd-hero-info { max-width: 560px; margin: 0 auto; width: 100%; }
}
@media (max-width: 600px) {
    .cd-hero { padding: 28px 5% 32px; }
    .cd-hero-inner { gap: 20px; }
    .cd-hero-info .cd-headline { font-size: 1.7rem; }
    .cd-subline { font-size: 0.94rem; }
    .cd-hero-countdown { padding: 14px 0 4px; margin-bottom: 14px; }
    .cd-hero-countdown .countdown-segments-lg { gap: 14px; }
    .cd-hero-countdown .countdown-num { font-size: 1.6rem; }
    .cd-hero-meta { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-bottom: 16px; }
    .cd-hero-meta dt { font-size: 0.6rem; letter-spacing: 1.2px; }
    .cd-hero-meta dd { font-size: 0.92rem; }
    .cd-hero-meta dd.is-fallback { font-size: 0.82rem; }
    .cd-hero-urgency { font-size: 0.8rem; padding-bottom: 18px; margin-bottom: 18px; }
    .cd-hero-cta-row { flex-direction: column; align-items: stretch; gap: 12px; }
    .cd-cta-primary { width: 100%; text-align: center; padding: 14px 18px; }
    .cd-cta-microcopy { text-align: center; }
}
@media (max-width: 430px) {
    .cd-hero-meta { grid-template-columns: 1fr; gap: 8px; }
    .cd-hero-meta div { flex-direction: row; align-items: baseline; justify-content: space-between; }
    .cd-hero-meta dt { margin: 0; }
}

/* ══════════════════════════════════════════════════════════════════
   Competition detail — single product + entry area (Winuwatch-style
   functional logic in MS Luxury dark styling). LEFT = one watch
   gallery; RIGHT = competition details + entry selector. The watch is
   shown ONCE (no duplicate hero image), and the skill question is only
   revealed after the user picks entries and clicks Continue.
   ══════════════════════════════════════════════════════════════════ */
.cd-product {
    background: radial-gradient(ellipse at top, #16121f 0%, #0c0a12 60%, #070509 100%);
    padding: 56px 5%;
    color: #f5f1e8;
}
.cd-product-grid {
    max-width: 1200px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    gap: 48px;
    align-items: start;
}
/* LEFT — gallery */
.cd-gallery { width: 100%; }
.cd-gallery-main {
    position: relative;
    aspect-ratio: 1 / 1;
    background: #150e21 center/cover no-repeat;
    border: 1px solid rgba(197,160,89,0.3);
    border-radius: 14px;
    box-shadow: 0 30px 70px rgba(0,0,0,0.55);
}
.cd-gallery-main[data-fallback="1"] {
    background:
        radial-gradient(circle at 30% 25%, rgba(197,160,89,0.22) 0%, transparent 55%),
        linear-gradient(135deg, #1d142b 0%, #0a0612 65%);
}
.cd-gallery-badge {
    position: absolute;
    top: 16px;
    left: 16px;
    padding: 6px 14px;
    font-size: 0.66rem;
    font-weight: 700;
    letter-spacing: 1.8px;
    text-transform: uppercase;
    /* Antique gold (not the silver --gold var) so the image badge matches the
       gold accents used across the entry funnel. */
    background: #c5a059;
    color: #1a1a1a;
    border-radius: 2px;
}
.cd-gallery-thumbs {
    display: flex;
    gap: 12px;
    margin-top: 14px;
    flex-wrap: wrap;
}
.cd-thumb {
    width: 76px;
    height: 76px;
    border-radius: 8px;
    background: #150e21 center/cover no-repeat;
    border: 1px solid rgba(255,255,255,0.12);
    cursor: pointer;
    padding: 0;
    transition: border-color 0.2s ease, transform 0.2s ease;
}
.cd-thumb:hover { transform: translateY(-2px); }
.cd-thumb.is-active { border-color: var(--gold, #c5a059); box-shadow: 0 0 0 1px var(--gold, #c5a059); }
/* ENTRY-SELECTOR-UX-PRICE-SYNC — gallery CTA. Anchor under the
   gallery that deep-links to the #entry anchor above the selector
   (smooth-scrolled by the inline JS). Block-level so the cta-btn
   treatment spans the gallery width with a ≥44px tap target. */
.cd-gallery-cta {
    display: block;
    width: 100%;
    margin-top: 14px;
    text-align: center;
    min-height: 44px;
}
/* RIGHT — entry panel */
.cd-entry-panel { width: 100%; }
.cd-entry-panel .breadcrumb { margin-bottom: 14px; }
.cd-timer-row {
    margin: 22px 0 10px;
    padding: 16px 0 6px;
    border-top: 1px solid rgba(255,255,255,0.08);
    border-bottom: none;
}
.cd-timer-label {
    display: block;
    font-size: 0.7rem;
    letter-spacing: 1.6px;
    text-transform: uppercase;
    color: #918e88;
    margin-bottom: 10px;
}
.cd-closing-rule { margin: 0 0 4px; font-size: 0.82rem; }
/* progress */
.cd-progress-track {
    height: 8px;
    background: rgba(255,255,255,0.08);
    border-radius: 4px;
    overflow: hidden;
}
.cd-progress-fill {
    height: 100%;
    background: linear-gradient(90deg, #c5a059, #d2b070);
    transition: width 0.4s ease;
}
.cd-progress-meta {
    display: flex;
    justify-content: space-between;
    font-size: 0.78rem;
    color: #c9c6c0;
    margin: 8px 0 4px;
    letter-spacing: 0.4px;
}
.cd-progress-meta strong { color: #fff; }
/* ENTRY SELECTOR */
.cd-entry-select {
    margin-top: 22px;
    padding: 22px;
    background: linear-gradient(165deg, rgba(30,22,45,0.5), rgba(10,6,18,0.6));
    border: 1px solid rgba(197,160,89,0.3);
    border-radius: 14px;
}
.cd-entry-select-label,
.cd-vip-label {
    display: block;
    font-size: 0.72rem;
    letter-spacing: 1.6px;
    text-transform: uppercase;
    color: #b0aea9;
    margin: 0 0 10px;
}
.cd-vip-label { margin-top: 18px; }
.cd-qty-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 8px;
}
.cd-vip-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
}
.cd-qty {
    padding: 12px 8px;
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.18);
    border-radius: 8px;
    color: #f5f1e8;
    font-size: 0.92rem;
    font-weight: 600;
    cursor: pointer;
    transition: border-color 0.18s ease, background 0.18s ease, transform 0.12s ease;
}
.cd-qty:hover { border-color: rgba(197,160,89,0.6); transform: translateY(-1px); }
.cd-qty.is-active {
    background: linear-gradient(135deg, #0d3b2c 0%, #14513b 100%);
    border-color: var(--gold, #c5a059);
    color: #fff;
    box-shadow: 0 6px 18px rgba(13,59,44,0.45);
}
.cd-vip { font-size: 0.82rem; }
/* ENTRY-SELECTOR-UX-PRICE-SYNC — VIP pack cards. The .cd-vip-grid
   container stacks two .cd-vip-row grids: units (1–9, wrapping
   5-across) above bundles (10/15/25/50). Both rows are 5-across on
   desktop; the bundles row relaxes to 2 columns on mobile (media
   query below). Cards are compact — entry count + optional discount
   badge only; all pricing lives in the .cd-summary panel. Only
   LAYOUT differs from .cd-qty — the active-state gradient + gold
   edge are inherited. */
.cd-vip-grid {
    gap: 10px;
    margin-top: 12px;
}
.cd-vip-row {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 8px;
}
.cd-qty.cd-vip {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 14px 8px;
    text-align: center;
    line-height: 1.3;
}
.cd-vip-qty {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 1.15rem;
    color: #fff;
    font-weight: 700;
}
.cd-vip-qty-label {
    font-family: 'Inter', sans-serif;
    font-size: 0.7rem;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    color: rgba(245, 241, 232, 0.6);
    margin-left: 4px;
    font-weight: 600;
}
.cd-vip-badge {
    align-self: center;
    background: rgba(197, 160, 89, 0.16);
    color: var(--gold, #c5a059);
    border: 1px solid rgba(197, 160, 89, 0.45);
    border-radius: 999px;
    padding: 2px 9px;
    font-size: 0.66rem;
    letter-spacing: 1.1px;
    text-transform: uppercase;
    font-weight: 700;
}
.cd-vip-total {
    color: var(--gold, #c5a059);
    font-size: 0.86rem;
    font-weight: 700;
    margin-top: 2px;
}
.cd-vip-odds {
    color: rgba(245, 241, 232, 0.68);
    font-size: 0.66rem;
    letter-spacing: 0.4px;
    line-height: 1.45;
}
@media (max-width: 720px) {
    .cd-vip-row-bundles { grid-template-columns: repeat(2, 1fr); }
}

/* ENTRY-COUNT-VIP-PACKS-DISCOUNT-ODDS-1 — order summary panel.
   Sits below the VIP grid. Quiet rows for the per-entry price /
   discount / total, then the two odds lines. The total uses the
   existing .cd-total Rolex-gold treatment via .cd-summary-total. */
.cd-summary {
    margin: 14px 0 6px;
    padding: 14px 16px;
    background: rgba(13, 13, 13, 0.55);
    border: 1px solid rgba(197, 160, 89, 0.3);
    border-radius: 4px;
}
.cd-summary-row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-bottom: 6px;
    font-size: 0.78rem;
    letter-spacing: 0.6px;
    color: rgba(245, 241, 232, 0.78);
}
.cd-summary-row:last-of-type { margin-bottom: 0; }
.cd-summary-val { font-weight: 700; color: #fff; }
.cd-summary-discount { color: var(--gold, #c5a059); }
.cd-summary-total-row {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    font-size: 0.82rem;
    text-transform: uppercase;
    letter-spacing: 1.4px;
}
.cd-summary-total {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 1.4rem;
    color: var(--gold, #c5a059);
    font-weight: 700;
    letter-spacing: 0;
    text-transform: none;
}
.cd-summary-odds {
    margin: 8px 0 0;
    font-size: 0.74rem;
    line-height: 1.55;
    color: rgba(245, 241, 232, 0.65);
}
/* UX-VIP-SUMMARY-PRICING-CLARITY-1 — next-step note closing the order summary,
   pointing the user to the skill question → secure checkout. Quiet gold accent,
   slightly separated from the odds lines above. */
.cd-summary-next {
    margin: 12px 0 0;
    padding-top: 10px;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    font-size: 0.76rem;
    line-height: 1.5;
    color: var(--gold, #c5a059);
}
.cd-total-row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin: 20px 0 16px;
    padding-top: 16px;
    border-top: 1px solid rgba(255,255,255,0.1);
    font-size: 0.8rem;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    color: #b0aea9;
}
.cd-total {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 1.5rem;
    color: var(--gold, #c5a059);
    letter-spacing: 0;
    text-transform: none;
}
.cd-continue-btn {
    /* ENTRY-COUNT-VIP-PACKS-DISCOUNT-ODDS-1 — checkout/continue CTA
       flipped from the emerald gradient to flat Rolex green #006039
       background + Rolex-gold #c5a059 text + min-height: 44px tap
       target. Matches the watch-detail Win-by-Draw CTA treatment
       (.buy-option-btn-comp), so the operator's single "Enter
       Competition" green is consistent across surfaces. */
    display: block;
    width: 100%;
    text-align: center;
    padding: 15px 24px;
    min-height: 44px;
    background: #006039;
    color: var(--gold, #c5a059);
    border: 1px solid rgba(197,160,89,0.55);
    font-weight: 700;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    font-size: 0.82rem;
    box-shadow: 0 10px 26px rgba(13,59,44,0.5);
}
.cd-continue-btn:hover {
    background: linear-gradient(135deg, #11543d 0%, #1a6349 100%);
    border-color: var(--gold, #c5a059);
    color: #fff;
}
/* DESIGN-CTA-SYSTEM-UNIFY-1 — add the canonical gold focus ring (the only
   canonical primary-CTA property this button was missing). All other
   properties stay as-is: flat Rolex green #006039 + Rolex-gold var(--gold)
   text + 44px tap target are already on-system and locked by tests. */
.cd-continue-btn:focus-visible {
    outline: 2px solid var(--gold, #c5a059);
    outline-offset: 2px;
}
.cd-entry-select-note {
    margin: 12px 0 0;
    font-size: 0.78rem;
    line-height: 1.5;
    color: #918e88;
    text-align: center;
}
/* specs below */
.cd-specs {
    max-width: 1200px;
    margin: 40px auto 0;
    padding-top: 32px;
    border-top: 1px solid rgba(255,255,255,0.08);
}
/* Watch Details — each cell stacks label over value so long values (e.g.
   the full movement/calibre string) wrap cleanly and stay aligned. */
.cd-section-h {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: clamp(1.3rem, 2.4vw, 1.7rem);
    color: #f5f1e8;
    margin: 0 0 20px;
}
.cd-specs-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 0 30px;
    margin: 0 0 24px;
}
.cd-specs .cd-spec {
    display: flex;
    flex-direction: column;
    gap: 3px;
    padding: 12px 0;
    border-bottom: 1px solid rgba(255,255,255,0.07);
}
.cd-specs .cd-spec dt { color: #918e88; font-size: 0.72rem; letter-spacing: 1.2px; text-transform: uppercase; margin: 0; }
.cd-specs .cd-spec dd { color: #f5f1e8; font-weight: 600; margin: 0; line-height: 1.45; overflow-wrap: anywhere; }
.cd-specs .detail-description { margin-top: 8px; }
.cd-specs .detail-description h3 {
    font-family: 'Playfair Display', Georgia, serif;
    color: #f5f1e8;
    margin: 0 0 10px;
}
.cd-specs .detail-description p { color: rgba(245,241,232,0.78); line-height: 1.7; }

/* ══════════════════════════════════════════════════════════════════
   Competition detail — LOWER sections (dark luxury, no white boxes).
   Shared info cards, the Watch & Competition Information grid, the
   verify links, the FAQ accordion, and the curation/trust block.
   ══════════════════════════════════════════════════════════════════ */
.cd-lower {
    /* Align to the same 1200px column as the top entry area + quiz so the
       supporting info cards read as part of one continuous page. */
    max-width: 1200px;
    margin: 0 auto;
    padding: 8px 5% 20px;
    display: grid;
    gap: 18px;
}
.cd-info-card {
    background: linear-gradient(165deg, rgba(30,22,45,0.5), rgba(12,10,18,0.62));
    border: 1px solid rgba(197,160,89,0.28);
    border-left: 3px solid var(--gold, #c5a059);
    border-radius: 12px;
    padding: 24px 26px;
    color: rgba(245,241,232,0.82);
    line-height: 1.65;
}
.cd-info-h {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 1.15rem;
    color: #f5f1e8;
    margin: 0 0 14px;
}
.cd-info-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 16px 28px;
    margin: 0 0 12px;
}
.cd-info-grid div { display: flex; flex-direction: column; gap: 4px; }
.cd-info-grid dt { color: #918e88; font-size: 0.7rem; letter-spacing: 1.2px; text-transform: uppercase; margin: 0; }
.cd-info-grid dd { color: #f5f1e8; font-weight: 600; margin: 0; overflow-wrap: anywhere; }
.cd-info-grid dd .is-fallback, .cd-info-grid dd[class*="fallback"] { color: #b0aea9; font-weight: 500; }
.cd-info-rule { margin: 6px 0 0; font-size: 0.82rem; color: rgba(245,241,232,0.62); }
.cd-verify-list { list-style: none; margin: 0; padding: 0; }
.cd-verify-list li { padding: 8px 0; border-bottom: 1px solid rgba(255,255,255,0.06); font-size: 0.9rem; }
.cd-verify-list li:last-child { border-bottom: none; }
.cd-verify-list a { color: var(--gold, #c5a059); font-weight: 600; text-decoration: none; }
.cd-verify-list a:hover { text-decoration: underline; }
/* FAQ accordion */
.cd-faq {
    background: linear-gradient(135deg, #0b0b0e 0%, #15131a 100%);
    border-top: 1px solid rgba(197,160,89,0.14);
    padding: 56px 5%;
}
.cd-faq-inner, .cd-trust-inner { max-width: 860px; margin: 0 auto; }
.cd-faq-eyebrow, .cd-trust-eyebrow {
    display: block;
    font-size: 0.7rem;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: rgba(212,175,55,0.95);
    margin-bottom: 10px;
}
.cd-faq-item {
    border-bottom: 1px solid rgba(255,255,255,0.08);
    padding: 4px 0;
}
.cd-faq-item summary {
    cursor: pointer;
    list-style: none;
    padding: 16px 30px 16px 0;
    position: relative;
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 1.02rem;
    color: #f5f1e8;
}
.cd-faq-item summary::-webkit-details-marker { display: none; }
.cd-faq-item summary::after {
    content: '+';
    position: absolute;
    right: 4px;
    top: 14px;
    color: var(--gold, #c5a059);
    font-size: 1.3rem;
    line-height: 1;
}
.cd-faq-item[open] summary::after { content: '\2212'; }
.cd-faq-item p {
    margin: 0 0 16px;
    color: rgba(245,241,232,0.74);
    line-height: 1.7;
    font-size: 0.94rem;
}

/* WATCH-WA-PREFILL-CONTEXT-1 — Category 2 (competition / draw) inquiry
   affordance at the bottom of the competition-detail FAQ. Quiet
   styling so it doesn't compete with the primary entry CTA above,
   but legible and clearly tappable. */
.cd-faq-help {
    margin: 28px 0 10px;
    color: rgba(245,241,232,0.6);
    font-size: 0.9rem;
    line-height: 1.55;
    text-align: center;
}
.cd-faq-help-cta {
    display: inline-block;
    margin: 0 auto;
    padding: 10px 22px;
    color: var(--gold, #c5a059);
    font-size: 0.78rem;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    font-weight: 600;
    text-decoration: none;
    border: 1px solid rgba(197, 160, 89, 0.4);
    border-radius: 999px;
    background: rgba(13, 13, 13, 0.55);
    transition: border-color 0.2s ease, color 0.2s ease, background 0.2s ease;
}
.cd-faq-help-cta:hover,
.cd-faq-help-cta:focus-visible {
    color: #fff;
    border-color: var(--gold, #c5a059);
    background: rgba(13, 13, 13, 0.78);
}
.cd-faq-inner { text-align: left; }
.cd-faq-inner > .cd-faq-help,
.cd-faq-inner > .cd-faq-help-cta {
    display: block;
    margin-left: auto;
    margin-right: auto;
    text-align: center;
    width: fit-content;
    max-width: 100%;
}
.cd-faq-inner > .cd-faq-help { width: 100%; }

/* Trust / curation */
.cd-trust {
    background: var(--dark, #0a0a0a);
    padding: 56px 5%;
    text-align: center;
}
.cd-trust-body {
    color: rgba(245,241,232,0.78);
    line-height: 1.8;
    font-size: 1rem;
    margin: 0 auto;
    max-width: 720px;
}
/* How This Skill-Based Competition Works — numbered steps, dark luxury. */
.cd-how {
    background: var(--dark, #0a0a0a);
    border-top: 1px solid rgba(197,160,89,0.14);
    padding: 56px 5%;
}
.cd-how-inner { max-width: 1100px; margin: 0 auto; }
.cd-how-eyebrow {
    display: block;
    font-size: 0.7rem;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: rgba(212,175,55,0.95);
    margin-bottom: 10px;
}
.cd-how-steps {
    list-style: none;
    margin: 22px 0 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 18px 28px;
}
.cd-how-step {
    display: flex;
    gap: 14px;
    align-items: flex-start;
    padding: 18px 20px;
    background: linear-gradient(165deg, rgba(30,22,45,0.5), rgba(12,10,18,0.62));
    border: 1px solid rgba(197,160,89,0.22);
    border-radius: 12px;
}
.cd-how-num {
    flex: 0 0 auto;
    width: 30px; height: 30px;
    border-radius: 50%;
    display: inline-flex; align-items: center; justify-content: center;
    background: rgba(197,160,89,0.14);
    border: 1px solid #c5a059;
    color: #c5a059;
    font-weight: 700;
}
.cd-how-step strong { display: block; color: #f5f1e8; font-size: 1rem; margin-bottom: 4px; }
.cd-how-step p { margin: 0; color: rgba(245,241,232,0.72); line-height: 1.6; font-size: 0.9rem; }
.cd-how-note {
    margin: 22px 0 0;
    font-size: 0.84rem;
    line-height: 1.65;
    color: rgba(245,241,232,0.6);
}
.cd-how-note a, .cd-trust-card a { color: #c5a059; }

/* Trust, Authentication & Secure Entry — four supportable cards. */
.cd-trust-section {
    background: linear-gradient(135deg, #0b0b0e 0%, #15131a 100%);
    border-top: 1px solid rgba(197,160,89,0.14);
    padding: 56px 5%;
}
.cd-trust-section-inner { max-width: 1100px; margin: 0 auto; }
.cd-trust-grid {
    margin: 22px 0 0;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 18px;
}
.cd-trust-card {
    padding: 22px 22px 24px;
    background: linear-gradient(165deg, rgba(30,22,45,0.5), rgba(12,10,18,0.62));
    border: 1px solid rgba(197,160,89,0.22);
    border-left: 3px solid #c5a059;
    border-radius: 12px;
}
.cd-trust-card h3 {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 1.04rem;
    color: #f5f1e8;
    margin: 0 0 8px;
}
.cd-trust-card p { margin: 0; color: rgba(245,241,232,0.72); line-height: 1.65; font-size: 0.9rem; }

@media (max-width: 600px) {
    .cd-lower { padding: 8px 6% 18px; gap: 16px; }
    .cd-info-card { padding: 20px 18px; }
    .cd-faq, .cd-trust, .cd-how, .cd-trust-section { padding: 44px 6%; }
    .cd-info-grid { grid-template-columns: 1fr 1fr; gap: 14px 18px; }
    .cd-how-steps { grid-template-columns: 1fr; gap: 14px; }
    .cd-trust-grid { grid-template-columns: 1fr; }
}

@media (max-width: 960px) {
    .cd-product { padding: 40px 5% 44px; }
    .cd-product-grid { grid-template-columns: 1fr; gap: 28px; }
    .cd-gallery { max-width: 560px; margin: 0 auto; }
    .cd-entry-panel { max-width: 560px; margin: 0 auto; }
}
@media (max-width: 600px) {
    .cd-product { padding: 28px 5% 32px; }
    .cd-gallery-main { aspect-ratio: 4 / 3; }
    /* MOBILE-TICKET-SELECTOR-FIX-1 — the selector container stacks the
       units + bundles rows; the 5-across layout lives on .cd-vip-row. */
    .cd-qty-grid { grid-template-columns: 1fr; gap: 8px; }
    .cd-vip-row { gap: 6px; }
    .cd-qty { padding: 11px 4px; font-size: 0.86rem; }
    .cd-vip { font-size: 0.74rem; }
    .cd-vip-qty { display: flex; flex-direction: column; align-items: center; gap: 2px; font-size: 1rem; }
    .cd-vip-qty-label { margin-left: 0; letter-spacing: 0.6px; font-size: 0.56rem; }
    .cd-entry-select { padding: 18px 14px; }
    .cd-continue-btn { padding: 14px 16px; }
}

/* ── Competition detail — conversion headline + sales line + urgency
   ──────────────────────────────────────────────────────────────────
   The "WIN THIS WATCH" eyebrow, the bold "Win the [Brand] [Model]"
   headline, and a single emotional sales line replace the old neutral
   "Curated Prize Draw" h2. The urgency line under the progress bar
   reinforces the "until full OR draw date" guarantee. */
.cd-eyebrow {
    display: inline-block;
    font-size: 0.72rem;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: var(--gold, #c5a059);
    margin-bottom: 12px;
    font-weight: 600;
}
.cd-headline {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: clamp(1.7rem, 3.4vw, 2.4rem);
    line-height: 1.15;
    margin: 0 0 12px;
    color: #1a1a1a;
}
.cd-sales-line {
    color: #555;
    font-size: 1.02rem;
    line-height: 1.55;
    margin: 0 auto 28px;
    max-width: 620px;
}
.cd-no-date {
    font-size: 0.9rem;
    color: #888;
    font-style: italic;
    margin: 8px 0 0;
}
.cd-urgency {
    margin: 18px auto 0;
    padding-top: 12px;
    border-top: 1px solid rgba(255,255,255,0.08);
    max-width: 620px;
    color: #aaa;
    font-size: 0.85rem;
    font-style: italic;
    line-height: 1.55;
    text-align: center;
}

@media (max-width: 600px) {
    .cd-headline { font-size: 1.5rem; }
    .cd-sales-line { font-size: 0.94rem; margin-bottom: 22px; padding: 0 8px; }
    .cd-urgency { font-size: 0.8rem; padding: 12px 12px 0; }
}
.comp-entry-stats {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 40px;
    flex-wrap: wrap;
}
.comp-stats-inline {
    display: flex;
    gap: 30px;
}
.comp-stat {
    text-align: center;
}
.comp-stat .stat-value {
    display: block;
    font-weight: 700;
    font-size: 1.1rem;
    color: var(--gold);
}
.comp-stat .stat-label {
    display: block;
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--gray);
    margin-top: 3px;
}

/* Notary Badge */
.draw-notary-badge {
    display: flex;
    align-items: flex-start;
    gap: 15px;
    background: var(--dark);
    color: var(--white);
    padding: 20px 25px;
    margin-bottom: 20px;
    text-align: left;
}
.notary-icon {
    font-size: 2rem;
    color: var(--gold);
    flex-shrink: 0;
}
.draw-notary-badge p {
    color: var(--gray-light);
    font-size: 0.85rem;
    line-height: 1.6;
}

/* ── Updates Section ── */
.updates-section {
    padding: 40px 5%;
    max-width: 1400px;
    margin: 0 auto;
}
.updates-filters {
    display: flex;
    gap: 10px;
    margin-bottom: 30px;
    flex-wrap: wrap;
}
.updates-filters .filter-btn {
    padding: 10px 20px;
    background: var(--white);
    border: 1px solid var(--border);
    cursor: pointer;
    font-family: 'Inter', sans-serif;
    font-size: 0.85rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1px;
    transition: 0.3s;
}
.updates-filters .filter-btn.active,
.updates-filters .filter-btn:hover {
    background: var(--gold);
    color: var(--white);
    border-color: var(--gold);
}
.updates-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(380px, 1fr));
    gap: 30px;
}
.update-card {
    background: var(--white);
    box-shadow: 0 5px 20px rgba(0,0,0,0.05);
    overflow: hidden;
}
.update-video {
    position: relative;
    padding-top: 56.25%;
}
.update-video iframe {
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 100%;
}
.update-image {
    height: 220px;
    background-size: cover;
    background-position: center;
}
.update-body {
    padding: 25px;
}
.update-type {
    display: inline-block;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    padding: 4px 10px;
    margin-bottom: 12px;
}
.update-type-video { background: #e3f2fd; color: #1565c0; }
.update-type-price_update { background: #fff3e0; color: #e65100; }
.update-type-news { background: #e8f5e9; color: #2e7d32; }
.update-body h3 {
    font-family: 'Playfair Display', serif;
    font-size: 1.2rem;
    margin-bottom: 8px;
}
.update-watch {
    font-size: 0.85rem;
    color: var(--gold);
    font-weight: 600;
    margin-bottom: 8px;
}
.price-change {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 12px 0;
    font-weight: 600;
}
.old-price {
    text-decoration: line-through;
    color: var(--gray);
    font-size: 0.9rem;
}
.price-arrow { font-size: 0.8rem; }
.new-price {
    color: var(--gold);
    font-size: 1.1rem;
}
.update-desc {
    color: var(--gray);
    font-size: 0.9rem;
    margin-bottom: 10px;
}
.update-date {
    font-size: 0.8rem;
    color: var(--gray-light);
}

/* LATEST-UPDATES-UX-UPGRADE-1 — Watch Desk section.
   Replaces the old white `.updates-home-section` with a dark
   graphite surface that visually connects to the rest of the
   homepage. The legacy `.updates-home-section` /
   `.update-home-card` / `.update-home-body` selectors are kept
   as compatibility shims at lines below so the dark-theme
   global override (8650-8681 in this file) continues to apply
   to any internal preview / staging page that still ships the
   old markup. New markup uses `.watch-desk-*` / `.wd-*`. */
.watch-desk-section {
    padding: 80px 5%;
    background: linear-gradient(180deg, #0e0e10 0%, #141418 100%);
    color: #e5e5e7;
}
.watch-desk-wrap {
    max-width: 1200px;
    margin: 0 auto;
}
.watch-desk-eyebrow {
    text-align: center;
    color: var(--gold, #c5a059);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 4px;
    text-transform: uppercase;
    margin: 0 0 12px;
}
.watch-desk-title {
    text-align: center;
    color: #fff;
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 2.1rem;
    line-height: 1.2;
    margin: 0 0 12px;
}
.watch-desk-sub {
    text-align: center;
    color: #bdbdc4;
    font-size: 0.98rem;
    line-height: 1.55;
    max-width: 640px;
    margin: 0 auto 40px;
}
.watch-desk-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 22px;
}
.wd-card {
    display: flex;
    flex-direction: column;
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-top: 2px solid var(--gold, #c5a059);
    border-radius: 4px;
    overflow: hidden;
    color: inherit;
    text-decoration: none;
    transition: transform 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
}
.wd-card:hover {
    transform: translateY(-2px);
    border-color: rgba(197, 160, 89, 0.5);
    border-top-color: var(--gold, #c5a059);
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.35);
}
.wd-card-media {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 10;
    background: linear-gradient(135deg, #1a1a1f 0%, #0f0f12 100%);
    overflow: hidden;
}
.wd-card-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.wd-card-media-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
}
.wd-card-placeholder-mark {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 2.4rem;
    color: var(--gold, #c5a059);
    letter-spacing: 4px;
    opacity: 0.55;
}
.wd-card-play {
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%);
    width: 56px; height: 56px;
    border-radius: 50%;
    background: rgba(0, 96, 57, 0.92);
    border: 1px solid var(--gold, #c5a059);
    color: var(--gold, #c5a059);
    font-size: 1.1rem;
    display: flex;
    align-items: center;
    justify-content: center;
    padding-left: 4px;
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.45);
}
.wd-card-badge {
    position: absolute;
    top: 12px;
    left: 12px;
    background: rgba(13, 13, 13, 0.78);
    color: var(--gold, #c5a059);
    border: 1px solid rgba(197, 160, 89, 0.45);
    border-radius: 999px;
    padding: 4px 11px;
    font-size: 0.66rem;
    font-weight: 700;
    letter-spacing: 1.4px;
    text-transform: uppercase;
}
.wd-card-badge-video        { color: #6cc8ff; border-color: rgba(108, 200, 255, 0.45); }
.wd-card-badge-price_update { color: #ffb15c; border-color: rgba(255, 177, 92, 0.45); }
.wd-card-body {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 18px 18px 20px;
    flex: 1;
}
.wd-card-date {
    color: rgba(245, 241, 232, 0.55);
    font-size: 0.72rem;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    font-weight: 600;
}
.wd-card-date-fallback { color: rgba(245, 241, 232, 0.42); }
.wd-card-title {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 1.15rem;
    line-height: 1.3;
    color: #fff;
    margin: 0;
}
.wd-card-excerpt {
    color: #bdbdc4;
    font-size: 0.9rem;
    line-height: 1.55;
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.wd-card-pricechip {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: rgba(255, 177, 92, 0.08);
    border: 1px solid rgba(255, 177, 92, 0.3);
    border-radius: 999px;
    padding: 4px 12px;
    margin: 4px 0 0;
    font-size: 0.78rem;
    color: #ffb15c;
    width: fit-content;
}
.wd-pricechip-old { color: rgba(255, 177, 92, 0.55); text-decoration: line-through; }
.wd-pricechip-arrow { font-size: 0.7rem; }
.wd-pricechip-new { color: #ffb15c; font-weight: 700; }
.wd-card-watch {
    color: rgba(245, 241, 232, 0.65);
    font-size: 0.78rem;
    letter-spacing: 0.5px;
    margin: 0;
}
.wd-card-cta {
    margin-top: auto;
    padding-top: 8px;
    color: var(--gold, #c5a059);
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 1.6px;
    text-transform: uppercase;
}
.wd-card-cta-arrow {
    display: inline-block;
    transition: transform 0.18s ease;
}
.wd-card:hover .wd-card-cta-arrow { transform: translateX(3px); }
.watch-desk-cta-row {
    display: flex;
    justify-content: center;
    margin-top: 40px;
}
.watch-desk-cta-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 13px 28px;
    background: #006039;
    color: var(--gold, #c5a059);
    border: 1px solid rgba(197, 160, 89, 0.55);
    font-weight: 800;
    letter-spacing: 2px;
    text-transform: uppercase;
    text-decoration: none;
    transition: background 0.18s ease, border-color 0.18s ease, color 0.18s ease;
}
.watch-desk-cta-btn:hover {
    background: #007a47;
    border-color: var(--gold, #c5a059);
    color: #fff;
}
.watch-desk-cta-btn:focus-visible {
    outline: 2px solid var(--gold, #c5a059);
    outline-offset: 2px;
}
@media (max-width: 960px) {
    .watch-desk-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 720px) {
    .watch-desk-section { padding: 60px 5%; }
    .watch-desk-title { font-size: 1.7rem; }
    .watch-desk-grid { grid-template-columns: 1fr; gap: 18px; }
    .wd-card-media { aspect-ratio: 16 / 9; }
    .watch-desk-cta-btn { width: 100%; max-width: 320px; }
}
@media (max-width: 360px) {
    .watch-desk-section { padding: 48px 16px; }
}

/* Updates on Homepage — legacy selectors retained as
   compatibility shims. The dark-theme override at
   ~lines 8650-8681 of this file continues to apply if any
   surface still ships the old `.update-home-card` markup. */
.updates-home-section {
    padding: 80px 5%;
    background: var(--white);
}
.updates-home-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
    gap: 30px;
    max-width: 1200px;
    margin: 0 auto;
}
.update-home-card {
    background: var(--light);
    overflow: hidden;
}
.update-video-thumb {
    position: relative;
    padding-top: 56.25%;
}
.update-video-thumb iframe {
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 100%;
}
.update-home-body {
    padding: 20px;
}
.update-home-body h3 {
    font-family: 'Playfair Display', serif;
    font-size: 1.1rem;
    margin-bottom: 6px;
}

/* ── Responsive ── */
@media (max-width: 768px) {
    .hero h1 { font-size: 2.2rem; }
    .hero { height: 70vh; text-align: center; justify-content: center; }
    .hero-content { max-width: 100%; }
    .nav-links { display: none; }
    .nav-links.open {
        display: flex;
        flex-direction: column;
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        background: var(--white);
        padding: 20px 5%;
        border-bottom: 1px solid var(--border);
        box-shadow: 0 10px 30px rgba(0,0,0,0.1);
    }
    .hamburger { display: flex; }
    .detail-grid,
    .about-grid,
    .contact-grid,
    .quiz-hero-grid { grid-template-columns: 1fr; }
    .comp-list-card { grid-template-columns: 1fr; }
    .comp-grid { grid-template-columns: 1fr; }
    .watches-grid { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
    .stats-row { grid-template-columns: repeat(2, 1fr); }
    .steps-grid { grid-template-columns: 1fr; }
    .form-row { grid-template-columns: 1fr; }
    .page-hero h1 { font-size: 2rem; }
    .comp-stats { grid-template-columns: repeat(2, 1fr); }
    .trust-bar { gap: 25px; }
    .hero-actions { flex-direction: column; align-items: center; }
    .detail-actions { flex-direction: column; }
    .quiz-container { padding: 30px 20px; }
    .filter-inner { flex-wrap: wrap; }
    .updates-grid { grid-template-columns: 1fr; }
    .updates-home-grid { grid-template-columns: 1fr; }
    .draw-info-grid { grid-template-columns: 1fr; }
    .comp-how-inner { flex-direction: column; }
    .comp-how-divider { width: 60px; height: 2px; }
    .comp-cards-grid { grid-template-columns: 1fr; }
    .comp-cert-layout { grid-template-columns: 1fr; gap: 40px; }
    .comp-cert-text { text-align: center; }
    .comp-cert-badge { justify-content: center; }
    .comp-cert-features { grid-template-columns: repeat(2, 1fr); }
}

/* ═══════════════════════════════════════════════
   COMPETITIONS PAGE V2
   ═══════════════════════════════════════════════ */

/* ── Hero ── */
.comp-page-hero {
    background: linear-gradient(135deg, #0d0d0d 0%, #1a1a1a 50%, #0d0d0d 100%);
    padding: 100px 5% 80px;
    text-align: center;
    position: relative;
    overflow: hidden;
}
.comp-page-hero::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background: radial-gradient(circle at 30% 50%, rgba(197,160,89,0.08) 0%, transparent 60%),
                radial-gradient(circle at 70% 50%, rgba(197,160,89,0.05) 0%, transparent 60%);
}
.comp-page-hero-inner {
    position: relative;
    max-width: 700px;
    margin: 0 auto;
}
.comp-hero-tag {
    display: inline-block;
    font-size: 0.7rem;
    letter-spacing: 4px;
    text-transform: uppercase;
    color: var(--gold);
    border: 1px solid rgba(197,160,89,0.3);
    padding: 8px 20px;
    margin-bottom: 30px;
}
.comp-page-hero h1 {
    font-family: 'Playfair Display', serif;
    font-size: 3.2rem;
    color: var(--white);
    line-height: 1.15;
    margin-bottom: 25px;
}
.comp-page-hero p {
    color: var(--gray);
    font-size: 1rem;
    line-height: 1.7;
    max-width: 560px;
    margin: 0 auto;
}
.comp-page-hero p strong { color: var(--white); }

/* ── How It Works ── */
.comp-how-section {
    background: var(--white);
    padding: 70px 5%;
    border-bottom: 1px solid var(--border);
}
.comp-how-inner {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    gap: 40px;
    max-width: 1000px;
    margin: 0 auto;
}
.comp-how-step {
    flex: 1;
    text-align: center;
    max-width: 280px;
}
.comp-how-number {
    font-size: 0.65rem;
    letter-spacing: 3px;
    color: var(--gold);
    font-weight: 700;
    margin-bottom: 15px;
}
.comp-how-icon {
    font-size: 2.5rem;
    margin-bottom: 15px;
}
.comp-how-step h3 {
    font-family: 'Playfair Display', serif;
    font-size: 1.4rem;
    margin-bottom: 10px;
}
.comp-how-step p {
    font-size: 0.85rem;
    color: var(--gray);
    line-height: 1.6;
}
.comp-how-divider {
    width: 2px;
    height: 120px;
    background: linear-gradient(to bottom, transparent, var(--gold), transparent);
    margin-top: 50px;
}

/* ── Certification ── */
.comp-cert-section {
    background: var(--dark);
    padding: 70px 5%;
}
.comp-cert-inner {
    max-width: 1200px;
    margin: 0 auto;
}
.comp-cert-layout {
    display: grid;
    grid-template-columns: 1.4fr 1fr;
    gap: 60px;
    align-items: center;
}
.comp-cert-text {
    text-align: left;
}
.comp-cert-badge {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 25px;
}
.tpal-logo {
    color: var(--white);
    flex-shrink: 0;
}
.comp-cert-badge h3 {
    font-family: 'Playfair Display', serif;
    color: var(--white);
    font-size: 1.2rem;
    text-transform: uppercase;
    letter-spacing: 2px;
}
.tpal-sub {
    display: block;
    font-size: 0.75rem;
    color: var(--gray);
    letter-spacing: 1px;
    margin-top: 3px;
}
.comp-cert-text > p {
    color: var(--gray);
    font-size: 0.92rem;
    line-height: 1.7;
    margin-bottom: 15px;
}
.comp-cert-text > p strong { color: var(--white); }
.cert-detail {
    font-size: 0.85rem !important;
    margin-bottom: 30px !important;
}
.comp-cert-features {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
}
.cert-feature {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 15px;
    border: 1px solid var(--dark-3);
    color: var(--gray-light);
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.cert-feat-icon { font-size: 1.1rem; }

/* Certificate Visual */
.comp-cert-visual {
    display: flex;
    justify-content: center;
}
.draw-certificate {
    background: var(--white);
    color: var(--dark);
    padding: 35px 30px;
    max-width: 360px;
    width: 100%;
    border: 3px solid #1a9e6e;
    border-radius: 8px;
    text-align: center;
    box-shadow: 0 20px 60px rgba(0,0,0,0.4);
    position: relative;
}
.draw-certificate::before {
    content: '';
    position: absolute;
    top: 6px; left: 6px; right: 6px; bottom: 6px;
    border: 1px solid #1a9e6e;
    border-radius: 4px;
    pointer-events: none;
}
.cert-doc-header {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    margin-bottom: 20px;
}
.cert-doc-brand {
    font-size: 0.95rem;
    font-weight: 700;
    font-style: italic;
    display: block;
}
.cert-doc-sub {
    font-size: 0.65rem;
    color: var(--gray);
    display: block;
}
.draw-certificate h4 {
    font-family: 'Playfair Display', serif;
    font-size: 1.1rem;
    letter-spacing: 1.5px;
    margin-bottom: 4px;
}
.cert-doc-ref {
    font-size: 0.65rem;
    color: var(--gray);
    margin-bottom: 18px;
}
.cert-doc-body {
    margin-bottom: 18px;
}
.cert-doc-label {
    font-size: 0.7rem;
    color: var(--gray);
    margin-bottom: 2px;
    font-style: italic;
}
.cert-doc-value {
    font-weight: 700;
    font-size: 0.85rem;
    margin-bottom: 12px;
}
.cert-doc-small {
    font-size: 0.6rem;
    color: var(--gray);
    margin-top: -8px;
    margin-bottom: 12px;
}
.cert-doc-footer {
    font-size: 0.7rem;
    color: #555;
    line-height: 1.5;
    margin-bottom: 12px;
    padding-top: 12px;
    border-top: 1px solid #eee;
}
.cert-doc-org {
    font-size: 0.6rem;
    color: var(--gray);
    font-style: italic;
}

/* ── Competition Cards V2 ── */
.comp-cards-section {
    padding: 70px 5%;
    max-width: 1300px;
    margin: 0 auto;
}
.comp-cards-header {
    text-align: center;
    margin-bottom: 50px;
}
.comp-cards-header h2 {
    font-family: 'Playfair Display', serif;
    font-size: 2rem;
    margin-bottom: 8px;
}
.comp-cards-sub {
    color: var(--gray);
    font-size: 0.9rem;
    font-style: italic;
}
.comp-cards-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(370px, 1fr));
    gap: 30px;
}
.comp-card-v2 {
    background: var(--white);
    border: 1px solid var(--border);
    overflow: hidden;
    transition: all 0.3s;
    position: relative;
}
.comp-card-v2:hover {
    box-shadow: 0 15px 50px rgba(0,0,0,0.12);
    border-color: var(--gold);
    transform: translateY(-3px);
}
.comp-card-v2-image {
    height: 280px;
    background-size: cover;
    background-position: center;
    position: relative;
    background-color: var(--dark);
}
.comp-card-v2-badge {
    position: absolute;
    top: 15px;
    left: 15px;
    background: rgba(0,0,0,0.8);
    color: var(--gold);
    padding: 6px 14px;
    font-size: 0.65rem;
    text-transform: uppercase;
    letter-spacing: 2px;
    font-weight: 700;
}
.comp-card-v2-body {
    padding: 25px;
}
.comp-card-v2-title {
    font-family: 'Playfair Display', serif;
    font-size: 1.3rem;
    margin-bottom: 4px;
}
.comp-card-v2-ref {
    font-size: 0.8rem;
    color: var(--gray);
    margin-bottom: 20px;
}

/* Countdown in card */
.comp-card-v2-countdown {
    background: var(--dark);
    padding: 14px;
    text-align: center;
    margin-bottom: 20px;
    position: relative;
}
.comp-card-v2-countdown .countdown-timer {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--gold);
    letter-spacing: 2px;
}

/* Ticket progress bar */
.comp-card-v2-progress {
    margin-bottom: 20px;
}
.entry-bar {
    height: 6px;
    background: #eee;
    overflow: hidden;
    margin-bottom: 6px;
}
.entry-bar-fill {
    height: 100%;
    background: linear-gradient(90deg, var(--silver-shadow), var(--gold), var(--silver-bright));
    transition: width 0.5s;
}
.entry-info {
    display: flex;
    justify-content: space-between;
    font-size: 0.72rem;
    color: var(--gray);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.entries-left {
    color: var(--gold);
    font-weight: 600;
}

/* Stats */
.comp-card-v2-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    margin-bottom: 20px;
    padding-top: 18px;
    border-top: 1px solid var(--border);
}
.comp-card-v2-stat {
    text-align: center;
}
.v2-stat-value {
    display: block;
    font-weight: 700;
    font-size: 0.9rem;
    color: var(--dark);
    margin-bottom: 3px;
}
.v2-stat-label {
    font-size: 0.6rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--gray);
}
.comp-card-v2-btn {
    display: block;
    width: 100%;
    text-align: center;
    font-size: 0.85rem;
}

/* ── Bottom CTA ── */
.comp-bottom-cta {
    background: linear-gradient(135deg, var(--dark) 0%, #1c1710 100%);
    padding: 80px 5%;
    text-align: center;
}
.comp-bottom-inner {
    max-width: 600px;
    margin: 0 auto;
}
.comp-bottom-cta h2 {
    font-family: 'Playfair Display', serif;
    font-size: 2rem;
    color: var(--white);
    margin-bottom: 15px;
}
.comp-bottom-cta p {
    color: var(--gray);
    font-size: 0.95rem;
    margin-bottom: 30px;
}
.comp-bottom-actions {
    display: flex;
    gap: 15px;
    justify-content: center;
}

/* ═══════════════════════════════════════════════
   INSURANCE PAGE
   ═══════════════════════════════════════════════ */
.ins-hero {
    background: linear-gradient(135deg, #0d0d0d 0%, #1a1a1a 50%, #0d0d0d 100%);
    padding: 100px 5% 80px;
    text-align: center;
    position: relative;
}
.ins-hero::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background: radial-gradient(circle at 50% 50%, rgba(46,125,50,0.08) 0%, transparent 60%);
}
.ins-hero-inner {
    position: relative;
    max-width: 650px;
    margin: 0 auto;
}
.ins-hero-tag {
    display: inline-block;
    font-size: 0.7rem;
    letter-spacing: 4px;
    text-transform: uppercase;
    color: #4caf50;
    border: 1px solid rgba(76,175,80,0.3);
    padding: 8px 20px;
    margin-bottom: 30px;
}
.ins-hero h1 {
    font-family: 'Playfair Display', serif;
    font-size: 3rem;
    color: var(--white);
    line-height: 1.15;
    margin-bottom: 20px;
}
.ins-hero p {
    color: var(--gray);
    font-size: 1rem;
    line-height: 1.7;
}

/* Coverage Grid */
.ins-coverage-section {
    padding: 70px 5%;
    background: var(--white);
}
.ins-coverage-inner {
    max-width: 1100px;
    margin: 0 auto;
}
.ins-coverage-inner h2 {
    font-family: 'Playfair Display', serif;
    font-size: 2rem;
    text-align: center;
    margin-bottom: 40px;
}
.ins-coverage-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 25px;
}
.ins-cov-card {
    border: 1px solid var(--border);
    padding: 30px 25px;
    border-radius: 6px;
    text-align: center;
    position: relative;
    transition: border-color 0.2s;
}
.ins-cov-card:hover { border-color: #4caf50; }
.ins-cov-icon { font-size: 2rem; margin-bottom: 12px; }
.ins-cov-card h3 {
    font-family: 'Playfair Display', serif;
    font-size: 1.2rem;
    margin-bottom: 8px;
}
.ins-cov-rate {
    font-size: 1.5rem;
    font-weight: 700;
    color: #2e7d32;
    margin-bottom: 20px;
}
.ins-cov-rate span {
    font-size: 0.75rem;
    font-weight: 400;
    color: var(--gray);
}
.ins-cov-list {
    list-style: none;
    text-align: left;
    padding: 0;
}
.ins-cov-list li {
    font-size: 0.85rem;
    padding: 7px 0;
    border-bottom: 1px solid #f0f0f0;
    padding-left: 22px;
    position: relative;
}
.ins-cov-list li::before {
    content: '✓';
    position: absolute;
    left: 0;
    color: #2e7d32;
    font-weight: 700;
}
.ins-cov-list li.ins-cov-na {
    color: var(--gray);
    text-decoration: line-through;
}
.ins-cov-list li.ins-cov-na::before {
    content: '✕';
    color: #c62828;
}
.ins-cov-badge {
    position: absolute;
    top: -12px;
    left: 50%;
    transform: translateX(-50%);
    padding: 4px 16px;
    font-size: 0.65rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    border-radius: 3px;
}
.ins-cov-popular {
    background: #2e7d32;
    color: var(--white);
}

/* Quote Form Section */
.ins-quote-section {
    padding: 70px 5%;
    background: var(--light);
}
.ins-quote-inner {
    max-width: 1200px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1.3fr 1fr;
    gap: 50px;
    align-items: start;
}
.ins-quote-form-side h2 {
    font-family: 'Playfair Display', serif;
    font-size: 1.8rem;
    margin-bottom: 8px;
}
.ins-form-sub {
    color: rgba(20, 20, 22, 0.66);
    font-size: 0.9rem;
    margin-bottom: 30px;
}
/* SERVICE-PAGES-ROUTE-AND-RESIDUAL-COPY-2 — coverage-grid disclaimer (white
   section): small, centred, muted gold so it reads as a legal note. */
.ins-cov-disclaimer {
    max-width: 760px;
    margin: 22px auto 0;
    text-align: center;
    font-size: 0.74rem;
    line-height: 1.5;
    color: #6b5a30;
}
/* Static partner-options note that replaced the live premium calculator. */
.ins-est-note {
    margin: 8px 0 0;
    font-size: 0.8rem;
    line-height: 1.5;
    color: rgba(20, 20, 22, 0.66);
}
/* SERVICE-PAGES-ROUTE-AND-RESIDUAL-COPY-2 — page-level concierge contact strip
   directly under each service hero. Self-contained dark band so it reads on top
   of either a light or dark following section. */
.svc-contact-strip {
    background: #0c0c0e;
    color: rgba(245, 241, 232, 0.78);
    text-align: center;
    padding: 13px 5%;
    font-size: 0.84rem;
    letter-spacing: 0.3px;
    border-top: 1px solid rgba(197, 160, 89, 0.18);
    border-bottom: 1px solid rgba(197, 160, 89, 0.18);
}
.svc-contact-strip a {
    color: #c5a059;
    text-decoration: none;
    font-weight: 600;
    border-bottom: 1px solid rgba(197, 160, 89, 0.45);
    padding-bottom: 1px;
    margin: 0 3px;
}
.svc-contact-strip a:hover { color: #fff; border-bottom-color: #fff; }
.ins-form {
    background: var(--white);
    border: 1px solid var(--border);
    padding: 30px;
    border-radius: 6px;
}
.ins-form-group {
    margin-bottom: 16px;
}
.ins-form-group label {
    display: block;
    font-size: 0.8rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 6px;
    color: var(--dark);
}
.ins-form input, .ins-form select, .ins-form textarea {
    width: 100%;
    padding: 11px 14px;
    border: 1px solid var(--border);
    border-radius: 4px;
    font-size: 0.9rem;
    font-family: 'Inter', sans-serif;
    background: var(--white);
}
.ins-form input:focus, .ins-form select:focus, .ins-form textarea:focus {
    outline: none;
    border-color: #2e7d32;
}
.ins-form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
}

/* Live Estimate */
.ins-estimate {
    background: linear-gradient(135deg, #e8f5e9 0%, #f1f8e9 100%);
    border: 1px solid #c8e6c9;
    border-radius: 6px;
    padding: 20px;
    margin-bottom: 20px;
    text-align: center;
}
.ins-est-label {
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 2px;
    color: #2e7d32;
    font-weight: 600;
    margin-bottom: 12px;
}
.ins-est-row {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 30px;
}
.ins-est-value {
    display: block;
    font-size: 1.4rem;
    font-weight: 700;
    color: #2e7d32;
}
.ins-est-period {
    font-size: 0.7rem;
    color: var(--gray);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.ins-est-divider {
    width: 1px;
    height: 40px;
    background: #c8e6c9;
}

.ins-form-legal {
    margin: 20px 0;
    font-size: 0.78rem;
    color: var(--gray);
    line-height: 1.5;
}
.ins-form-legal input { width: auto; margin-right: 8px; }
.ins-submit-btn {
    width: 100%;
    background: #2e7d32;
    border-color: #2e7d32;
    font-size: 0.9rem;
}
.ins-submit-btn:hover {
    background: #1b5e20;
    border-color: #1b5e20;
}
.ins-feedback {
    margin-top: 15px;
    padding: 14px;
    border-radius: 4px;
    font-size: 0.85rem;
    line-height: 1.6;
}
.ins-success {
    background: #e8f5e9;
    color: #2e7d32;
    border: 1px solid #c8e6c9;
}
.ins-error {
    background: #ffebee;
    color: #c62828;
    border: 1px solid #ffcdd2;
}

/* Side Info */
.ins-watch-card {
    border: 1px solid var(--border);
    border-radius: 6px;
    overflow: hidden;
    background: var(--white);
    margin-bottom: 20px;
}
.ins-watch-img {
    height: 200px;
    background-size: cover;
    background-position: center;
    background-color: var(--dark);
}
.ins-watch-details {
    padding: 20px;
}
.ins-watch-brand {
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 2px;
    color: var(--gold);
}
.ins-watch-details h3 {
    font-family: 'Playfair Display', serif;
    font-size: 1.2rem;
    margin: 4px 0;
}
.ins-watch-ref {
    font-size: 0.8rem;
    color: var(--gray);
    margin-bottom: 8px;
}
.ins-watch-price {
    font-size: 1.1rem;
    font-weight: 700;
}

.ins-info-card {
    border: 1px solid var(--border);
    border-radius: 6px;
    padding: 25px;
    background: var(--white);
    margin-bottom: 20px;
}
.ins-info-card h4 {
    font-family: 'Playfair Display', serif;
    font-size: 1.1rem;
    margin-bottom: 18px;
}
.ins-info-item {
    display: flex;
    gap: 12px;
    margin-bottom: 16px;
}
.ins-info-icon {
    font-size: 1.3rem;
    flex-shrink: 0;
    margin-top: 2px;
}
.ins-info-item strong {
    display: block;
    font-size: 0.85rem;
    margin-bottom: 3px;
}
.ins-info-item p {
    font-size: 0.78rem;
    /* SERVICE-PAGES-ROUTE-AND-RESIDUAL-COPY-2 — info cards are white, so darken
       the body from #888 for a readable contrast ratio. */
    color: rgba(20, 20, 22, 0.66);
    line-height: 1.4;
}
.ins-info-partner {
    background: var(--dark);
    border-color: var(--dark-3);
}
.ins-partner-badge {
    display: flex;
    align-items: center;
    gap: 12px;
    color: var(--white);
}
.ins-partner-badge span:first-child {
    font-size: 1.8rem;
}
.ins-partner-badge strong {
    display: block;
    font-size: 0.9rem;
    margin-bottom: 3px;
}
.ins-partner-badge p {
    font-size: 0.75rem;
    color: var(--gray);
    line-height: 1.4;
}

/* FAQ */
.ins-faq-section {
    padding: 70px 5%;
    background: var(--white);
    border-top: 1px solid var(--border);
}
.ins-faq-inner {
    max-width: 900px;
    margin: 0 auto;
}
.ins-faq-inner h2 {
    font-family: 'Playfair Display', serif;
    font-size: 1.8rem;
    text-align: center;
    margin-bottom: 40px;
}
.ins-faq-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 25px;
}
.ins-faq {
    padding: 20px;
    border: 1px solid var(--border);
    border-radius: 6px;
}
.ins-faq h4 {
    font-size: 0.9rem;
    margin-bottom: 8px;
}
.ins-faq p {
    font-size: 0.82rem;
    color: var(--gray);
    line-height: 1.5;
}

@media (max-width: 768px) {
    .ins-coverage-grid { grid-template-columns: 1fr; }
    .ins-quote-inner { grid-template-columns: 1fr; }
    .ins-form-row { grid-template-columns: 1fr; }
    .ins-faq-grid { grid-template-columns: 1fr; }
    .ins-est-row { flex-direction: column; gap: 10px; }
    .ins-est-divider { width: 60px; height: 1px; }
}

/* ── Payment Plans Page ── */
.pay-hero {
    background: linear-gradient(135deg, #0a0a0a 0%, #1a1a2e 50%, #16213e 100%);
    padding: 100px 20px 60px;
    text-align: center;
    position: relative;
}
.pay-hero::before {
    content: '';
    position: absolute; inset: 0;
    background: radial-gradient(ellipse at center, rgba(184,134,11,0.12) 0%, transparent 70%);
    pointer-events: none;
}
.pay-hero-inner {
    max-width: 700px;
    margin: 0 auto;
    position: relative;
}
.pay-hero-tag {
    display: inline-block;
    font-size: 0.7rem;
    letter-spacing: 3px;
    color: var(--gold);
    border: 1px solid var(--gold);
    padding: 6px 18px;
    border-radius: 20px;
    margin-bottom: 20px;
}
.pay-hero h1 {
    font-family: var(--font-display);
    font-size: 2.8rem;
    color: #fff;
    margin-bottom: 16px;
    line-height: 1.15;
}
.pay-hero p {
    color: var(--gray);
    font-size: 1rem;
    line-height: 1.7;
}

/* Plan Cards */
.pay-plans-section {
    padding: 60px 20px;
    background: var(--bg);
}
.pay-plans-inner {
    max-width: 1100px;
    margin: 0 auto;
}
.pay-plans-inner h2 {
    text-align: center;
    font-family: var(--font-display);
    font-size: 1.6rem;
    margin-bottom: 40px;
}
.pay-plans-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}
.pay-plans-grid.pay-plans-grid-4 {
    grid-template-columns: repeat(4, 1fr);
}
@media (max-width: 1024px) {
    .pay-plans-grid.pay-plans-grid-4 { grid-template-columns: repeat(2, 1fr); }
}
.pay-plan-card {
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 30px 24px;
    text-align: center;
    position: relative;
    transition: border-color 0.3s, transform 0.3s;
}
.pay-plan-card:hover {
    border-color: var(--gold);
    transform: translateY(-4px);
}
.pay-plan-popular {
    border-color: var(--gold);
}
.pay-plan-icon {
    font-size: 2rem;
    margin-bottom: 12px;
}
.pay-plan-card h3 {
    font-family: var(--font-display);
    font-size: 1.8rem;
    margin-bottom: 4px;
}
.pay-plan-rate {
    font-size: 1.4rem;
    font-weight: 700;
    color: var(--gold);
    margin-bottom: 20px;
}
.pay-plan-rate span {
    font-size: 0.8rem;
    font-weight: 400;
    color: var(--gray);
}
.pay-plan-list {
    list-style: none;
    padding: 0;
    text-align: left;
}
.pay-plan-list li {
    padding: 8px 0;
    font-size: 0.85rem;
    color: var(--text);
    border-bottom: 1px solid rgba(255,255,255,0.05);
    padding-left: 20px;
    position: relative;
}
.pay-plan-list li::before {
    content: '\2713';
    position: absolute;
    left: 0;
    color: var(--gold);
    font-weight: 700;
}

/* Form section — reuses ins- classes */
.pay-form-section {
    padding: 60px 20px;
    background: linear-gradient(180deg, var(--bg) 0%, #0a0a0a 100%);
}
.pay-form-inner {
    max-width: 1100px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1.3fr 0.7fr;
    gap: 40px;
    align-items: start;
}
.pay-form-side h2 {
    font-family: var(--font-display);
    font-size: 1.5rem;
    margin-bottom: 8px;
}
/* SERVICE-PAGES-ROUTE-AND-RESIDUAL-COPY-2 — raise subtext contrast. The
   repair/auth/trade form sections sit on a dark gradient, so lift the muted
   subtext from #888 to a brighter ivory. */
.pay-form-sub {
    color: rgba(245, 241, 232, 0.72);
    font-size: 0.88rem;
    margin-bottom: 12px;
    line-height: 1.6;
}
.pay-form-scope {
    color: rgba(245, 241, 232, 0.58);
    font-size: 0.78rem;
    line-height: 1.55;
    margin-bottom: 26px;
}
.pay-info-side {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

@media (max-width: 768px) {
    .pay-plans-grid { grid-template-columns: 1fr; }
    .pay-plans-grid.pay-plans-grid-4 { grid-template-columns: 1fr; }
    .pay-form-inner { grid-template-columns: 1fr; }
}

/* ── Services Overview & Service Pages ── */
.srv-hero {
    background: linear-gradient(135deg, #0a0a0a 0%, #1a1a2e 50%, #16213e 100%);
    padding: 100px 20px 60px;
    text-align: center;
    position: relative;
}
.srv-hero-finance { background: linear-gradient(135deg, #0a0a0a 0%, #1d2620 50%, #0f3027 100%); }
.srv-hero-repair  { background: linear-gradient(135deg, #0a0a0a 0%, #2a1a1a 50%, #3e2316 100%); }
.srv-hero-auth    { background: linear-gradient(135deg, #0a0a0a 0%, #1a1a2e 50%, #2e2316 100%); }
.srv-hero-bet     { background: linear-gradient(135deg, #0a0a0a 0%, #2e1a16 50%, #3e1623 100%); }
.srv-hero::before {
    content: '';
    position: absolute; inset: 0;
    background: radial-gradient(ellipse at center, rgba(184,134,11,0.12) 0%, transparent 70%);
    pointer-events: none;
}
.srv-hero-inner {
    max-width: 750px; margin: 0 auto; position: relative;
}
.srv-hero-tag {
    display: inline-block; font-size: 0.7rem; letter-spacing: 3px;
    color: var(--gold); border: 1px solid var(--gold);
    padding: 6px 18px; border-radius: 20px; margin-bottom: 20px;
}
.srv-hero h1 {
    font-family: var(--font-display);
    font-size: 2.8rem; color: #fff;
    margin-bottom: 16px; line-height: 1.15;
}
.srv-hero p {
    color: var(--gray); font-size: 1rem; line-height: 1.7;
}

.srv-grid-section {
    padding: 60px 20px;
    background: var(--bg);
}
.srv-grid-inner {
    max-width: 1200px; margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}
.srv-tile {
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 32px 28px;
    text-align: left;
    transition: border-color 0.3s, transform 0.3s;
    display: block;
    text-decoration: none;
    color: var(--text);
}
.srv-tile:hover {
    border-color: var(--gold);
    transform: translateY(-4px);
}
.srv-tile-icon {
    font-size: 2.4rem; margin-bottom: 16px;
}
.srv-tile h3 {
    font-family: var(--font-display);
    font-size: 1.3rem; margin-bottom: 10px;
}
.srv-tile p {
    color: var(--gray);
    font-size: 0.88rem;
    line-height: 1.6;
    margin-bottom: 20px;
    min-height: 60px;
}
.srv-tile-cta {
    color: var(--gold);
    font-size: 0.85rem;
    font-weight: 600;
    letter-spacing: 1px;
}

@media (max-width: 768px) {
    .srv-grid-inner { grid-template-columns: 1fr; }
    .srv-hero h1 { font-size: 2rem; }
}

/* Reset absolute positioning from legacy .comp-countdown rule for the new
   countdown variants. CRITICAL: the competition-detail countdown
   (.cd-hero-countdown / .cd-timer-row) MUST be here — without it the legacy
   .comp-countdown { position:absolute; bottom:0 } rule turns it into a dark
   bar that floats over the entry selector + buttons. Keeping it static
   makes it flow in its own row in document order. */
.next-draw-countdown,
.detail-countdown,
.prize-tile-countdown,
.comp-card-v2-countdown,
.comp-card-upgraded-countdown,
.hero-featured-countdown,
.lc-card-countdown,
.cd-hero-countdown,
.cd-timer-row {
    position: static !important;
    bottom: auto !important;
    left: auto !important;
    right: auto !important;
}
.next-draw-countdown,
.detail-countdown,
.prize-tile-countdown,
.hero-featured-countdown {
    background: transparent;
    padding: 0;
    display: block;
}
/* Detail-page + listing-card timers keep their own padding/borders (own row),
   just not the legacy dark bar background that floated over the CTA buttons. */
.cd-hero-countdown,
.cd-timer-row,
.lc-card-countdown {
    background: transparent;
    display: block;
}

/* ═══════════════════════════════════════════
   NEXT-DRAW STOPWATCH (hero countdown)
   ═══════════════════════════════════════════ */
.next-draw-section {
    background: linear-gradient(180deg, var(--dark) 0%, var(--dark-2) 100%);
    color: var(--white);
    padding: 60px 5%;
    text-align: center;
    border-top: 1px solid rgba(197, 160, 89, 0.2);
    border-bottom: 1px solid rgba(197, 160, 89, 0.2);
    position: relative;
    overflow: hidden;
}
.next-draw-section::before {
    content: "";
    position: absolute;
    top: -50%;
    left: 50%;
    width: 800px;
    height: 800px;
    transform: translateX(-50%);
    background: radial-gradient(circle, rgba(197, 160, 89, 0.08) 0%, transparent 60%);
    pointer-events: none;
}
.next-draw-inner {
    position: relative;
    z-index: 1;
    max-width: 900px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
}
.next-draw-header {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 30px;
    padding: 8px 18px;
    border: 1px solid rgba(197, 160, 89, 0.4);
    border-radius: 999px;
    background: rgba(197, 160, 89, 0.05);
}
.next-draw-pulse {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #ff3b3b;
    box-shadow: 0 0 0 0 rgba(255, 59, 59, 0.7);
    animation: nextDrawPulse 1.6s infinite;
}
@keyframes nextDrawPulse {
    0% { box-shadow: 0 0 0 0 rgba(255, 59, 59, 0.7); }
    70% { box-shadow: 0 0 0 12px rgba(255, 59, 59, 0); }
    100% { box-shadow: 0 0 0 0 rgba(255, 59, 59, 0); }
}
.next-draw-label {
    color: var(--gold);
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 3px;
    font-weight: 600;
}
.next-draw-countdown {
    margin: 0 auto 30px;
    display: flex;
    flex-direction: column;
    align-items: center;
}

/* Segmented countdown */
.countdown-segments {
    display: inline-flex;
    align-items: flex-end;
    gap: 14px;
    justify-content: center;
}
.countdown-seg {
    display: flex;
    flex-direction: column;
    align-items: center;
    min-width: 90px;
    padding: 18px 14px 14px;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(197, 160, 89, 0.3);
    border-radius: 6px;
    position: relative;
}
.countdown-num {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 3.4rem;
    font-weight: 700;
    line-height: 1;
    color: var(--white);
    font-variant-numeric: tabular-nums;
    letter-spacing: 1px;
}
.countdown-unit {
    margin-top: 8px;
    font-size: 0.65rem;
    text-transform: uppercase;
    letter-spacing: 2px;
    color: var(--gold);
    font-weight: 600;
}
.countdown-sep {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 2.6rem;
    color: rgba(197, 160, 89, 0.5);
    line-height: 1;
    align-self: center;
    margin-bottom: 24px;
}
.countdown-drawn .countdown-num { color: var(--gray); }

/* Medium variant — used on detail page */
.countdown-segments-md .countdown-seg {
    min-width: 70px;
    padding: 12px 10px 10px;
}
.countdown-segments-md .countdown-num { font-size: 2.2rem; }
.countdown-segments-md .countdown-unit { font-size: 0.55rem; letter-spacing: 1.5px; }

/* Small variant — used on cards.
   COMPETITION-CARD-UX-1 — digits bumped from 1.2rem → 1.55rem with
   tighter padding + slightly stronger border. Clearer hierarchy
   (big number, small label under) at a glance from 1m on desktop
   and arm-length on mobile. */
.countdown-segments-sm {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 6px;
}
.countdown-segments-sm .countdown-seg {
    min-width: 0;
    padding: 10px 4px 8px;
    background: rgba(197, 160, 89, 0.08);
    border-color: rgba(197, 160, 89, 0.3);
}
.countdown-segments-sm .countdown-num {
    font-family: 'Inter', sans-serif;
    font-size: 1.55rem;
    font-weight: 700;
    line-height: 1;
    color: var(--gold);
    letter-spacing: 0.5px;
}
.countdown-segments-sm .countdown-unit {
    margin-top: 4px;
    font-size: 0.6rem;
    letter-spacing: 2px;
}
.countdown-segments-sm .countdown-unit {
    font-size: 0.55rem;
    margin-top: 2px;
    color: var(--gray-light);
}

.next-draw-prize {
    color: var(--gray-light);
    font-size: 1.05rem;
    margin-bottom: 28px;
}
.next-draw-prize strong {
    color: var(--white);
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 1.3rem;
    margin: 0 8px;
}
.next-draw-value {
    color: var(--gold);
    font-weight: 700;
    letter-spacing: 1px;
}
.next-draw-btn {
    background: var(--gold);
    color: var(--dark);
    padding: 16px 40px;
    font-size: 0.9rem;
    letter-spacing: 2px;
}
.next-draw-btn:hover { background: var(--gold-hover); }

/* ═══════════════════════════════════════════
   PRIZE SHOWCASE STRIP
   ═══════════════════════════════════════════ */
.prize-showcase {
    background: var(--light);
    padding: 70px 5% 50px;
}
.prize-showcase-header {
    text-align: center;
    margin-bottom: 40px;
}
.prize-showcase-header h2 {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 2.2rem;
    color: var(--dark);
    margin-bottom: 12px;
}
.prize-showcase-header p {
    color: var(--gray);
    max-width: 620px;
    margin: 0 auto;
    font-size: 1rem;
}
.prize-strip {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 20px;
    max-width: 1300px;
    margin: 0 auto;
}
.prize-tile {
    display: flex;
    flex-direction: column;
    background: var(--white);
    border: 1px solid var(--border);
    text-decoration: none;
    color: var(--dark);
    transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}
.prize-tile:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 36px rgba(0, 0, 0, 0.12);
    border-color: var(--gold);
}
.prize-tile-img {
    height: 170px;
    background-size: cover;
    background-position: center;
    background-color: var(--dark-2);
    position: relative;
}
.prize-tile-brand {
    position: absolute;
    top: 12px;
    left: 12px;
    background: rgba(13, 13, 13, 0.85);
    color: var(--gold);
    font-size: 0.65rem;
    text-transform: uppercase;
    letter-spacing: 2px;
    padding: 5px 10px;
}
.prize-tile-body {
    padding: 18px 18px 20px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.prize-tile-body h4 {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 1.15rem;
    color: var(--dark);
}
.prize-tile-ref {
    color: var(--gray);
    font-size: 0.75rem;
    letter-spacing: 1px;
}
.prize-tile-value {
    display: flex;
    align-items: baseline;
    gap: 6px;
    margin-top: 4px;
    padding-top: 10px;
    border-top: 1px solid var(--border);
}
.prize-tile-currency {
    font-size: 0.7rem;
    color: var(--gray);
    letter-spacing: 1px;
}
.prize-tile-num {
    font-weight: 700;
    color: var(--gold);
    font-size: 1.05rem;
}
.prize-tile-countdown {
    margin-top: 6px;
    font-size: 0.72rem;
    color: var(--gray);
    letter-spacing: 1px;
}
.prize-tile-countdown .countdown-timer {
    color: var(--dark);
    font-weight: 600;
}

/* ═══════════════════════════════════════════
   DETAIL PAGE COUNTDOWN ALIGNMENT
   ═══════════════════════════════════════════ */
.detail-countdown {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}
.detail-countdown .countdown-label {
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 2px;
    color: var(--gold);
}
.detail-countdown .countdown-seg {
    background: var(--dark);
    border-color: rgba(197, 160, 89, 0.3);
}
.detail-countdown .countdown-num { color: var(--white); }

/* ═══════════════════════════════════════════
   MULTI-STEP QUIZ
   ═══════════════════════════════════════════ */
.quiz-progress {
    display: flex;
    justify-content: center;
    gap: 12px;
    margin-bottom: 40px;
    flex-wrap: wrap;
}
.quiz-step-dot {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border: 2px solid var(--border);
    background: var(--white);
    color: var(--gray);
    font-weight: 700;
    font-size: 0.85rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: all 0.25s ease;
}
.quiz-step-dot.active {
    border-color: var(--gold);
    background: var(--gold);
    color: var(--dark);
    transform: scale(1.1);
}
.quiz-step-dot.done {
    border-color: var(--gold);
    background: var(--gold-light);
    color: var(--gold);
}
.quiz-question-step {
    display: none;
}
.quiz-question-step.active {
    display: block;
    animation: quizFadeIn 0.3s ease;
}
@keyframes quizFadeIn {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: translateY(0); }
}
.quiz-q-num {
    display: inline-block;
    background: var(--gold);
    color: var(--dark);
    padding: 4px 12px;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
    margin-bottom: 12px;
}
.quiz-step-actions {
    display: flex;
    gap: 12px;
    justify-content: flex-end;
    margin-top: 30px;
}
.quiz-step-actions .cta-btn { min-width: 160px; }
.quiz-pass-banner {
    display: flex;
    gap: 16px;
    align-items: center;
    background: linear-gradient(90deg, rgba(46, 125, 50, 0.08), transparent);
    border-left: 4px solid var(--success);
    padding: 18px 22px;
    margin-bottom: 30px;
}
.quiz-pass-icon {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: var(--success);
    color: var(--white);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.4rem;
    font-weight: 700;
    flex-shrink: 0;
}
.quiz-pass-banner strong {
    display: block;
    color: var(--success);
    font-size: 1rem;
    margin-bottom: 4px;
}
.quiz-pass-banner p {
    color: var(--gray);
    font-size: 0.85rem;
    margin: 0;
}

/* Active-date badge under the segmented countdown (set by JS, hidden if empty) */
.countdown-active-date {
    display: block;
    margin-top: 14px;
    font-size: 0.7rem;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--gray);
}
.countdown-active-date:empty { display: none; }

.next-draw-time-msg {
    color: var(--gray-light);
    font-size: 0.85rem;
    letter-spacing: 1px;
    text-transform: uppercase;
    margin-bottom: 22px;
}
.next-draw-prize-label {
    color: var(--gray);
    font-size: 0.75rem;
    letter-spacing: 2px;
    text-transform: uppercase;
}

/* ═══════════════════════════════════════════
   ENTER PRIZE DRAW GATE (detail page)
   ═══════════════════════════════════════════ */
.prize-draw-gate {
    max-width: 720px;
    margin: 30px auto 50px;
    padding: 36px 30px;
    text-align: center;
    background: var(--white);
    border: 1px solid var(--border);
    border-top: 3px solid var(--gold);
}
.prize-draw-gate-text {
    color: var(--gray);
    font-size: 0.95rem;
    margin-bottom: 10px;
    line-height: 1.55;
}
.prize-draw-gate-sub {
    color: var(--gray);
    font-size: 0.9rem;
    margin: 0 0 22px;
    line-height: 1.55;
}
.prize-draw-gate-sub strong { color: var(--gold); }
.prize-draw-gate.used {
    opacity: 0.55;
    pointer-events: none;
}
/* Entry deep-link anchor — invisible target for /competitions/:slug#entry.
   scroll-margin keeps the landing position clear of the sticky header so
   the entry CTA + skill question are immediately in view. */
.cd-entry-anchor {
    display: block;
    position: relative;
    top: 0;
    height: 0;
    scroll-margin-top: 90px;
}

/* ═══════════════════════════════════════════
   QUIZ EXPLANATION (educational, on wrong answers)
   ═══════════════════════════════════════════ */
.quiz-explanation {
    display: none;
    gap: 14px;
    align-items: flex-start;
    background: rgba(197, 160, 89, 0.08);
    border-left: 3px solid var(--gold);
    padding: 16px 20px;
    margin-top: 20px;
    animation: quizFadeIn 0.3s ease;
}
.quiz-explanation-icon {
    font-size: 1.4rem;
    color: var(--gold);
    line-height: 1;
    flex-shrink: 0;
}
.quiz-explanation-text {
    font-size: 0.92rem;
    color: rgba(245,241,232,0.85);
    line-height: 1.55;
}
.quiz-question-step.was-wrong .quiz-q-num {
    background: var(--error);
    color: var(--white);
}

/* ═══════════════════════════════════════════
   LEGAL-COUNSEL DISCLAIMER (visible)
   ═══════════════════════════════════════════ */
.legal-disclaimer {
    background: var(--dark-2);
    color: var(--gray-light);
    padding: 30px 5%;
    border-top: 1px solid rgba(197, 160, 89, 0.15);
    border-bottom: 1px solid rgba(197, 160, 89, 0.15);
}
.legal-disclaimer-inner {
    max-width: 1000px;
    margin: 0 auto;
    display: flex;
    align-items: flex-start;
    gap: 16px;
}
.legal-disclaimer-icon {
    color: var(--gold);
    font-size: 1.4rem;
    line-height: 1;
    flex-shrink: 0;
    margin-top: 2px;
}
.legal-disclaimer p {
    font-size: 0.85rem;
    line-height: 1.6;
    margin: 0;
}
.legal-disclaimer p strong {
    color: var(--gold);
    letter-spacing: 1px;
    text-transform: uppercase;
    font-size: 0.75rem;
    margin-right: 4px;
}
.legal-disclaimer-inline {
    max-width: 720px;
    margin: 22px auto 0;
    padding: 16px 20px;
    background: rgba(255,255,255,0.03);
    color: rgba(245,241,232,0.6);
    border: 1px solid rgba(197,160,89,0.18);
    border-left: 3px solid #c5a059;
    border-radius: 10px;
}
.legal-disclaimer-inline p { color: rgba(245,241,232,0.6); font-size: 0.8rem; line-height: 1.6; margin: 0; }
.legal-disclaimer-inline p strong { color: #c5a059; }

/* Mobile */
@media (max-width: 720px) {
    .countdown-seg { min-width: 64px; padding: 12px 8px 10px; }
    .countdown-num { font-size: 2.2rem; }
    .countdown-sep { font-size: 1.8rem; margin-bottom: 18px; }
    .countdown-segments { gap: 6px; }
    .next-draw-prize strong { display: block; margin: 6px 0; }
    .quiz-step-actions { flex-direction: column-reverse; }
    .quiz-step-actions .cta-btn { width: 100%; }
    .legal-disclaimer-inner { flex-direction: column; gap: 8px; }
}

/* ═══════════════════════════════════════════
   AGE GATE (homepage)
   ═══════════════════════════════════════════ */
/* Body-overflow lock removed — modal is fixed/full-opacity, so background
   scroll being technically possible is harmless and avoids stuck-class bugs. */
.age-gate {
    position: fixed;
    inset: 0;
    z-index: 9999;
    background: rgba(13, 13, 13, 0.96);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    animation: ageGateFadeIn 0.4s ease;
}
.age-gate[hidden],
.age-gate-card[hidden],
.age-gate-block[hidden] {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
}

/* ═══════════════════════════════════════════
   PAYMENT METHODS BANNER (homepage)
   ═══════════════════════════════════════════ */
.payment-section {
    background: linear-gradient(180deg, var(--dark) 0%, var(--dark-2) 100%);
    color: var(--white);
    padding: 56px 5%;
    border-bottom: 1px solid rgba(197, 160, 89, 0.15);
}
.payment-inner {
    max-width: 1100px;
    margin: 0 auto;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 22px;
}
.payment-tag {
    color: var(--gold);
    font-size: 0.75rem;
    letter-spacing: 3px;
    text-transform: uppercase;
    font-weight: 600;
}
.payment-text h2 {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 1.9rem;
    margin: 8px 0 10px;
    color: var(--white);
}
.payment-text p {
    color: var(--gray-light);
    max-width: 640px;
    margin: 0 auto;
    font-size: 0.95rem;
    line-height: 1.55;
}
.payment-methods {
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
    justify-content: center;
    margin-top: 6px;
}
.payment-btn {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    padding: 14px 28px;
    min-width: 240px;
    justify-content: center;
    font-family: 'Inter', sans-serif;
    font-size: 0.85rem;
    font-weight: 600;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    cursor: pointer;
    border: 1px solid var(--gold);
    background: transparent;
    color: var(--white);
    transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
.payment-btn:hover {
    background: var(--gold);
    color: var(--dark);
}
.payment-btn-crypto svg { color: var(--gold); transition: color 0.2s ease; }
.payment-btn-crypto:hover svg { color: var(--dark); }
.payment-btn-crypto.payment-btn-connected {
    background: var(--gold);
    color: var(--dark);
    border-color: var(--gold);
}
.payment-btn-crypto.payment-btn-connected svg { color: var(--dark); }

.payment-btn-applepay {
    background: var(--white);
    color: var(--dark);
    border-color: var(--white);
    min-width: 200px;
    padding: 14px 26px;
}
.payment-btn-applepay:hover {
    background: var(--dark);
    color: var(--white);
    border-color: var(--white);
}
.payment-btn-applepay[hidden] { display: none !important; }

.payment-status {
    color: var(--gray-light);
    font-size: 0.85rem;
    min-height: 22px;
    margin: 0;
}
.payment-status-success { color: #6fcf6f; }
.payment-status-error { color: #ff6b6b; }
.payment-status-info { color: var(--gold); }
.payment-fine {
    color: var(--gray);
    font-size: 0.7rem;
    line-height: 1.5;
    max-width: 720px;
    margin: 0;
}

@media (max-width: 600px) {
    .payment-text h2 { font-size: 1.5rem; }
    .payment-btn,
    .payment-btn-applepay {
        min-width: 0;
        width: 100%;
    }
    .payment-methods { flex-direction: column; width: 100%; max-width: 380px; }
}

/* ═══════════════════════════════════════════
   HOMEPAGE — UPGRADED COMPETITION CARDS
   ═══════════════════════════════════════════ */
.section-eyebrow {
    display: inline-block;
    color: var(--gold);
    font-size: 0.7rem;
    letter-spacing: 3px;
    text-transform: uppercase;
    font-weight: 600;
    margin-bottom: 12px;
}
/* SAMPLE-SKILL-CTA-UX-1 — premium secondary education affordance
   sitting between the Live Competitions section header and the comp
   card grid. Gold-outline pill on a dark-charcoal fill with a quiet
   eyebrow above. Clearly secondary to the Rolex-green
   "Enter Competition" primary CTAs on the cards. */
.skill-preview-wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    margin: 24px auto 40px;
    max-width: 480px;
    padding: 0 16px;
}
.skill-preview-eyebrow {
    color: rgba(245, 241, 232, 0.55);
    font-size: 0.72rem;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    font-weight: 600;
    text-align: center;
    line-height: 1.45;
}
.comp-skill-test-cta {
    /* Upgraded from the original thin gold outline. Still gold-on-
       dark (no green) so it doesn't compete with the primary entry
       CTA. Pill shape matches the site's other secondary affordances
       (hero pay badges, FAQ help CTA, ghost variants). */
    margin: 0;
    background: rgba(13, 13, 13, 0.72);
    border: 1px solid rgba(197, 160, 89, 0.5);
    color: var(--gold, #c5a059);
    padding: 13px 30px;
    min-height: 44px;
    font-size: 0.78rem;
    letter-spacing: 2.2px;
    text-transform: uppercase;
    font-weight: 600;
    border-radius: 999px;
    cursor: pointer;
    text-align: center;
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.35);
    transition: background 0.2s ease, border-color 0.2s ease,
                color 0.2s ease, box-shadow 0.2s ease, transform 0.18s ease;
}
.comp-skill-test-cta:hover,
.comp-skill-test-cta:focus-visible {
    background: rgba(197, 160, 89, 0.12);
    border-color: var(--gold, #c5a059);
    color: #fff;
    box-shadow: 0 10px 28px rgba(197, 160, 89, 0.22);
    transform: translateY(-1px);
}
.comp-skill-test-cta:active {
    transform: translateY(0);
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.4);
}
@media (max-width: 560px) {
    .skill-preview-wrap {
        margin: 18px auto 28px;
        max-width: 100%;
        padding: 0 20px;
    }
    .skill-preview-eyebrow {
        font-size: 0.68rem;
        letter-spacing: 1.2px;
    }
    .comp-skill-test-cta {
        width: 100%;
        max-width: 320px;
        padding: 14px 22px;
        font-size: 0.74rem;
        letter-spacing: 1.8px;
    }
}

.comp-card-upgraded {
    display: flex;
    flex-direction: column;
    background: var(--white);
    border: 1px solid var(--border);
    transition: transform 0.25s, box-shadow 0.25s, border-color 0.25s;
}
.comp-card-upgraded:hover {
    transform: translateY(-4px);
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.12);
    border-color: var(--gold);
}
.comp-card-upgraded-image {
    height: 200px;
    background-size: cover;
    background-position: center;
    background-color: var(--dark-2);
    position: relative;
}
.comp-card-upgraded-brand {
    position: absolute;
    top: 14px;
    left: 14px;
    background: rgba(13, 13, 13, 0.85);
    color: var(--gold);
    font-size: 0.65rem;
    letter-spacing: 2px;
    text-transform: uppercase;
    padding: 6px 12px;
}
.comp-card-upgraded-body {
    padding: 22px 22px 24px;
    display: flex;
    flex-direction: column;
    gap: 14px;
}
.comp-card-upgraded-model {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 1.25rem;
    /* Watch name (e.g. "Daytona") highlighted in antique gold/bronze so it
       reads clearly and premium on the dark card surface (#141418). */
    color: #c5a059;
    margin: 0;
}
.comp-card-upgraded-ref {
    color: var(--gray);
    font-size: 0.75rem;
    letter-spacing: 1px;
    margin: -10px 0 0;
}
.comp-card-upgraded-countdown {
    background: var(--dark);
    padding: 14px 12px 12px;
    text-align: center;
    color: var(--white);
}
.comp-card-upgraded-cd-label {
    display: block;
    color: var(--gold);
    font-size: 0.65rem;
    letter-spacing: 2px;
    text-transform: uppercase;
    margin-bottom: 8px;
}
.comp-card-upgraded-progress { display: flex; flex-direction: column; gap: 4px; }
.comp-card-upgraded-meta {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    padding-top: 8px;
    border-top: 1px solid var(--border);
}
.comp-card-upgraded-meta > div { display: flex; flex-direction: column; }
.upgraded-label {
    font-size: 0.65rem;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    /* Muted but readable label on the dark card. */
    color: #b0aea9;
}
.upgraded-value {
    font-size: 0.95rem;
    font-weight: 700;
    /* Bright ivory so the real values (e.g. USD 50 / USD 25,000 / 350) read
       clearly on the dark card surface (#141418). */
    color: #f5f1e8;
    margin-top: 2px;
}

/* Personality label above the model name */
.comp-card-personality {
    display: block;
    color: var(--gold);
    font-style: italic;
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 0.85rem;
    letter-spacing: 0.5px;
    margin-bottom: 4px;
}

/* Subtitle line under model */
.comp-card-upgraded-subtitle {
    /* "Rolex · Ref. 116505" — muted ivory/grey, but clearly readable. */
    color: rgba(245, 241, 232, 0.62);
    font-size: 0.78rem;
    letter-spacing: 1px;
    margin: -10px 0 0;
}
.comp-card-upgraded-cd-note {
    color: var(--gray);
    font-size: 0.7rem;
    line-height: 1.45;
    margin: -4px 0 0;
    text-align: center;
    letter-spacing: 0.3px;
}

/* COMPETITION-CARD-UX-1.1 — trust microcopy printed below the
   primary entry CTA. Three quiet trust signals separated by
   middle-dots: "Skill question required · Limited entries ·
   Independent draw process". Centered, muted ivory, subtle
   gold middle-dot tint via inheritance. Acts as legally-careful
   reassurance without competing with the primary CTA. */
.comp-card-upgraded-trust {
    margin: 12px 0 0;
    color: rgba(245, 241, 232, 0.55);
    font-size: 0.72rem;
    letter-spacing: 0.6px;
    line-height: 1.5;
    text-align: center;
}

/* Sold-out / Completed badges and disabled state */
.comp-card-status-badge {
    position: absolute;
    top: 14px;
    right: 14px;
    padding: 6px 12px;
    font-size: 0.62rem;
    letter-spacing: 2px;
    text-transform: uppercase;
    font-weight: 700;
}
.comp-card-status-badge.sold-out { background: var(--error); color: var(--white); }
.comp-card-status-badge.completed { background: var(--gray); color: var(--white); }
.comp-card-upgraded.is-sold-out .comp-card-upgraded-image,
.comp-card-upgraded.is-completed .comp-card-upgraded-image {
    filter: grayscale(0.4);
    opacity: 0.85;
}
.comp-enter-btn-disabled,
.comp-enter-btn:disabled {
    background: var(--border);
    color: var(--gray);
    cursor: not-allowed;
    pointer-events: none;
    border-color: var(--border);
}

.skill-modal-compliance {
    margin: 16px 0 0;
    padding: 10px 0 0;
    border-top: 1px dashed rgba(197, 160, 89, 0.3);
    color: var(--gray);
    font-size: 0.72rem;
    line-height: 1.5;
    letter-spacing: 0.3px;
}

/* Transparency v2 — 3 trust cards layout */
.transparency-v2 { padding: 80px 5%; }
.transparency-v2-header {
    text-align: center;
    max-width: 720px;
    margin: 0 auto 50px;
}
.transparency-v2-header h2 {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 2rem;
    color: var(--white);
    margin: 0 0 14px;
}
.transparency-v2-lede {
    color: var(--gray-light);
    font-size: 1rem;
    line-height: 1.6;
    margin: 0;
}
.transparency-v2-grid {
    max-width: 1100px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 22px;
}
.trans-trust-card {
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(197, 160, 89, 0.25);
    padding: 32px 26px 28px;
    text-align: center;
    transition: border-color 0.25s, background 0.25s;
}
.trans-trust-card:hover {
    border-color: var(--gold);
    background: rgba(197, 160, 89, 0.06);
}
.trans-trust-icon {
    color: var(--gold);
    margin-bottom: 16px;
    display: inline-flex;
    width: 60px;
    height: 60px;
    border-radius: 50%;
    background: rgba(197, 160, 89, 0.08);
    align-items: center;
    justify-content: center;
}
.trans-trust-card h3 {
    font-family: 'Playfair Display', Georgia, serif;
    color: var(--white);
    font-size: 1.05rem;
    margin: 0 0 10px;
}
.trans-trust-card p {
    color: var(--gray-light);
    font-size: 0.88rem;
    line-height: 1.55;
    margin: 0;
}
.transparency-v2-cta {
    text-align: center;
    margin-top: 46px;
}
.transparency-v2-cta .cta-btn {
    color: var(--gold);
    border-color: var(--gold);
}
.transparency-v2-cta .cta-btn:hover {
    background: var(--gold);
    color: var(--dark);
}

/* Trust bar v3 — 5 items */
.trust-bar-v3 .trust-icon {
    font-size: 1.1rem;
}

/* 4-step grid for How It Works */
.steps-grid-4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 880px) {
    .steps-grid-4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
    .steps-grid-4 { grid-template-columns: 1fr; }
}

/* Recent winners — additions for prize value + view story button */
.winner-card-prize-value {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin: 6px 0 0;
    font-weight: 700;
    color: var(--dark);
    font-size: 0.95rem;
}
.winner-card-prize-label {
    font-size: 0.65rem;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--gray);
    font-weight: 600;
}
.winner-card-cta {
    display: inline-block;
    margin-top: 14px;
    padding: 10px 16px;
    border: 1px solid var(--gold);
    color: var(--gold);
    text-decoration: none;
    font-size: 0.7rem;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    font-weight: 600;
    text-align: center;
    transition: background 0.2s, color 0.2s;
}
.winner-card-cta:hover {
    background: var(--gold);
    color: var(--dark);
}

/* Community v2 — three CTA cards stacked above email signup */
.community-cta-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 18px;
    width: 100%;
    max-width: 980px;
    margin: 18px 0 12px;
}
.community-cta-card {
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(197, 160, 89, 0.25);
    padding: 26px 22px;
    text-decoration: none;
    color: var(--white);
    text-align: left;
    display: flex;
    flex-direction: column;
    gap: 10px;
    transition: border-color 0.25s, background 0.25s;
}
.community-cta-card:hover {
    border-color: var(--gold);
    background: rgba(197, 160, 89, 0.06);
}
.community-cta-icon {
    width: 46px;
    height: 46px;
    background: rgba(197, 160, 89, 0.1);
    color: var(--gold);
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.community-cta-card h3 {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 1.05rem;
    color: var(--white);
    margin: 0;
}
.community-cta-card p {
    color: var(--gray-light);
    font-size: 0.85rem;
    line-height: 1.5;
    margin: 0;
}

/* ═══════════════════════════════════════════
   ENTER THE VAULT CTA + SINGLE-QUESTION FLOW
   ═══════════════════════════════════════════ */

/* Premium "Enter the Vault" button — gold gradient with subtle shine */
.cta-btn.vault-btn {
    background: linear-gradient(135deg, var(--silver-shadow) 0%, var(--silver-bright) 50%, var(--gold) 100%);
    color: var(--dark);
    border: 1px solid var(--gold);
    letter-spacing: 2.5px;
    text-transform: uppercase;
    font-weight: 700;
    padding: 16px 38px;
    position: relative;
    overflow: hidden;
}
.cta-btn.vault-btn::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
    transition: left 0.6s;
}
.cta-btn.vault-btn:hover::before {
    left: 100%;
}
.cta-btn.vault-btn:hover {
    background: linear-gradient(135deg, var(--gold-hover) 0%, var(--gold) 50%, var(--gold-hover) 100%);
}

/* Homepage spotlight competition-card CTA → green "signal" action button.
   Deep Rolex/luxury green + gold/bronze border + ivory text, matching the
   hero "Enter Competition" button (.hero-cta-signal). Scoped to
   .comp-enter-btn so the competition-detail confirm button (.quiz-submit
   .vault-btn) keeps its own styling. Placed AFTER .cta-btn.vault-btn so it
   wins at equal specificity; the ::before sheen sweep above still applies. */
.comp-enter-btn.vault-btn {
    background: linear-gradient(135deg, #0d3b2c 0%, #14513b 100%);
    color: #f5f1e8;
    border: 1px solid rgba(197, 160, 89, 0.6);
    box-shadow: 0 10px 26px rgba(13, 59, 44, 0.5), inset 0 1px 0 rgba(255, 255, 255, 0.06);
}
.comp-enter-btn.vault-btn:hover {
    background: linear-gradient(135deg, #11543d 0%, #1a6349 100%);
    border-color: var(--gold, #c5a059);
    color: #fff;
    box-shadow: 0 12px 32px rgba(13, 59, 44, 0.6), inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

/* CHECKOUT-CONFIRMATION-UX-1 — the public competition checkout CTA ("Continue
   to Secure Checkout") becomes a Rolex-green primary action instead of the
   gold/silver gradient, matching the site's established green "signal" CTA.
   Scoped by data-i18n so ONLY the paid checkout button changes; the prelaunch
   "Confirm Entry — No Charge Today" button keeps its existing treatment. Placed
   after .cta-btn.vault-btn so it wins at equal-or-higher specificity, and the
   inherited ::before sheen sweep still plays on hover. */
.cta-btn.vault-btn[data-i18n="cd_continue_secure_checkout"] {
    background: linear-gradient(135deg, #014a2c 0%, #006039 55%, #0b5d3b 100%);
    color: #f5f1e8;
    border: 1px solid rgba(197, 160, 89, 0.55);
    box-shadow: 0 10px 26px rgba(0, 70, 41, 0.45), inset 0 1px 0 rgba(255, 255, 255, 0.06);
}
.cta-btn.vault-btn[data-i18n="cd_continue_secure_checkout"]:hover {
    background: linear-gradient(135deg, #015c36 0%, #007345 55%, #0e6e46 100%);
    border-color: var(--gold, #c5a059);
    color: #fff;
    box-shadow: 0 12px 32px rgba(0, 70, 41, 0.55), inset 0 1px 0 rgba(255, 255, 255, 0.08);
}
.cta-btn.vault-btn[data-i18n="cd_continue_secure_checkout"]:focus-visible {
    outline: 2px solid var(--gold, #c5a059);
    outline-offset: 2px;
}
.cta-btn.vault-btn[data-i18n="cd_continue_secure_checkout"]:active {
    background: linear-gradient(135deg, #013d24 0%, #005031 55%, #094e31 100%);
}

/* Why collectors want it card on the detail page */
.why-collectors-card {
    max-width: 720px;
    margin: 24px auto 36px;
    padding: 24px 28px;
    background: var(--white);
    border: 1px solid var(--border);
    border-left: 3px solid var(--gold);
}
.why-collectors-card h3 {
    font-family: 'Playfair Display', Georgia, serif;
    color: var(--gold);
    font-size: 1rem;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    margin: 0 0 8px;
}
.why-collectors-card p {
    color: var(--dark);
    line-height: 1.6;
    margin: 0;
    font-size: 0.95rem;
}

/* Why collectors snippet inside each homepage card */
.why-collectors-snippet {
    border-top: 1px dashed var(--border);
    padding-top: 14px;
    margin-top: 4px;
}
.why-collectors-snippet .why-collectors-eyebrow {
    display: block;
    color: var(--gold);
    font-size: 0.62rem;
    letter-spacing: 2px;
    text-transform: uppercase;
    font-weight: 600;
    margin-bottom: 6px;
}
.why-collectors-snippet p {
    color: var(--gray);
    font-size: 0.78rem;
    line-height: 1.55;
    margin: 0;
}

/* Cap line on detail page — replaces "0/500" emphasis */
.comp-entry-cap {
    text-align: center;
    margin: 18px 0 0;
    color: var(--gray);
    font-size: 0.78rem;
    letter-spacing: 1.5px;
    text-transform: uppercase;
}

/* Single-question option layout with letter badges (A / B / C) */
.quiz-option-letter {
    display: grid;
    grid-template-columns: 36px 1fr;
    gap: 14px;
    align-items: center;
    padding: 16px 18px;
    transition: background 0.2s, border-color 0.2s, transform 0.2s;
}
.quiz-option-letter .option-letter {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-family: 'Playfair Display', Georgia, serif;
    background: var(--dark-2);
    color: var(--gold);
    border: 1px solid var(--gold);
    transition: background 0.2s, color 0.2s;
}
.quiz-option-letter:hover .option-letter {
    background: var(--gold);
    color: var(--dark);
}
.quiz-option-letter.option-correct {
    border-color: #2e7d32;
    background: rgba(46, 125, 50, 0.12);
}
.quiz-option-letter.option-correct .option-letter {
    background: #2e7d32;
    color: var(--white);
    border-color: #2e7d32;
}
.quiz-option-letter.option-incorrect {
    border-color: var(--error);
    background: rgba(198, 40, 40, 0.08);
    animation: optionShake 0.4s ease;
}
.quiz-option-letter.option-incorrect .option-letter {
    background: var(--error);
    color: var(--white);
    border-color: var(--error);
}
@keyframes optionShake {
    0%, 100% { transform: translateX(0); }
    25% { transform: translateX(-6px); }
    75% { transform: translateX(6px); }
}

/* ══════════════════════════════════════════════════════════════════
   Premium skill-quiz UX — watch-image challenge (blur → reveal), subtle
   countdown timer, and a 2-up answer grid. Dark/charcoal + bronze-gold,
   never casino styling. (Display only — the backend skill gate is what
   actually authorises an entry.)
   ══════════════════════════════════════════════════════════════════ */
.cd-quiz-image {
    width: 100%;
    max-width: 420px;
    aspect-ratio: 4 / 3;
    margin: 0 auto 18px;
    border-radius: 14px;
    background: #0c0913 center/cover no-repeat;
    border: 1px solid rgba(197,160,89,0.35);
    /* Inset vignette darkens the edges so the cropped watch image reads as
       part of the dark panel rather than a pasted-in light photo. */
    box-shadow: inset 0 0 70px rgba(0,0,0,0.65), 0 24px 56px rgba(0,0,0,0.55);
    filter: blur(9px) saturate(0.9) brightness(0.82);
    transform: scale(1.02);
    transition: filter 0.6s ease, transform 0.6s ease;
}
.cd-quiz-image.is-revealed {
    filter: blur(0) saturate(1) brightness(0.92);
    transform: scale(1);
}
.cd-quiz-timer {
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 10px;
    margin: 0 auto 18px;
    padding: 8px 18px;
    width: fit-content;
    border: 1px solid rgba(197,160,89,0.3);
    border-radius: 999px;
    background: rgba(197,160,89,0.06);
}
.cd-quiz-timer-label {
    font-size: 0.68rem;
    letter-spacing: 1.6px;
    text-transform: uppercase;
    color: #b0aea9;
}
.cd-quiz-timer-value {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 1.3rem;
    color: #c5a059;
    font-variant-numeric: tabular-nums;
}
.cd-quiz-timer.is-expired { border-color: rgba(198,40,40,0.5); background: rgba(198,40,40,0.08); }
.cd-quiz-timer.is-expired .cd-quiz-timer-value { color: #e08a8a; }
/* Detail-page quiz: answer cards in a clean 2-up grid (stacks at small). */
.quiz-section .quiz-options {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
}
@media (max-width: 520px) {
    .quiz-section .quiz-options { grid-template-columns: 1fr; }
    .cd-quiz-image { max-width: 100%; aspect-ratio: 16 / 10; }
}

/* Educational hint shown on wrong answer */
.quiz-hint {
    display: none;
    flex-direction: column;
    gap: 6px;
    background: rgba(197, 160, 89, 0.08);
    border-left: 3px solid var(--gold);
    padding: 14px 18px;
    margin-top: 18px;
    animation: quizFadeIn 0.3s ease;
}
.quiz-hint-label {
    color: var(--gold);
    font-size: 0.65rem;
    letter-spacing: 2.5px;
    text-transform: uppercase;
    font-weight: 700;
}
.quiz-hint .quiz-explanation-text {
    color: rgba(245,241,232,0.85);
    font-size: 0.92rem;
    line-height: 1.55;
}

/* Single-question step actions */
.quiz-step-actions-single {
    margin-top: 22px;
    text-align: center;
}
.quiz-step-actions-single .cta-btn {
    min-width: 220px;
}
/* Auto-check hint (replaces the old "Check Answer" button) — answers are
   verified instantly on selection. */
.quiz-autocheck-note {
    margin: 0;
    font-size: 0.78rem;
    letter-spacing: 0.4px;
    color: rgba(245, 241, 232, 0.6);
}

/* Vault unlock state on the entry-form step */
.quiz-pass-banner-v2 {
    display: flex;
    align-items: center;
    gap: 22px;
    background: linear-gradient(135deg, rgba(197, 160, 89, 0.12), rgba(13, 13, 13, 0.6));
    border: 1px solid #c5a059;
    border-left-width: 4px;
    padding: 24px 26px;
    margin-bottom: 28px;
    color: var(--white);
    position: relative;
    overflow: hidden;
}
.vault-unlock-icon {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: #c5a059;
    color: var(--dark);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    box-shadow: 0 0 0 0 rgba(197, 160, 89, 0.6);
}
.vault-unlocked .vault-unlock-icon {
    animation: vaultPulse 1.6s ease-out;
}
@keyframes vaultPulse {
    0% { transform: scale(0.85); box-shadow: 0 0 0 0 rgba(197, 160, 89, 0.7); }
    50% { transform: scale(1.08); box-shadow: 0 0 0 18px rgba(197, 160, 89, 0); }
    100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(197, 160, 89, 0); }
}
.quiz-pass-banner-v2 strong {
    display: block;
    color: var(--white);
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 1.2rem;
    margin-bottom: 8px;
    line-height: 1.3;
}
.vault-headline {
    letter-spacing: 2px;
    text-transform: uppercase;
    color: #c5a059 !important;
    font-size: 1.35rem !important;
}
.vault-microcopy {
    color: var(--gray-light);
    font-size: 0.82rem;
    line-height: 1.5;
    margin: 10px 0 0;
    opacity: 0;
    transition: opacity 0.5s 0.4s ease;
}
.vault-unlocked .vault-microcopy { opacity: 1; }

/* Collector Status badge revealed on success */
.collector-badge {
    display: inline-block;
    padding: 6px 14px;
    background: #c5a059;
    color: var(--dark);
    font-size: 0.7rem;
    letter-spacing: 2px;
    text-transform: uppercase;
    font-weight: 700;
    opacity: 0;
    transform: translateY(6px);
    transition: opacity 0.5s 0.2s ease, transform 0.5s 0.2s ease;
}
.vault-unlocked .collector-badge {
    opacity: 1;
    transform: translateY(0);
}

/* Gold border glow on the entry step after unlock */
.quiz-entry-step.vault-unlocked .quiz-entrant {
    box-shadow: 0 0 0 1px #c5a059, 0 0 28px rgba(197, 160, 89, 0.18);
    transition: box-shadow 0.6s ease;
}

/* Result page v2 — clean confirmation */
.result-container-v2 {
    text-align: center;
    padding: 60px 30px;
    max-width: 560px;
    margin: 0 auto;
}
.result-icon-v2 {
    width: 88px;
    height: 88px;
    border-radius: 50%;
    background: rgba(197, 160, 89, 0.12);
    color: #c5a059;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 22px;
    border: 1px solid #c5a059;
}
.result-container-v2 h2 {
    font-family: 'Playfair Display', Georgia, serif;
    color: #f5f1e8;
    font-size: 1.8rem;
    margin: 0 0 12px;
}
.result-container-v2 p {
    color: rgba(245,241,232,0.72);
    line-height: 1.6;
    margin: 0 0 18px;
}
.result-container-v2 .entry-id {
    background: var(--dark);
    color: #c5a059;
    display: inline-block;
    padding: 10px 20px;
    font-size: 0.85rem;
    letter-spacing: 2px;
    margin: 6px 0 24px;
    font-family: 'Inter', monospace;
}

/* VIP-CIRCLE-REMOVE-1.1 — orphan styles for the deferred
   ENTERTAINMENT ROW (collector fact + next drop teaser) removed.
   The .entertainment-section / .entertainment-grid /
   .entertainment-card / .entertainment-eyebrow (+ .gold-eyebrow
   modifier) / .entertainment-card h3 + p / .entertainment-link /
   .entertainment-drop (+ :hover + h3 + p) rules were the only
   consumers of that markup. The dark-theme overrides further down
   in section 3 keep .intent-section / .journal-section / .faq-section
   / .trust-bar-v3 intact — only the .entertainment-section selectors
   are pruned from those multi-selector rules. */

/* ═══════════════════════════════════════════
   MSLUXURY HERO + LIFESTYLE LAYER
   Energetic, exclusive, premium — not corporate.
   ═══════════════════════════════════════════ */
:root {
    /* Cold accent light used sparingly in the lifestyle layer.
       Replaced the prior magenta with a steel-cyan that complements
       the silver palette without breaking it. */
    --msl-electric: #7fbfd6;
    --msl-electric-soft: rgba(127, 191, 214, 0.12);
}

.hero-msl {
    position: relative;
    overflow: hidden;
    background: radial-gradient(ellipse at top, #1a1a1e 0%, #0c0c10 55%, #050505 100%);
}
/* Layered chrome lighting + vignette to give the hero physical depth.
   First layer: soft silver/cyan haloes (the "stage lighting").
   Second layer: top-down vignette pulling focus to the headline.
   Third layer: a faint scan line of pure chrome behind the type. */
.hero-msl-glow {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 15% 25%, rgba(230, 230, 232, 0.22), transparent 38%),
        radial-gradient(circle at 85% 65%, rgba(127, 191, 214, 0.10), transparent 45%),
        radial-gradient(ellipse at 50% 100%, rgba(0, 0, 0, 0.4), transparent 60%);
    pointer-events: none;
}
.hero-msl::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(
        180deg,
        rgba(0, 0, 0, 0) 0%,
        rgba(0, 0, 0, 0) 55%,
        rgba(0, 0, 0, 0.35) 100%
    );
    pointer-events: none;
}
/* Floating chrome accent strip beside the headline — feels like reflected
   stage light, not an actual graphic. Hidden on small screens. */
.hero-msl .hero-content::before {
    content: '';
    position: absolute;
    left: -32px;
    top: 36px;
    bottom: 60px;
    width: 2px;
    background: linear-gradient(
        180deg,
        transparent 0%,
        var(--silver-bright) 35%,
        var(--gold) 65%,
        transparent 100%
    );
    opacity: 0.55;
    box-shadow: 0 0 18px rgba(230, 230, 232, 0.35);
}
@media (max-width: 720px) {
    .hero-msl .hero-content::before { display: none; }
}
.hero-msl .hero-content p {
    color: #d8d8da !important;
    font-weight: 300;
    line-height: 1.65;
}
.hero-msl .hero-msl-title {
    text-shadow: 0 2px 30px rgba(0, 0, 0, 0.5);
}
.hero-secondary-link {
    margin-top: 18px;
}
.hero-secondary-link a {
    color: var(--gold);
    font-size: 0.78rem;
    letter-spacing: 2px;
    text-transform: uppercase;
    text-decoration: none;
    border-bottom: 1px solid transparent;
    transition: color 0.25s ease, border-color 0.25s ease;
}
.hero-secondary-link a:hover {
    color: var(--silver-bright);
    border-bottom-color: var(--silver-bright);
}
.hero-msl .hero-content { position: relative; z-index: 1; }
.hero-msl-eyebrow {
    background: rgba(197, 160, 89, 0.12);
    color: var(--gold);
    border: 1px solid rgba(197, 160, 89, 0.3);
    padding: 7px 16px;
    font-size: 0.65rem;
    letter-spacing: 3px;
    text-transform: uppercase;
}
.hero-msl-title {
    font-family: 'Playfair Display', Georgia, serif;
    line-height: 1.05;
}
.hero-msl-emph {
    background: linear-gradient(110deg, var(--silver-shadow) 0%, var(--silver-bright) 50%, var(--gold) 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    font-style: italic;
}
.hero-msl .hero-content .hero-msl-sub { max-width: 540px; margin: 0 0 18px; }
/* Left-column 3-step mini-flow — compact gold-numbered chips that tell
   a new visitor how to start before they reach the entry module. */
.hero-flow {
    list-style: none;
    margin: 0 0 22px;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 10px 18px;
}
.hero-flow-step {
    display: flex;
    align-items: center;
    gap: 9px;
    font-size: 0.85rem;
    color: #e8e6e1;
}
.hero-flow-num {
    flex: 0 0 auto;
    width: 24px;
    height: 24px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: rgba(197,160,89,0.16);
    color: var(--gold, #c5a059);
    border: 1px solid rgba(197,160,89,0.5);
    font-size: 0.78rem;
    font-weight: 700;
}
.hero-flow-label { line-height: 1.3; }
@media (max-width: 600px) {
    .hero-flow { gap: 8px 14px; margin-bottom: 16px; }
    .hero-msl .hero-content .hero-msl-sub { margin-bottom: 14px; }
}

/* ── Hero split layout (text + featured competition watch) ───────────
   The .hero-grid wraps the existing .hero-content (now the left column)
   and the new .hero-featured panel (right column). Stacks to one column
   on tablet+mobile. Padding and z-index stay inside the existing
   .hero/.hero-msl shell so the radial-gradient background and overlay
   keep working unchanged. */
.hero-grid {
    position: relative;
    z-index: 2;
    width: 100%;
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 5%;
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    gap: 56px;
    align-items: center;
}
.hero-grid .hero-content {
    max-width: 620px;
}
/* Integrated hero: tie the two columns into one fitted composition.
   The featured entry module aligns to the TOP of the headline block so the
   two sides read as one balanced hero. Previously align-items:center
   vertically centred the shorter left column against the taller featured
   card, which dropped the left badge/headline well below the card's top edge
   and made the desktop hero look lopsided. align-items:start top-aligns both
   columns; the whole grid is still vertically centred within the hero band by
   the .hero flex container, so it keeps clear of the navbar without feeling
   cramped. (On ≤960px the grid is a single column, so this is a no-op there
   and the mobile stack is unchanged.) */
.hero-grid-integrated {
    gap: 44px;
    align-items: start;
}
@media (min-width: 961px) {
    .hero.hero-msl {
        height: auto;
        min-height: 80vh;
        padding-top: 52px;
        padding-bottom: 52px;
    }
    /* Nudge the top-aligned left column so its badge lines up with the
       featured card's inner content (the card has 16px top padding before its
       image), rather than the card's outer border — a cleaner optical match. */
    .hero-grid-integrated .hero-content {
        padding-top: 14px;
    }
}

.hero-featured {
    /* Right column container — no background of its own; the card
       inside provides the luxury frame. The aside element is here so
       screen readers see this as supplementary content. */
    width: 100%;
}
.hero-featured-card {
    /* Integrated glass/bordered luxury entry module. Semi-transparent
       so the hero's shared gradient shows through (connecting it to the
       left column), with a subtle bronze/gold border, inner sheen, and a
       deep diffuse shadow. The image is CONTAINED inside the rounded
       card (overflow:hidden) so it reads as one fitted module rather
       than a banner pasted above text. */
    position: relative;
    background: linear-gradient(165deg, rgba(30,22,45,0.55) 0%, rgba(10,6,18,0.72) 100%);
    border: 1px solid rgba(197,160,89,0.38);
    border-radius: 16px;
    overflow: hidden;
    padding: 16px 16px 20px;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,0.05),
        0 30px 70px rgba(0,0,0,0.55);
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
    transition: transform 0.35s ease, box-shadow 0.35s ease;
}
.hero-featured-card::before {
    /* Inner gold sheen across the top of the card (kept inside the
       rounded frame) — premium without the old floating halo. */
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at 50% 0%, rgba(197,160,89,0.12) 0%, transparent 58%);
    z-index: 0;
    pointer-events: none;
}
.hero-featured-card > * { position: relative; z-index: 1; }
.hero-featured-card:hover {
    transform: translateY(-3px);
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,0.06),
        0 36px 80px rgba(0,0,0,0.6);
}
.hero-featured-media {
    position: relative;
    aspect-ratio: 4 / 3;
    background: #150e21 center/cover no-repeat;
    /* Hairline gold rim + diffuse drop shadow — replaces the old
       hard border treatment. */
    box-shadow:
        inset 0 0 0 1px rgba(197,160,89,0.32),
        0 26px 60px rgba(0,0,0,0.55),
        0 8px 18px rgba(0,0,0,0.35);
}
.hero-featured-media-empty,
.hero-featured-media[data-fallback="1"] {
    /* Premium placeholder when no image is available. A soft gold
       diagonal sweep over deep purple-black, plus a small
       centered watch-face glyph, so the "Coming Soon" panel reads
       intentional rather than blank. */
    background:
        radial-gradient(circle at 30% 25%, rgba(197,160,89,0.22) 0%, transparent 55%),
        radial-gradient(circle at 70% 80%, rgba(122, 96, 50, 0.18) 0%, transparent 50%),
        linear-gradient(135deg, #1d142b 0%, #0a0612 65%);
}
.hero-featured-media-empty::after {
    /* Subtle watch-face glyph centred in the placeholder. Pure CSS —
       a circle with a single hand. */
    content: '';
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 50% 50%, transparent 26%, rgba(197,160,89,0.22) 26.5%, rgba(197,160,89,0.22) 27.5%, transparent 28%),
        linear-gradient(transparent calc(50% - 0.7px), rgba(197,160,89,0.55) calc(50% - 0.7px), rgba(197,160,89,0.55) calc(50% + 0.7px), transparent calc(50% + 0.7px));
    background-size: 100% 100%, 14% 1.4px;
    background-position: center, 50% 38%;
    background-repeat: no-repeat;
    opacity: 0.5;
    pointer-events: none;
}
.hero-featured-badge {
    position: absolute;
    top: 14px;
    left: 14px;
    padding: 5px 13px;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 1.8px;
    text-transform: uppercase;
    background: var(--gold, #c5a059);
    color: #1a1a1a;
}
.hero-featured-badge.hero-featured-badge-soon {
    background: rgba(13,71,161,0.85);
    color: #fff;
    border: 1px solid rgba(255,255,255,0.18);
}
/* "NEXT DROP" badge for the Next-Drop-Preview hero state. Slightly
   warmer than the live one — emerald-tinted on cream to signal
   "watch is real, the competition is on the way" without competing
   with the gold LIVE/WIN badge. */
.hero-featured-badge.hero-featured-badge-nextdrop {
    background: #f8f6f1;
    color: #1b5e20;
    border: 1px solid rgba(27,94,32,0.32);
}
/* Single-line emotional subline that sits above the meta block.
   Italicised + slightly muted so it reads as supporting copy, not a
   second headline. */
.hero-featured-subline {
    font-style: italic;
    color: #d4d2cd;
    font-size: 0.92rem;
    line-height: 1.5;
    margin: 6px 0 14px;
    max-width: 460px;
}
.hero-featured-body {
    /* Body sits inside the glass card, below the contained image. The
       card already provides padding, so this is tight vertical rhythm
       only — keeps the whole module compact and above the fold. */
    padding: 14px 4px 2px;
    color: #f8f6f1;
}
.hero-featured-brand {
    display: block;
    font-size: 0.72rem;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--gold, #c5a059);
    font-weight: 600;
    margin-bottom: 6px;
}
.hero-featured-model {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: clamp(1.4rem, 2vw, 1.7rem);
    line-height: 1.18;
    margin: 0 0 4px;
    color: #f8f6f1;
}
.hero-featured-ref {
    margin: 0 0 14px;
    font-family: 'SF Mono', Menlo, monospace;
    font-size: 0.78rem;
    color: #b0aea9;
}
.hero-featured-meta {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
    gap: 14px;
    padding: 14px 0 18px;
    margin: 0 0 16px;
    border-top: 1px solid rgba(255,255,255,0.07);
    border-bottom: 1px solid rgba(255,255,255,0.07);
}
.hero-featured-meta dt {
    font-size: 0.66rem;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    color: #918e88;
    margin-bottom: 4px;
}
.hero-featured-meta dd {
    margin: 0;
    color: #f8f6f1;
    font-size: 0.92rem;
    font-weight: 600;
}
.hero-featured-cta {
    display: inline-block;
    padding: 13px 24px;
    background: var(--gold, #c5a059);
    color: #1a1a1a;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 1.8px;
    text-transform: uppercase;
    text-decoration: none;
    transition: background 0.18s ease, transform 0.18s ease;
}
.hero-featured-cta:hover {
    background: #d2b070;
    transform: translateY(-1px);
}
/* Primary one-click "Enter Competition Now" CTA — gold base inherited
   from .hero-featured-cta plus a gold glow so it reads stronger than the
   ghost secondary. Goes full-width + tap-friendly on mobile via the
   existing .hero-featured-cta mobile rule. */
.hero-featured-cta-strong {
    box-shadow: 0 6px 20px rgba(197, 160, 89, 0.32);
}
.hero-featured-cta-strong:hover {
    box-shadow: 0 8px 26px rgba(197, 160, 89, 0.42);
}
/* Primary entry CTA block — sits directly under the watch name, above the
   countdown. The button goes full-width inside the module so it reads as
   the single strongest action; the subtext shows the per-entry price. */
.hero-featured-cta-block {
    margin: 4px 0 16px;
}
/* HOMEPAGE-COMPETITION-CARD-UX-1 — make the single primary action visually
   dominant: full-width, taller tap target, bolder + wider tracking. Keeps the
   existing emerald signal treatment (no new colours). */
.hero-featured-cta-primary {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 56px;
    text-align: center;
    padding: 17px 24px;
    font-size: 0.92rem;
    font-weight: 800;
    letter-spacing: 1.6px;
    text-transform: uppercase;
}
/* TRUST-SECTION-UX-1 — Rolex-green primary CTA for the homepage trust
   band's "Enter Competition" button. Scoped tightly via the
   `.cta-btn-comp` modifier so it ONLY applies where the markup
   opts in (currently the .why-enter-actions primary CTA). The
   .hero-cta-signal emerald treatment below stays unchanged for the
   hero headline + featured-module CTAs so the two greens coexist:
       hero        → emerald signal (#0d3b2c → #14513b)
       trust band  → Rolex green     (#006039)
   Hover stays in the green family — slightly brighter — so the
   button never reads as grey/outline. */
/* DESIGN-CTA-SYSTEM-UNIFY-1 — the nav "Enter Competition" CTA and the
   homepage trust-band / play-band primary CTA share this modifier. Aligned to
   the canonical primary CTA spec used across the green-family CTAs
   (.lc-card-cta / .cd-continue-btn / .buy-option-btn-comp): Rolex green ground,
   Rolex-GOLD lettering (was flat white) via the shared var(--gold,#c5a059)
   token, Rolex-gold hairline border (was a green-on-green edge), 52px min tap
   target, flex-centred, gold focus ring. Hover stays in the green family and
   flips the text to ivory white for max legibility. */
.cta-btn.cta-btn-comp {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 52px;
    font-weight: 700;
    background: #006039;
    border: 1px solid rgba(197, 160, 89, 0.55);
    color: var(--gold, #c5a059);
    box-shadow: 0 10px 26px rgba(0, 96, 57, 0.35), inset 0 1px 0 rgba(255, 255, 255, 0.06);
}
.cta-btn.cta-btn-comp:hover {
    background: #007a47;
    border-color: var(--gold, #c5a059);
    color: #fff;
    box-shadow: 0 12px 32px rgba(0, 96, 57, 0.45), inset 0 1px 0 rgba(255, 255, 255, 0.08);
}
.cta-btn.cta-btn-comp:focus-visible {
    outline: 2px solid var(--gold, #c5a059);
    outline-offset: 2px;
}
.cta-btn.cta-btn-comp:active {
    background: #00532f;
    border-color: #00532f;
}

/* Signal-colour primary CTA — deep luxury emerald with a subtle gold
   border + ivory text. Distinct from both the black hero and the gold
   accents so "Choose Entries" is unmistakably THE action, while staying
   premium (not casino green). Shared by the left headline CTA
   (.cta-btn.hero-cta-signal) and the featured-module primary CTA. */
.hero-featured-cta-primary,
.cta-btn.hero-cta-signal {
    background: linear-gradient(135deg, #0d3b2c 0%, #14513b 100%);
    color: #f5f1e8;
    border: 1px solid rgba(197,160,89,0.6);
    box-shadow: 0 10px 26px rgba(13,59,44,0.5), inset 0 1px 0 rgba(255,255,255,0.06);
}
.hero-featured-cta-primary:hover,
.cta-btn.hero-cta-signal:hover {
    background: linear-gradient(135deg, #11543d 0%, #1a6349 100%);
    border-color: var(--gold, #c5a059);
    color: #fff;
    box-shadow: 0 12px 32px rgba(13,59,44,0.6), inset 0 1px 0 rgba(255,255,255,0.08);
}
.hero-featured-cta-sub {
    display: block;
    margin-top: 8px;
    text-align: center;
    font-size: 0.78rem;
    letter-spacing: 0.4px;
    color: var(--gold, #c5a059);
    font-weight: 600;
}
.hero-featured-cta-ghost {
    background: transparent;
    color: #f8f6f1;
    border: 1px solid rgba(255,255,255,0.3);
}
.hero-featured-cta-ghost:hover {
    background: transparent;
    border-color: var(--gold, #c5a059);
    color: var(--gold, #c5a059);
}
.hero-featured-actions-row {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}
.hero-featured-empty-copy {
    color: #b0aea9;
    font-size: 0.92rem;
    line-height: 1.55;
    margin: 4px 0 16px;
}

/* ── Hero "Enter to Win" action module ─────────────────────────────
   Compact, instructional treatment of the featured competition — an
   action module, NOT a second large product card. The image is cropped
   to a wider, shorter ratio so it has presence without dominating, and
   a numbered 3-step explainer + honest microcopy sit above a single
   Enter Competition CTA. */
.hero-action-media {
    /* Elegant wide crop — strong presence, not oversized — contained
       inside the rounded glass card. */
    aspect-ratio: 16 / 9;
    border-radius: 10px;
    overflow: hidden;
}
.hero-featured-countdown-mini { margin: 4px 0 14px; }
.hero-featured-steps {
    list-style: none;
    margin: 0 0 12px;
    padding: 14px 0 0;
    border-top: 1px solid rgba(255,255,255,0.07);
    display: grid;
    gap: 9px;
}
.hero-featured-step {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 0.86rem;
    color: #e8e6e1;
}
.hero-featured-step-num {
    flex: 0 0 auto;
    width: 22px;
    height: 22px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: rgba(197,160,89,0.16);
    color: var(--gold, #c5a059);
    border: 1px solid rgba(197,160,89,0.5);
    font-size: 0.74rem;
    font-weight: 700;
}
.hero-featured-step-label { line-height: 1.3; }
.hero-featured-microcopy {
    margin: 0 0 16px;
    font-size: 0.78rem;
    line-height: 1.5;
    color: #b0aea9;
}

/* ── Why Enter With Us — trust band below the hero ─────────────────
   Replaces the old duplicate Featured Competition spotlight. Dark MS
   Luxury palette with gold accents; reinforces authenticity + a
   transparent draw rather than repeating the product card. */
.why-enter-section {
    background: linear-gradient(135deg, #0b0b0e 0%, #15131a 100%);
    padding: 64px 5%;
    border-top: 1px solid rgba(197,160,89,0.12);
}
.why-enter-inner { max-width: 1160px; margin: 0 auto; }
.why-enter-head { text-align: center; max-width: 720px; margin: 0 auto 40px; }
.why-enter-tag {
    display: inline-block;
    font-size: 0.7rem;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: rgba(212,175,55,0.95);
    margin-bottom: 12px;
}
.why-enter-title {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: clamp(1.6rem, 3vw, 2.2rem);
    color: #f5f1e8;
    margin: 0 0 12px;
}
.why-enter-sub {
    color: rgba(245,241,232,0.72);
    font-size: 0.98rem;
    line-height: 1.6;
    margin: 0;
}
.why-enter-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
    margin-bottom: 34px;
}
.why-enter-item { text-align: center; padding: 4px 6px; }
.why-enter-icon {
    width: 46px;
    height: 46px;
    margin: 0 auto 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    border: 1px solid rgba(197,160,89,0.4);
    color: var(--gold, #c5a059);
    background: rgba(197,160,89,0.08);
}
.why-enter-icon svg { width: 22px; height: 22px; display: block; }
.why-enter-item-title {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 1.05rem;
    color: #f5f1e8;
    margin: 0 0 8px;
}
.why-enter-item-text {
    color: rgba(245,241,232,0.72);
    font-size: 0.88rem;
    line-height: 1.55;
    margin: 0;
}
.why-enter-actions {
    display: flex;
    gap: 14px;
    justify-content: center;
    flex-wrap: wrap;
}
/* DESIGN-HOMEPAGE-COMPRESS-1 — quiet "learn more" links that point to the
   dedicated How It Works + Fairness pages instead of duplicating their content
   on the homepage. */
.why-enter-learn {
    margin: 18px 0 0;
    text-align: center;
    font-size: 0.82rem;
    letter-spacing: 0.4px;
    color: rgba(245, 241, 232, 0.6);
}
.why-enter-learn a {
    color: var(--gold, #c5a059);
    text-decoration: none;
    border-bottom: 1px solid rgba(197, 160, 89, 0.4);
    padding-bottom: 1px;
}
.why-enter-learn a:hover { color: #fff; border-bottom-color: #fff; }
.why-enter-learn-sep { margin: 0 10px; color: rgba(197, 160, 89, 0.5); }
@media (max-width: 860px) {
    .why-enter-grid { grid-template-columns: 1fr 1fr; gap: 28px 20px; }
}
@media (max-width: 520px) {
    .why-enter-section { padding: 52px 6%; }
    .why-enter-grid { grid-template-columns: 1fr; gap: 24px; }
    .why-enter-actions { flex-direction: column; }
    .why-enter-actions .cta-btn { width: 100%; text-align: center; }
}

@media (max-width: 960px) {
    /* Stack to a single column on tablet+mobile. The text block sits
       on top (already required by the brief) and the watch panel
       drops below. The card itself stays full-width so it remains
       prominent on mobile. */
    .hero-grid {
        grid-template-columns: 1fr;
        gap: 36px;
        padding: 0 5%;
    }
    .hero-featured { max-width: 520px; margin: 0 auto; }
}

/* ── Mobile hero polish ────────────────────────────────────────────
   The hero already stacks at 960px and trims body padding at 480px.
   Below 600px we tighten the rest: no horizontal scroll, tap-friendly
   buttons, controlled image height for the empty placeholder (so it
   doesn't dominate the viewport when no real watch image is shown),
   and a comfortable headline scale. Real watch images keep the 4/3
   ratio because they earn the space. */
@media (max-width: 600px) {
    /* Hero shell: collapse the desktop 85vh height to auto so the
       hero sizes to content. Without this override, the watch card
       lands well below the fold on mobile because the text is
       vertically centred inside an 85vh-tall band. Padding-bottom
       is small here; body has its own padding-bottom for the bottom
       nav clearance, so we don't double-pad. */
    .hero, .hero-msl {
        height: auto;
        min-height: 0;
        padding-top: 28px;
        padding-bottom: 24px;
    }
    .hero-msl { padding-left: 0; padding-right: 0; overflow-x: hidden; }
    .hero-grid {
        gap: 20px;
        padding: 0 22px;
    }
    .hero-msl-title { margin: 0 0 12px; }
    .hero-msl .hero-content p { margin: 0 0 14px; }

    /* Left-column body copy + CTAs */
    .hero-msl .hero-content p { font-size: 0.96rem; line-height: 1.55; }
    .hero-msl-eyebrow { font-size: 0.6rem; letter-spacing: 2px; padding: 6px 12px; margin-bottom: 10px; }
    .hero-actions {
        flex-direction: column;
        align-items: stretch;
        gap: 8px;
        margin-top: 6px;
    }
    .hero-actions .cta-btn {
        width: 100%;
        text-align: center;
        padding: 13px 16px;
        font-size: 0.82rem;
        letter-spacing: 1.4px;
    }
    .hero-secondary-link { margin-top: 12px; font-size: 0.85rem; }

    /* Right-column featured card */
    .hero-featured { max-width: 100%; }
    .hero-featured-card { transform: none; }
    .hero-featured-card::before { inset: -16px; }
    .hero-featured-body { padding: 18px 4px 4px; }
    .hero-featured-model { font-size: 1.25rem; }
    .hero-featured-subline { font-size: 0.88rem; margin: 4px 0 12px; }
    /* Meta block — let it wrap two columns even on tiny screens
       without forcing a 110px min that pushes content sideways. */
    .hero-featured-meta {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
        padding: 12px 0 14px;
        margin-bottom: 14px;
    }
    .hero-featured-meta dd { font-size: 0.86rem; }
    /* CTAs stack and fill the card on tap-sized screens. */
    .hero-featured-actions-row { flex-direction: column; gap: 8px; }
    .hero-featured-cta {
        width: 100%;
        text-align: center;
        padding: 14px 16px;
    }
    /* Empty-placeholder height is capped so a tiny phone doesn't get
       a 320px-tall gold-rectangle dominating the fold when no real
       watch image is shown. Real images keep the 4/3 ratio. */
    .hero-featured-media-empty,
    .hero-featured-media[data-fallback="1"] {
        aspect-ratio: auto;
        min-height: 200px;
        max-height: 220px;
    }
}

/* Below 480px we trim once more so the placeholder + headline never
   crowd a 320px viewport. Real-image cards keep their 4/3 ratio. */
@media (max-width: 480px) {
    .hero-featured-body { padding: 16px 2px 2px; }
    .hero-featured-meta { gap: 8px; }
    .hero-featured-media-empty,
    .hero-featured-media[data-fallback="1"] { min-height: 180px; max-height: 200px; }
    .hero-msl .hero-content p { font-size: 0.92rem; }
}

/* iPhone-sized screens (~390-430px). Pull the hero into the tightest
   compact mode so the watch card lands above the fold on a typical
   handset. The hero-msl-title 2.4rem rule from the existing
   @media (max-width:600px) block stays; here we mainly trim outer
   padding and the eyebrow margin. */
@media (max-width: 430px) {
    .hero, .hero-msl {
        padding-top: 20px;
        padding-bottom: 18px;
    }
    .hero-grid { gap: 16px; padding: 0 18px; }
    .hero-msl-title { font-size: 2.05rem !important; line-height: 1.1; margin-bottom: 10px; }
    .hero-msl-eyebrow { margin-bottom: 8px; }
    .hero-actions { margin-top: 4px; gap: 8px; }
    .hero-actions .cta-btn { padding: 12px 14px; }
    .hero-featured-card::before { inset: -10px; }
}

/* WhatsApp float — clear the mobile bottom action bar + iPhone notch
   safe-area on small screens. The earlier @media (max-width: 768px)
   block already lifts it to 86px; we lift further on tighter widths
   so it never sits on top of the watch-card CTAs, and use env() for
   the iOS home-indicator gap. */
@media (max-width: 600px) {
    .whatsapp-float {
        bottom: calc(96px + env(safe-area-inset-bottom, 0px)) !important;
        right: 18px;
        width: 52px;
        height: 52px;
    }
}
@media (max-width: 430px) {
    .whatsapp-float {
        bottom: calc(100px + env(safe-area-inset-bottom, 0px)) !important;
        width: 48px;
        height: 48px;
    }
}

/* PATH-CARDS-LAYOUT-1 — orphan .cat-trio / .cat-tile* rules removed.
   The Watches / Custom Jewelry / Loose Diamonds tiles they styled
   are now part of the unified .paths-section as the lower
   .paths-categories row (styled via .path-card* selectors further
   down in section 13.5). The category trio's 880px mobile
   stacking is replaced by the new .paths-categories breakpoints. */

/* VIP-CIRCLE-REMOVE-1.2 — orphan styles for the deferred Lifestyle
   Reel ("The MSLuxury Life — Front Row, Booth, Backstage" with
   Festival / DJ Booth / Inner Circle cards) removed. The .reel-*
   markup it styled (.reel-section, .reel-section::before,
   .reel-header, .reel-header h2, .reel-header .section-subtitle,
   .reel-grid, .reel-card (+:hover), .reel-card-art (+::after),
   .reel-card-festival/-dj/-circle .reel-card-art, .reel-tag,
   .reel-card-body (+h3+p)) was the only consumer — confirmed by
   repo grep — so the rules + the @media (max-width:880px)
   `.reel-grid` mobile override are dropped here too. The
   .reel-header h2 entry in the @media (max-width:600px) block
   below is pruned in place, leaving its .hero-msl-title neighbour
   intact. */

/* VIP-CIRCLE-REMOVE-1 — orphan styles for the deferred VIP / Join
   the Circle section removed. The section was the only consumer of
   .vip-section / .vip-overlay / .vip-inner / .vip-eyebrow / .vip-lede
   / .vip-perks / .vip-perk-dot / .vip-btn / .vip-fine, so the rules
   are dropped here too. The .vip-section h2 mobile override that
   used to share a breakpoint with .hero-msl-title and .reel-header h2
   is gone — the surviving two rules stay in place. */

@media (max-width: 600px) {
    .hero-msl-title { font-size: 2.4rem !important; }
}

/* ═══════════════════════════════════════════
   QUICK ACTION GRID — above-the-fold path picker
   ═══════════════════════════════════════════ */
.quick-actions-section {
    background: var(--dark);
    padding: 50px 5% 24px;
}
.quick-actions-inner {
    max-width: 1200px;
    margin: 0 auto;
}
.quick-action-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}
.quick-action {
    display: flex;
    flex-direction: column;
    gap: 4px;
    background: linear-gradient(145deg, rgba(26, 26, 29, 0.96), rgba(5, 5, 5, 0.98));
    border: 1px solid rgba(200, 200, 204, 0.24);
    color: var(--white);
    padding: 20px 22px;
    border-radius: 18px;
    text-decoration: none;
    transition: transform 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
}
.quick-action:hover {
    transform: translateY(-3px);
    border-color: rgba(230, 230, 232, 0.65);
    box-shadow: 0 0 26px rgba(230, 230, 232, 0.14);
}
.quick-action-icon {
    width: 38px;
    height: 38px;
    border-radius: 12px;
    background: rgba(200, 200, 204, 0.08);
    color: var(--silver-bright);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 10px;
    border: 1px solid rgba(200, 200, 204, 0.15);
}
.quick-action strong {
    color: var(--white);
    font-size: 0.96rem;
    font-weight: 600;
    letter-spacing: 0.2px;
}
.quick-action span {
    color: var(--gray-light);
    font-size: 0.78rem;
    margin-top: 4px;
    line-height: 1.4;
}

@media (max-width: 880px) {
    .quick-action-grid { grid-template-columns: 1fr 1fr; gap: 10px; }
    .quick-action { padding: 16px 14px; border-radius: 15px; }
    .quick-action-icon { width: 32px; height: 32px; margin-bottom: 8px; }
    .quick-action strong { font-size: 0.88rem; }
    .quick-action span { font-size: 0.72rem; }
}

/* ═══════════════════════════════════════════
   PATH-CARDS — unified "Choose Your Path" user journey
   (PATH-CARDS-LAYOUT-1). Replaces the older .intent-section
   and .cat-trio split with ONE connected section: a centered
   header, a 4-card top row (action paths) and a 3-card lower
   row (category paths). The middle action card carries the
   .path-card-primary modifier and renders in Rolex green
   (#006039) so "Enter Competitions" is unambiguously THE action.
   ═══════════════════════════════════════════ */
.paths-section {
    background: #0a0a0c;
    padding: 70px 5% 60px;
    position: relative;
}
.paths-header {
    text-align: center;
    max-width: 780px;
    margin: 0 auto 40px;
}
.paths-header h2 {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 2.2rem;
    color: #fff;
    margin: 8px 0 14px;
}
.paths-header .section-subtitle {
    color: rgba(229, 229, 231, 0.78);
    line-height: 1.55;
}
.paths-actions,
.paths-categories {
    max-width: 1200px;
    margin: 0 auto;
    display: grid;
    gap: 18px;
}
.paths-actions { grid-template-columns: repeat(4, 1fr); }
.paths-categories {
    grid-template-columns: repeat(3, 1fr);
    margin-top: 20px;        /* tight visual link to the actions row */
}
.path-card {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 28px 24px 24px;
    text-decoration: none;
    color: #f5f1e8;
    background: rgba(255, 255, 255, 0.025);
    border: 1px solid rgba(197, 160, 89, 0.22);
    transition: transform 0.25s ease, border-color 0.25s ease,
                background 0.25s ease, box-shadow 0.25s ease;
    overflow: hidden;
}
.path-card::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, transparent 55%, rgba(197, 160, 89, 0.06) 100%);
    opacity: 0;
    transition: opacity 0.25s ease;
    pointer-events: none;
}
.path-card:hover,
.path-card:focus-visible {
    transform: translateY(-3px);
    border-color: var(--gold, #c5a059);
    background: rgba(197, 160, 89, 0.04);
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.35);
}
.path-card:hover::after,
.path-card:focus-visible::after { opacity: 1; }
.path-card-icon {
    color: var(--gold, #c5a059);
    margin-bottom: 4px;
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    line-height: 0;
}
.path-card h3 {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 1.3rem;
    color: #fff;
    margin: 0;
}
.path-card-action h3 { font-size: 1.2rem; }
.path-card-category h3 { font-size: 1.4rem; }
.path-card p {
    color: rgba(229, 229, 231, 0.78);
    font-size: 0.92rem;
    line-height: 1.55;
    margin: 0;
    flex: 1;
}
.path-card-cta {
    margin-top: 14px;
    color: var(--gold, #c5a059);
    font-size: 0.72rem;
    letter-spacing: 2px;
    text-transform: uppercase;
    font-weight: 700;
    border-top: 1px solid rgba(197, 160, 89, 0.18);
    padding-top: 14px;
    transition: color 0.2s ease, letter-spacing 0.3s ease;
}
.path-card:hover .path-card-cta,
.path-card:focus-visible .path-card-cta {
    color: #fff;
    letter-spacing: 2.4px;
}

/* PRIMARY — Enter Competitions, Rolex green (#006039) */
.path-card-primary {
    background: linear-gradient(135deg, #006039 0%, #007a47 100%);
    border-color: #006039;
    color: #fff;
    box-shadow: 0 10px 26px rgba(0, 96, 57, 0.35);
}
.path-card-primary::after {
    background: linear-gradient(135deg, transparent 55%, rgba(255, 255, 255, 0.10) 100%);
}
.path-card-primary .path-card-icon {
    color: rgba(255, 255, 255, 0.92);
}
.path-card-primary p {
    color: rgba(255, 255, 255, 0.92);
}
.path-card-primary .path-card-cta {
    color: #fff;
    border-top-color: rgba(255, 255, 255, 0.25);
}
.path-card-primary:hover,
.path-card-primary:focus-visible {
    background: linear-gradient(135deg, #007a47 0%, #00935a 100%);
    border-color: #00935a;
    box-shadow: 0 14px 34px rgba(0, 96, 57, 0.45);
}
.path-card-primary:hover .path-card-cta,
.path-card-primary:focus-visible .path-card-cta {
    color: #fff;
}

/* Subtle category-row tint */
.path-card-category-jewelry {
    background: linear-gradient(135deg, rgba(200, 200, 204, 0.04), rgba(127, 191, 214, 0.05));
}
.path-card-category-diamonds {
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.06), rgba(200, 200, 204, 0.04));
}

@media (max-width: 1000px) {
    .paths-actions    { grid-template-columns: repeat(2, 1fr); }
    .paths-categories { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
    .paths-section { padding: 56px 5% 48px; }
    .paths-header h2 { font-size: 1.7rem; }
    .paths-actions,
    .paths-categories { grid-template-columns: 1fr; gap: 14px; }
    .paths-categories { margin-top: 14px; }
    .path-card { padding: 24px 20px 22px; }
}

/* ═══════════════════════════════════════════
   COMPETITION FLOW PROGRESS — Choose → Answer → Pay → Confirm
   ═══════════════════════════════════════════ */
.flow-progress {
    display: flex;
    align-items: flex-start; /* dots line up on one row even if a label wraps */
    justify-content: center;
    gap: 0;
    list-style: none;
    padding: 0;
    margin: 0 auto 36px;
    max-width: 720px;
    counter-reset: flow;
}
/* The stepper above the entry selector sits inside the dark hero panel —
   tighten its rhythm and give it a hairline divider so it reads as the
   header of the entry funnel. */
.entry-steps {
    margin: 0 auto 18px;
    padding-bottom: 16px;
    border-bottom: 1px solid rgba(197,160,89,0.18);
}
/* COMPETITION-STEPPER-UX-1 — the steps themselves carry the progress
   signal; the horizontal connector line between circles is gone. Each
   .flow-step is a vertical mini-group (circle on top, label below).
   - Completed step (.done)  → Rolex green fill + dark check (set by JS).
   - Current step (.active)  → soft gold halo + gold-on-dark ring.
   - Future step (no class)  → neutral grey-on-charcoal.
   The label colour follows the same three-state logic.
   .flow-step.done .flow-dot size bump keeps the check (✓) visually
   weighted relative to the numbered states. */
.flow-step.done .flow-dot { font-size: 0.95rem; }
.flow-step {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 8px;
    flex: 1;
    min-width: 0;
    position: relative;
}
.flow-dot {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.18);
    color: rgba(245, 241, 232, 0.5);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.85rem;
    font-weight: 600;
    flex-shrink: 0;
    z-index: 1;
    position: relative;
    transition: background 0.3s ease, border-color 0.3s ease, color 0.3s ease;
}
.flow-step.done .flow-dot {
    /* Rolex-Submariner-adjacent green — matches the .age-gate-yes
       primary button so "completed" reads consistently across the
       site. */
    background: #006039;
    border-color: #006039;
    color: var(--white);
}
.flow-step.active .flow-dot {
    background: rgba(197, 160, 89, 0.14);
    border-color: #c5a059;
    color: #c5a059;
    box-shadow: 0 0 0 4px rgba(197, 160, 89, 0.12);
}
.flow-label {
    font-size: 0.74rem;
    letter-spacing: 1.6px;
    text-transform: uppercase;
    color: rgba(245, 241, 232, 0.5);
    font-weight: 600;
    line-height: 1.3;
    max-width: 12ch; /* keeps two-word labels stacked tidily under the circle */
}
.flow-step.active .flow-label { color: #c5a059; }
.flow-step.done .flow-label { color: rgba(216, 232, 223, 0.95); }

/* Mobile: labels STAY below the circles (column layout already prevents the
   connector from crossing them); just tighten type + spacing so three steps
   fit a narrow screen with no horizontal overflow. */
@media (max-width: 560px) {
    .flow-progress { gap: 0; }
    .flow-label { font-size: 0.62rem; letter-spacing: 1px; max-width: 10ch; }
}

/* ═══════════════════════════════════════════
   STICKY MOBILE BOTTOM ACTION BAR
   Note: the base `nav { top:0 }` rule would stretch this from top to
   bottom, so we explicitly unset top/left padding/border from the
   global nav defaults.
   ═══════════════════════════════════════════ */
.mobile-action-bar {
    position: fixed;
    top: auto;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 999;
    display: none;
    padding: 0;
    background: rgba(5, 5, 5, 0.92);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    border-top: 1px solid rgba(200, 200, 204, 0.22);
    border-bottom: none;
    box-shadow: 0 -10px 30px rgba(0, 0, 0, 0.45);
}
.mobile-action-bar a {
    color: #9a948a;
    text-align: center;
    /* Even vertical rhythm + iPhone safe-area padding so labels never
       sit under the Safari home indicator. */
    padding: 9px 4px calc(8px + env(safe-area-inset-bottom, 0px));
    font-size: 10.5px;
    letter-spacing: 1px;
    text-decoration: none;
    text-transform: uppercase;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    position: relative;
    transition: color 0.2s ease;
}
.mobile-action-bar a svg { color: inherit; display: block; }
.mobile-action-bar a:hover { color: #d9d4c8; }
/* Active tab — gold label/icon + a short gold accent bar at the top edge
   and a soft glow so the current section reads clearly. */
.mobile-action-bar a.active {
    color: var(--gold, #c5a059);
}
.mobile-action-bar a.active svg {
    filter: drop-shadow(0 0 6px rgba(197, 160, 89, 0.45));
}
.mobile-action-bar a.active::before {
    content: "";
    position: absolute;
    top: 0;
    left: 22%;
    right: 22%;
    height: 2px;
    background: var(--gold, #c5a059);
    border-radius: 0 0 2px 2px;
}

@media (max-width: 768px) {
    /* Four equal-width tabs — was repeat(5,…) which left an empty column
       and pushed the items off-centre after the Finance tab was removed. */
    .mobile-action-bar { display: grid; grid-template-columns: repeat(4, 1fr); align-items: stretch; }
    /* Clear the bar (incl. safe-area) so page content is never hidden. */
    body { padding-bottom: calc(72px + env(safe-area-inset-bottom, 0px)); }
    /* Float the WhatsApp button above the bar so the two never overlap. */
    .whatsapp-float { bottom: calc(86px + env(safe-area-inset-bottom, 0px)) !important; }
}

/* ═══════════════════════════════════════════
   HOW TO PLAY — visual 4-step explanation
   ═══════════════════════════════════════════ */
.how-to-play {
    position: relative;
    background: var(--dark);
    color: var(--white);
    padding: 90px 5% 80px;
    overflow: hidden;
}
.play-header {
    text-align: center;
    max-width: 720px;
    margin: 0 auto 60px;
}
.play-header h2 {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 2.2rem;
    color: var(--white);
    margin: 8px 0 12px;
}
.play-header .section-subtitle { color: var(--gray-light); }
.play-rail {
    position: absolute;
    left: 8%;
    right: 8%;
    top: 50%;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(200, 200, 204, 0.25), transparent);
    pointer-events: none;
    z-index: 0;
}
.play-grid {
    list-style: none;
    padding: 0;
    margin: 0 auto;
    max-width: 1200px;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
    position: relative;
    z-index: 1;
}
.play-step {
    position: relative;
    background: linear-gradient(180deg, rgba(26, 26, 29, 0.95), rgba(5, 5, 5, 0.95));
    border: 1px solid rgba(200, 200, 204, 0.22);
    padding: 38px 26px 28px;
    text-align: center;
    transition: transform 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
}
/* HOW-TO-PLAY-UX-1 — large background numeral, visible behind each
   step icon/title so the four cards feel less uniform and read as a
   numbered journey. Cards keep the same shape; only the depth-of-
   numeral changes per position. */
.play-step::before {
    content: attr(data-step-num);
    position: absolute;
    top: 8px;
    right: 14px;
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 3rem;
    font-weight: 700;
    line-height: 1;
    color: rgba(197, 160, 89, 0.08);
    pointer-events: none;
    letter-spacing: -2px;
}
.play-step:hover {
    transform: translateY(-4px);
    border-color: var(--silver-bright);
    box-shadow: 0 0 26px rgba(230, 230, 232, 0.14);
}
/* HOW-TO-PLAY-UX-1 — staggered accents so the four steps don't look
   identical. Step 1 starts the journey with a gold top edge, steps
   2 & 3 stay neutral silver, step 4 closes the journey with a quiet
   Rolex-green winning edge. Subtle enough not to overload the row,
   distinct enough to read as a journey. */
.play-step-start {
    border-top: 2px solid var(--gold, #c5a059);
}
.play-step-start .play-step-num { color: var(--gold, #c5a059); }
.play-step-finish {
    border-top: 2px solid #006039;
    box-shadow: inset 0 1px 0 rgba(0, 96, 57, 0.4);
}
.play-step-finish .play-step-num { color: #2dab78; }
.play-step-finish:hover {
    border-color: #2dab78;
    box-shadow: 0 0 26px rgba(0, 96, 57, 0.28),
                inset 0 1px 0 rgba(0, 96, 57, 0.5);
}
.play-step-icon {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: rgba(200, 200, 204, 0.06);
    border: 1px solid rgba(200, 200, 204, 0.3);
    color: var(--silver-bright);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 14px;
    transition: border-color 0.3s ease, color 0.3s ease, background 0.3s ease;
}
.play-step-start .play-step-icon {
    border-color: rgba(197, 160, 89, 0.55);
    color: var(--gold, #c5a059);
    background: rgba(197, 160, 89, 0.08);
}
.play-step-finish .play-step-icon {
    border-color: rgba(0, 96, 57, 0.55);
    color: #2dab78;
    background: rgba(0, 96, 57, 0.08);
}
.play-step-num {
    font-family: 'Playfair Display', Georgia, serif;
    color: var(--gold);
    font-size: 0.85rem;
    letter-spacing: 3px;
    margin-bottom: 8px;
    position: relative;
    z-index: 1;
}
.play-step h3 {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 1.15rem;
    color: var(--white);
    margin: 0 0 10px;
    position: relative;
    z-index: 1;
}
.play-step p {
    color: var(--gray-light);
    font-size: 0.88rem;
    line-height: 1.55;
    margin: 0;
    position: relative;
    z-index: 1;
}
.play-cta {
    text-align: center;
    margin-top: 50px;
    position: relative;
    z-index: 1;
}
.play-faq-link {
    display: inline-block;
    margin-top: 18px;
    color: var(--gray-light);
    font-size: 0.78rem;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    text-decoration: none;
    border-bottom: 1px solid transparent;
    padding-bottom: 2px;
    transition: color 0.2s ease, border-color 0.2s ease;
}
.play-faq-link:hover { color: var(--silver-bright); border-bottom-color: var(--silver-bright); }

@media (max-width: 880px) {
    .play-grid { grid-template-columns: 1fr 1fr; gap: 16px; }
    .play-rail { display: none; }
}
@media (max-width: 520px) {
    .play-grid { grid-template-columns: 1fr; }
}

/* ═══════════════════════════════════════════
   FEATURED COMPETITION SPOTLIGHT
   ═══════════════════════════════════════════ */
.featured-comp {
    background: var(--dark-2);
    padding: 50px 5%;
}
.featured-comp-inner {
    max-width: 1200px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1.1fr;
    gap: 40px;
    align-items: stretch;
    background: linear-gradient(135deg, #0a0a0c 0%, #1a1a1d 100%);
    border: 1px solid rgba(200, 200, 204, 0.18);
    overflow: hidden;
}
.featured-comp-image {
    background-size: cover;
    background-position: center;
    background-color: #050505;
    min-height: 340px;
    position: relative;
}
.featured-comp-tag {
    position: absolute;
    top: 18px;
    left: 18px;
    background: rgba(5, 5, 5, 0.85);
    color: var(--silver-bright);
    border: 1px solid var(--gold);
    padding: 6px 14px;
    font-size: 0.65rem;
    letter-spacing: 2.5px;
    text-transform: uppercase;
    font-weight: 700;
}
.featured-comp-text {
    color: var(--white);
    padding: 36px 36px 32px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.featured-comp-brand {
    color: var(--gold);
    font-size: 0.7rem;
    letter-spacing: 3px;
    text-transform: uppercase;
    font-weight: 600;
}
.featured-comp-model {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 2rem;
    color: var(--white);
    margin: 4px 0 0;
    line-height: 1.15;
}
.featured-comp-ref {
    color: var(--gray-light);
    font-size: 0.78rem;
    letter-spacing: 1.5px;
    margin: 0 0 8px;
}
.featured-comp-countdown {
    background: rgba(255, 255, 255, 0.02);
    border: 1px solid rgba(200, 200, 204, 0.18);
    padding: 16px 14px 14px;
    text-align: center;
    margin: 6px 0;
}
.featured-comp-cd-label {
    display: block;
    color: var(--gold);
    font-size: 0.65rem;
    letter-spacing: 2.5px;
    text-transform: uppercase;
    margin-bottom: 8px;
}
.featured-comp-meta {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
    padding-top: 10px;
    border-top: 1px dashed rgba(200, 200, 204, 0.15);
}
.featured-comp-meta > div { display: flex; flex-direction: column; gap: 4px; }
.featured-comp-label {
    color: var(--gray);
    font-size: 0.62rem;
    letter-spacing: 1.5px;
    text-transform: uppercase;
}
.featured-comp-value {
    color: var(--white);
    font-weight: 700;
    font-size: 0.95rem;
}
.featured-comp-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 14px;
    margin-top: 14px;
}
.featured-comp-link {
    color: var(--gold);
    font-size: 0.75rem;
    letter-spacing: 2px;
    text-transform: uppercase;
    text-decoration: none;
    transition: color 0.2s ease;
}
.featured-comp-link:hover { color: var(--silver-bright); }

@media (max-width: 860px) {
    .featured-comp-inner { grid-template-columns: 1fr; }
    .featured-comp-image { min-height: 240px; }
    .featured-comp-text { padding: 26px 22px 24px; }
    .featured-comp-model { font-size: 1.55rem; }
    .featured-comp-meta { grid-template-columns: 1fr 1fr; }
}

/* ═══════════════════════════════════════════
   FAQ ACCORDION
   ═══════════════════════════════════════════ */
.faq-section {
    background: var(--light);
    padding: 80px 5%;
}
.faq-header {
    text-align: center;
    max-width: 720px;
    margin: 0 auto 40px;
}
.faq-header h2 {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 2rem;
    color: var(--dark);
    margin: 8px 0 12px;
}
.faq-list {
    max-width: 820px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.faq-item {
    background: var(--white);
    border: 1px solid var(--border);
    transition: border-color 0.25s ease, box-shadow 0.25s ease;
}
.faq-item[open] {
    border-color: var(--gold);
    box-shadow: 0 4px 18px rgba(0, 0, 0, 0.05);
}
.faq-item summary {
    list-style: none;
    cursor: pointer;
    padding: 20px 24px;
    font-weight: 600;
    color: var(--dark);
    font-size: 0.98rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    position: relative;
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after {
    content: '+';
    color: var(--gold);
    font-size: 1.4rem;
    font-weight: 400;
    line-height: 1;
    transition: transform 0.3s ease;
    flex-shrink: 0;
}
.faq-item[open] summary::after { content: '−'; }
.faq-answer {
    padding: 0 24px 22px;
    color: var(--gray);
    font-size: 0.92rem;
    line-height: 1.65;
}
.faq-answer p { margin: 0; }
.faq-foot {
    text-align: center;
    margin-top: 28px;
    color: var(--gray);
    font-size: 0.88rem;
}
.faq-foot a {
    color: var(--dark);
    border-bottom: 1px solid var(--gold);
    text-decoration: none;
    padding-bottom: 1px;
}
.faq-foot a:hover { color: var(--gold); }

@media (max-width: 600px) {
    .faq-item summary { padding: 16px 18px; font-size: 0.92rem; }
    .faq-answer { padding: 0 18px 18px; }
}

/* ═══════════════════════════════════════════
   SKILL-QUESTION MODAL
   ═══════════════════════════════════════════ */
/* body.skill-modal-open lock removed — see age-gate note above. */
.skill-modal {
    position: fixed;
    inset: 0;
    z-index: 9000;
    background: rgba(13, 13, 13, 0.85);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    animation: ageGateFadeIn 0.25s ease;
}
.skill-modal[hidden] { display: none !important; }
.skill-modal-card {
    background: var(--dark-2);
    color: var(--white);
    border: 1px solid rgba(197, 160, 89, 0.3);
    border-top: 3px solid var(--gold);
    max-width: 520px;
    width: 100%;
    padding: 36px 32px 32px;
    position: relative;
}
.skill-modal-close {
    position: absolute;
    top: 10px; right: 14px;
    background: none;
    border: none;
    color: var(--gray-light);
    font-size: 1.6rem;
    cursor: pointer;
    line-height: 1;
}
.skill-modal-close:hover { color: var(--gold); }
.skill-modal-tag {
    display: inline-block;
    background: var(--gold);
    color: var(--dark);
    padding: 4px 12px;
    font-size: 0.65rem;
    letter-spacing: 2px;
    text-transform: uppercase;
    font-weight: 700;
    margin-bottom: 14px;
}
.skill-modal-card h3 {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 1.4rem;
    margin: 0 0 8px;
    color: var(--white);
}
.skill-modal-question {
    color: var(--gray-light);
    font-size: 1rem;
    line-height: 1.5;
    margin: 0 0 18px;
}
.skill-modal-options {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.skill-modal-option {
    text-align: left;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(197, 160, 89, 0.2);
    color: var(--white);
    padding: 12px 16px;
    font-size: 0.92rem;
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s;
}
.skill-modal-option:hover { background: rgba(197, 160, 89, 0.12); border-color: var(--gold); }
.skill-modal-option.correct { background: rgba(46, 125, 50, 0.25); border-color: #2e7d32; }
.skill-modal-option.incorrect { background: rgba(198, 40, 40, 0.2); border-color: var(--error); }
.skill-modal-option:disabled { cursor: default; }
.skill-modal-feedback {
    margin-top: 16px;
    padding: 12px 14px;
    font-size: 0.88rem;
    line-height: 1.5;
    border-left: 3px solid var(--gold);
    background: rgba(197, 160, 89, 0.08);
}
.skill-modal-feedback[hidden] { display: none; }
.skill-modal-feedback.correct { border-color: #2e7d32; background: rgba(46, 125, 50, 0.12); }
.skill-modal-feedback.incorrect { border-color: var(--error); background: rgba(198, 40, 40, 0.1); }
.skill-modal-actions {
    margin-top: 18px;
    text-align: center;
}
.skill-modal-actions[hidden] { display: none; }

/* ═══════════════════════════════════════════
   RECENT WINNERS
   ═══════════════════════════════════════════ */
.winners-section {
    padding: 80px 5%;
    background: var(--light);
}
.winners-header {
    text-align: center;
    max-width: 720px;
    margin: 0 auto 50px;
}
.winners-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 22px;
    max-width: 1200px;
    margin: 0 auto;
}
.winner-card {
    background: var(--white);
    border: 1px solid var(--border);
    overflow: hidden;
    transition: transform 0.25s, box-shadow 0.25s;
}
.winner-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 14px 36px rgba(0, 0, 0, 0.1);
}
.winner-card-image {
    height: 170px;
    background-size: cover;
    background-position: center;
    background-color: var(--dark-2);
    position: relative;
    display: flex;
    align-items: flex-end;
    justify-content: flex-end;
    padding: 14px;
}
.winner-card-trophy {
    background: var(--gold);
    color: var(--dark);
    width: 38px; height: 38px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
    font-weight: 700;
}
.winner-card-body {
    padding: 22px 22px 24px;
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.winner-card-brand {
    color: var(--gold);
    font-size: 0.65rem;
    letter-spacing: 2.5px;
    text-transform: uppercase;
    font-weight: 600;
}
.winner-card-model {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 1.15rem;
    color: var(--dark);
    margin: 4px 0 0;
}
.winner-card-ref {
    color: var(--gray);
    font-size: 0.72rem;
    letter-spacing: 1px;
    margin: 0 0 8px;
}
.winner-card-divider {
    height: 1px;
    background: var(--border);
    margin: 6px 0 12px;
}
.winner-card-name {
    font-size: 1rem;
    font-weight: 700;
    color: var(--dark);
    margin: 0;
}
.winner-card-meta {
    color: var(--gray);
    font-size: 0.78rem;
    margin: 4px 0 0;
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}
.winner-card-entry { color: var(--gold); font-weight: 600; letter-spacing: 0.5px; }
.winner-card-dot { color: var(--border); }
.winner-card-date {
    color: var(--gray);
    font-size: 0.72rem;
    margin: 8px 0 0;
    letter-spacing: 0.5px;
}

/* ═══════════════════════════════════════════
   INDEPENDENT DRAW TRANSPARENCY
   ═══════════════════════════════════════════ */
.transparency-section {
    background: var(--dark);
    color: var(--white);
    padding: 80px 5%;
}
.transparency-inner {
    max-width: 1200px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1.3fr 1fr;
    gap: 60px;
    align-items: center;
}
.transparency-text h2 {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 2rem;
    margin: 0 0 18px;
    color: var(--white);
    line-height: 1.2;
}
.transparency-text p {
    color: var(--gray-light);
    line-height: 1.65;
    font-size: 0.98rem;
    margin: 0 0 22px;
}
.transparency-text strong { color: var(--white); }
.transparency-list {
    list-style: none;
    padding: 0;
    margin: 0 0 28px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.transparency-list li {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    color: var(--gray-light);
    font-size: 0.93rem;
}
.trans-tick {
    color: var(--gold);
    font-weight: 700;
    flex-shrink: 0;
    margin-top: 1px;
}
.transparency-cert {
    background: var(--white);
    color: var(--dark);
    padding: 28px 26px;
    border: 1px solid rgba(197, 160, 89, 0.4);
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
}
.trans-cert-header {
    display: flex;
    align-items: center;
    gap: 12px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--border);
    margin-bottom: 18px;
}
.trans-cert-brand {
    display: block;
    font-weight: 700;
    color: var(--dark);
    font-size: 0.95rem;
}
.trans-cert-sub {
    display: block;
    color: var(--gray);
    font-size: 0.7rem;
    letter-spacing: 1px;
    text-transform: uppercase;
}
.trans-cert-body { display: flex; flex-direction: column; gap: 10px; }
.trans-cert-label {
    font-size: 0.65rem;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--gray);
}
.trans-cert-num {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--gold);
    font-family: 'Inter', monospace;
    letter-spacing: 1px;
}
.trans-cert-line {
    display: flex;
    justify-content: space-between;
    border-top: 1px dashed var(--border);
    padding-top: 8px;
    font-size: 0.78rem;
}
.trans-cert-key { color: var(--gray); letter-spacing: 1px; text-transform: uppercase; font-size: 0.65rem; }
.trans-cert-mono { font-family: ui-monospace, SFMono-Regular, monospace; color: var(--dark); }
.trans-cert-foot {
    margin: 18px 0 0;
    padding-top: 14px;
    border-top: 1px solid var(--border);
    font-size: 0.7rem;
    color: var(--gray);
    text-align: center;
    letter-spacing: 0.5px;
}

@media (max-width: 860px) {
    .transparency-inner { grid-template-columns: 1fr; gap: 40px; }
}

/* ═══════════════════════════════════════════
   TRUST BAR (improved variant)
   ═══════════════════════════════════════════ */
.trust-bar-v2 {
    flex-wrap: wrap;
    gap: 32px;
}
.trust-bar-v2 .trust-item {
    font-size: 0.85rem;
    letter-spacing: 1.5px;
}

/* ═══════════════════════════════════════════
   WATCH JOURNAL
   ═══════════════════════════════════════════ */
.journal-section {
    background: var(--light);
    padding: 80px 5%;
}
.journal-header {
    text-align: center;
    max-width: 720px;
    margin: 0 auto 50px;
}
.journal-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 24px;
    max-width: 1200px;
    margin: 0 auto;
}
.journal-card {
    display: block;
    background: var(--white);
    border: 1px solid var(--border);
    text-decoration: none;
    color: var(--dark);
    transition: transform 0.25s, box-shadow 0.25s, border-color 0.25s;
}
.journal-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 14px 36px rgba(0, 0, 0, 0.1);
    border-color: var(--gold);
}
.journal-card-image {
    height: 200px;
    background-size: cover;
    background-position: center;
    background-color: var(--dark-2);
    position: relative;
}
.journal-card-image::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 0%, rgba(13,13,13,0.5) 100%);
}
.journal-image-1 { background-image: linear-gradient(135deg, #0a0a0a 0%, #2a2a2e 100%); }
.journal-image-2 { background-image: linear-gradient(135deg, #0a0a0a 0%, #1f1f24 100%); }
.journal-image-3 { background-image: linear-gradient(135deg, #0a0a0a 0%, #232328 100%); }
.journal-card-body { padding: 22px 22px 24px; }
.journal-card-cat {
    display: inline-block;
    color: var(--gold);
    font-size: 0.65rem;
    letter-spacing: 2px;
    text-transform: uppercase;
    font-weight: 600;
    margin-bottom: 10px;
}
.journal-card-body h3 {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 1.15rem;
    margin: 0 0 10px;
    line-height: 1.35;
    color: var(--dark);
}
.journal-card-body p {
    color: var(--gray);
    font-size: 0.88rem;
    line-height: 1.55;
    margin: 0;
}

/* ═══════════════════════════════════════════
   COMMUNITY CTA
   ═══════════════════════════════════════════ */
.community-section {
    background: linear-gradient(180deg, var(--dark) 0%, var(--dark-2) 100%);
    color: var(--white);
    padding: 80px 5%;
    border-top: 1px solid rgba(197, 160, 89, 0.15);
}
.community-inner {
    max-width: 720px;
    margin: 0 auto;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
}
.community-eyebrow { margin-bottom: 4px; }
.community-section h2 {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 2rem;
    margin: 0;
    color: var(--white);
}
.community-section p {
    color: var(--gray-light);
    font-size: 1rem;
    line-height: 1.6;
    max-width: 540px;
    margin: 0 0 8px;
}
.community-form {
    display: flex;
    gap: 10px;
    width: 100%;
    max-width: 460px;
    flex-wrap: wrap;
    margin-top: 6px;
}
.community-form input[type="email"] {
    flex: 1 1 220px;
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(197, 160, 89, 0.4);
    color: var(--white);
    padding: 14px 16px;
    font-size: 0.95rem;
    font-family: inherit;
}
.community-form input[type="email"]::placeholder { color: var(--gray); }
.community-form input[type="email"]:focus { outline: none; border-color: var(--gold); }
.community-form .cta-btn {
    background: var(--gold);
    color: var(--dark);
    flex-shrink: 0;
}
.community-form .cta-btn:hover { background: var(--gold-hover); }
.community-feedback {
    min-height: 22px;
    font-size: 0.85rem;
    color: var(--gray-light);
    margin: 0;
}
.community-feedback.success { color: #6fcf6f; }
.community-feedback.error { color: #ff6b6b; }
.community-channels {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    justify-content: center;
    margin-top: 6px;
}
.community-channel {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--gray-light);
    text-decoration: none;
    padding: 9px 18px;
    border: 1px solid rgba(197, 160, 89, 0.3);
    font-size: 0.78rem;
    letter-spacing: 1px;
    text-transform: uppercase;
    transition: color 0.15s, border-color 0.15s;
}
.community-channel:hover { color: var(--gold); border-color: var(--gold); }
.community-channel svg { color: var(--gold); }

@media (max-width: 600px) {
    .community-form { flex-direction: column; }
    .community-form .cta-btn { width: 100%; }
    .transparency-text h2 { font-size: 1.6rem; }
    .winners-section, .journal-section, .transparency-section, .community-section { padding: 50px 5%; }
}
@keyframes ageGateFadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}
.age-gate-card,
.age-gate-block {
    max-width: 460px;
    width: 100%;
    background: var(--dark-2);
    color: var(--white);
    text-align: center;
    padding: 48px 36px;
    border: 1px solid rgba(197, 160, 89, 0.3);
    border-top: 3px solid var(--gold);
}
.age-gate-logo {
    margin-bottom: 22px;
    display: inline-block;
}
.age-gate-card h2,
.age-gate-block h2 {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 1.6rem;
    margin-bottom: 14px;
    color: var(--white);
}
.age-gate-card p,
.age-gate-block p {
    color: var(--gray-light);
    font-size: 0.95rem;
    line-height: 1.6;
    margin-bottom: 28px;
}
.age-gate-actions {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-bottom: 24px;
}
/* AGE-GATE-BUTTON-STYLE-1 — Rolex-style deep green for the positive
   action. The base .cta-btn keeps its silhouette, gold border, chrome
   sheen, transitions, and hover lift — only background + text colour
   are reassigned to a tasteful luxury green (Rolex-Submariner-adjacent
   #006039 → #004d2e gradient for subtle depth). Hover stays in the
   same family, one step brighter, so the existing hover-lift effect
   from .cta-btn:hover still reads. The secondary .age-gate-no rule
   below is unchanged. */
.age-gate-yes {
    background: linear-gradient(135deg, #006039 0%, #004d2e 100%);
    color: var(--white);
    padding: 16px 24px;
    font-size: 0.85rem;
    letter-spacing: 2px;
}
.age-gate-yes:hover {
    background: linear-gradient(135deg, #0a7245 0%, #006039 100%);
}
.age-gate-yes:active {
    background: linear-gradient(135deg, #00532f 0%, #004025 100%);
}
.age-gate-no {
    border: 1px solid var(--gray);
    color: var(--gray-light);
    padding: 14px 24px;
    font-size: 0.8rem;
    letter-spacing: 1.5px;
    background: transparent;
}
.age-gate-no:hover {
    border-color: var(--gold);
    color: var(--gold);
}
.age-gate-fine {
    font-size: 0.72rem;
    color: var(--gray);
    line-height: 1.5;
    margin: 0;
}
.age-gate-block-icon {
    font-size: 3rem;
    color: var(--gold);
    margin-bottom: 18px;
}
.age-gate-mistake-link {
    background: none;
    border: none;
    color: var(--gold);
    font-size: 0.8rem;
    letter-spacing: 1px;
    text-transform: uppercase;
    cursor: pointer;
    padding: 8px 16px;
    text-decoration: underline;
    text-underline-offset: 4px;
}
.age-gate-mistake-link:hover { color: var(--gold-hover); }

@media (max-width: 480px) {
    .age-gate-card,
    .age-gate-block { padding: 36px 24px; }
    .age-gate-card h2,
    .age-gate-block h2 { font-size: 1.4rem; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   MSL DARK THEME REFINEMENT — Moty Sadon feedback pass
   Single override block — keeps the existing structure intact and flips the
   remaining light surfaces (body, nav, intent, entertainment, trust-bar-v3,
   journal, faq, legal pages, page headers) to dark; fixes the small-viewport
   featured-comp countdown overflow that drags the doc width; centres the
   how-to-play steps; gives the page a generous bottom safe area so the
   floating WhatsApp button and the sticky mobile-action-bar don't cover
   content. Appended at the end of the file so it wins the cascade.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ---- 1. Global shell ---- */
html, body { background: #050505; }
body { color: #e5e5e7; }

/* Top utility/nav strip — completely black, silver/gold links remain */
nav,
.utility-bar,
.site-nav,
.site-header,
header > nav,
header.site-header {
    background: #050505 !important;
    border-bottom-color: rgba(255, 255, 255, 0.08) !important;
}
.utility-bar { color: #888; }

/* Nav link defaults on dark — keep silver/gold accent on hover */
nav a,
.nav-links a,
.site-nav a {
    color: #ddd;
}
nav a:hover,
.nav-links a:hover,
.site-nav a:hover {
    color: var(--silver-bright);
}

/* Logo wordmark — explicit light treatment on black */
.logo .logo-text,
.logo-text-top,
.logo-text-accent {
    color: #fff;
}
.logo-text-accent { color: var(--silver-bright); }
.logo .by-line, .by-line { color: #888; }

/* Hamburger button visibility on dark */
.hamburger,
.hamburger span {
    background: transparent;
    border-color: rgba(255,255,255,0.18);
}
.hamburger span { background: #fff; }

/* ---- 2. Mobile menu drawer — dark, not white ---- */
@media (max-width: 900px) {
    .nav-links {
        background: #0a0a0c !important;
        border-top: 1px solid rgba(255, 255, 255, 0.08);
    }
    .nav-links a {
        color: #e5e5e7 !important;
        border-bottom: 1px solid rgba(255, 255, 255, 0.06);
    }
    .nav-links a:hover,
    .nav-links a:focus {
        color: var(--silver-bright) !important;
        background: rgba(255, 255, 255, 0.04);
    }
    .nav-links .nav-cta-primary {
        background: #fff !important;
        color: #0a0a0c !important;
        border-color: #fff !important;
    }
    .nav-links .nav-cta-ghost {
        background: transparent !important;
        color: #e5e5e7 !important;
        border-color: rgba(255,255,255,0.4) !important;
    }
}

/* ---- 3. Homepage light sections → dark ----
   PATH-CARDS-LAYOUT-1 — .intent-section and .intent-card are gone;
   the new .paths-section sets its own dark background + colours
   directly in its own rule block, so this catch-all no longer
   targets them. The other sections (.trust-bar-v3 / .journal-* /
   .faq-*) are unchanged. */
.trust-bar.trust-bar-v3,
.journal-section,
.faq-section {
    background: #0a0a0c !important;
    color: #e5e5e7;
}
/* Alternating tone for visual rhythm */
.journal-section { background: #101014 !important; }

/* Text colors inside the formerly-light sections */
.trust-bar-v3 .trust-item,
.journal-section h2,
.journal-section h3,
.journal-section .journal-card h3,
.faq-section h2,
.faq-section h3,
.faq-section summary {
    color: #fff;
}
.journal-section p,
.journal-section .section-subtitle,
.faq-section p,
.faq-section .section-subtitle,
.faq-section .faq-answer p,
.faq-foot {
    color: #bdbdc4;
}

/* Cards inside these sections — dark surface with subtle outline */
.journal-section .journal-card,
.faq-section .faq-item {
    background: #141418 !important;
    border: 1px solid rgba(255, 255, 255, 0.08) !important;
    color: #e5e5e7;
}
.journal-section .journal-card:hover,
.faq-section .faq-item:hover {
    border-color: rgba(200, 200, 204, 0.35) !important;
}
.faq-section .faq-item[open] {
    background: #18181c !important;
    border-color: rgba(200, 200, 204, 0.28) !important;
}
.faq-section summary { padding: 18px 22px; }
.faq-section summary::-webkit-details-marker { color: var(--silver-bright); }
.faq-section .faq-answer { padding: 0 22px 18px; }

/* Trust bar v3 — dark with light items */
.trust-bar-v3 {
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.trust-bar-v3 .trust-item { color: #ddd; }
.trust-bar-v3 .trust-icon { color: var(--silver-bright); }

/* ---- 4. Page header + legal-content shells (privacy / terms / rules / faq) ---- */
.page-header {
    background: linear-gradient(180deg, #050505 0%, #0a0a0c 100%);
    padding: 64px 5% 40px;
    text-align: center;
    border-bottom: 1px solid rgba(200, 200, 204, 0.12);
}
.page-header h1 {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: clamp(1.8rem, 4vw, 2.6rem);
    color: #fff;
    margin: 0 0 8px;
    letter-spacing: 0.5px;
}
.page-header p {
    color: #aaa;
    font-size: 0.95rem;
    max-width: 640px;
    margin: 0 auto;
}

.legal-content {
    background: #0a0a0c;
    color: #d5d5da;
}
.legal-container h2 {
    color: #fff;
    border-bottom: 1px solid rgba(200, 200, 204, 0.18);
    padding-bottom: 8px;
}
.legal-container h3 { color: var(--silver-bright); }
.legal-container p,
.legal-container li { color: #bdbdc4; }
.legal-container a { color: var(--silver-bright); text-decoration: underline; }
.legal-container hr { border-color: rgba(200, 200, 204, 0.14) !important; }

/* FAQ page (uses .faq-section inside a dark shell already — keep summaries readable) */
body > .faq-section,
section.faq-section {
    padding: 60px 5%;
}

/* ---- 5. Featured-comp countdown — kill mobile overflow + reset legacy absolute positioning ---- */
.featured-comp-countdown {
    position: static !important;
    bottom: auto !important;
    left: auto !important;
    right: auto !important;
    width: 100%;
    overflow: hidden;
    display: block;
}
.featured-comp-countdown .countdown-segments,
.featured-comp-countdown .countdown-segments-md {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr);
    gap: 8px;
    width: 100%;
}
.featured-comp-countdown .countdown-seg {
    min-width: 0 !important;
    padding: 12px 4px 10px;
}
.featured-comp-countdown .countdown-num { font-size: clamp(1.4rem, 6vw, 2.2rem); }
.featured-comp-countdown .countdown-unit { font-size: 0.55rem; letter-spacing: 1px; }

/* ---- 6. Cap the runaway sticky bottom-bar — match viewport, not document ---- */
.mobile-action-bar {
    max-width: 100vw;
    overflow: hidden;
}

/* ---- 7. Centre + space How to Play steps ---- */
.how-to-play .htp-rail,
.how-to-play .how-steps,
.how-to-play .steps-grid,
.how-to-play .htp-steps {
    justify-content: center;
    align-items: stretch;
}
.how-to-play .htp-step,
.how-to-play .how-step,
.how-to-play .step-card {
    text-align: center;
    margin-left: auto;
    margin-right: auto;
}
@media (max-width: 768px) {
    .how-to-play .htp-rail,
    .how-to-play .how-steps,
    .how-to-play .steps-grid,
    .how-to-play .htp-steps {
        display: flex !important;
        flex-direction: column;
        gap: 36px;
        max-width: 480px;
        margin-left: auto;
        margin-right: auto;
        padding: 0 8px;
    }
    .how-to-play .htp-step,
    .how-to-play .how-step,
    .how-to-play .step-card {
        max-width: 360px;
    }
}

/* ---- 8. Featured-comp grid — ensure no element sits on top of another on mobile ---- */
@media (max-width: 768px) {
    .featured-comp-inner {
        display: flex !important;
        flex-direction: column;
        gap: 24px;
        padding: 0 4%;
    }
    .featured-comp-image {
        width: 100%;
        max-width: 100%;
        aspect-ratio: 4 / 3;
        margin: 0 auto;
    }
    .featured-comp-text {
        width: 100%;
        max-width: 100%;
        text-align: left;
    }
    .featured-comp-meta {
        display: grid !important;
        grid-template-columns: repeat(3, 1fr);
        gap: 12px;
    }
    .featured-comp-meta > div { min-width: 0; }
    .featured-comp-actions {
        display: flex;
        flex-direction: column;
        gap: 12px;
        align-items: stretch;
    }
}

/* ---- 9. Transparency / random-draws — guarantee fit on small viewports ---- */
.transparency-section,
.transparency-v2 {
    overflow: hidden;
}
.transparency-v2-grid {
    width: 100%;
    max-width: 1100px;
    margin: 0 auto;
}
@media (max-width: 720px) {
    .transparency-v2-grid {
        grid-template-columns: 1fr !important;
        gap: 16px;
    }
}

/* ---- 10. Bottom safe area — keep the WA bubble + bottom bar from covering CTAs ---- */
@media (max-width: 768px) {
    body { padding-bottom: calc(72px + env(safe-area-inset-bottom, 0px) + 24px) !important; }
    .whatsapp-float { bottom: 92px !important; }
}

/* ---- 11. Global guard against horizontal overflow ---- */
html, body { overflow-x: hidden; }

/* ---- 12. Buttons — keep them readable on the new dark surfaces ---- */
.cta-btn-outline {
    border-color: rgba(255, 255, 255, 0.55);
    color: #fff;
    background: transparent;
}
.cta-btn-outline:hover {
    background: #fff;
    color: #0a0a0c;
}

/* ---- 13. Watch + competition cards — dark surface ---- */
.watch-card,
.comp-card,
.comp-card-v2,
.comp-card-upgraded,
.next-draw-card,
.prize-tile,
.update-home-card,
.update-card {
    background: #141418 !important;
    border: 1px solid rgba(255, 255, 255, 0.08) !important;
    color: #e5e5e7 !important;
}
.watch-card:hover,
.comp-card:hover,
.comp-card-v2:hover,
.comp-card-upgraded:hover,
.next-draw-card:hover,
.prize-tile:hover,
.update-home-card:hover,
.update-card:hover {
    border-color: rgba(200, 200, 204, 0.35) !important;
}
.watch-card .watch-card-info,
.update-home-card .update-home-body,
.update-card .update-card-body { background: transparent !important; }
.watch-brand { color: var(--silver-bright) !important; }
.watch-model { color: #fff !important; }
.watch-ref { color: #aaa !important; }
.watch-price { color: #fff !important; }
.watch-size { color: #bdbdc4 !important; }
.update-home-card h3,
.update-card h3 { color: #fff !important; }
.update-home-card p,
.update-card p { color: #bdbdc4 !important; }

/* ---- 14. Catch-all: section titles + subtitles on dark are light ---- */
.section-title { color: inherit; }
.featured-section,
.competitions-section,
.quick-actions-section,
.community-section {
    color: #e5e5e7;
}
.featured-section .section-title,
.featured-section h2 { color: #fff; }
.featured-section .section-subtitle { color: #bdbdc4; }

/* ---- 15. Watch-detail and other detail pages — guarantee dark base ---- */
.watch-detail,
.watch-detail-section,
.detail-section,
.detail-info,
.competition-detail,
.competition-detail-section {
    background: #050505;
    color: #e5e5e7;
}
.watch-detail h1, .watch-detail h2, .watch-detail h3,
.competition-detail h1, .competition-detail h2, .competition-detail h3 { color: #fff; }
.spec-row { border-color: rgba(255, 255, 255, 0.08) !important; }
.spec-label { color: #aaa !important; }
.spec-value { color: #fff !important; }

/* ---- 16. Form pages (contact, finance, repair, etc.) — dark fields ---- */
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="number"],
input[type="password"],
input[type="search"],
input[type="url"],
input[type="date"],
select,
textarea {
    background: #141418 !important;
    border: 1px solid rgba(255, 255, 255, 0.15) !important;
    color: #fff !important;
}
input::placeholder, textarea::placeholder { color: #888 !important; }
label { color: #e5e5e7 !important; }

/* End MSL dark theme refinement */

/* ═══════════════════════════════════════════════════════════════════
   Competition card conversion parity (homepage hero / spotlight / grid)
   ───────────────────────────────────────────────────────────────────
   Mirrors the competition-detail hero so every public competition
   surface shows the same mechanics: segmented countdown, Value / Entry /
   Maximum Entries stats with safe fallbacks, urgency line, and an
   elegant gold-on-dark placeholder when the image is missing / invalid /
   archived. data-fallback="1" is set by the EJS when _pubImg() returns ''
   (never a /past-watches/ URL, never a broken <img>).
   ═══════════════════════════════════════════════════════════════════ */

/* Image placeholders — gold-radial on dark, matching .cd-hero-media. */
.featured-comp-image[data-fallback="1"],
.comp-card-upgraded-image[data-fallback="1"],
.winner-card-image[data-fallback="1"] {
    background:
        radial-gradient(circle at 30% 25%, rgba(197,160,89,0.22) 0%, transparent 55%),
        radial-gradient(circle at 70% 80%, rgba(122,96,50,0.18) 0%, transparent 50%),
        linear-gradient(135deg, #1d142b 0%, #0a0612 65%);
}
.featured-comp-image[data-fallback="1"]::after,
.comp-card-upgraded-image[data-fallback="1"]::after {
    content: "";
    position: absolute;
    inset: 0;
    margin: auto;
    width: 60px;
    height: 60px;
    border-radius: 50%;
    border: 2px solid rgba(197,160,89,0.5);
    box-shadow: inset 0 0 0 6px rgba(197,160,89,0.12);
    background:
        linear-gradient(rgba(197,160,89,0.6), rgba(197,160,89,0.6)) center/2px 20px no-repeat,
        linear-gradient(rgba(197,160,89,0.6), rgba(197,160,89,0.6)) center/13px 2px no-repeat;
}

/* Hero-featured segmented countdown — its OWN dedicated row, BELOW the
   stats and ABOVE the secondary "View Details" link. A hairline top
   divider + generous vertical margin keep it clearly separated so it
   supports urgency without ever touching or competing with the buttons.
   (Absolute positioning from the legacy .comp-countdown rule is reset
   above, so this can never overlay the lower button area.) */
.hero-featured-countdown {
    margin: 8px 0 20px;
    padding-top: 14px;
    border-top: 1px solid rgba(255,255,255,0.07);
}
.hero-featured-countdown .countdown-segments-sm { width: 100%; }
/* HOMEPAGE-COMPETITION-CARD-UX-1 — small gold "Time remaining" eyebrow above
   the segments + larger segment numerals so the timer reads clearly on desktop
   and mobile (controlled, not casino-style). */
.hero-featured-cd-label {
    display: block;
    margin-bottom: 8px;
    font-size: 0.64rem;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--gold, #c5a059);
    font-weight: 700;
}
.hero-featured-countdown .countdown-segments-sm .countdown-num { font-size: 1.3rem; }
.hero-featured-countdown .countdown-segments-sm .countdown-seg { min-width: 60px; padding: 9px 11px; }
.hero-featured-cd-tbd,
.featured-comp-cd-tbd {
    display: inline-block;
    font-size: 0.85rem;
    font-style: italic;
    color: #b8a888;
}

/* Urgency lines — quiet supporting copy above the CTA on all surfaces. */
.hero-featured-urgency,
.featured-comp-urgency {
    font-size: 0.76rem;
    line-height: 1.5;
    color: #a39e93;
    margin: 0 0 16px;
}

/* Missing-data fallbacks — muted italic so they read as "to be confirmed"
   rather than a real value. Works on the dark homepage surfaces. */
.hero-featured-meta dd.is-fallback,
.featured-comp-value.is-fallback,
.comp-card-upgraded-meta .upgraded-value.is-fallback {
    font-style: italic;
    font-weight: 500;
    color: #b8a888;
}

/* Make the spotlight + grid stat rows comfortably hold three columns. */
.featured-comp-meta { grid-template-columns: repeat(3, 1fr); }
.comp-card-upgraded-meta { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
@media (max-width: 600px) {
    .featured-comp-meta { grid-template-columns: 1fr 1fr; }
}
/* End competition card conversion parity */

/* ═══════════════════════════════════════════════════════════════════
   Competition detail — entry composition (Phase 2)
   Watch-details grid + entry selector + billing/contact shell + live
   order summary, inside the skill-qualified entry step. Dark luxury to
   match the .cd-hero. No payment is taken and no card is captured today —
   the entry button confirms the skill-qualified entry free of charge.
   Structure is ready for future Stripe / Apple Pay / card wiring.
   ═══════════════════════════════════════════════════════════════════ */
.cd-checkout-h {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 1.15rem;
    color: #f5f1e8;
    margin: 0 0 14px;
}
.cd-checkout-watch {
    margin: 22px 0 4px;
    padding: 18px 20px;
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(212, 175, 55, 0.16);
    border-radius: 8px;
}
.cd-watch-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 12px 20px;
    margin: 0;
}
.cd-watch-grid > div { min-width: 0; }
.cd-watch-grid dt {
    margin: 0 0 2px;
    font-size: 0.66rem;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    color: rgba(212, 175, 55, 0.9);
}
.cd-watch-grid dd {
    margin: 0;
    font-size: 0.95rem;
    color: #f0ece4;
    font-weight: 600;
    word-break: break-word;
}
/* Order summary — dark panel with a gold hairline. */
.cd-order-summary {
    margin: 22px 0 6px;
    padding: 20px 22px;
    background: #0f0f12;
    border: 1px solid rgba(212, 175, 55, 0.2);
    border-radius: 8px;
}
.cd-order-selector {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 14px;
}
.cd-order-selector label {
    font-size: 0.8rem;
    letter-spacing: 0.5px;
    color: #cfc8ba !important;
}
.cd-order-selector select {
    min-width: 84px;
    padding: 8px 12px;
    border-radius: 4px;
    background: #1a1820 !important;
    color: #f5f1e8 !important;
    border: 1px solid rgba(212, 175, 55, 0.25) !important;
}
.cd-order-line,
.cd-order-total {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 12px;
    padding: 7px 0;
    font-size: 0.92rem;
    color: #d9d4c8;
}
.cd-order-line span:first-child,
.cd-order-total span:first-child { color: rgba(245, 241, 232, 0.7); }
.cd-order-total {
    margin-top: 6px;
    padding-top: 12px;
    border-top: 1px solid rgba(212, 175, 55, 0.18);
    font-size: 1.1rem;
    font-weight: 700;
    color: #f5f1e8;
}
.cd-order-total span:last-child { color: var(--gold, #c5a059); }
.cd-order-note {
    margin: 12px 0 0;
    font-size: 0.76rem;
    line-height: 1.5;
    color: rgba(245, 241, 232, 0.6);
}
@media (max-width: 560px) {
    .cd-order-selector { flex-direction: column; align-items: stretch; gap: 8px; }
    .cd-order-selector select { width: 100%; }
}

/* ── Checkout-style Confirm Entry step — two-column dark layout ──────────
   LEFT = Billing & Contact Details, RIGHT = Order Summary + prize recap.
   All-dark MS Luxury (gold hairlines, ivory text); no white blocks, no card
   fields. Stacks to one column on tablet/mobile (form first). */
.cd-checkout {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(0, 0.95fr);
    gap: 26px;
    align-items: start;
    margin: 4px 0 8px;
}
.cd-checkout-aside {
    display: flex;
    flex-direction: column;
    gap: 18px;
    position: sticky;
    top: 92px; /* clears the fixed header without crowding it */
}
/* Billing heading row + the (placeholder) account-connect link. */
.cd-checkout-head {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 6px 14px;
    margin-bottom: 6px;
}
.cd-checkout-head h3 { margin: 0; }
.cd-connect-now {
    font-size: 0.76rem;
    color: rgba(245, 241, 232, 0.6);
}
/* "Already have an account? Login / Connect" — neat, small, dark MS Luxury.
   The Login/Connect control is a small Rolex-green outline button; the helper
   sits quietly beneath it (account connection is a future build). */
.cd-connect-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 10px;
    width: 100%;
    margin-top: 4px;
}
.cd-connect-q {
    font-size: 0.78rem;
    color: rgba(245, 241, 232, 0.72);
}
.cd-connect-btn {
    display: inline-block;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    text-decoration: none;
    padding: 6px 14px;
    border-radius: 2px;
    color: #d8e8df;
    background: rgba(20, 81, 59, 0.18);
    border: 1px solid rgba(197, 160, 89, 0.5);
    transition: background 0.18s ease, border-color 0.18s ease, color 0.18s ease;
}
.cd-connect-btn:hover {
    background: linear-gradient(135deg, #0d3b2c 0%, #14513b 100%);
    border-color: #c5a059;
    color: #f5f1e8;
}
.cd-connect-hint {
    flex-basis: 100%;
    font-size: 0.72rem;
    color: rgba(245, 241, 232, 0.5);
}
.cd-field-note {
    margin: 6px 0 0;
    font-size: 0.74rem;
    line-height: 1.5;
    color: rgba(245, 241, 232, 0.55);
}
/* Order-summary watch identity (thumbnail + title + worth). */
.cd-order-watch {
    display: flex;
    align-items: center;
    gap: 14px;
    padding-bottom: 14px;
    margin-bottom: 6px;
    border-bottom: 1px solid rgba(212, 175, 55, 0.18);
}
.cd-order-thumb {
    flex: 0 0 auto;
    width: 64px;
    height: 64px;
    border-radius: 10px;
    background: #0c0913 center/cover no-repeat;
    border: 1px solid rgba(197, 160, 89, 0.45);
    box-shadow: inset 0 0 30px rgba(0, 0, 0, 0.5);
}
.cd-order-thumb-fallback {
    background:
        radial-gradient(circle at 32% 28%, rgba(197,160,89,0.30) 0%, transparent 60%),
        linear-gradient(135deg, #1d142b 0%, #0a0612 70%);
}
.cd-order-watch-meta { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.cd-order-watch-title {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 1rem;
    color: #f5f1e8;
    line-height: 1.25;
}
.cd-order-watch-worth {
    font-size: 0.76rem;
    letter-spacing: 0.4px;
    color: var(--gold, #c5a059);
}
/* Selected-entries +/- stepper. */
.cd-order-qty-row { align-items: center; }
.cd-qty-stepper {
    display: inline-flex;
    align-items: center;
    gap: 12px;
}
.cd-qty-step {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    border: 1px solid rgba(197, 160, 89, 0.5);
    background: rgba(197, 160, 89, 0.08);
    color: #c5a059;
    font-size: 1rem;
    line-height: 1;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background 0.18s ease, border-color 0.18s ease;
}
.cd-qty-step:hover { background: rgba(197, 160, 89, 0.18); border-color: #c5a059; }
.cd-order-qty-row #cdOrderQty {
    min-width: 64px;
    text-align: center;
    color: #f5f1e8;
    font-weight: 600;
}
/* Coupon — present but disabled until coupon logic exists (no fake discount). */
.cd-order-coupon {
    display: flex;
    gap: 8px;
    margin-top: 14px;
}
.cd-coupon-input {
    flex: 1;
    min-width: 0;
    padding: 9px 12px;
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(197, 160, 89, 0.22);
    color: #f5f1e8;
    font-size: 0.85rem;
}
.cd-coupon-input::placeholder { color: #8f887c; }
.cd-coupon-apply {
    flex: 0 0 auto;
    padding: 9px 18px;
    border-radius: 6px;
    border: 1px solid rgba(197, 160, 89, 0.4);
    background: transparent;
    color: var(--gold, #c5a059);
    font-size: 0.78rem;
    letter-spacing: 1px;
    text-transform: uppercase;
}
.cd-coupon-input:disabled,
.cd-coupon-apply:disabled { opacity: 0.5; cursor: not-allowed; }
.cd-coupon-note {
    display: block;
    margin-top: 6px;
    font-size: 0.7rem;
    font-style: italic;
    color: rgba(245, 241, 232, 0.45);
}
/* Age / terms confirmations. */
.quiz-legal .checkbox-label + .checkbox-label { margin-top: 12px; }
/* Optional marketing opt-in stays clearly secondary to the two mandatory
   confirmations above it (CHECKOUT-CONFIRMATION-UX-1). */
.checkbox-label-optional { opacity: 0.72; font-size: 0.84rem; }
.cd-age-note {
    margin: 12px 0 0;
    font-size: 0.74rem;
    line-height: 1.55;
    color: rgba(245, 241, 232, 0.55);
}
.cd-checkout-secure-note {
    margin: 10px 0 0;
    text-align: center;
    font-size: 0.74rem;
    line-height: 1.5;
    color: rgba(245, 241, 232, 0.5);
}
@media (max-width: 860px) {
    .cd-checkout { grid-template-columns: 1fr; gap: 20px; }
    .cd-checkout-aside { position: static; top: auto; }
}
/* CHECKOUT-CONFIRMATION-UX-1 — on desktop, place the age/terms confirmations
   in the LEFT column directly beneath the billing fields (grid row 2) while the
   order-summary aside spans both rows on the right. This removes the large empty
   gap that appeared when the taller right column pushed the confirmations down,
   so the required checkboxes sit close to the checkout action. Below 860px the
   grid is a single column and the confirmations fall in natural source order. */
@media (min-width: 861px) {
    .cd-checkout-form  { grid-column: 1; grid-row: 1; }
    .cd-checkout-aside { grid-column: 2; grid-row: 1 / span 2; }
    .cd-checkout > .quiz-legal { grid-column: 1; grid-row: 2; align-self: start; margin: 0; }
}
/* End competition detail checkout composition */

/* ─────────────────────────────────────────────────────────────────────
   UX-VISUAL-1 — homepage hero + competition-detail luxury polish.
   Pure additive CSS. Does not redefine layout containers; instead
   strengthens contrast, hierarchy, and tap-targets on top of the
   existing dark-luxury palette. Hebrew RTL is handled by the
   inherited [dir="rtl"] rules earlier in this file.
   ───────────────────────────────────────────────────────────────────── */

/* ── Homepage featured competition card — premium product framing ──
   HOMEPAGE-COMPETITION-CARD-UX-1 — the featured watch is the homepage's single
   product surface, so it gets a product-friendly 1:1 frame with `contain`
   sizing (the whole watch is shown — no aggressive 16:9 cover crop) on a deep
   plum-black plinth with a gold hairline rim. The heavy bottom vignette that
   used to swallow the dial is gone; a faint radial spotlight (::before) adds
   depth without hiding the watch. */
.hero-featured-card.hero-action-module .hero-featured-media {
    aspect-ratio: 1 / 1;
    min-height: 0;
    max-height: 480px;
    background-color: #15101f;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    background-origin: content-box;
    padding: 18px;
    box-shadow:
        inset 0 0 0 1px rgba(197,160,89,0.30),
        0 24px 56px rgba(0,0,0,0.5),
        0 8px 18px rgba(0,0,0,0.3);
}
.hero-featured-card.hero-action-module .hero-featured-media::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 50% 42%, rgba(197,160,89,0.12) 0%, transparent 60%);
    pointer-events: none;
    z-index: 0;
}
.hero-featured-card .hero-featured-badge {
    background: linear-gradient(135deg, rgba(197,160,89,0.95), rgba(168,135,69,0.95));
    color: #0c0c0d;
    letter-spacing: 1.5px;
    font-weight: 700;
    padding: 7px 14px;
    border-radius: 999px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.35);
}
.hero-featured-card .hero-featured-model {
    font-size: clamp(1.55rem, 2.4vw, 1.95rem);
    line-height: 1.18;
    color: #f5f1e8;
    margin: 6px 0 4px;
}
.hero-featured-card .hero-featured-brand {
    font-size: 0.76rem;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: #c5a059;
    font-weight: 600;
}
.hero-featured-card .hero-featured-meta {
    border-top: 1px solid rgba(197,160,89,0.22);
    border-bottom: 1px solid rgba(197,160,89,0.22);
    padding: 14px 0;
    margin: 14px 0 14px;
}
.hero-featured-card .hero-featured-meta dt {
    font-size: 0.7rem;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: rgba(245,241,232,0.62);
}
.hero-featured-card .hero-featured-meta dd {
    font-size: 1.02rem;
    color: #f5f1e8;
    font-weight: 600;
    margin-top: 4px;
}
/* HOMEPAGE-COMPETITION-CARD-UX-1 — lift Entry Price + Maximum Entries above the
   reference "Watch Value" line so the two conversion-critical numbers (cost +
   limited-entry cap) are the easiest to scan. */
.hero-featured-card .hero-featured-meta dd.is-key {
    color: #e8cf92;
    font-size: 1.08rem;
    font-weight: 700;
}
@media (max-width: 480px) {
    /* HOMEPAGE-COMPETITION-CARD-UX-1 — the 1:1 aspect-ratio drives the height on
       every viewport now; just tighten the image padding + meta spacing on small
       phones so the square never crowds the card. */
    .hero-featured-card.hero-action-module .hero-featured-media { padding: 12px; }
    .hero-featured-card .hero-featured-meta { padding: 12px 0; gap: 8px; }
}

/* ── Countdown — boxed segments with subtle gold rim ── */
.hero-featured-countdown .countdown-seg,
.cd-hero-countdown .countdown-seg {
    background: linear-gradient(180deg, rgba(20,20,22,0.85), rgba(8,8,10,0.85));
    border: 1px solid rgba(197,160,89,0.32);
    border-radius: 6px;
    padding: 8px 10px;
    min-width: 54px;
    box-shadow: inset 0 0 0 1px rgba(245,241,232,0.04);
}
.hero-featured-countdown .countdown-num,
.cd-hero-countdown .countdown-num {
    font-family: 'Playfair Display', Georgia, serif;
    font-weight: 700;
    color: #f5f1e8;
    text-shadow: 0 1px 0 rgba(0,0,0,0.4);
}
.hero-featured-countdown .countdown-unit,
.cd-hero-countdown .countdown-unit {
    color: rgba(197,160,89,0.85);
    letter-spacing: 1.5px;
    font-size: 0.62rem;
    text-transform: uppercase;
}
.cd-timer-row .cd-timer-label {
    color: rgba(245,241,232,0.78);
    letter-spacing: 1.6px;
    font-size: 0.72rem;
    text-transform: uppercase;
}

/* ── Competition-detail title — higher contrast, brighter eyebrow ── */
.cd-entry-panel .cd-eyebrow {
    color: #d4b46c;
    font-size: 0.74rem;
    letter-spacing: 2.4px;
    font-weight: 700;
}
.cd-entry-panel .cd-headline {
    color: #faf6ec;
    font-family: 'Playfair Display', Georgia, serif;
    font-size: clamp(1.65rem, 3.2vw, 2.25rem);
    line-height: 1.18;
    margin: 6px 0 8px;
    text-shadow: 0 1px 0 rgba(0,0,0,0.35);
}
.cd-entry-panel .cd-subtitle {
    color: rgba(245,241,232,0.82);
    font-size: 0.98rem;
    line-height: 1.55;
    margin: 0 0 18px;
}

/* ── Commercial facts row — bordered card, gold dividers ── */
.cd-entry-panel .cd-hero-meta {
    background: linear-gradient(180deg, rgba(20,20,22,0.55), rgba(10,10,12,0.55));
    border: 1px solid rgba(197,160,89,0.22);
    border-radius: 10px;
    padding: 14px 16px;
    margin: 0 0 16px;
}
.cd-entry-panel .cd-hero-meta dt {
    color: rgba(197,160,89,0.9);
    font-size: 0.7rem;
    letter-spacing: 2px;
    text-transform: uppercase;
    font-weight: 600;
}
.cd-entry-panel .cd-hero-meta dd {
    color: #faf6ec;
    font-size: 1.05rem;
    font-weight: 600;
    margin-top: 4px;
}

/* ── Progress bar — taller, gold gradient fill ── */
.cd-progress-track {
    height: 8px;
    background: rgba(245,241,232,0.08);
    border-radius: 999px;
    overflow: hidden;
}
.cd-progress-fill {
    height: 100%;
    background: linear-gradient(90deg, #c5a059 0%, #d4b46c 60%, #e6c98a 100%);
    border-radius: 999px;
    transition: width 240ms ease-out;
}
.cd-progress-meta {
    display: flex;
    justify-content: space-between;
    margin-top: 8px;
    font-size: 0.82rem;
    color: rgba(245,241,232,0.78);
}
.cd-progress-meta strong { color: #faf6ec; }

/* ── Entry quantity buttons — stronger active state, bigger tap target ── */
.cd-entry-select .cd-qty {
    min-width: 44px;
    min-height: 44px;
    border: 1px solid rgba(197,160,89,0.35);
    background: rgba(20,20,22,0.55);
    color: #f5f1e8;
    transition: transform 140ms ease-out, border-color 140ms, background 140ms;
}
.cd-entry-select .cd-qty:hover {
    border-color: rgba(197,160,89,0.75);
    background: rgba(30,28,22,0.7);
    transform: translateY(-1px);
}
.cd-entry-select .cd-qty.is-active {
    background: linear-gradient(135deg, #c5a059, #d4b46c);
    color: #0c0c0d;
    border-color: #d4b46c;
    box-shadow: 0 4px 12px rgba(197,160,89,0.28);
}
/* VIP-PACK-SELECTED-CONTRAST-FIX-1 — when a VIP card is selected
   the outer card flips to a Rolex-gold gradient (rule above), but
   the inner spans (`.cd-vip-qty`, `.cd-vip-qty-label`,
   `.cd-vip-total`, `.cd-vip-badge`) carry their own color
   declarations from .cd-vip-* and stayed light/white — invisible
   on the gold surface. These selectors flip every inner text
   surface to Rolex green / dark green when the card is active so
   the selection reads as decisively premium AND readable. Hover
   on the active card inherits the same dark text. Focus-visible
   adds a dark-green outline that contrasts with both the gold
   card AND the dark page background. */
.cd-entry-select .cd-qty.cd-vip.is-active .cd-vip-qty {
    color: #003d26;
}
.cd-entry-select .cd-qty.cd-vip.is-active .cd-vip-qty-label {
    color: rgba(0, 61, 38, 0.72);
}
.cd-entry-select .cd-qty.cd-vip.is-active .cd-vip-total {
    color: #003d26;
}
.cd-entry-select .cd-qty.cd-vip.is-active .cd-vip-badge {
    background: #006039;
    color: var(--gold, #c5a059);
    border-color: #003d26;
}
.cd-entry-select .cd-qty.cd-vip.is-active:hover {
    /* Keep the gold gradient + dark text legible on hover — do NOT
       inherit the dark .cd-qty:hover surface that would turn the
       card back to its inactive look. */
    background: linear-gradient(135deg, #d4b46c, #c5a059);
    border-color: #006039;
    color: #003d26;
}
.cd-entry-select .cd-qty.cd-vip.is-active:focus-visible {
    outline: 2px solid #003d26;
    outline-offset: 2px;
}
.cd-entry-select .cd-vip {
    padding: 10px 14px;
    font-size: 0.88rem;
    font-weight: 600;
}

/* ── Primary CTA on competition detail — canonical Rolex-green primary CTA.
   DESIGN-CTA-CONTINUE-SPECIFICITY-1 — this specific selector previously won the
   cascade over the canonical .cd-continue-btn rule with a Material-green
   gradient (#1b5e20 → #2e7d32) + ivory text (#faf6ec), so the live
   /competitions/:id#entry Continue button read off-family. Re-aligned to the
   platform primary CTA: flat Rolex green #006039 ground + Rolex-gold
   var(--gold,#c5a059) text + gold hairline border, with a flat #007a47 +
   ivory-white hover. The base .cd-continue-btn keeps the 44px tap target and
   the gold :focus-visible ring (neither is overridden here). ── */
.cd-entry-select .cd-continue-btn {
    background: #006039;
    color: var(--gold, #c5a059);
    border: 1px solid rgba(197,160,89,0.55);
    padding: 16px 22px;
    font-size: 0.95rem;
    font-weight: 700;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    box-shadow: 0 6px 20px rgba(0,96,57,0.32), inset 0 1px 0 rgba(255,255,255,0.06);
    transition: transform 160ms, box-shadow 160ms, background 160ms, color 160ms, border-color 160ms;
}
.cd-entry-select .cd-continue-btn:hover {
    background: #007a47;
    color: #fff;
    border-color: var(--gold, #c5a059);
    transform: translateY(-1px);
    box-shadow: 0 10px 28px rgba(0,96,57,0.42), inset 0 1px 0 rgba(255,255,255,0.1);
}

/* ── Trust strip — five compact pills below the action stack ── */
.cd-trust-strip {
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 0;
    margin: 16px 0 0;
}
.cd-trust-pill {
    font-size: 0.72rem;
    letter-spacing: 0.8px;
    color: rgba(245,241,232,0.84);
    border: 1px solid rgba(197,160,89,0.32);
    background: rgba(20,20,22,0.55);
    border-radius: 999px;
    padding: 6px 12px;
}
.cd-trust-pill::before {
    content: '◆';
    color: #c5a059;
    margin-right: 6px;
    font-size: 0.6rem;
}
html[dir="rtl"] .cd-trust-pill::before { margin-right: 0; margin-left: 6px; }
html[dir="rtl"] .cd-trust-pill { letter-spacing: 0; }

/* ── Gallery polish: active thumbnail gets a clear gold rim ── */
.cd-gallery-thumbs .cd-thumb {
    border: 1px solid rgba(245,241,232,0.12);
    border-radius: 6px;
    overflow: hidden;
    transition: border-color 160ms, transform 160ms;
}
.cd-gallery-thumbs .cd-thumb:hover {
    border-color: rgba(197,160,89,0.55);
    transform: translateY(-1px);
}
.cd-gallery-thumbs .cd-thumb.is-active {
    border-color: #c5a059;
    box-shadow: 0 0 0 1px rgba(197,160,89,0.45);
}

/* ── Mobile polish ── */
@media (max-width: 480px) {
    .cd-entry-panel .cd-hero-meta {
        padding: 12px 12px;
    }
    .cd-entry-panel .cd-headline {
        font-size: 1.55rem;
    }
    .cd-trust-strip { gap: 6px; }
    .cd-trust-pill { font-size: 0.68rem; padding: 5px 10px; }
    .cd-gallery-thumbs { overflow-x: auto; -webkit-overflow-scrolling: touch; }
    .cd-gallery-thumbs .cd-thumb { flex: 0 0 64px; min-width: 64px; }
    .cd-entry-select .cd-qty {
        min-width: 40px;
        min-height: 44px;
    }
    .cd-entry-select .cd-continue-btn {
        padding: 14px 18px;
        font-size: 0.88rem;
    }
}
/* End UX-VISUAL-1 polish */

/* ─────────────────────────────────────────────────────────────────────
   UX-VISUAL-2 — final entry-flow polish on top of UX-VISUAL-1.
   Tiny surgical additions only: section-label hierarchy, VIP helper
   note, single-thumbnail polish, mobile trust-strip wrapping.
   No existing rules altered.
   ───────────────────────────────────────────────────────────────────── */

/* Section labels — match the gold uppercase eyebrow treatment so the
   user reads the flow as three distinct stations. */
.cd-entry-select .cd-entry-select-label,
.cd-entry-select .cd-vip-label {
    color: #d4b46c;
    font-size: 0.7rem;
    letter-spacing: 2px;
    font-weight: 700;
    text-transform: uppercase;
    display: block;
    margin-bottom: 10px;
}
.cd-entry-select .cd-vip-label { margin-top: 18px; }
html[dir="rtl"] .cd-entry-select .cd-entry-select-label,
html[dir="rtl"] .cd-entry-select .cd-vip-label {
    /* Avoid tiny uppercase letter-spaced Hebrew per spec. */
    letter-spacing: 0;
    text-transform: none;
    font-size: 0.78rem;
}

/* VIP helper note — small caption clarifying packs are entry bundles. */
.cd-vip-note {
    margin: 8px 0 0;
    font-size: 0.78rem;
    color: rgba(245,241,232,0.62);
    font-style: italic;
}
html[dir="rtl"] .cd-vip-note { font-style: normal; }

/* Lone-thumbnail polish — the schema stores one image per watch today,
   so the rail usually shows a single button. Make it look deliberate
   (centered, slightly larger) so it never reads as a broken empty
   rail. When future multi-image support lands, the :only-child rule
   stops firing automatically. */
.cd-gallery-thumbs .cd-thumb:only-child {
    min-width: 84px;
    height: 84px;
    margin: 0 auto;
}

/* Mobile (≤480px) trust-strip refinements — wrap cleanly, sit just
   above the countdown without crowding the CTA. */
@media (max-width: 480px) {
    .cd-trust-strip {
        margin-top: 14px;
        gap: 5px;
    }
    .cd-trust-pill {
        flex: 1 1 calc(50% - 6px);
        min-width: 0;
        text-align: center;
        padding: 6px 8px;
    }
    .cd-vip-note { font-size: 0.74rem; }
}

/* RTL: drop the tiny letter-spacing on the trust pills entirely so
   Hebrew never reads cramped. */
html[dir="rtl"] .cd-trust-pill { font-size: 0.74rem; }
/* End UX-VISUAL-2 polish */

/* ─────────────────────────────────────────────────────────────────────
   UX-MOBILE-HERO-FIX-1 — mobile-only homepage hero centering + overflow.
   Desktop (>480px) is intentionally untouched. Below 480px the
   homepage hero is forced to a centered single-column layout so:
     - .hero-msl-title never clips a long word ("authenticated")
     - the 3-step .hero-flow stacks vertically with centered rows
       (no awkward two-up wrap that overflows the viewport)
     - the Enter Competition / Explore Collection CTAs stay centered
       with a max-width so they don't stretch edge-to-edge on wide
       phones (Pixel/Z-Fold) while staying tap-friendly
     - the Hebrew RTL eyebrow drops uppercase + tight letter-spacing
       that breaks Hebrew letterforms.
   No EJS / i18n / desktop CSS touched.
   ───────────────────────────────────────────────────────────────────── */
@media (max-width: 480px) {
    .hero-msl .hero-content {
        text-align: center;
        margin-left: auto;
        margin-right: auto;
    }
    .hero-msl-title,
    .hero-msl .hero-content .hero-msl-sub,
    .hero-msl .hero-content > p {
        max-width: 100%;
        margin-left: auto;
        margin-right: auto;
        overflow-wrap: anywhere;
        word-break: normal;
        hyphens: auto;
    }
    /* Slightly tighter clamp than the existing 2.05rem rule so a
       word like "authenticated" never blows past the viewport. */
    .hero-msl-title {
        font-size: clamp(1.7rem, 8.5vw, 2.05rem) !important;
        line-height: 1.12;
    }
    /* Eyebrow + sub stay centered with breathing room. */
    .hero-msl-eyebrow {
        display: inline-block;
    }
    /* 3-step flow — stack vertically, center each row. Cleaner than
       wrap+overflow on a tight viewport. */
    .hero-flow {
        flex-direction: column;
        align-items: center;
        gap: 8px;
        padding: 0;
    }
    .hero-flow-step {
        justify-content: center;
        width: auto;
        max-width: 100%;
    }
    /* CTAs — stay centered, capped to a comfortable max so they don't
       stretch edge-to-edge on slightly wider handsets. */
    .hero-actions {
        align-items: center;
    }
    .hero-actions .cta-btn {
        width: 100%;
        max-width: 320px;
    }
    /* Hebrew RTL — drop the letter-spacing + uppercase that make the
       eyebrow look spaced out and broken in Hebrew. */
    html[dir="rtl"] .hero-msl-eyebrow {
        letter-spacing: 0.5px;
        text-transform: none;
        font-size: 0.7rem;
    }
    /* Hero-flow direction already set on the global RTL rule; the
       stacked column above is direction-agnostic, but make sure the
       step row reads centred and RTL-clean. */
    html[dir="rtl"] .hero-flow {
        direction: rtl;
        align-items: center;
    }
    html[dir="rtl"] .hero-flow-step {
        flex-direction: row-reverse;
    }
}
/* End UX-MOBILE-HERO-FIX-1 */

/* ─────────────────────────────────────────────────────────────────────
   UX-MOBILE-OVERFLOW-FIX-1 — real-device mobile overflow containment.
   Scoped to ≤480px. Desktop untouched.

   Root causes observed on real iPhone/Android Safari:
   - .hero (5% padding) + .hero-grid (5%/22px padding) double-padded
     the inner card on tight viewports.
   - .hero-featured-card had 16px padding with a 0.38 gold border,
     leaving very little room for inner content; the card itself read
     as overflowing because internals clipped at overflow:hidden.
   - .hero-featured-meta grid wanted minmax(110px, 1fr) which forced
     3-column attempts when the column was already < 330px.
   - UX-VISUAL-1 added min-width:54px on .hero-featured-countdown
     .countdown-seg; on real mobile this collided with the available
     width and pushed segments past the card edge.
   - .hero-msl-title with text-shadow + .hero-msl-emph gradient text
     occasionally clipped because the italic span has no soft-break.
   ───────────────────────────────────────────────────────────────────── */
@media (max-width: 480px) {
    /* 1. Hard contain every descendant of the hero on mobile. The
          min-width:0 on grid/flex children is the critical bit — it
          lets them actually shrink rather than push their parents
          wider than the viewport. */
    .hero,
    .hero-grid,
    .hero-grid > *,
    .hero-content,
    .hero-content > *,
    .hero-featured,
    .hero-featured-card,
    .hero-featured-card > *,
    .hero-featured-body,
    .hero-featured-body > * {
        max-width: 100%;
        min-width: 0;
        box-sizing: border-box;
    }

    /* 2. Drop the doubled horizontal padding. .hero gets 0 padding
          (carried forward from the existing ≤600px rule on .hero-msl)
          and .hero-grid uses fixed 16px so 390px viewport gets 358px
          of internal width instead of ~346px. */
    .hero, .hero-msl {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    .hero-grid { padding: 0 16px !important; }

    /* 3. Featured card — tighter padding + slightly smaller radius so
          internals fit and the border line stays clearly visible. */
    .hero-featured-card {
        padding: 14px 12px 18px !important;
        border-radius: 14px;
    }

    /* 4. Title containment — strict overflow guards on the title and
          its italic gradient span. */
    .hero-msl-title {
        max-width: 100% !important;
        overflow-wrap: anywhere !important;
        word-break: normal !important;
        hyphens: auto;
        padding-left: 2px;
        padding-right: 2px;
    }
    .hero-msl-emph {
        display: inline;
        word-break: keep-all;
        overflow-wrap: anywhere;
    }

    /* 5. Meta facts row — force 2 columns with 0 min so the column
          can actually shrink. dt/dd shed letter-spacing and use
          break-word so long currency strings can't push outwards. */
    .hero-featured-meta {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 8px !important;
        padding: 10px 0 !important;
        margin: 0 0 12px !important;
    }
    .hero-featured-meta > div { min-width: 0; max-width: 100%; }
    .hero-featured-meta dt {
        font-size: 0.6rem;
        letter-spacing: 0.8px;
        margin-bottom: 2px;
        white-space: normal;
    }
    .hero-featured-meta dd {
        font-size: 0.82rem;
        word-break: break-word;
        overflow-wrap: anywhere;
        white-space: normal;
    }

    /* 6. Countdown row — cancel UX-VISUAL-1's min-width:54px so the
          4 segments actually fit. Strict 4-column grid with shrinkable
          columns + smaller glyphs. */
    .hero-featured-countdown .countdown-segments-sm,
    .hero-featured-countdown .countdown-segments {
        display: grid !important;
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
        gap: 6px !important;
        width: 100%;
    }
    .hero-featured-countdown .countdown-seg {
        min-width: 0 !important;
        padding: 6px 2px !important;
    }
    .hero-featured-countdown .countdown-num { font-size: 1.05rem; }
    .hero-featured-countdown .countdown-unit {
        font-size: 0.5rem;
        letter-spacing: 0.4px;
    }

    /* 7. CTAs inside the card — always full-width, never let
          letter-spaced uppercase text push the button wider than the
          card's content box. */
    .hero-featured-cta,
    .hero-featured-cta-primary,
    .hero-featured-cta-strong {
        display: block !important;
        width: 100% !important;
        box-sizing: border-box;
        padding-left: 12px !important;
        padding-right: 12px !important;
        white-space: normal;
        letter-spacing: 1px;
    }
    .hero-featured-cta-sub {
        display: block;
        text-align: center;
        font-size: 0.7rem;
        margin-top: 6px;
    }
    .hero-featured-actions-row {
        display: flex !important;
        flex-direction: column !important;
        gap: 8px !important;
        width: 100% !important;
    }

    /* 8. WhatsApp clearance — make sure the floating button never
          overlaps the bottom CTA / countdown area on the featured
          card. The existing rule lifts it to 96px; bump to 110px on
          ≤480px so it clears the card-bottom on shorter handsets. */
    .whatsapp-float {
        bottom: calc(110px + env(safe-area-inset-bottom, 0px)) !important;
        right: 14px;
    }
}

/* Extra-tight handsets (≤380px iPhone SE 1st gen, narrow Androids). */
@media (max-width: 380px) {
    .hero-grid { padding: 0 12px !important; }
    .hero-featured-card { padding: 12px 10px 16px !important; }
    .hero-featured-meta dt { font-size: 0.56rem; letter-spacing: 0.6px; }
    .hero-featured-meta dd { font-size: 0.78rem; }
    .hero-featured-countdown .countdown-num { font-size: 0.96rem; }
    .hero-featured-countdown .countdown-unit { font-size: 0.46rem; }
    .hero-msl-title { font-size: 1.65rem !important; }
}
/* End UX-MOBILE-OVERFLOW-FIX-1 */

/* ─────────────────────────────────────────────────────────────────────
   UX-MOBILE-HERO-STEPS-FIX-1 — luxury mobile hero process steps.
   Scoped to ≤480px. Desktop layout untouched.

   The prior UX-MOBILE-HERO-FIX-1 stacked the .hero-flow vertically
   and centered each row, but the result still read as a loose list:
   number circles sat at different x-positions across rows because
   each row was independently centered, and the labels lacked
   premium tone.

   This block makes the three steps read as a single refined vertical
   process:
   - the OL is centered with a fixed 300px max-width so each row
     shares the same left edge for the number circle
   - each step row is a flex line that justifies to flex-start
     (the OL itself is centered) so the gold circles line up
   - the number glyphs become small, refined Playfair characters
     inside a thin gold-rim disc with a subtle dark gradient fill —
     reads as luxury chapter markers rather than chips
   - the label uses cream text at a comfortable size with no
     uppercase / letter-spacing
   - RTL flips the row so the circle sits on the right; Hebrew
     labels get a slightly higher base size so they don't read
     thin alongside the gold circle.
   ───────────────────────────────────────────────────────────────────── */
@media (max-width: 480px) {
    .hero-msl .hero-content .hero-flow {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 12px;
        margin: 4px auto 22px;
        padding: 0;
        width: 100%;
        max-width: 300px;
        list-style: none;
    }
    .hero-msl .hero-content .hero-flow-step {
        display: flex;
        align-items: center;
        justify-content: flex-start;
        gap: 12px;
        width: 100%;
        max-width: 300px;
        margin: 0;
        padding: 0;
        text-align: left;
    }
    .hero-msl .hero-content .hero-flow-num {
        flex: 0 0 28px;
        width: 28px;
        height: 28px;
        min-width: 28px;
        border-radius: 50%;
        border: 1px solid rgba(197,160,89,0.7);
        background: linear-gradient(135deg, rgba(20,20,22,0.7), rgba(8,8,10,0.7));
        color: #d4b46c;
        font-family: 'Playfair Display', Georgia, serif;
        font-size: 0.86rem;
        font-weight: 700;
        line-height: 1;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        box-shadow:
            inset 0 1px 0 rgba(255,255,255,0.06),
            0 2px 6px rgba(0,0,0,0.35);
    }
    .hero-msl .hero-content .hero-flow-label {
        color: #f5f1e8;
        font-family: 'Inter', sans-serif;
        font-size: 0.88rem;
        line-height: 1.4;
        font-weight: 400;
        letter-spacing: 0;
        text-transform: none;
        flex: 1 1 auto;
        min-width: 0;
        word-break: normal;
        overflow-wrap: anywhere;
    }

    /* Hebrew RTL — flip the row so the gold circle sits on the right
       of the Hebrew label and read order remains natural. Slightly
       larger label size so Hebrew letterforms don't read thin against
       the gold circle. */
    html[dir="rtl"] .hero-msl .hero-content .hero-flow-step {
        flex-direction: row-reverse;
        text-align: right;
    }
    html[dir="rtl"] .hero-msl .hero-content .hero-flow-label {
        font-size: 0.94rem;
        letter-spacing: 0;
    }
}

/* Extra-tight handsets (≤380px) — small step shrink so the OL still
   centers without crowding. */
@media (max-width: 380px) {
    .hero-msl .hero-content .hero-flow { max-width: 260px; gap: 10px; }
    .hero-msl .hero-content .hero-flow-step { max-width: 260px; gap: 10px; }
    .hero-msl .hero-content .hero-flow-num { flex-basis: 26px; width: 26px; height: 26px; min-width: 26px; font-size: 0.8rem; }
    .hero-msl .hero-content .hero-flow-label { font-size: 0.84rem; }
    html[dir="rtl"] .hero-msl .hero-content .hero-flow-label { font-size: 0.9rem; }
}
/* End UX-MOBILE-HERO-STEPS-FIX-1 */

/* ─────────────────────────────────────────────────────────────────────
   UX-MOBILE-HERO-SALES-1 — mobile-only image-first hero layout.
   Scoped to ≤480px. Desktop layout untouched. No EJS changes, no
   copy changes (BILINGUAL-LOCK unaffected).

   Approach: CSS-only reorder using flexbox + order on the
   .hero-grid-integrated children. The .hero-featured (watch card)
   sits in DOM order AFTER .hero-content on desktop because the
   right-column visual order matches it; on mobile WebKit it was
   stacking below the headline+steps. By switching the integrated
   grid to flex-column on mobile and setting order:1 on .hero-featured
   + order:2 on .hero-content, the first thing the user sees becomes
   the watch image card itself — which already contains the brand,
   model, primary "Enter Competition" CTA (with per-entry price),
   value / entry price / max entries, and countdown. The hero text
   (MS Luxury badge → headline → subtitle → 1/2/3 steps → secondary
   CTAs) becomes the supporting story below.
   ───────────────────────────────────────────────────────────────────── */
@media (max-width: 480px) {
    /* 1. Flip the integrated grid to a flex column on mobile so the
          order property takes effect deterministically. */
    .hero-grid-integrated {
        display: flex !important;
        flex-direction: column !important;
        gap: 22px !important;
    }
    .hero-grid-integrated .hero-featured {
        order: 1 !important;
        width: 100%;
    }
    .hero-grid-integrated .hero-content {
        order: 2 !important;
        margin-top: 0;
    }

    /* 2. Now that the watch card is the first emotional unit on
          mobile, the supporting hero text can shed some weight. The
          headline still reads at its existing clamp (1.7rem→2.05rem)
          but the surrounding margins tighten so the text block doesn't
          look like a second separate hero. */
    .hero-msl .hero-content .hero-msl-eyebrow {
        margin-bottom: 6px;
    }
    .hero-msl .hero-content .hero-msl-title {
        margin: 0 0 10px;
    }
    .hero-msl .hero-content .hero-msl-sub {
        margin: 0 0 14px;
        font-size: 0.92rem;
        line-height: 1.5;
    }

    /* 3. Demote the 1/2/3 process steps so they no longer compete
          with the watch image. They stay luxury (gold-rim Playfair
          discs from UX-MOBILE-HERO-STEPS-FIX-1) but shrink the
          surrounding margins and label colour so the eye registers
          them as a supporting explanation, not the primary content. */
    .hero-msl .hero-content .hero-flow {
        margin: 6px auto 16px;
        opacity: 0.92;
    }
    .hero-msl .hero-content .hero-flow-label {
        color: rgba(245, 241, 232, 0.84);
    }

    /* 4. The .hero-actions CTAs in the left column become a quieter
          secondary pair — the primary action already lives inside the
          watch card. Keep them visible and tappable; tone their
          margin-top so they sit close to the steps as one block. */
    .hero-msl .hero-actions {
        margin-top: 4px;
    }
}
/* End UX-MOBILE-HERO-SALES-1 */

/* ── HOMEPAGE-UX-1 — slim top trust strip (above navigation) ──────── */
/*  A discreet luxury dark/champagne bar that confirms the four trust
    signals every visitor needs in the first second: secure payments,
    MS Luxury, skill-based, verified draw, limited entries. No images,
    no animation, no banner real estate. Renders above the lang-bar
    and nav. Mobile collapses to a single horizontally-scrolling
    track so the strip never wraps to a second line on 390px. */
.trust-strip {
    background:
        linear-gradient(90deg,
            rgba(13, 13, 15, 0.94) 0%,
            rgba(20, 20, 22, 0.94) 50%,
            rgba(13, 13, 15, 0.94) 100%);
    border-bottom: 1px solid rgba(197, 160, 89, 0.22);
    color: rgba(245, 241, 232, 0.78);
    font-size: 0.66rem;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    font-weight: 600;
    line-height: 1.4;
    overflow: hidden;
    width: 100%;
    box-sizing: border-box;
}
.trust-strip-track {
    list-style: none;
    margin: 0;
    padding: 7px 16px;
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: center;
    gap: 14px;
    max-width: 1280px;
    margin-left: auto;
    margin-right: auto;
    overflow-x: auto;
    scrollbar-width: none;
    -ms-overflow-style: none;
    /* Allow gentle scroll on narrow widths without scrollbars showing. */
}
.trust-strip-track::-webkit-scrollbar { display: none; }
.trust-strip-track li {
    flex: 0 0 auto;
    white-space: nowrap;
}
.trust-strip-sep {
    color: rgba(197, 160, 89, 0.55);
    font-size: 0.68rem;
    line-height: 1;
    padding: 0 2px;
}
/* RTL — Hebrew flows right-to-left, but the strip's content order
   stays the same; flexbox handles the swap when document dir="rtl". */
html[dir="rtl"] .trust-strip-track {
    direction: rtl;
}

/* Mobile (≤480px): tighter padding, slightly smaller type, and the
   row stays single-line via overflow-x:auto so the user can swipe to
   read the remaining items without pushing the page width. */
@media (max-width: 480px) {
    .trust-strip { font-size: 0.6rem; letter-spacing: 1.1px; }
    .trust-strip-track {
        padding: 6px 12px;
        gap: 10px;
        justify-content: flex-start;
    }
}
@media (max-width: 380px) {
    .trust-strip { font-size: 0.58rem; }
    .trust-strip-track { padding: 6px 10px; gap: 8px; }
}

/* Admin pages opt out via body[data-no-trust-bar] — the admin shell
   carries its own header chrome and the trust strip would be noise
   inside the workspace. */
body[data-no-trust-bar] .trust-strip { display: none; }
/* End HOMEPAGE-UX-1 */
