/**
 * PropFlagger — Gold × Deep Purple Design System
 * Complete token override + all global UI components.
 * Replaces the blue/teal palette from style.css entirely.
 * Matches the standalone pfg-home.html pixel-for-pixel.
 *
 * Load order: after style.css, before homepage.css
 * @package PropFlagger
 * @version 3.0.0
 */

/* ==========================================================================
   FONT IMPORT — Cormorant Garamond + Outfit + JetBrains Mono
   ========================================================================== */
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;600;700&family=Outfit:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap');

/* ==========================================================================
   DESIGN TOKEN OVERRIDES
   ========================================================================== */
:root {
    /* Canvas layers */
    --ink:   #07050f;
    --ink2:  #0e0b1c;
    --ink3:  #160f2a;
    --ink4:  #1e1538;
    --ink5:  #281e47;

    /* Map to theme vars */
    --color-canvas:       var(--ink);
    --color-bg:           var(--ink);
    --color-bg-card:      var(--ink2);
    --color-bg-elevated:  var(--ink3);
    --color-bg-hover:     var(--ink4);
    --color-bg-active:    var(--ink5);

    /* Gold accent */
    --gold:     #c9a84c;
    --gold-l:   #e8c76a;
    --gold-d:   rgba(201,168,76,.12);
    --gold-g:   rgba(201,168,76,.25);
    --gold-ln:  rgba(201,168,76,.18);

    /* Purple */
    --purple:   #7c3aed;
    --purple-m: #6d28d9;
    --purple-d: rgba(124,58,237,.15);

    /* Violet */
    --violet:   #a78bfa;
    --violet-d: rgba(167,139,250,.12);

    /* Semantic */
    --jade:     #10b981;
    --jade-d:   rgba(16,185,129,.12);
    --crimson:  #ef4444;
    --amber:    #f59e0b;

    /* Text scale */
    --t0: #f5f0ff;
    --t1: #d4c9f0;
    --t2: #8b7aaa;
    --t3: #4d4169;
    --t4: #2d2550;

    /* Borders — map to theme vars */
    --border:              rgba(201,168,76,.10);
    --border-h:            rgba(201,168,76,.22);
    --border-p:            rgba(124,58,237,.25);
    --color-border:        rgba(201,168,76,.10);
    --color-border-hover:  rgba(201,168,76,.22);
    --color-border-glow:   rgba(201,168,76,.25);
    --color-border-focus:  rgba(201,168,76,.5);

    /* Brand — remap theme vars to gold/purple */
    --color-primary:       var(--gold);
    --color-primary-light: var(--gold-l);
    --color-primary-dark:  #b8932e;
    --color-primary-dim:   var(--gold-d);
    --color-primary-glow:  var(--gold-g);
    --color-accent:        var(--jade);
    --color-accent-dim:    var(--jade-d);
    --color-warning:       var(--amber);
    --color-danger:        var(--crimson);

    /* Text — remap */
    --color-text:           var(--t0);  /* primary body text — used throughout templates */
    --color-text-primary:   var(--t0);
    --color-text-secondary: var(--t2);
    --color-text-tertiary:  var(--t3);
    --color-text-muted:     var(--t3);
    --color-text-inverse:   var(--ink);

    /* Typography */
    --serif:         'Cormorant Garamond', Georgia, serif;
    --sans:          'Outfit', system-ui, sans-serif;
    --mono:          'JetBrains Mono', monospace;
    --font-display:  var(--serif);
    --font-body:     var(--sans);
    --font-mono:     var(--mono);

    /* Easing */
    --ease-out:        cubic-bezier(.22,1,.36,1);
    --ease-out-quint:  cubic-bezier(.22,1,.36,1);
    --ease-spring:     cubic-bezier(.34,1.56,.64,1);

    /* Shadows */
    --shadow-card:  0 4px 24px rgba(0,0,0,.5);
    --shadow-glow:  0 0 40px rgba(201,168,76,.08), 0 8px 32px rgba(0,0,0,.5);
    --shadow-lg:    0 16px 48px rgba(0,0,0,.6);

    /* Radii — keep existing but add round */
    --radius-sm:   6px;
    --radius-md:   10px;
    --radius-lg:   14px;
    --radius-xl:   22px;
    --radius-2xl:  32px;
    --radius-full: 9999px;
}

/* ==========================================================================
   GLOBAL BASE — body, selection, scrollbar
   ========================================================================== */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html { font-size: 16px; scroll-behavior: smooth; }

body {
    font-family: var(--sans);
    background: var(--ink);
    color: var(--t1);
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
    overflow-x: hidden;
    background-image:
        radial-gradient(ellipse 100% 60% at 50% -10%, rgba(124,58,237,.12) 0%, transparent 65%),
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)' opacity='0.028'/%3E%3C/svg%3E");
}

::-webkit-scrollbar { width: 4px; }
::-webkit-scrollbar-track { background: var(--ink); }
::-webkit-scrollbar-thumb { background: var(--border-h); border-radius: 99px; }
::selection { background: var(--gold-d); color: var(--gold-l); }

a { color: inherit; text-decoration: none; transition: color .15s; }
a:hover { color: var(--t0); }
img { display: block; max-width: 100%; }
ul, ol { list-style: none; }
button { font-family: var(--sans); cursor: pointer; border: none; background: none; }

/* ==========================================================================
   TYPOGRAPHY — Cormorant Garamond headings
   ========================================================================== */
h1, h2, h3, h4, h5, h6 {
    font-family: var(--serif);
    font-weight: 700;
    line-height: 1.15;
    color: var(--t0);
    letter-spacing: -.02em;
}

h1 { font-size: clamp(2rem, 5vw, 3.8rem); }
h2 { font-size: clamp(1.6rem, 3.5vw, 2.8rem); }
h3 { font-size: clamp(1.2rem, 2.5vw, 1.6rem); }
h4 { font-size: 1.1rem; }

p { margin-bottom: 1rem; color: var(--t2); }
p:last-child { margin-bottom: 0; }
strong { color: var(--t0); font-weight: 600; }

code {
    font-family: var(--mono);
    background: var(--ink3);
    padding: 2px 6px;
    border-radius: var(--radius-sm);
    font-size: .875rem;
    color: var(--jade);
}

/* ==========================================================================
   LAYOUT
   ========================================================================== */
.container {
    width: 100%;
    max-width: 1260px;
    margin: 0 auto;
    padding: 0 28px;
}
.container--narrow { max-width: 900px; }
.container--wide   { max-width: 1440px; }
.section    { padding: 88px 0; }
.section-sm { padding: 60px 0; }

/* Grid helpers */
.grid { display: grid; gap: 18px; }
.grid--2 { grid-template-columns: repeat(auto-fit, minmax(300px,1fr)); }
.grid--3 { grid-template-columns: repeat(auto-fit, minmax(260px,1fr)); }
.grid--4 { grid-template-columns: repeat(auto-fit, minmax(220px,1fr)); }

/* ==========================================================================
   SECTION HEADER — eyebrow + title + subtitle
   ========================================================================== */
.section__header, .section-hd {
    margin-bottom: 52px;
}
.section__header { text-align: center; }
.section-hd-center { text-align: center; }
.section-hd-center .section-sub { margin: 0 auto; }

.section__eyebrow, .eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    height: 26px;
    padding: 0 11px;
    font-family: var(--mono);
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--gold);
    border: 1px solid var(--gold-ln);
    border-radius: var(--radius-full);
    background: var(--gold-d);
    margin-bottom: 18px;
}

.eyebrow-dot {
    width: 5px; height: 5px;
    border-radius: 50%;
    background: var(--gold);
    animation: pfg-pulse 2s ease-in-out infinite;
    flex-shrink: 0;
}

@keyframes pfg-pulse {
    0%, 100% { opacity: 1; transform: scale(1); }
    50%       { opacity: .35; transform: scale(.65); }
}

.section__title, .section-hd h2 {
    font-family: var(--serif);
    font-size: clamp(1.8rem, 3vw, 2.8rem);
    font-weight: 700;
    letter-spacing: -.02em;
    color: var(--t0);
    line-height: 1.1;
    margin-bottom: 12px;
}

.section__title em, .section-hd h2 em {
    font-style: normal;
    background: linear-gradient(120deg, var(--gold-l) 0%, var(--gold) 60%, #a06c20 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.section__subtitle, .section-sub {
    font-size: 15px;
    color: var(--t2);
    max-width: 520px;
    line-height: 1.7;
    margin: 0 auto;
}

/* ==========================================================================
   CARD BASE
   ========================================================================== */
.card {
    background: var(--ink2);
    border: 1px solid var(--border);
    border-radius: var(--radius-xl);
    padding: 28px;
    transition: border-color .22s var(--ease-out), box-shadow .22s var(--ease-out), transform .22s var(--ease-out);
    position: relative;
    overflow: hidden;
}

.card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--gold-l), transparent);
    opacity: 0;
    transition: opacity .22s;
}

.card:hover {
    border-color: var(--border-h);
    box-shadow: var(--shadow-glow);
    transform: translateY(-2px);
}

.card:hover::before { opacity: .4; }

/* ==========================================================================
   BUTTONS
   ========================================================================== */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    font-family: var(--sans);
    font-size: 13.5px;
    font-weight: 600;
    letter-spacing: .01em;
    border-radius: 6px;
    border: 1px solid transparent;
    cursor: pointer;
    white-space: nowrap;
    text-decoration: none;
    transition: all .18s var(--ease-out);
}
.btn:active { transform: scale(.97); }

/* Gold primary = "btn-gold" in standalone, "btn--primary" in WP */
.btn-gold, .btn--primary {
    background: linear-gradient(135deg, #b8932e 0%, var(--gold) 50%, #d4aa55 100%);
    color: #0a0710;
    border-color: rgba(255,255,255,.12);
    box-shadow: 0 1px 0 rgba(255,255,255,.15) inset, 0 2px 12px rgba(201,168,76,.3);
}
.btn-gold:hover, .btn--primary:hover {
    background: linear-gradient(135deg, #c9a43e 0%, var(--gold-l) 50%, #e0b760 100%);
    box-shadow: 0 2px 20px rgba(201,168,76,.4);
    color: #0a0710;
}

/* Outline */
.btn-outline, .btn--outline {
    background: rgba(255,255,255,.03);
    border-color: var(--border-h);
    color: var(--t1);
}
.btn-outline:hover, .btn--outline:hover {
    background: rgba(255,255,255,.07);
    border-color: rgba(201,168,76,.3);
    color: var(--t0);
}

/* Ghost */
.btn-ghost, .btn--ghost {
    color: var(--t2);
    background: transparent;
    border-color: transparent;
}
.btn-ghost:hover, .btn--ghost:hover {
    color: var(--t1);
    background: rgba(255,255,255,.04);
}

/* Accent/CTA */
.btn--accent, .btn--cta {
    background: linear-gradient(135deg, var(--jade), #059669);
    color: #fff;
    box-shadow: 0 4px 20px rgba(16,185,129,.35);
}
.btn--accent:hover, .btn--cta:hover {
    filter: brightness(1.1);
    color: #fff;
    transform: translateY(-1px);
}

/* Sizes */
.btn-sm, .btn--sm { height: 32px; padding: 0 14px; font-size: 12.5px; }
.btn-md, .btn--md { height: 40px; padding: 0 20px; }
.btn-lg, .btn--lg { height: 48px; padding: 0 28px; font-size: 15px; border-radius: 8px; }
.btn-xl, .btn--xl { height: 54px; padding: 0 34px; font-size: 16px; border-radius: 8px; }
.btn--full, .btn--full { width: 100%; justify-content: center; }

/* ==========================================================================
   TAGS / BADGES
   ========================================================================== */
.tag, .badge {
    display: inline-flex;
    align-items: center;
    height: 20px;
    padding: 0 8px;
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: .03em;
    border-radius: var(--radius-full);
}
.tag-gold  { background: var(--gold-d);                color: var(--gold);   border: 1px solid var(--gold-ln); }
.tag-purple{ background: var(--purple-d);              color: var(--violet); border: 1px solid var(--border-p); }
.tag-jade  { background: var(--jade-d);                color: var(--jade);   border: 1px solid rgba(16,185,129,.2); }
.tag-red   { background: rgba(239,68,68,.1);           color: var(--crimson);border: 1px solid rgba(239,68,68,.2); }
.tag-amber { background: rgba(245,158,11,.1);          color: var(--amber);  border: 1px solid rgba(245,158,11,.2); }

/* ==========================================================================
   SITE HEADER — two-menu architecture
   ========================================================================== */
.site-header {
    position: fixed;
    top: 0; left: 0; right: 0;
    z-index: 900;
    height: 58px;
    background: rgba(7,5,15,.82);
    border-bottom: 1px solid var(--border);
    /* Chrome fix: isolate stacking context BEFORE backdrop-filter
       so child dropdowns (z-index:9999) aren't clipped */
    isolation: isolate;
    backdrop-filter: blur(20px) saturate(160%);
    -webkit-backdrop-filter: blur(20px) saturate(160%);
    transition: background .2s, border-color .2s, box-shadow .2s;
    /* Prevent Chrome from collapsing the header on repaint */
    will-change: background;
    transform: translateZ(0);
    -webkit-transform: translateZ(0);
}
.site-header.scrolled {
    background: rgba(7,5,15,.96);
    border-color: var(--border-h);
    box-shadow: 0 8px 32px rgba(0,0,0,.5);
}
.header-inner {
    display: flex;
    align-items: center;
    gap: 0;
    height: 58px;
    max-width: 1260px;
    width: 100%;
    margin: 0 auto;
    padding: 0 28px;
    box-sizing: border-box;
    /* Chrome: prevent flex children collapsing when parent has backdrop-filter */
    position: relative;
    z-index: 1;
}

/* Logo */
.site-logo, .logo {
    display: flex;
    align-items: center;
    gap: 10px;
    text-decoration: none;
    flex-shrink: 0;
    margin-right: 12px;
}
.site-logo__icon, .logo-mark {
    width: 32px; height: 32px;
    border-radius: 8px;
    background: linear-gradient(135deg, var(--purple-m), var(--purple));
    border: 1px solid rgba(201,168,76,.2);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.site-logo__icon { font-size: 16px; }
.site-logo span, .logo-text {
    font-family: var(--serif);
    font-size: 18px;
    font-weight: 700;
    color: var(--t0);
    letter-spacing: -.01em;
}
/* Gold word */
.site-logo span span,
.logo-text span { color: var(--gold); }

/* Nav separator */
.header-nav-sep {
    width: 1px; height: 18px;
    background: var(--border);
    margin: 0 10px;
    flex-shrink: 0;
}

/* PRIMARY NAV — dropdown links */
.main-nav, .primary-nav {
    display: flex;
    align-items: center;
    gap: 2px;
    flex: 1 1 0%;        /* Chrome: explicit flex-basis 0 prevents shrink issues */
    min-width: 0;
    overflow: visible;   /* Chrome clips overflow:hidden children in backdrop-filter containers */
    list-style: none;
    margin: 0;
    padding: 0;
}
/* WordPress wraps nav in a <ul> — target it directly */
.main-nav ul,
.primary-nav ul {
    display: flex;
    align-items: center;
    gap: 2px;
    list-style: none;
    margin: 0;
    padding: 0;
    flex: 1;
    min-width: 0;
}
.main-nav li,
.primary-nav li { list-style: none; }

.nav-group { position: relative; }

.main-nav a, .nav-link {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    height: 34px;
    padding: 0 11px;
    font-family: var(--sans);
    font-size: 13px;
    font-weight: 500;
    color: var(--t2);
    border-radius: 6px;
    transition: all .15s;
    white-space: nowrap;
    text-decoration: none;
}
.main-nav a:hover,
.nav-link:hover,
.main-nav .current-menu-item > a,
.nav-link.active {
    color: var(--t0);
    background: rgba(255,255,255,.05);
}

/* NAV CONTRAST: moved to end of file for correct cascade order */

/* Dropdown */
.sub-menu, .nav-dropdown {
    /* ALWAYS hidden by CSS — JS sets display:flex when opening */
    display: none !important;
    position: fixed;
    min-width: 220px;
    background: var(--ink3);
    border: 1px solid var(--border-h);
    border-radius: 14px;
    box-shadow: 0 20px 56px rgba(0,0,0,.75), 0 4px 12px rgba(0,0,0,.5);
    padding: 8px;
    /* Extra top padding creates overlap buffer between nav item and dropdown */
    padding-top: 10px;
    z-index: 9990;
    flex-direction: column;
    gap: 1px;
    margin-top: 0;
    /* JS sets top/left. Dropdown positioned 4px below nav item. */
}
/* Invisible hover bridge — fills gap between nav item bottom and dropdown top.
   Without this, position:fixed dropdown causes a mouseleave gap. */
.sub-menu::before, .nav-dropdown::before {
    content: '';
    position: absolute;
    top: -8px;   /* bridges the 4px gap + 4px buffer */
    left: 0;
    right: 0;
    height: 10px;
    background: transparent;
}
/* Keep ::after on nav-group for pointer area extension */
.nav-group::after,
.menu-item-has-children::after {
    content: '';
    position: absolute;
    top: 100%;
    left: -10px;
    right: -10px;
    height: 10px;
    background: transparent;
    z-index: 9989;
}

.sub-menu a, .nav-dropdown a {
    display: block;
    padding: 8px 12px;
    font-size: 12.5px;
    color: var(--t2);
    border-radius: 6px;
    transition: all .12s;
    white-space: nowrap;
}
.sub-menu a:hover, .nav-dropdown a:hover {
    color: var(--t0);
    background: rgba(255,255,255,.05);
}
.sub-menu hr, .nav-dropdown hr {
    border: none;
    border-top: 1px solid var(--border);
    margin: 4px 0;
}

/* Chevron on parent items */
.menu-item-has-children > a::after,
.nav-link.has-dropdown::after {
    content: ' ▾';
    font-size: 9px;
    opacity: .5;
    margin-left: 2px;
}

/* HEADER ACTIONS — right side CTA buttons */
.header-cta, .header-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-left: auto;
    flex-shrink: 0;
}

/* MOBILE TOGGLE */
.menu-toggle, .mobile-toggle {
    display: none;
    width: 36px; height: 36px;
    border-radius: 6px;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 4px;
    border: 1px solid var(--border);
    cursor: pointer;
    background: transparent;
    color: var(--t2);
    font-size: 1.2rem;
}
.mobile-toggle span {
    width: 16px; height: 1.5px;
    background: var(--t2);
    border-radius: 1px;
    transition: all .2s;
}

/* Push content below fixed header */
body { padding-top: 58px; }
/* WordPress admin bar offsets */
body.admin-bar .site-header { top: 32px; }
body.admin-bar { padding-top: calc(58px + 32px); }
@media screen and (max-width: 782px) {
    body.admin-bar .site-header { top: 46px; }
    body.admin-bar { padding-top: calc(58px + 46px); }
}

/* ==========================================================================
   MOBILE NAV — full vertical dropdown accordion
   ========================================================================== */
@media (max-width: 900px) {
    .menu-toggle, .mobile-toggle { display: inline-flex; }

    /* Hide nav by default on mobile */
    .main-nav, .primary-nav {
        display: none !important;
    }

    /* Open state — slides down as full-width vertical list */
    .main-nav.is-open, .primary-nav.open {
        display: flex !important;
        flex-direction: column;
        position: fixed;
        top: 58px; left: 0; right: 0;
        background: rgba(7, 5, 15, 0.98);
        backdrop-filter: blur(20px) saturate(1.4);
        -webkit-backdrop-filter: blur(20px) saturate(1.4);
        border-bottom: 1px solid var(--border);
        padding: 6px 8px 12px;
        gap: 2px;
        z-index: 800;
        max-height: calc(100vh - 58px);
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
    }

    /* Every top-level nav item is full-width */
    .main-nav.is-open > ul,
    .primary-nav.open > ul,
    .main-nav.is-open #primary-menu {
        display: flex !important;
        flex-direction: column;
        width: 100%;
        gap: 2px;
        list-style: none;
        margin: 0; padding: 0;
    }
    .main-nav.is-open li,
    .primary-nav.open li { width: 100%; }

    /* Top-level links */
    .main-nav.is-open a,
    .primary-nav.open .nav-link {
        display: flex;
        align-items: center;
        width: 100%;
        box-sizing: border-box;
        height: 46px;
        font-size: 14px;
        font-weight: 600;
        padding: 0 14px;
        border-radius: 8px;
        color: var(--t1);
    }
    /* Mobile nav contrast boost — theme-specific */
    .main-nav.is-open a                        { color: #d5ccf0 !important; }
    .primary-nav.open .nav-link                { color: #d5ccf0 !important; }
    body.theme-light .main-nav.is-open a,
    body.theme-light .primary-nav.open .nav-link { color: #1a0f00 !important; }
    body.theme-silver .main-nav.is-open a,
    body.theme-silver .primary-nav.open .nav-link { color: #b8d4f0 !important; }
    .main-nav.is-open a:hover,
    .primary-nav.open .nav-link:hover {
        background: rgba(255,255,255,.05);
        color: var(--t0);
    }

    /* Sub-menus — hidden by default, shown by JS accordion */
    .sub-menu,
    .nav-dropdown {
        display: none !important;
    }

    /* When JS opens a sub-menu on mobile, override to vertical block */
    .main-nav.is-open .sub-menu[style*="flex"],
    .main-nav.is-open .nav-dropdown[style*="flex"],
    .primary-nav.open .sub-menu[style*="flex"],
    .primary-nav.open .nav-dropdown[style*="flex"] {
        display: flex !important;
        flex-direction: column !important;
        position: static !important;
        width: 100% !important;
        min-width: 0 !important;
        box-shadow: none !important;
        border-radius: 8px !important;
        background: rgba(255,255,255,.04) !important;
        border: 1px solid rgba(255,255,255,.07) !important;
        padding: 4px 0 4px 8px !important;
        margin: 4px 0 4px 0 !important;
        z-index: auto !important;
        gap: 1px !important;
        box-sizing: border-box !important;
    }
    /* Sub-menu links */
    .main-nav.is-open .sub-menu a,
    .main-nav.is-open .nav-dropdown a,
    .primary-nav.open .sub-menu a,
    .primary-nav.open .nav-dropdown a {
        height: 40px !important;
        font-size: 13px !important;
        padding: 0 12px !important;
        color: var(--t2) !important;
        border-radius: 6px !important;
        display: flex;
        align-items: center;
    }
    .main-nav.is-open .sub-menu a:hover,
    .main-nav.is-open .nav-dropdown a:hover {
        background: rgba(255,255,255,.05) !important;
        color: var(--t0) !important;
    }
    /* Dividers inside sub-menus */
    .main-nav.is-open .sub-menu hr,
    .primary-nav.open .nav-dropdown hr {
        margin: 3px 12px;
    }

    /* Expand chevron indicator appended by JS */
    .mob-expand {
        margin-left: auto;
        padding-left: 8px;
        display: inline-flex;
        align-items: center;
        color: var(--t3);
    }

    /* Hide header CTAs on mobile */
    .header-cta .btn-outline,
    .header-actions .btn-outline { display: none; }
}

/* Silver theme mobile nav */
@media (max-width: 900px) {
    body.theme-silver .main-nav.is-open,
    body.theme-silver .primary-nav.open {
        background: rgba(4, 8, 22, 0.98);
        border-bottom-color: rgba(79,195,247,.15);
    }
    body.theme-silver .main-nav.is-open a,
    body.theme-silver .primary-nav.open a { color: var(--t1); }
    body.theme-silver .main-nav.is-open a:hover { color: #4fc3f7; }
    body.theme-silver .main-nav.is-open .sub-menu[style*="flex"],
    body.theme-silver .primary-nav.open .nav-dropdown[style*="flex"] {
        background: rgba(79,195,247,.04) !important;
        border-color: rgba(79,195,247,.12) !important;
    }
}

/* Light theme mobile nav */
@media (max-width: 900px) {
    body.theme-light .main-nav.is-open,
    body.theme-light .primary-nav.open {
        background: rgba(245, 243, 238, 0.98);
        border-bottom-color: rgba(0,0,0,.1);
    }
    body.theme-light .main-nav.is-open a,
    body.theme-light .primary-nav.open a { color: var(--t1); }
    body.theme-light .main-nav.is-open a:hover {
        background: rgba(0,0,0,.04);
        color: var(--t0);
    }
    body.theme-light .main-nav.is-open .sub-menu[style*="flex"],
    body.theme-light .primary-nav.open .nav-dropdown[style*="flex"] {
        background: rgba(0,0,0,.03) !important;
        border-color: rgba(0,0,0,.08) !important;
    }
    body.theme-light .main-nav.is-open .sub-menu a,
    body.theme-light .primary-nav.open .nav-dropdown a { color: #4a4035 !important; }
    body.theme-light .main-nav.is-open .sub-menu a:hover { color: #1a1410 !important; }
    body.theme-light .mob-expand { color: #9e9285; }
}

/* ==========================================================================
   SITE FOOTER — exact standalone structure
   ========================================================================== */
.site-footer {
    background: var(--ink);
    border-top: 1px solid var(--border);
    padding-top: 64px;
}

.footer-grid, .footer-main {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr 1fr;
    gap: 60px;
    padding-bottom: 52px;
    border-bottom: 1px solid var(--border);
}

/* Footer brand column */
.footer-brand .site-logo span,
.footer-brand-name {
    font-family: var(--serif);
    font-size: 1.2rem;
    font-weight: 700;
    color: var(--t0);
    margin-bottom: 10px;
    display: flex;
    align-items: center;
    gap: 8px;
}
.footer-brand-name span,
.footer-brand .site-logo span span { color: var(--gold); }

.footer-brand p, .footer-desc {
    font-size: 13px;
    color: var(--t3);
    line-height: 1.65;
    max-width: 260px;
    margin-bottom: 20px;
}

.footer-socials { display: flex; gap: 8px; }
.footer-social {
    width: 32px; height: 32px;
    border-radius: 7px;
    background: rgba(255,255,255,.03);
    border: 1px solid var(--border);
    display: flex; align-items: center; justify-content: center;
    font-size: 13px; color: var(--t3);
    transition: all .15s;
    text-decoration: none;
}
.footer-social:hover { border-color: var(--border-h); color: var(--t1); }

/* Footer columns */
.footer-col h4, .footer-col-title {
    font-family: var(--sans);
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--t3);
    margin-bottom: 16px;
}

.footer-col ul, .footer-links {
    display: flex;
    flex-direction: column;
    gap: 9px;
}
.footer-col a, .footer-links a {
    font-size: 13px;
    color: var(--t3);
    transition: color .13s;
    text-decoration: none;
}
.footer-col a:hover, .footer-links a:hover { color: var(--t1); }

/* Footer bottom bar */
.footer-bottom {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    padding: 24px 0;
    flex-wrap: wrap;
}
.footer-copy { font-size: 12px; color: var(--t4); }
.footer-disclaimer { font-size: 11px; color: var(--t4); max-width: 580px; line-height: 1.55; }
.footer-legal { display: flex; gap: 16px; flex-wrap: wrap; margin-top: 6px; }
.footer-legal a { font-size: 11.5px; color: var(--t3); transition: color .13s; text-decoration: none; }
.footer-legal a:hover { color: var(--t1); }

/* ==========================================================================
   FORM CONTROLS
   ========================================================================== */
.form-control, .s-input, .s-select {
    height: 38px;
    padding: 0 12px;
    background: rgba(255,255,255,.04);
    border: 1px solid var(--border);
    border-radius: 6px;
    color: var(--t1);
    font-family: var(--sans);
    font-size: 13px;
    outline: none;
    transition: border-color .15s;
    width: 100%;
    appearance: none;
    -webkit-appearance: none;
}
.form-control:focus, .s-input:focus { border-color: rgba(201,168,76,.4); background: rgba(255,255,255,.06); }
.s-select {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%234d4169' stroke-width='1.3' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 10px center;
    padding-right: 30px;
    cursor: pointer;
}
.s-select option { background: var(--ink3); color: var(--t1); }

/* ==========================================================================
   SCROLL ANIMATIONS
   ========================================================================== */
.fade-up {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity .6s var(--ease-out), transform .6s var(--ease-out);
}
.fade-up.is-visible { opacity: 1; transform: none; }

.reveal {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity .6s var(--ease-out), transform .6s var(--ease-out);
}
.reveal.visible { opacity: 1; transform: none; }

/* Staggered hero anims */
@keyframes pfg-fadeUp {
    from { opacity: 0; transform: translateY(24px); }
    to   { opacity: 1; transform: translateY(0); }
}
.a1 { animation: pfg-fadeUp .7s var(--ease-out) both; }
.a2 { animation: pfg-fadeUp .7s .1s var(--ease-out) both; }
.a3 { animation: pfg-fadeUp .7s .2s var(--ease-out) both; }
.a4 { animation: pfg-fadeUp .7s .3s var(--ease-out) both; }
.a5 { animation: pfg-fadeUp .7s .4s var(--ease-out) both; }

/* ==========================================================================
   UTILITY
   ========================================================================== */
.text-center  { text-align: center; }
.text-right   { text-align: right; }
.text-muted   { color: var(--t3); }
.font-mono    { font-family: var(--mono); }
.mt-sm  { margin-top: .5rem; }  .mt-md  { margin-top: 1rem; }
.mt-lg  { margin-top: 1.5rem; } .mt-xl  { margin-top: 2rem; }
.mt-2xl { margin-top: 3rem; }
.mb-sm  { margin-bottom: .5rem; } .mb-md { margin-bottom: 1rem; }
.mb-lg  { margin-bottom: 1.5rem; }.mb-xl { margin-bottom: 2rem; }
.sr-only {
    position: absolute; width: 1px; height: 1px;
    padding: 0; margin: -1px; overflow: hidden;
    clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}
.hidden { display: none !important; }

/* ==========================================================================
   REVIEW / SINGLE POST — keep functional
   ========================================================================== */
/* .review-layout defined below with full properties */

.score-circle {
    width: 80px; height: 80px;
    border-radius: 50%;
    background: conic-gradient(var(--gold) calc(var(--pct, 75) * 1%), var(--ink4) 0);
    display: flex; align-items: center; justify-content: center;
}
.score-circle-inner {
    width: 64px; height: 64px; border-radius: 50%;
    background: var(--ink2);
    display: flex; align-items: center; justify-content: center;
    font-family: var(--serif); font-size: 1.4rem; font-weight: 700; color: var(--gold);
}

.verdict-box {
    background: var(--ink3);
    border: 1px solid var(--border-h);
    border-radius: var(--radius-xl);
    padding: 24px;
}

.pros-cons { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin: 24px 0; }

/* ==========================================================================
   CALC TABS — keep existing styles working
   ========================================================================== */
.calc-tabs {
    display: flex;
    gap: 4px;
    border-bottom: 1px solid var(--border);
    padding-bottom: 0;
    margin-bottom: 24px;
    flex-wrap: wrap;
}
.calc-tab {
    padding: 10px 18px;
    font-family: var(--sans);
    font-size: .85rem;
    font-weight: 500;
    color: var(--t2);
    border: none;
    border-bottom: 2px solid transparent;
    background: none;
    cursor: pointer;
    transition: all .15s;
    margin-bottom: -1px;
}
.calc-tab.active,
.calc-tab:hover { color: var(--gold); }
.calc-tab.active { border-bottom-color: var(--gold); }

.calc-panel { display: none; }
.calc-panel.active { display: block; }

.calc-form-row {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 16px;
    margin-bottom: 20px;
}

.form-group { display: flex; flex-direction: column; gap: 6px; }
.form-group label {
    font-size: .78rem;
    font-weight: 600;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--t3);
}

.calc-result {
    background: var(--ink3);
    border: 1px solid var(--border-h);
    border-radius: var(--radius-md);
    padding: 20px;
    text-align: center;
}
.result-label { font-size: .78rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--t3); margin-bottom: 8px; }
.result-value { font-family: var(--serif); font-size: 2rem; font-weight: 700; color: var(--gold); }
.result-breakdown { font-size: .82rem; color: var(--t2); margin-top: 12px; line-height: 1.6; }

/* ==========================================================================
   PAGE HEADER
   ========================================================================== */
.page-header {
    background: var(--ink2);
    border-bottom: 1px solid var(--border);
    padding: 48px 0 40px;
}
.page-header__eyebrow { margin-bottom: 10px; }
.page-header__title { font-family: var(--serif); font-size: clamp(1.8rem,3vw,3rem); color: var(--t0); margin-bottom: 10px; }
.page-header__subtitle { font-size: 1rem; color: var(--t2); max-width: 560px; }

/* breadcrumb */
.pfg-breadcrumb { padding: 12px 0; font-size: .8rem; color: var(--t3); }
.pfg-breadcrumb a { color: var(--t3); }
.pfg-breadcrumb a:hover { color: var(--t1); }

/* ==========================================================================
   COMPARISON TABLE
   ========================================================================== */
.comparison-table { width: 100%; border-collapse: collapse; }
.comparison-table th {
    background: var(--ink3);
    color: var(--t2);
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    padding: 12px 16px;
    text-align: left;
    border-bottom: 1px solid var(--border);
    cursor: pointer;
    user-select: none;
}
.comparison-table th:hover { color: var(--t0); }
.comparison-table td {
    padding: 14px 16px;
    font-size: .875rem;
    color: var(--t1);
    border-bottom: 1px solid var(--border);
    vertical-align: middle;
}
.comparison-table tr:hover td { background: rgba(255,255,255,.02); }
.filter-bar {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 20px;
    align-items: center;
}

/* ==========================================================================
   POST / BLOG CARD (non-homepage)
   ========================================================================== */
.post-card {
    background: var(--ink2);
    border: 1px solid var(--border);
    border-radius: var(--radius-xl);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: all .22s var(--ease-out);
}
.post-card:hover { border-color: var(--border-h); transform: translateY(-3px); box-shadow: var(--shadow-glow); }

.post-card__image { width: 100%; height: 200px; object-fit: cover; }
.post-card__image-placeholder { height: 180px; background: var(--ink3); display: flex; align-items: center; justify-content: center; font-size: 3rem; }
.post-card__body { padding: 20px; flex: 1; display: flex; flex-direction: column; }
.post-card__meta { font-size: .75rem; color: var(--t3); margin-bottom: 8px; display: flex; gap: 6px; align-items: center; }
.post-card__title { font-family: var(--serif); font-size: 1rem; font-weight: 700; color: var(--t0); line-height: 1.3; margin-bottom: 8px; flex: 1; }
.post-card__title a { color: inherit; }
.post-card__title a:hover { color: var(--gold-l); }
.post-card__excerpt { font-size: .85rem; color: var(--t2); line-height: 1.6; }

/* ==========================================================================
   PAGINATION
   ========================================================================== */
.pfg-pagination { display: flex; gap: 6px; justify-content: center; margin-top: 40px; }
.page-numbers { padding: 8px 14px; border-radius: 6px; border: 1px solid var(--border); color: var(--t2); font-size: .875rem; font-weight: 600; transition: all .15s; }
.page-numbers:hover, .page-numbers.current { background: var(--gold-d); border-color: var(--gold-ln); color: var(--gold); }

/* ==========================================================================
   ALERTS
   ========================================================================== */
.alert { border-radius: var(--radius-md); padding: 16px 20px; font-size: .9rem; display: flex; gap: 10px; align-items: flex-start; margin-bottom: 16px; }
.alert--info    { background: var(--gold-d);             border: 1px solid var(--gold-ln);          color: var(--gold-l); }
.alert--success { background: var(--jade-d);             border: 1px solid rgba(16,185,129,.25);     color: var(--jade); }
.alert--warning { background: rgba(245,158,11,.1);       border: 1px solid rgba(245,158,11,.25);     color: var(--amber); }
.alert--danger  { background: rgba(239,68,68,.1);        border: 1px solid rgba(239,68,68,.25);      color: var(--crimson); }

/* ==========================================================================
   HIDDEN RULES CALLOUT
   ========================================================================== */
.hidden-rules-box {
    background: rgba(245,158,11,.08);
    border: 1px solid var(--amber);
    border-left: 4px solid var(--amber);
    border-radius: var(--radius-md);
    padding: 20px;
    margin: 20px 0;
}
.hidden-rules-box h4 { color: var(--amber); font-size: .8rem; text-transform: uppercase; letter-spacing: .08em; margin-bottom: 10px; }
.hidden-rules-box li { color: var(--t2); font-size: .875rem; padding: 4px 0; display: flex; gap: 8px; }
.hidden-rules-box li::before { content: '⚠'; flex-shrink: 0; }

/* ==========================================================================
   SIDEBAR
   ========================================================================== */
.sidebar-widget { background: var(--ink2); border: 1px solid var(--border); border-radius: var(--radius-xl); padding: 24px; margin-bottom: 20px; }
.sidebar-widget h3 { font-family: var(--serif); font-size: 1rem; color: var(--t0); margin-bottom: 16px; }
.widget-list { display: flex; flex-direction: column; gap: 10px; }
.widget-list a { font-size: .875rem; color: var(--t2); transition: color .13s; }
.widget-list a:hover { color: var(--t0); }

/* ==========================================================================
   SEARCH
   ========================================================================== */
.search-form { display: flex; gap: 8px; }
.search-field { flex: 1; }

/* ==========================================================================
   404
   ========================================================================== */
.error-404 { min-height: 60vh; display: flex; align-items: center; justify-content: center; text-align: center; }
.error-404 h1 { font-family: var(--serif); font-size: 6rem; color: var(--gold); line-height: 1; margin-bottom: 20px; }

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width: 1100px) {
    .review-layout { grid-template-columns: 1fr; }
    .review-sidebar, .pfg-review-sidebar { position: static; align-self: auto; }
    .footer-grid, .footer-main { grid-template-columns: 1fr 1fr; gap: 40px; }
}
@media (max-width: 768px) {
    :root { --space-3xl: 3rem; }
    .container { padding: 0 18px; }
    .section { padding: 60px 0; }
    .section-sm { padding: 40px 0; }
    .pros-cons { grid-template-columns: 1fr; }
    .footer-grid, .footer-main { grid-template-columns: 1fr; }
    .footer-bottom { flex-direction: column; }
    .calc-form-row { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 480px) {
    .calc-form-row { grid-template-columns: 1fr; }
}

/* ==========================================================================
   BACKWARDS COMPATIBILITY — maps old --color-* / --space-* vars to gold system
   Fixes all templates (single, archive, page, search, calculators, comparison)
   without requiring PHP changes.
   ========================================================================== */
:root {
    /* Old --color-bg-* → gold system */
    --color-bg:           var(--ink);
    --color-canvas:       var(--ink);
    --color-bg-card:      var(--ink2);
    --color-bg-elevated:  var(--ink3);
    --color-bg-hover:     var(--ink4);
    --color-bg-active:    var(--ink5);

    /* Old --color-border-* → gold border system */
    --color-border:       var(--border);
    --color-border-hover: var(--border-h);
    --color-border-glow:  var(--border-h);
    --color-border-focus: rgba(201,168,76,.5);

    /* Old --color-primary-* → gold */
    --color-primary:       var(--gold);
    --color-primary-light: var(--gold-l);
    --color-primary-dark:  #b8932e;
    --color-primary-dim:   var(--gold-d);
    --color-primary-glow:  var(--gold-g);

    /* Old --color-accent-* → jade */
    --color-accent:        var(--jade);
    --color-accent-dim:    var(--jade-d);

    /* Old --color-text-* → t-scale */
    --color-text:           var(--t0);  /* primary body text — used throughout templates */
    --color-text-primary:   var(--t0);
    --color-text-secondary: var(--t2);
    --color-text-tertiary:  var(--t3);
    --color-text-muted:     var(--t3);
    --color-text-inverse:   var(--ink);

    /* Old --color-warning/danger */
    --color-warning:     var(--amber);
    --color-danger:      var(--crimson);

    /* Old --space-* → consistent spacing */
    --space-xs:  0.25rem;
    --space-sm:  0.5rem;
    --space-md:  1rem;
    --space-lg:  1.5rem;
    --space-xl:  2rem;
    --space-2xl: 3rem;
    --space-3xl: 5rem;

    /* Old font vars */
    --font-display: var(--serif);
    --font-body:    var(--sans);
    --font-mono:    var(--mono);

    /* Old radius vars */
    --radius-xs:   4px;
    --radius-sm:   6px;
    --radius-md:   10px;
    --radius-lg:   14px;
    --radius-xl:   22px;
    --radius-2xl:  32px;
    --radius-full: 9999px;

    /* Old shadow vars */
    --shadow-card:   0 4px 24px rgba(0,0,0,.5);
    --shadow-glow:   0 0 40px rgba(201,168,76,.08), 0 8px 32px rgba(0,0,0,.5);
    --shadow-lg:     0 16px 48px rgba(0,0,0,.6);
    --transition-fast: .15s ease;
    --transition-base: .25s ease;
    --transition-slow: .4s ease;
}

/* btn-- aliases → standalone btn- classes */
.btn--primary  { background: linear-gradient(135deg,#b8932e,var(--gold) 50%,#d4aa55); color:#0a0710; border-color:rgba(255,255,255,.12); box-shadow:0 1px 0 rgba(255,255,255,.15) inset,0 2px 12px rgba(201,168,76,.3); }
.btn--primary:hover { background: linear-gradient(135deg,#c9a43e,var(--gold-l) 50%,#e0b760); box-shadow:0 2px 20px rgba(201,168,76,.4); color:#0a0710; }
.btn--outline  { background: rgba(255,255,255,.03); border-color: var(--border-h); color: var(--t1); }
.btn--outline:hover { background: rgba(255,255,255,.07); border-color: rgba(201,168,76,.3); color: var(--t0); }
.btn--ghost    { color:var(--t2); background:transparent; border-color:transparent; }
.btn--ghost:hover { color:var(--t1); background:rgba(255,255,255,.04); }
.btn--accent, .btn--cta { background:linear-gradient(135deg,var(--jade),#059669); color:#fff; box-shadow:0 4px 20px rgba(16,185,129,.35); }
.btn--accent:hover, .btn--cta:hover { filter:brightness(1.1); color:#fff; transform:translateY(-1px); }
.btn--sm  { height:32px; padding:0 14px; font-size:12.5px; }
.btn--md  { height:40px; padding:0 20px; }
.btn--lg  { height:48px; padding:0 28px; font-size:15px; border-radius:8px; }
.btn--xl  { height:54px; padding:0 34px; font-size:16px; border-radius:8px; }
.btn--full { width:100%; justify-content:center; }

/* Badge aliases */
.badge { display:inline-flex; align-items:center; height:22px; padding:0 9px; font-size:11px; font-weight:600; letter-spacing:.04em; border-radius:99px; }
.badge--blue   { background:var(--purple-d); color:var(--violet); border:1px solid var(--border-p); }
.badge--green  { background:var(--jade-d); color:var(--jade); border:1px solid rgba(16,185,129,.2); }
.badge--yellow { background:rgba(245,158,11,.1); color:var(--amber); border:1px solid rgba(245,158,11,.2); }
.badge--red    { background:rgba(239,68,68,.1); color:var(--crimson); border:1px solid rgba(239,68,68,.2); }

/* section__ aliases */
.section__header { text-align:center; margin-bottom:52px; }
.section__eyebrow {
    display:inline-flex; align-items:center; gap:7px; height:26px; padding:0 11px;
    font-family:var(--mono); font-size:10.5px; font-weight:600; letter-spacing:.1em; text-transform:uppercase;
    color:var(--gold); border:1px solid var(--gold-ln); border-radius:99px; background:var(--gold-d); margin-bottom:18px;
}
.section__title { font-family:var(--serif); font-size:clamp(1.8rem,3vw,2.8rem); font-weight:700; letter-spacing:-.02em; color:var(--t0); line-height:1.1; margin-bottom:12px; }
.section__title em { font-style:normal; background:linear-gradient(120deg,var(--gold-l),var(--gold)); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; }
.section__subtitle { font-size:15px; color:var(--t2); max-width:520px; line-height:1.7; margin:0 auto; }

/* .card alias */
.card {
    background:var(--ink2); border:1px solid var(--border); border-radius:var(--radius-xl); padding:28px;
    transition:border-color .22s var(--ease-out), box-shadow .22s var(--ease-out), transform .22s var(--ease-out);
    position:relative; overflow:hidden;
}
.card:hover { border-color:var(--border-h); box-shadow:var(--shadow-glow); transform:translateY(-2px); }
.card::before { content:''; position:absolute; top:0; left:0; right:0; height:1px; background:linear-gradient(90deg,transparent,var(--gold-l),transparent); opacity:0; transition:opacity .22s; }
.card:hover::before { opacity:.4; }

/* ==========================================================================
   SINGLE / REVIEW PAGE COMPONENTS
   ========================================================================== */

/* Review header */
.review-header {
    display:flex; align-items:flex-start; gap:24px; flex-wrap:wrap;
    padding-bottom:32px; margin-bottom:32px; border-bottom:1px solid var(--border);
    min-width:0;
}
.review-header__logo { width:80px; height:80px; border-radius:12px; object-fit:contain; }
.review-header__meta { flex:1; min-width:200px; }
.review-header__title { font-family:var(--serif); font-size:clamp(1.6rem,3vw,2.4rem); font-weight:700; color:var(--t0); margin-bottom:8px; letter-spacing:-.02em; }
.review-meta-tags { display:flex; flex-wrap:wrap; gap:6px; margin-top:10px; max-width:100%; overflow:hidden; }
.review-score-block { display:flex; flex-direction:column; align-items:center; flex-shrink:0; }

/* Score circle */
.score-circle {
    width:80px; height:80px; border-radius:50%;
    background:conic-gradient(var(--gold) calc(var(--pct,75)*1%), var(--ink4) 0);
    display:flex; align-items:center; justify-content:center;
    position:relative;
}
.score-circle-inner {
    width:64px; height:64px; border-radius:50%; background:var(--ink2);
    display:flex; align-items:center; justify-content:center;
    font-family:var(--serif); font-size:1.4rem; font-weight:700; color:var(--gold);
}
.score-circle--high { background:conic-gradient(var(--jade) calc(var(--pct,75)*1%), var(--ink4) 0); }
.score-circle--low  { background:conic-gradient(var(--crimson) calc(var(--pct,75)*1%), var(--ink4) 0); }

/* Review two-column layout */
.review-layout {
    display:grid; grid-template-columns:1fr 320px; gap:40px; align-items:start;
}
/* sidebar.php uses .pfg-review-sidebar — both selectors need sticky grid placement */
.review-sidebar,
.pfg-review-sidebar { position:sticky; top:90px; align-self:start; }
.review-content h2 {
    font-family:var(--serif); font-size:1.4rem; font-weight:700; color:var(--t0);
    margin:36px 0 16px; padding-bottom:10px; border-bottom:1px solid var(--border);
    letter-spacing:-.01em;
}
.review-content p { color:var(--t2); line-height:1.75; margin-bottom:1rem; }
.review-content ul { padding-left:0; margin:12px 0; }
.review-content ul li { color:var(--t2); padding:5px 0 5px 20px; position:relative; }
.review-content ul li::before { content:'›'; position:absolute; left:0; color:var(--gold); font-weight:700; }

/* Pros / Cons */
.pros-cons { display:grid; grid-template-columns:1fr 1fr; gap:20px; margin:24px 0; }
.pros-card, .cons-card {
    background:var(--ink2); border:1px solid var(--border); border-radius:var(--radius-xl); padding:20px;
}
.pros-card { border-top:3px solid var(--jade); }
.cons-card { border-top:3px solid var(--crimson); }
.pros-card h4 { color:var(--jade); font-size:.85rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; margin-bottom:12px; }
.cons-card h4 { color:var(--crimson); font-size:.85rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; margin-bottom:12px; }
.pros-card ul li::before { color:var(--jade); }
.cons-card ul li::before { content:'✕'; color:var(--crimson); }

/* Score bar */
.score-bar { height:4px; background:rgba(255,255,255,.06); border-radius:99px; overflow:hidden; }
.score-bar__fill { height:100%; border-radius:99px; background:linear-gradient(90deg,var(--purple-m),var(--gold)); }

/* Verdict box */
.verdict-box {
    background:var(--ink3); border:1px solid var(--border-h); border-radius:var(--radius-xl); padding:28px;
    position:relative; overflow:hidden;
}
.verdict-box::before { content:''; position:absolute; top:0; left:0; right:0; height:2px; background:linear-gradient(90deg,var(--purple),var(--gold)); }
.verdict-box h3 { font-family:var(--serif); font-size:1.2rem; font-weight:700; color:var(--t0); margin-bottom:12px; }

/* Sidebar cards */
.sidebar-card {
    background:var(--ink2); border:1px solid var(--border); border-radius:var(--radius-xl);
    overflow:hidden; margin-bottom:18px;
}
.sidebar-card__header {
    padding:12px 18px; font-family:var(--mono); font-size:10.5px; font-weight:700;
    letter-spacing:.1em; text-transform:uppercase; color:var(--t3);
    border-bottom:1px solid var(--border); background:rgba(0,0,0,.15);
}
.sidebar-card__body { padding:18px; }

/* Stats list */
.stats-list { display:flex; flex-direction:column; gap:0; }
.stats-list__item {
    display:flex; justify-content:space-between; align-items:center;
    padding:10px 0; border-bottom:1px solid var(--border); font-size:13px;
}
.stats-list__item:last-child { border-bottom:none; }
.stats-list__key { color:var(--t3); }
.stats-list__val { font-family:var(--mono); font-weight:500; color:var(--t1); }

/* Firm logo placeholder */
.firm-logo-placeholder {
    background:var(--ink3); border:1px solid var(--border); border-radius:10px;
    display:flex; align-items:center; justify-content:center;
    font-family:var(--serif); font-weight:700; color:var(--gold);
}

/* Hidden rules box */
.hidden-rules-box {
    background:rgba(245,158,11,.08); border:1px solid var(--amber);
    border-left:4px solid var(--amber); border-radius:var(--radius-md);
    padding:20px; margin:20px 0;
}
.hidden-rules-box h4 { color:var(--amber); font-size:.8rem; text-transform:uppercase; letter-spacing:.08em; margin-bottom:10px; }
.hidden-rules-box ul { padding:0; }
.hidden-rules-box li { color:var(--t2); font-size:.875rem; padding:4px 0 4px 22px; position:relative; list-style:none; }
.hidden-rules-box li::before { content:'⚠'; position:absolute; left:0; }

/* ==========================================================================
   PAGE HEADER (archive, search, etc.)
   ========================================================================== */
.page-header {
    background:var(--ink2); border-bottom:1px solid var(--border); padding:48px 0 40px;
}
.page-header__eyebrow { margin-bottom:10px; }
.page-header__title {
    font-family:var(--serif); font-size:clamp(1.8rem,3vw,3rem);
    font-weight:700; color:var(--t0); margin-bottom:10px; letter-spacing:-.02em;
}
.page-header__subtitle { font-size:1rem; color:var(--t2); max-width:560px; line-height:1.65; }

/* Page header bg gradient — used in pfg_page_header() */
.pfg-page-header-wrap {
    background:linear-gradient(180deg,rgba(124,58,237,.06) 0%,transparent 100%);
    border-bottom:1px solid var(--border);
    padding:var(--space-2xl) 0;
}

/* Breadcrumb */
.breadcrumb, nav.breadcrumb { padding:12px 0; font-size:.8rem; color:var(--t3); }
.breadcrumb a { color:var(--t3); }
.breadcrumb a:hover { color:var(--t1); }

/* ==========================================================================
   COMPARISON TABLE
   ========================================================================== */
.comparison-table { width:100%; border-collapse:collapse; }
.comparison-table th {
    background:var(--ink3); color:var(--t2); font-size:.72rem; font-weight:700;
    letter-spacing:.08em; text-transform:uppercase; padding:12px 16px;
    text-align:left; border-bottom:1px solid var(--border); cursor:pointer; user-select:none;
}
.comparison-table th:hover { color:var(--t0); }
.comparison-table td {
    padding:14px 16px; font-size:.875rem; color:var(--t1);
    border-bottom:1px solid var(--border); vertical-align:middle;
}
.comparison-table tr:hover td { background:rgba(255,255,255,.02); }
.comparison-table .sort-icon { opacity:.4; font-size:.7rem; margin-left:4px; }
.comparison-table th.sorted-asc .sort-icon,
.comparison-table th.sorted-desc .sort-icon { opacity:1; color:var(--gold); }

/* Filter bar */
.filter-bar {
    display:flex; flex-wrap:wrap; gap:10px; margin-bottom:20px; align-items:center;
}
.filter-bar select, .filter-bar input {
    height:36px; padding:0 12px; background:var(--ink3); border:1px solid var(--border);
    border-radius:6px; color:var(--t1); font-family:var(--sans); font-size:13px;
    outline:none; appearance:none;
}
.filter-bar select:focus, .filter-bar input:focus { border-color:var(--border-h); }

/* ==========================================================================
   POST CARDS (archive, blog)
   ========================================================================== */
.post-card {
    background:var(--ink2); border:1px solid var(--border); border-radius:var(--radius-xl);
    overflow:hidden; display:flex; flex-direction:column;
    transition:border-color .22s,box-shadow .22s,transform .22s;
}
.post-card:hover { border-color:var(--border-h); box-shadow:var(--shadow-glow); transform:translateY(-3px); }
.post-card__image { width:100%; height:200px; object-fit:cover; display:block; }
.post-card__image-placeholder {
    height:180px; background:var(--ink3); display:flex; align-items:center;
    justify-content:center; font-size:3rem;
}
.post-card__body { padding:20px; flex:1; display:flex; flex-direction:column; }
.post-card__meta { font-size:.75rem; color:var(--t3); margin-bottom:8px; display:flex; gap:6px; align-items:center; }
.post-card__title { font-family:var(--serif); font-size:1rem; font-weight:700; color:var(--t0); line-height:1.3; margin-bottom:8px; flex:1; }
.post-card__title a { color:inherit; }
.post-card__title a:hover { color:var(--gold-l); }
.post-card__excerpt { font-size:.85rem; color:var(--t2); line-height:1.6; }

/* ==========================================================================
   CALCULATOR STYLES
   ========================================================================== */
.calc-tabs {
    display:flex; gap:4px; border-bottom:1px solid var(--border); margin-bottom:24px; flex-wrap:wrap;
}
.calc-tab {
    padding:10px 18px; font-family:var(--sans); font-size:.85rem; font-weight:500;
    color:var(--t2); border:none; border-bottom:2px solid transparent;
    background:none; cursor:pointer; transition:all .15s; margin-bottom:-1px;
}
.calc-tab:hover { color:var(--gold); }
.calc-tab.active { color:var(--gold); border-bottom-color:var(--gold); }
.calc-panel { display:none; }
.calc-panel.active { display:block; }
.calc-form-row {
    display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
    gap:16px; margin-bottom:20px;
}
.form-group { display:flex; flex-direction:column; gap:6px; }
.form-group label {
    font-size:.78rem; font-weight:600; letter-spacing:.05em;
    text-transform:uppercase; color:var(--t3);
}
.form-control {
    height:38px; padding:0 12px; background:rgba(255,255,255,.04); border:1px solid var(--border);
    border-radius:6px; color:var(--t1); font-family:var(--sans); font-size:13px;
    outline:none; transition:border-color .15s; width:100%; appearance:none;
}
.form-control:focus { border-color:rgba(201,168,76,.4); background:rgba(255,255,255,.06); }
.form-control option { background:var(--ink3); }
.calc-result {
    background:var(--ink3); border:1px solid var(--border-h); border-radius:var(--radius-md);
    padding:20px; text-align:center;
}
.result-label {
    font-family:var(--mono); font-size:.78rem; font-weight:600; letter-spacing:.08em;
    text-transform:uppercase; color:var(--t3); margin-bottom:8px;
}
.result-value { font-family:var(--serif); font-size:2rem; font-weight:700; color:var(--gold); }
.result-breakdown { font-size:.82rem; color:var(--t2); margin-top:12px; line-height:1.6; }

/* ==========================================================================
   SEARCH PAGE
   ========================================================================== */
.search-results-section { padding:60px 0; }
.content-layout { display:grid; grid-template-columns:1fr 300px; gap:40px; }
.search-meta-bar { display:flex; justify-content:space-between; align-items:center; margin-bottom:28px; flex-wrap:wrap; gap:12px; }
.search-meta-count { font-size:.9rem; color:var(--t2); }
.search-refine { display:flex; gap:8px; }
.search-results-group__title {
    font-family:var(--mono); font-size:10.5px; font-weight:700; letter-spacing:.1em;
    text-transform:uppercase; color:var(--t3); margin-bottom:14px;
    padding-bottom:8px; border-bottom:1px solid var(--border);
}
.post-list { display:flex; flex-direction:column; gap:18px; margin-bottom:36px; }
.post-list-item {
    display:flex; gap:16px; align-items:flex-start; padding-bottom:18px;
    border-bottom:1px solid var(--border);
}
.post-list-item:last-child { border-bottom:none; padding-bottom:0; }
.post-list-item__icon { font-size:1.6rem; flex-shrink:0; }
.post-list-item__title { font-family:var(--serif); font-size:.95rem; font-weight:700; color:var(--t0); margin-bottom:4px; }
.post-list-item__title a { color:inherit; }
.post-list-item__title a:hover { color:var(--gold-l); }
.post-list-item__meta { font-size:.75rem; color:var(--t3); }
.no-results-box { text-align:center; padding:60px 20px; }
.no-results-box p:first-child { font-size:3rem; margin-bottom:16px; }

/* ==========================================================================
   PAGINATION
   ========================================================================== */
.pagination, .pfg-pagination { display:flex; gap:6px; justify-content:center; margin-top:40px; flex-wrap:wrap; }
.page-numbers {
    padding:8px 14px; border-radius:6px; border:1px solid var(--border);
    color:var(--t2); font-size:.875rem; font-weight:600; transition:all .15s;
    background:transparent; text-decoration:none;
}
.page-numbers:hover, .page-numbers.current {
    background:var(--gold-d); border-color:var(--gold-ln); color:var(--gold);
}

/* ==========================================================================
   SIDEBAR WIDGETS
   ========================================================================== */
.sidebar-widget {
    background:var(--ink2); border:1px solid var(--border); border-radius:var(--radius-xl);
    padding:24px; margin-bottom:20px;
}
.sidebar-widget h3 { font-family:var(--serif); font-size:1rem; color:var(--t0); margin-bottom:16px; }
.widget-list { display:flex; flex-direction:column; gap:10px; }
.widget-list a { font-size:.875rem; color:var(--t2); transition:color .13s; }
.widget-list a:hover { color:var(--t0); }

/* ==========================================================================
   ALERTS
   ========================================================================== */
.alert { border-radius:var(--radius-md); padding:16px 20px; font-size:.9rem; display:flex; gap:10px; align-items:flex-start; margin-bottom:16px; }
.alert--info    { background:var(--gold-d);           border:1px solid var(--gold-ln);             color:var(--gold-l); }
.alert--success { background:var(--jade-d);           border:1px solid rgba(16,185,129,.25);        color:var(--jade); }
.alert--warning { background:rgba(245,158,11,.1);     border:1px solid rgba(245,158,11,.25);        color:var(--amber); }
.alert--danger  { background:rgba(239,68,68,.1);      border:1px solid rgba(239,68,68,.25);         color:var(--crimson); }

/* ==========================================================================
   RESPONSIVE — all inner templates
   ========================================================================== */
@media(max-width:1024px) {
    .review-layout   { grid-template-columns:1fr; }
    .review-sidebar, .pfg-review-sidebar { position:static; align-self:auto; }
    .content-layout  { grid-template-columns:1fr; }
    .footer-grid, .footer-main { grid-template-columns:1fr 1fr; gap:40px; }
}
@media(max-width:768px) {
    .pros-cons       { grid-template-columns:1fr; }
    .calc-form-row   { grid-template-columns:1fr 1fr; }
    .footer-grid, .footer-main { grid-template-columns:1fr; }
    .footer-bottom   { flex-direction:column; }
}
@media(max-width:480px) {
    .calc-form-row   { grid-template-columns:1fr; }
}

/* ==========================================================================
   COMPARISON PAGE — star classes shared with homepage
   (these may already be defined in homepage.css; define here as global fallback)
   ========================================================================== */
.star, .star-h, .star-e {
    width: 13px; height: 13px;
    background: no-repeat center / contain;
    display: inline-block;
    flex-shrink: 0;
}
.star   { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M6 1l1.3 2.7 3.2.3-2.2 2.2.5 3L6 7.7 3.2 9.2l.5-3L1.5 4l3.2-.3z' fill='%23c9a84c'/%3E%3C/svg%3E"); }
.star-h { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3ClinearGradient id='h' x1='0' x2='1'%3E%3Cstop offset='50%25' stop-color='%23c9a84c'/%3E%3Cstop offset='50%25' stop-color='%232d2550'/%3E%3C/linearGradient%3E%3Cpath d='M6 1l1.3 2.7 3.2.3-2.2 2.2.5 3L6 7.7 3.2 9.2l.5-3L1.5 4l3.2-.3z' fill='url(%23h)'/%3E%3C/svg%3E"); }
.star-e { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M6 1l1.3 2.7 3.2.3-2.2 2.2.5 3L6 7.7 3.2 9.2l.5-3L1.5 4l3.2-.3z' fill='%232d2550'/%3E%3C/svg%3E"); }

/* ============================================================================
   CHROME DROPDOWN FIX — v10
   Root cause: backdrop-filter on .site-header creates a stacking context in
   Chrome (not Edge). position:absolute children are clipped to the header.
   Fix: JS sets position:fixed + top/left via getBoundingClientRect.
   This block ensures the CSS base state is correct for both browsers.
   ============================================================================ */

/* Remove isolation:isolate — it was added to "fix" Chrome but actually worsens it */
.site-header { isolation: auto; }

/* Dropdowns are position:fixed via JS — the CSS just needs sensible defaults */
/* Sub-menu base position — JS sets top/left at runtime via getBoundingClientRect */
.sub-menu, .nav-dropdown {
    position: fixed;
    z-index: 9990;
    /* top and left set by JS positionDrop() — intentionally no defaults here */
}
/* On mobile, override fixed so they render inline */
@media (max-width: 900px) {
    .sub-menu, .nav-dropdown {
        position: static !important;
        display: none !important;
        width: 100% !important;
        box-shadow: none !important;
        border: none !important;
        background: rgba(255,255,255,.03) !important;
        border-radius: 6px !important;
        padding: 4px 0 4px 14px !important;
    }
}

/* Ensure nav items sit above backdrop-filter by using a proper stacking approach */
.header-inner { position: relative; z-index: 2; }
.main-nav, .primary-nav { overflow: visible; }

/* ============================================================================
   SCORE WHEELS — animated neon arcs
   ============================================================================ */
/* SCORE WHEEL BLOCK 1 REMOVED — see canonical block below */

/* ============================================================================
   THEME TOGGLE BAR
   ============================================================================ */
.theme-toggle-bar {
    position: fixed;
    top: 67px; right: 18px;
    z-index: 880;
}
.theme-toggle-btn {
    display: inline-flex; align-items: center; gap: 6px;
    height: 28px; padding: 0 12px;
    background: var(--ink3); border: 1px solid var(--border-h);
    border-radius: 99px; cursor: pointer;
    font-family: var(--mono); font-size: 10px; font-weight: 700;
    letter-spacing: .06em; text-transform: uppercase; color: var(--t2);
    transition: all .2s; white-space: nowrap; user-select: none;
}
.theme-toggle-btn:hover { border-color: var(--gold); color: var(--gold); }
.tt-icon { font-size: 12px; }

/* ============================================================================
   LIGHT THEME — warm cream on dark charcoal
   Professional, readable, high-contrast. Suits financial content.
   ============================================================================ */
body.theme-light {
    --ink:      #f5f3ee;
    --ink2:     #ede9e1;
    --ink3:     #e4dfd5;
    --ink4:     #d8d2c6;
    --ink5:     #ccc6b9;
    --t0:       #1a1410;
    --color-text: #1a1410; /* sync with light t0 */
    --t1:       #2d2620;
    --t2:       #4a4035;
    --t3:       #7a6e62;
    --t4:       #9e9285;
    --border:   rgba(0,0,0,.1);
    --border-h: rgba(0,0,0,.18);
    --gold:     #9e6f0a;
    --gold-l:   #c4900f;
    --gold-d:   rgba(158,111,10,.1);
    --gold-ln:  rgba(158,111,10,.3);
    --gold-g:   rgba(158,111,10,.15);
    --jade:     #0a7c52;
    --jade-d:   rgba(10,124,82,.1);
    --amber:    #b5620a;
    --crimson:  #c0392b;
    --violet:   #6d28d9;
    --purple:   #7c3aed;
    --purple-m: #6d28d9;
    --purple-d: rgba(124,58,237,.08);
    --border-p: rgba(124,58,237,.2);
    background-color: var(--ink);
    color: var(--t0);
}
/* Light theme — hero bullet list contrast fix */
body.theme-light .pfg-flagger-bullets li { color: #1a1410; font-weight: 500; }
body.theme-light .pfg-bullet-icon { filter: none; }

body.theme-light .site-header {
    background: rgba(245,243,238,.92);
    border-bottom-color: rgba(0,0,0,.1);
}
body.theme-light .hero { background: linear-gradient(135deg,#f5f3ee,#ede9e1); }
body.theme-light .hero-grid { background-image: linear-gradient(rgba(158,111,10,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(158,111,10,.06) 1px,transparent 1px); }
body.theme-light .firm-card,
body.theme-light .card,
body.theme-light .sidebar-card,
body.theme-light .cmp-panel,
body.theme-light .screener-card { background: #fff; border-color: rgba(0,0,0,.1); }
body.theme-light .btn-gold { background: linear-gradient(135deg,#8a5f08,#b87c0c); color: #fff; }
body.theme-light .btn-outline { background: transparent; border-color: rgba(0,0,0,.2); color: var(--t1); }
body.theme-light .tag-gold { background: rgba(158,111,10,.1); color: #7a500a; border-color: rgba(158,111,10,.2); }
body.theme-light .tag-purple { background: rgba(124,58,237,.08); color: #6d28d9; border-color: rgba(124,58,237,.2); }
body.theme-light .eyebrow { background: rgba(158,111,10,.08); color: #7a500a; border-color: rgba(158,111,10,.2); }
body.theme-light .section-sub { color: var(--t2); }
body.theme-light .fstat-label { color: var(--t3); }
body.theme-light .fstat-val { color: var(--t1); }
body.theme-light .fstat-val.green { color: #0a7c52; }
body.theme-light .fstat-val.gold { color: #9e6f0a; }
body.theme-light .payout-ticker { background: var(--ink2); border-color: rgba(0,0,0,.08); }
body.theme-light .filter-tab { background: var(--ink3); color: var(--t2); border-color: rgba(0,0,0,.1); }
body.theme-light .filter-tab.active { background: #9e6f0a; color: #fff; border-color: #9e6f0a; }
body.theme-light .sub-menu, body.theme-light .nav-dropdown { background: #fff; border-color: rgba(0,0,0,.12); }
body.theme-light .sub-menu a, body.theme-light .nav-dropdown a { color: var(--t2); }
body.theme-light .sub-menu a:hover, body.theme-light .nav-dropdown a:hover { background: rgba(0,0,0,.04); color: var(--t0); }
body.theme-light .theme-toggle-btn { background: var(--ink3); border-color: rgba(0,0,0,.15); color: var(--t2); }
body.theme-light .cmp-sel-dropdown,
body.theme-light .cmp-sel-input { background: #fff; border-color: rgba(0,0,0,.15); color: var(--t0); }

/* ── Light theme — comprehensive panel contrast fixes ── */
/* Ensure all card/panel backgrounds are white with dark text */
body.theme-light .pfg-sub-card,
body.theme-light .pfg-offer-card,
body.theme-light .pfg-award-card,
body.theme-light .pfg-all-offer-row,
body.theme-light .pfg-contact-form-wrap,
body.theme-light .pfg-contact-info-box,
body.theme-light .pfg-aff-link-box,
body.theme-light .pfg-aff-step,
body.theme-light .pfg-aff-tier,
body.theme-light .pfg-aff-faq-item,
body.theme-light .pfg-about-value,
body.theme-light .pfg-about-cover,
body.theme-light .pfg-hiw-step,
body.theme-light .pfg-hiw-concept,
body.theme-light .pfg-info-card,
body.theme-light .pfg-promo-type,
body.theme-light .pfg-bl-card,
body.theme-light .pfg-bl-featured,
body.theme-light .pfg-sb-card,
body.theme-light .pfg-products-wrap .pfg-phase,
body.theme-light .pfg-prod-panel,
body.theme-light .pfg-prod-summary { background: #ffffff; border-color: rgba(0,0,0,.12); }

/* Review single page — phase cards */
body.theme-light .pfg-phase-eval { background: #fff; border-color: rgba(0,0,0,.12); border-top-color: #9e6f0a; }
body.theme-light .pfg-phase-funded { background: #f0fdf4; border-color: rgba(10,124,82,.2); }
body.theme-light .pfg-phase-rule { border-bottom-color: rgba(0,0,0,.08); }
body.theme-light .pfg-phase-rule span { color: #7a6e62; }
body.theme-light .pfg-phase-rule strong { color: #1a1410; }
body.theme-light .pfg-val-good { color: #0a7c52 !important; }
body.theme-light .pfg-rule-warn strong { color: #b5620a !important; }
body.theme-light .pfg-prod-tabs { border-bottom-color: rgba(0,0,0,.12); }
body.theme-light .pfg-prod-tab { color: #4a4035; }
body.theme-light .pfg-prod-tab.active { color: #7a500a; background: rgba(158,111,10,.08); border-bottom-color: #9e6f0a; }
body.theme-light .pfg-prod-tab-fee { background: #f0ece4; color: #7a6e62; }
body.theme-light .pfg-phase-arrow { color: #9e9285; }
body.theme-light .pfg-prod-size-pill { background: #f0ece4; border-color: rgba(0,0,0,.12); color: #4a4035; }

/* Stat rows inside cards */
body.theme-light .pfg-sub-stat-row,
body.theme-light .pfg-prod-sum-item { background: #f5f3ee; }
body.theme-light .pfg-sub-stat-row span { color: #7a6e62; }
body.theme-light .pfg-sub-stat-row strong { color: #1a1410; }

/* Sidebar cards */
body.theme-light .pfg-review-sidebar .pfg-sb-card { background: #fff; }
body.theme-light .pfg-sb-title { color: #1a1410; }
body.theme-light .pfg-sb-desc { color: #4a4035; }
body.theme-light .pfg-sb-features li { color: #4a4035; }
body.theme-light .pfg-sb-mini-item { background: #f5f3ee; }
body.theme-light .pfg-sb-mini-name { color: #1a1410; }
body.theme-light .pfg-sb-code-row { background: #f5f3ee; }
body.theme-light .pfg-sb-code-firm { color: #4a4035; }
/* ── PropFlagger Score Strip in Sidebar ── */
.pfg-sb-score-strip{background:var(--ink3);border:1px solid var(--border);border-radius:14px;padding:16px;margin-bottom:16px}
.pfg-sb-ss-top{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.pfg-sb-ss-shield{font-size:1.6rem;flex-shrink:0;line-height:1}
.pfg-sb-ss-num{font-family:var(--serif);font-size:2.2rem;font-weight:800;letter-spacing:-.03em;line-height:1}
.pfg-sb-ss-num span{font-size:.9rem;color:var(--t3);font-weight:400;font-family:var(--sans)}
.pfg-sb-ss-good{color:var(--gold)}
.pfg-sb-ss-low{color:var(--crimson)}
.pfg-sb-ss-verdict{font-size:11px;font-weight:700;letter-spacing:.04em;border-radius:999px;padding:2px 9px;margin-top:4px;display:inline-flex;align-items:center;gap:3px;width:fit-content}
.pfg-sb-ss-v-high{background:rgba(16,185,129,.1);color:var(--jade)}
.pfg-sb-ss-v-mid{background:rgba(201,168,76,.12);color:var(--gold)}
.pfg-sb-ss-v-low{background:rgba(239,68,68,.1);color:var(--crimson)}
.pfg-sb-ss-byline{font-size:8px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--t3);margin-left:auto;text-align:right;line-height:1.4}
.pfg-sb-ss-bars{display:flex;flex-direction:column;gap:7px}
.pfg-sb-ss-bar{display:flex;align-items:center;gap:7px;font-size:11px;color:var(--t3)}
.pfg-sb-ss-bar span:first-child{width:80px;flex-shrink:0;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pfg-sb-ss-track{flex:1;height:5px;background:rgba(255,255,255,.07);border-radius:3px;overflow:hidden}
.pfg-sb-ss-fill{height:100%;border-radius:3px;transition:width .7s ease}
.pfg-sb-ss-tp{background:linear-gradient(90deg,#f59e0b,#fbbf24)}
.pfg-sb-ss-safety{background:linear-gradient(90deg,#10b981,#34d399)}
.pfg-sb-ss-ed{background:linear-gradient(90deg,#6366f1,#818cf8)}
.pfg-sb-ss-val{font-family:var(--mono);font-size:10px;color:var(--t2);flex-shrink:0;min-width:24px;text-align:right}
/* Light theme */
body.theme-light .pfg-sb-score-strip{background:#fff;border-color:rgba(0,0,0,.1)}
body.theme-light .pfg-sb-ss-track{background:rgba(0,0,0,.06)}
body.theme-light .pfg-sb-ss-bar{color:#4a4035}
/* Silver theme */
body.theme-silver .pfg-sb-score-strip{background:var(--ink2);border-color:rgba(79,195,247,.15)}

body.theme-light .pfg-sb-criterion span:first-child { color: #7a6e62; }
body.theme-light .pfg-sb-criterion { border-bottom-color: rgba(0,0,0,.08); }

/* Score display */
body.theme-light .pfg-sc-high { color: #0a7c52 !important; }
body.theme-light .pfg-sc-mid  { color: #9e6f0a !important; }
body.theme-light .pfg-sc-low  { color: #c0392b !important; }

/* Blog cards */
body.theme-light .pfg-bl-card-title a,
body.theme-light .pfg-bl-feat-title a { color: #1a1410; }
body.theme-light .pfg-bl-card-excerpt,
body.theme-light .pfg-bl-feat-excerpt { color: #4a4035; }
body.theme-light .pfg-bl-card-footer { border-top-color: rgba(0,0,0,.08); }
body.theme-light .pfg-bl-card-date { color: #7a6e62; }
body.theme-light .pfg-bl-meta-date,
body.theme-light .pfg-bl-meta-read,
body.theme-light .pfg-bl-meta-sep { color: #7a6e62; }
body.theme-light .pfg-bl-filter-btn { color: #4a4035; background: #fff; border-color: rgba(0,0,0,.12); }
body.theme-light .pfg-bl-filter-btn:hover { color: #1a1410; border-color: rgba(0,0,0,.2); }
body.theme-light .pfg-bl-filter-btn.active { color: #7a500a; background: rgba(158,111,10,.08); border-color: rgba(158,111,10,.25); }
body.theme-light .pfg-bl-filter-bar-wrap { background: #f5f3ee; border-bottom-color: rgba(0,0,0,.1); }
body.theme-light .pfg-bl-hero-stats { background: #fff; border-color: rgba(0,0,0,.1); }
body.theme-light .pfg-bl-hero-stat-div { background: rgba(0,0,0,.08); }

/* Hero card (Red Flag Detector) */
body.theme-light .pfg-rf-hero-card { background: #fff; border-color: rgba(192,57,43,.2); box-shadow: 0 8px 32px rgba(0,0,0,.1); }
body.theme-light .pfg-rf-card-title { color: #1a1410; }
body.theme-light .pfg-rf-card-sub { color: #7a6e62; }
body.theme-light .pfg-rf-input { background: #f5f3ee; border-color: rgba(0,0,0,.15); color: #1a1410; }
body.theme-light .pfg-rf-input:focus { border-color: #c0392b; }
body.theme-light .pfg-rf-drop { background: #fff; border-color: rgba(0,0,0,.15); }
body.theme-light .pfg-rf-drop-item { color: #2d2620; }
body.theme-light .pfg-rf-drop-item:hover { background: rgba(0,0,0,.04); }
body.theme-light .pfg-rf-recent-item { background: #f5f3ee; }
body.theme-light .pfg-rf-recent-name { color: #2d2620; }
body.theme-light .pfg-rf-result { background: #f5f3ee; border-color: rgba(0,0,0,.1); }
body.theme-light .pfg-rf-loading { color: #7a6e62; }
body.theme-light .pfg-rf-full-btn { border-color: rgba(192,57,43,.25); color: #c0392b; }
body.theme-light .pfg-rf-full-btn:hover { background: rgba(192,57,43,.06); }
body.theme-light .pfg-flagger-bullets li { color: #4a4035; }
body.theme-light .pfg-hero-glow-red { opacity: 0.05; }
body.theme-light .pfg-hero-glow-gold { opacity: 0.06; }
body.theme-light .pfg-hero-flagger { background: linear-gradient(135deg,#f5f3ee,#ede9e1); }

/* Comparison table */
body.theme-light .cmp-table { background: #fff; }
body.theme-light .cmp-table th { background: #f5f3ee; color: #4a4035; border-bottom-color: rgba(0,0,0,.1); }
body.theme-light .cmp-table td { border-bottom-color: rgba(0,0,0,.07); color: #1a1410; }
body.theme-light .cmp-group-hd td { background: #ede9e1; color: #4a4035; }
body.theme-light .cmp-prod-block { background: #f5f3ee; border-color: rgba(0,0,0,.1); }
body.theme-light .cmp-prod-name { color: #7a500a; }
body.theme-light .cmp-prod-meta { color: #4a4035; }
body.theme-light .cmp-prod-meta strong { color: #1a1410; }
body.theme-light .cmp-phase-row { background: #fff; }
body.theme-light .cmp-phase-lbl { color: #7a6e62; }
body.theme-light .cmp-phase-rules { color: #4a4035; }
body.theme-light .cmp-phase-rules strong { color: #1a1410; }
body.theme-light .cmp-panel { background: #fff; border-color: rgba(0,0,0,.1); }
body.theme-light .is-win { background: rgba(10,124,82,.06) !important; }
body.theme-light .is-lose { background: rgba(192,57,43,.06) !important; }

/* Feature matrix */
body.theme-light .pfg-feat-table-wrap { border-color: rgba(0,0,0,.12); }
body.theme-light .pfg-feat-table th { background: #f5f3ee; color: #7a6e62; border-bottom-color: rgba(0,0,0,.1); }
body.theme-light .pfg-feat-table td { border-bottom-color: rgba(0,0,0,.07); }
body.theme-light .pfg-feat-table tr:hover td { background: rgba(0,0,0,.025); }
body.theme-light .pfg-feat-name { color: #1a1410; }
body.theme-light .pfg-feat-yes { color: #0a7c52; }
body.theme-light .pfg-feat-no { color: #c0392b; }
body.theme-light .pfg-feat-partial { color: #b5620a; }
body.theme-light .pfg-feat-na,
body.theme-light .pfg-feat-text { color: #7a6e62; }

/* Payout tracker table */
body.theme-light .pfg-payout-table-wrap { border-color: rgba(0,0,0,.12); }
body.theme-light .pfg-payout-table th { background: #f5f3ee; color: #7a6e62; }
body.theme-light .pfg-payout-table td { border-bottom-color: rgba(0,0,0,.07); }
body.theme-light .pfg-payout-table tr:hover td { background: rgba(0,0,0,.025); }
body.theme-light .pfg-payout-name { color: #1a1410; }
body.theme-light .pfg-payout-time { color: #1a1410; }

/* Leaderboard */
body.theme-light .pfg-lb-table-wrap { border-color: rgba(0,0,0,.12); }
body.theme-light .pfg-lb-table th { background: #f5f3ee; color: #7a6e62; }
body.theme-light .pfg-lb-table td { border-bottom-color: rgba(0,0,0,.07); }
body.theme-light .pfg-lb-table tr:hover td { background: rgba(0,0,0,.025); }
body.theme-light .pfg-lb-me td { background: rgba(158,111,10,.06) !important; }
body.theme-light .pfg-lb-name { color: #1a1410; }
body.theme-light .pfg-lb-handle { color: #7a6e62; }

/* Awards page */
body.theme-light .pfg-award-cat { color: #1a1410; }
body.theme-light .pfg-award-desc { color: #7a6e62; }
body.theme-light .pfg-award-winner-row { background: #f5f3ee; border-color: rgba(0,0,0,.1); }
body.theme-light .pfg-award-winner-name { color: #1a1410; }
body.theme-light .pfg-awards-method { background: #fff; }
body.theme-light .pfg-awards-method-body p { color: #4a4035; }

/* About / How it works */
body.theme-light .pfg-about-text p { color: #4a4035; }
body.theme-light .pfg-about-h2 { color: #1a1410; }
body.theme-light .pfg-about-stat-val { color: #9e6f0a; }
body.theme-light .pfg-about-cover p { color: #4a4035; }
body.theme-light .pfg-hiw-step-content h3 { color: #1a1410; }
body.theme-light .pfg-hiw-step-content p { color: #4a4035; }
body.theme-light .pfg-hiw-tip { background: rgba(158,111,10,.08); border-color: rgba(158,111,10,.2); }
body.theme-light .pfg-hiw-concept { border-color: rgba(0,0,0,.1); }
body.theme-light .pfg-hiw-concept p { color: #4a4035; }
body.theme-light .pfg-hiw-example { background: rgba(0,0,0,.04); color: #7a6e62; }
body.theme-light .pfg-hiw-flag-item { border-color: rgba(192,57,43,.15); }
body.theme-light .pfg-hiw-flag-item strong { color: #1a1410; }
body.theme-light .pfg-hiw-flag-detail { color: #7a6e62; }

/* Contact form */
body.theme-light .pfg-cf-field input,
body.theme-light .pfg-cf-field textarea { background: #fff; border-color: rgba(0,0,0,.15); color: #1a1410; }
body.theme-light .pfg-cf-field input:focus,
body.theme-light .pfg-cf-field textarea:focus { border-color: #9e6f0a; }
body.theme-light .pfg-cf-field label { color: #7a6e62; }
body.theme-light .pfg-cf-type { background: #f5f3ee; border-color: rgba(0,0,0,.12); color: #4a4035; }
body.theme-light .pfg-cf-type.active,
body.theme-light .pfg-cf-type:hover { color: #7a500a; background: rgba(158,111,10,.08); border-color: rgba(158,111,10,.25); }
body.theme-light .pfg-contact-resp-type { color: #4a4035; }
body.theme-light .pfg-contact-topic strong { color: #1a1410; }
body.theme-light .pfg-contact-topic p { color: #7a6e62; }
body.theme-light .pfg-contact-resp>div { background: #f5f3ee; }

/* Blog post template */
body.theme-light .pfg-blog-h1 { color: #1a1410; }
body.theme-light .pfg-blog-body { color: #2d2620; }
body.theme-light .pfg-blog-body h2,
body.theme-light .pfg-blog-body h3 { color: #1a1410; border-top-color: rgba(0,0,0,.08); }
body.theme-light .pfg-blog-body p,
body.theme-light .pfg-blog-body li { color: #2d2620; }
body.theme-light .pfg-blog-body strong { color: #1a1410; }
body.theme-light .pfg-blog-body code { background: #f0ece4; color: #0a7c52; }
body.theme-light .pfg-blog-body blockquote { background: rgba(124,58,237,.04); }
body.theme-light .pfg-blog-body table th { background: #f5f3ee; color: #7a6e62; }
body.theme-light .pfg-blog-body table td { border-bottom-color: rgba(0,0,0,.07); }
body.theme-light .pfg-blog-meta-row { color: #7a6e62; }
body.theme-light .pfg-blog-excerpt { color: #4a4035; }
body.theme-light .pfg-toc { background: #f5f3ee; border-color: rgba(0,0,0,.1); }
body.theme-light .pfg-toc-list a { color: #4a4035; }
body.theme-light .pfg-toc-list a:hover { color: #9e6f0a; }
body.theme-light .pfg-sidebar-card { background: #fff; border-color: rgba(0,0,0,.1); }
body.theme-light .pfg-sidebar-tag { background: #f0ece4; border-color: rgba(0,0,0,.1); color: #4a4035; }
/* FAQ — silver theme: clearly elevated from deep navy page background */
body.theme-silver .pfg-faq-item { background: var(--ink3); border-color: rgba(79,195,247,.2); }
body.theme-silver .pfg-faq-item:has(.pfg-faq-q[aria-expanded='true']) { border-color: rgba(79,195,247,.4); }
body.theme-silver .pfg-faq-q { color: var(--t0); }
body.theme-silver .pfg-faq-q:hover { background: rgba(79,195,247,.04); }
body.theme-silver .pfg-faq-q[aria-expanded='true'] .pfg-faq-icon { color: #4fc3f7; }
body.theme-silver .pfg-faq-a { background: var(--ink4); }
body.theme-silver .pfg-faq-a>div { color: var(--t1); border-top-color: rgba(79,195,247,.15); }
/* FAQ — light theme */
body.theme-light .pfg-faq-item { background: #fff; border-color: rgba(0,0,0,.1); }
body.theme-light .pfg-faq-q { color: #1a1410; }
body.theme-light .pfg-faq-a { background: rgba(0,0,0,.025); }
body.theme-light .pfg-faq-a>div { color: #4a4035; border-top-color: rgba(0,0,0,.07); }
body.theme-light .pfg-disclaimer { background: #f5f3ee; border-color: rgba(0,0,0,.1); color: #7a6e62; }
body.theme-light .pfg-post-meta-bar { background: #f5f3ee; border-color: rgba(0,0,0,.1); }
body.theme-light .pfg-pmb-item { color: #7a6e62; }
body.theme-light .pfg-ai-answer { background: rgba(158,111,10,.06); border-color: rgba(158,111,10,.2); }
body.theme-light .pfg-ai-answer p { color: #2d2620; }

/* Single review page */
body.theme-light .review-header { color: #1a1410; }
body.theme-light .review-header__title { color: #1a1410; }
body.theme-light .review-content h2 { color: #1a1410; }
body.theme-light .review-content p { color: #2d2620; }
body.theme-light .pfg-trading-rules-grid .pfg-tr-item { background: #fff; border-color: rgba(0,0,0,.1); }
body.theme-light .pfg-tr-label { color: #7a6e62; }
body.theme-light .pfg-products-wrap { color: #1a1410; }

/* ============================================================================
   SILVER THEME — electric silver on deep navy
   High-energy prop trading aesthetic: metallic chrome + electric blue + neon.
   Contrasting and vivid — reflects the competitive world of funded trading.
   ============================================================================ */
body.theme-silver {
    --ink:       #050a18;
    --ink2:      #081020;
    --ink3:      #0c1830;
    --ink4:      #102040;
    --ink5:      #162848;
    --t0:        #e8f0fe;
    --color-text: #e8f0fe;  /* sync with silver t0 */
    --t1:        #c4d4f0;
    --t2:        #8aa4cc;
    --t3:        #4d6a94;
    --t4:        #2d4470;
    --border:    rgba(100,160,255,.1);
    --border-h:  rgba(100,160,255,.2);
    /* Replace gold with electric cyan/silver */
    --gold:      #4fc3f7;
    --gold-l:    #81d4fa;
    --gold-d:    rgba(79,195,247,.08);
    --gold-ln:   rgba(79,195,247,.25);
    --gold-g:    rgba(79,195,247,.12);
    /* Replace jade with electric green */
    --jade:      #00e5a0;
    --jade-d:    rgba(0,229,160,.08);
    /* Replace purple with neon magenta */
    --purple:    #e040fb;
    --purple-m:  #ce39e0;
    --purple-d:  rgba(224,64,251,.08);
    --border-p:  rgba(224,64,251,.2);
    --violet:    #ea80fc;
    --amber:     #ffca28;
    --crimson:   #ff5252;
    background-color: var(--ink);
    color: var(--t0);
}
body.theme-silver .site-header {
    background: rgba(5,10,24,.88);
    border-bottom-color: rgba(79,195,247,.15);
    box-shadow: 0 1px 0 rgba(79,195,247,.1);
}
body.theme-silver .hero {
    background: linear-gradient(135deg,#050a18 0%,#06102a 50%,#050a18 100%);
}
body.theme-silver .hero-grid {
    background-image: linear-gradient(rgba(79,195,247,.05) 1px,transparent 1px),
                      linear-gradient(90deg,rgba(79,195,247,.05) 1px,transparent 1px);
}
body.theme-silver .hero-orb,
body.theme-silver .hero-orb2 {
    background: radial-gradient(ellipse at center,rgba(224,64,251,.12) 0%,transparent 70%);
}
body.theme-silver .hero-title em {
    background: linear-gradient(120deg,#81d4fa,#4fc3f7,#00e5a0);
    -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
}
body.theme-silver .eyebrow {
    background: rgba(79,195,247,.08); color: #4fc3f7;
    border-color: rgba(79,195,247,.25);
}
body.theme-silver .eyebrow-dot { background: #4fc3f7; box-shadow: 0 0 6px #4fc3f7; }
body.theme-silver .btn-gold {
    background: linear-gradient(135deg,#0288d1,#4fc3f7);
    color: #050a18; font-weight: 700;
    box-shadow: 0 4px 20px rgba(79,195,247,.35);
}
body.theme-silver .btn-gold:hover {
    background: linear-gradient(135deg,#039be5,#81d4fa);
    box-shadow: 0 6px 28px rgba(79,195,247,.5);
}
body.theme-silver .btn-outline { border-color: rgba(79,195,247,.3); color: #4fc3f7; }
body.theme-silver .btn-outline:hover { border-color: #4fc3f7; background: rgba(79,195,247,.08); }
body.theme-silver .firm-card {
    background: var(--ink2);
    border-color: rgba(79,195,247,.1);
}
body.theme-silver .firm-card:hover { border-color: rgba(79,195,247,.3); }
body.theme-silver .firm-card-accent.ac-gold { background: linear-gradient(90deg,#4fc3f7,#00e5a0); }
body.theme-silver .firm-card-accent.ac-violet { background: linear-gradient(90deg,#e040fb,#4fc3f7); }
body.theme-silver .firm-card-accent.ac-jade { background: linear-gradient(90deg,#00e5a0,#4fc3f7); }
body.theme-silver .firm-name { color: var(--t0); }
body.theme-silver .tag-gold { background: rgba(79,195,247,.1); color: #4fc3f7; border-color: rgba(79,195,247,.2); }
body.theme-silver .tag-purple { background: rgba(224,64,251,.08); color: #e040fb; border-color: rgba(224,64,251,.2); }
body.theme-silver .star { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M6 1l1.3 2.7 3.2.3-2.2 2.2.5 3L6 7.7 3.2 9.2l.5-3L1.5 4l3.2-.3z' fill='%234fc3f7'/%3E%3C/svg%3E"); }
body.theme-silver .fstat-val.green { color: #00e5a0; }
body.theme-silver .fstat-val.gold  { color: #4fc3f7; }
body.theme-silver .disc-badge { background: rgba(79,195,247,.1); color: #4fc3f7; border-color: rgba(79,195,247,.2); }
body.theme-silver .disc-code { background: rgba(79,195,247,.1); color: #4fc3f7; border-color: rgba(79,195,247,.2); }
body.theme-silver .disc-copy { background: rgba(79,195,247,.15); color: #4fc3f7; border-color: rgba(79,195,247,.3); }
/* Score wheels: cyan for good, magenta for low in silver theme */
body.theme-silver .score-good .sw-num, body.theme-silver .sw-num.score-good {
    color: #4fc3f7;
    text-shadow: 0 0 10px rgba(79,195,247,.8), 0 0 20px rgba(79,195,247,.4);
}
body.theme-silver .score-low .sw-num, body.theme-silver .sw-num.score-low {
    color: #e040fb;
    text-shadow: 0 0 10px rgba(224,64,251,.8), 0 0 20px rgba(224,64,251,.4);
}
body.theme-silver .filter-tab { background: var(--ink3); color: var(--t2); border-color: rgba(79,195,247,.1); }
body.theme-silver .filter-tab.active { background: #0288d1; color: #fff; border-color: #4fc3f7; }
body.theme-silver .payout-ticker { background: rgba(5,10,24,.9); border-color: rgba(79,195,247,.1); }
body.theme-silver .tf { color: #4fc3f7; }
body.theme-silver .sub-menu, body.theme-silver .nav-dropdown {
    background: rgba(8,16,32,.98); border-color: rgba(79,195,247,.2);
}
body.theme-silver .sub-menu a, body.theme-silver .nav-dropdown a { color: var(--t2); }
body.theme-silver .sub-menu a:hover, body.theme-silver .nav-dropdown a:hover {
    color: #4fc3f7; background: rgba(79,195,247,.08);
}
body.theme-silver .main-nav a, body.theme-silver .nav-link { color: #c8ddf5; font-weight: 600; }
body.theme-silver .main-nav a:hover, body.theme-silver .nav-link:hover { color: #4fc3f7; background: rgba(79,195,247,.08); }
body.theme-silver .rk1 { background: linear-gradient(135deg,#0288d1,#4fc3f7); color: #050a18; }
body.theme-silver .rk2 { background: linear-gradient(135deg,#546e7a,#90a4ae); color: #050a18; }
body.theme-silver .rk3 { background: linear-gradient(135deg,#bf6f4a,#ff9a73); color: #050a18; }
body.theme-silver .live-badge { background: rgba(0,229,160,.1); color: #00e5a0; border-color: rgba(0,229,160,.3); }
body.theme-silver .live-dot { background: #00e5a0; box-shadow: 0 0 6px #00e5a0; }
body.theme-silver .screener-card { background: var(--ink3); border-color: rgba(79,195,247,.15); }
body.theme-silver .s-select { background: var(--ink4); border-color: rgba(79,195,247,.15); color: var(--t1); }
body.theme-silver .s-input { background: var(--ink4); border-color: rgba(79,195,247,.15); color: var(--t1); }
body.theme-silver .match-count { color: #4fc3f7; }
body.theme-silver .section-sub { color: var(--t2); }
body.theme-silver .trust-val { color: var(--t0); }
body.theme-silver .trust-label { color: var(--t3); }
body.theme-silver .theme-toggle-btn {
    background: var(--ink3); border-color: rgba(79,195,247,.2); color: #4fc3f7;
}
body.theme-silver .theme-toggle-btn:hover { border-color: #4fc3f7; color: #81d4fa; }
/* Section headings */
body.theme-silver h2 em {
    background: linear-gradient(120deg,#81d4fa,#00e5a0);
    -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
}
/* CTA banner */
body.theme-silver .cta-banner {
    background: linear-gradient(135deg, #0d1b2e 0%, #0a2540 50%, #061a30 100%);
    border: 1px solid rgba(79,195,247,.45);
    box-shadow: 0 0 60px rgba(79,195,247,.08), inset 0 1px 0 rgba(79,195,247,.15);
}
body.theme-silver .cta-banner::before {
    background: radial-gradient(ellipse 70% 60% at 50% 0%, rgba(79,195,247,.12), transparent 60%),
                radial-gradient(ellipse 50% 40% at 50% 100%, rgba(0,229,160,.07), transparent 60%);
}
body.theme-silver .cta-banner::after {
    background: linear-gradient(90deg, transparent 5%, #4fc3f7 50%, transparent 95%);
    opacity: .5;
}
body.theme-silver .cta-banner h2 { color: #e8f4fd; }
body.theme-silver .cta-banner p  { color: #a8c8e8; }
body.theme-silver .cta-inner .eyebrow {
    background: rgba(79,195,247,.12);
    color: #4fc3f7;
    border-color: rgba(79,195,247,.3);
}
/* Payout bars */
body.theme-silver .payout-bar-fill { background: linear-gradient(90deg,#4fc3f7,#00e5a0); }
/* Awards */
body.theme-silver .award-card { border-color: rgba(79,195,247,.15); }
body.theme-silver .award-title { color: #4fc3f7; }
/* Blog cards */
body.theme-silver .blog-cat { background: rgba(79,195,247,.1); color: #4fc3f7; border-color: rgba(79,195,247,.2); }
body.theme-silver .blog-rm { color: #4fc3f7; }
/* Recommendation box in comparison */
body.theme-silver .cmp-rec { border-color: #4fc3f7; }
body.theme-silver .cmp-rec__stripe { background: linear-gradient(90deg,#e040fb,#4fc3f7,#00e5a0); }
body.theme-silver .cmp-rec__score-num { color: #4fc3f7; }

/* FIRM HDR WHEEL SIZE — moved to canonical block */


/* ==========================================================================
   SCORE WHEEL — canonical CSS v11
   Works on: firm cards (homepage), single.php review header + verdict,
             comparison page panels, comparison recommendation box.
   JS (scripts.js) animates .sw-arc via IntersectionObserver:
     1. Sets stroke gradient url(#sw-grad-good) or url(#sw-grad-low)
     2. Transitions stroke-dashoffset from full → target
     3. Applies drop-shadow filter for neon glow
   ========================================================================== */

/* SCORE WHEEL BLOCK 2 REMOVED — canonical block injected below */

/* ============================================================================
   SCORE WHEEL — DEFINITIVE SINGLE BLOCK (replaces all previous definitions)
   Key fix: SVG is display:block (in-flow), wrap is position:relative,
   sw-inner uses inset:0 so absolute centering works correctly.
   ============================================================================ */

.score-wheel-wrap {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    /* Default size — overridden per context below */
    width: 80px;
    height: 80px;
}

/* SVG is NOT position:absolute — it defines the layout size of the wrap */
.score-wheel-svg {
    display: block;
    width: 100%;
    height: 100%;
    transform: rotate(-90deg);          /* arc starts at 12 o'clock */
    overflow: visible;
    flex-shrink: 0;
}

.sw-bg {
    fill: none;
    stroke: rgba(255,255,255,.08);
    stroke-width: 7;
}

.sw-arc {
    fill: none;
    stroke: transparent;
    stroke-width: 7;
    stroke-linecap: round;
}

/* Label — absolutely centered inside the wrap */
.sw-inner {
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;  /* inset:0 but compatible */
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0;
    pointer-events: none;
    line-height: 1;
}

.sw-num {
    font-family: var(--serif);
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1;
    transition: color .4s, text-shadow .4s;
}

.sw-den {
    font-size: .58rem;
    color: var(--t3);
    line-height: 1;
    margin-top: 1px;
}

/* score ≥ 5: jade→gold neon */
.sw-num.score-good {
    color: var(--jade);
    text-shadow:
        0 0 8px  rgba(16,185,129,.75),
        0 0 20px rgba(16,185,129,.4),
        0 0 36px rgba(201,168,76,.2);
}

/* score < 5: crimson→amber neon */
.sw-num.score-low {
    color: #ef4444;
    text-shadow:
        0 0 8px  rgba(239,68,68,.85),
        0 0 20px rgba(239,68,68,.5),
        0 0 36px rgba(245,158,11,.2);
}

/* Context sizes */
.firm-hdr .score-wheel-wrap  { width: 64px; height: 64px; }
.firm-hdr .sw-num            { font-size: .95rem; }
.firm-hdr .sw-bg,
.firm-hdr .sw-arc            { stroke-width: 6; }

.review-score-block .score-wheel-wrap { width: 90px; height: 90px; }
.review-score-block .sw-num           { font-size: 1.3rem; }

/* Archive table inline wheel */
.tbl-score-wheel             { width: 52px; height: 52px; }
.tbl-score-wheel .sw-num     { font-size: .8rem; }
.tbl-score-wheel .sw-bg,
.tbl-score-wheel .sw-arc     { stroke-width: 6; }

/* Silver theme */
body.theme-silver .sw-bg { stroke: rgba(79,195,247,.1); }
body.theme-silver .sw-num.score-good {
    color: #4fc3f7;
    text-shadow: 0 0 10px rgba(79,195,247,.9), 0 0 24px rgba(79,195,247,.5);
}
body.theme-silver .sw-num.score-low {
    color: #e040fb;
    text-shadow: 0 0 10px rgba(224,64,251,.9), 0 0 24px rgba(224,64,251,.5);
}

/* Light theme */
body.theme-light .sw-bg { stroke: rgba(0,0,0,.08); }
body.theme-light .sw-num.score-good {
    color: #0a7c52;
    text-shadow: 0 0 6px rgba(10,124,82,.35);
}
body.theme-light .sw-num.score-low {
    color: #c0392b;
    text-shadow: 0 0 6px rgba(192,57,43,.35);
}


/* ==========================================================================
   MOBILE ACCORDION INDICATOR
   ========================================================================== */
@media (max-width: 900px) {
    .mob-expand { pointer-events: none; opacity: .6; }
    .mob-expand svg { vertical-align: middle; }
    /* Mobile sub-menu open state — JS applies these inline */
    .main-nav.is-open .sub-menu[style*="flex"],
    .main-nav.is-open .nav-dropdown[style*="flex"] {
        border-top: 1px solid var(--border) !important;
        margin-top: 2px !important;
    }
    /* Mobile nav links — larger tap targets */
    .main-nav.is-open .menu-item > a,
    .main-nav.is-open .nav-group > a {
        display: flex !important;
        align-items: center;
        height: 46px;
        padding: 0 16px;
        font-size: 14px;
        border-radius: 8px;
        color: var(--t1);
    }
    .main-nav.is-open .menu-item > a:hover { background: rgba(255,255,255,.05); }
    /* Hide CTA buttons text on very small screens */
    .header-cta .btn-sm { font-size: 12px; padding: 0 10px; height: 30px; }
}

/* ==========================================================================
   COMPREHENSIVE MOBILE RESPONSIVE — all pages
   ========================================================================== */

/* ── Container ── */
@media (max-width: 768px) {
    .container { padding: 0 16px; }
    section.section, section.section-sm { padding: 40px 0; }
    .cmp-hero, .hero { padding: 48px 0 36px; }
}

/* ── Hero ── */
@media (max-width: 860px) {
    .hero-inner { grid-template-columns: 1fr !important; gap: 32px; }
    .hero-title  { font-size: clamp(2rem,7vw,3.2rem); }
    .hero-desc   { font-size: 14px; }
    .hero-actions { flex-wrap: wrap; gap: 10px; }
    .screener-card { padding: 20px; }
    .s-grid { grid-template-columns: 1fr 1fr !important; }
    .trust-strip { gap: 12px; }
    .trust-sep { display: none; }
}

/* ── Firms grid ── */
@media (max-width: 900px) {
    .firms-grid { grid-template-columns: 1fr 1fr !important; gap: 16px; }
}
@media (max-width: 560px) {
    .firms-grid { grid-template-columns: 1fr !important; }
}

/* ── Firm card ── */
@media (max-width: 560px) {
    .firm-hdr { gap: 8px; }
    .firm-hdr .score-wheel-wrap { width: 54px; height: 54px; }
    .firm-stats { grid-template-columns: 1fr 1fr; }
    .firm-footer { flex-direction: column; gap: 8px; }
    .firm-footer .btn { width: 100%; justify-content: center; }
}

/* ── Payout section ── */
@media (max-width: 860px) {
    .payout-inner { grid-template-columns: 1fr !important; gap: 32px; }
    .tpb { margin-top: 0; }
}

/* ── Tools strip ── */
@media (max-width: 860px) {
    .tools-strip { grid-template-columns: 1fr 1fr !important; gap: 16px; }
}
@media (max-width: 500px) {
    .tools-strip { grid-template-columns: 1fr !important; }
}

/* ── Awards ── */
@media (max-width: 860px) {
    .awards-strip { grid-template-columns: 1fr !important; gap: 16px; }
}

/* ── Announcements ── */
@media (max-width: 860px) {
    .ann-grid { grid-template-columns: 1fr !important; gap: 16px; }
}

/* ── Blog grid ── */
@media (max-width: 860px) {
    .blog-grid { grid-template-columns: 1fr 1fr !important; gap: 16px; }
}
@media (max-width: 560px) {
    .blog-grid { grid-template-columns: 1fr !important; }
}

/* ── Loyalty strip ── */
@media (max-width: 860px) {
    .loyalty-strip { grid-template-columns: 1fr 1fr !important; gap: 20px; }
}
@media (max-width: 560px) {
    .loyalty-strip { grid-template-columns: 1fr !important; }
}

/* ── Red flag section ── */
@media (max-width: 860px) {
    .rf-inner { grid-template-columns: 1fr !important; gap: 32px; }
}

/* ── CTA banner ── */
@media (max-width: 640px) {
    .cta-inner h2  { font-size: clamp(1.6rem,6vw,2.4rem); }
    .cta-actions   { flex-direction: column; gap: 10px; }
    .cta-actions .btn { width: 100%; justify-content: center; }
}

/* ── Payout ticker ── */
@media (max-width: 560px) {
    .payout-ticker { font-size: 12px; }
    .ticker-label  { display: none; }
}

/* ── Archive / comparison table ── */
@media (max-width: 900px) {
    .comparison-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
    .comparison-table { min-width: 680px; font-size: 13px; }
    .comparison-table th, .comparison-table td { padding: 10px 12px; }
}

/* ── Single review layout ── */
@media (max-width: 900px) {
    .review-layout { grid-template-columns: 1fr !important; }
    .review-sidebar { position: static !important; }
    .review-header { flex-wrap: wrap; gap: 16px; }
    .review-score-block { margin-left: auto; }
    .pros-cons { grid-template-columns: 1fr !important; }
}

/* ── Comparison page selectors ── */
@media (max-width: 860px) {
    .cmp-sel-grid { grid-template-columns: 1fr !important; gap: 14px; }
    .cmp-vs-badge { display: none; }
    .cmp-panels { grid-template-columns: 1fr !important; gap: 20px; }
    .cmp-panels__vs { display: none; }
    .cmp-rec__body { flex-direction: column; }
}

/* ── Footer ── */
@media (max-width: 860px) {
    .footer-grid, .footer-main { grid-template-columns: 1fr 1fr !important; gap: 32px; }
    .footer-bottom { flex-direction: column; gap: 12px; text-align: center; }
    .footer-legal  { justify-content: center; flex-wrap: wrap; }
}
@media (max-width: 480px) {
    .footer-grid, .footer-main { grid-template-columns: 1fr !important; }
}

/* ── Filter tabs ── */
@media (max-width: 640px) {
    .filter-tabs { overflow-x: auto; flex-wrap: nowrap; padding-bottom: 4px; }
    .filter-tab  { white-space: nowrap; flex-shrink: 0; }
}

/* ── Theme toggle ── */
@media (max-width: 480px) {
    .theme-toggle-bar { top: 65px; right: 10px; }
    .theme-toggle-btn { font-size: 9px; padding: 0 8px; }
    .tt-label { display: none; }
}

/* ── Score wheel on mobile — ensure centering holds at all sizes ── */
@media (max-width: 480px) {
    .firm-hdr .score-wheel-wrap { width: 50px; height: 50px; }
}

/* ── Buttons on mobile ── */
@media (max-width: 400px) {
    .btn-lg  { height: 44px; padding: 0 20px; font-size: 14px; }
    .btn-xl  { height: 48px; padding: 0 22px; font-size: 15px; }
}

/* ── Light theme mobile header ── */
@media (max-width: 900px) {
    body.theme-light .main-nav.is-open {
        background: rgba(245,243,238,.98) !important;
        border-bottom-color: rgba(0,0,0,.1) !important;
    }
    body.theme-silver .main-nav.is-open {
        background: rgba(5,10,24,.98) !important;
        border-bottom-color: rgba(79,195,247,.15) !important;
    }
}

/* ==========================================================================
   RED FLAG DETECTOR — theme-level styles
   Page-specific styles live in template-red-flags.php inline <style>
   These handle theme overrides and additional context integration.
   ========================================================================== */

/* Risk badge colours — used in single.php sidebar and archive.php */
.rf-badge-inline {
    display: inline-flex;
    align-items: center;
    height: 20px;
    padding: 0 8px;
    border-radius: 99px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    gap: 4px;
}
.rf-badge-inline.rf-low     { background: rgba(16,185,129,.1);  color: #10b981; border: 1px solid rgba(16,185,129,.25); }
.rf-badge-inline.rf-medium  { background: rgba(245,158,11,.1);  color: #f59e0b; border: 1px solid rgba(245,158,11,.25); }
.rf-badge-inline.rf-high    { background: rgba(239,68,68,.1);   color: #ef4444; border: 1px solid rgba(239,68,68,.25); }
.rf-badge-inline.rf-extreme { background: rgba(124,58,237,.1);  color: #a78bfa; border: 1px solid rgba(124,58,237,.25); }

/* Light theme overrides */
body.theme-light .rf-search-input { background: #fff; border-color: rgba(0,0,0,.15); color: #1a1410; }
body.theme-light .rf-search-dropdown { background: #fff; border-color: rgba(0,0,0,.12); }
body.theme-light .rf-search-item:hover { background: rgba(239,68,68,.05); }
body.theme-light .rf-firm-header { background: var(--ink2); }
body.theme-light .rf-flag-card { background: #fff; }
body.theme-light .rf-flag-detail { color: var(--t2); }
body.theme-light .rf-count { background: var(--ink2); }
body.theme-light .rf-table-wrap { border-color: rgba(0,0,0,.1); }
body.theme-light .rf-table thead tr { background: rgba(0,0,0,.04); }
body.theme-light .rf-table-row:hover td { background: rgba(239,68,68,.02); }

/* Silver theme overrides */
body.theme-silver .rf-ring-fill.rf-low    { stroke: #00e5a0; }
body.theme-silver .rf-ring-fill.rf-medium { stroke: #ffca28; }
body.theme-silver .rf-ring-fill.rf-high   { stroke: #ff5252; }
body.theme-silver .rf-ring-fill.rf-extreme{ stroke: #e040fb; }
body.theme-silver .rf-ring-num.rf-low     { color: #00e5a0; text-shadow: 0 0 10px rgba(0,229,160,.8); }
body.theme-silver .rf-ring-num.rf-high    { color: #ff5252; text-shadow: 0 0 10px rgba(255,82,82,.8); }
body.theme-silver .rf-ring-num.rf-extreme { color: #e040fb; text-shadow: 0 0 10px rgba(224,64,251,.8); }
body.theme-silver .rf-search-input:focus  { border-color: #ff5252; box-shadow: 0 0 0 3px rgba(255,82,82,.15); }
body.theme-silver .rf-page-hero__title em {
    background: linear-gradient(120deg,#ff5252,#ff9100);
    -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
}
body.theme-silver .rf-flag-card.rf-critical { border-color: rgba(255,82,82,.25); }

/* Responsive: Red Flag page table */
@media (max-width: 768px) {
    .rf-table-wrap { overflow-x: auto; }
    .rf-table { min-width: 600px; }
    .rf-firm-header { grid-template-columns: auto 1fr; }
    .rf-risk-ring-wrap { grid-column: 1 / -1; justify-self: center; }
}
@media (max-width: 480px) {
    .rf-count-strip { grid-template-columns: 1fr 1fr; }
    .rf-page-hero { padding: 48px 0 36px; }
}


/* ==========================================================================
   PROPFLAGGER — COMPREHENSIVE MOBILE RESPONSIVE FIXES
   Breakpoints: 900px (tablet), 600px (mobile), 400px (small)
   ========================================================================== */

/* ── Review page ── */
@media (max-width: 900px) {
    .review-layout { grid-template-columns: 1fr !important; }
    .review-header { flex-direction: column; align-items: flex-start; gap: 16px; }
    .review-score-block { align-self: flex-start; }
    .pfg-review-sidebar { position: static !important; margin-top: 32px; }
    .pfg-trading-rules-grid { grid-template-columns: repeat(2,1fr) !important; }
}
@media (max-width: 600px) {
    .pfg-prod-tabs { flex-direction: column; gap: 4px; }
    .pfg-prod-tab { border-bottom: none !important; border-radius: 8px !important; border: 1px solid var(--border); }
    .pfg-prod-tab.active { border-color: var(--gold-ln) !important; }
    .pfg-phase-flow { flex-direction: column !important; }
    .pfg-phase-arrow { transform: rotate(90deg); padding: 4px 0; }
    .pfg-trading-rules-grid { grid-template-columns: 1fr 1fr !important; }
    .pfg-prod-summary { flex-direction: column; gap: 8px; }
}

/* ── Hero ── */
@media (max-width: 900px) {
    .pfg-hero-flagger { padding: 48px 0 40px; min-height: auto !important; }
    .pfg-flagger-hero-inner { grid-template-columns: 1fr !important; gap: 32px !important; }
    .pfg-rf-hero-card { padding: 20px; }
}
@media (max-width: 600px) {
    .pfg-rf-search-row { flex-direction: column; }
    .pfg-rf-go-btn { height: 44px; width: 100%; }
    .pfg-flagger-bullets { display: none; } /* hide bullets on very small screens */
    .hero-title { font-size: clamp(1.6rem,8vw,2.2rem) !important; }
}

/* ── Screener ── */
@media (max-width: 900px) {
    .pfg-screener-filters { grid-template-columns: repeat(3,1fr) !important; }
    .pfg-sf-actions { grid-column: 1 / -1; flex-direction: row; }
}
@media (max-width: 600px) {
    .pfg-screener-filters { grid-template-columns: 1fr 1fr !important; }
    .pfg-screener-label { flex-direction: column; align-items: flex-start; }
    .pfg-screener-count-wrap { margin-left: 0; }
    .pfg-sf-actions { grid-column: 1 / -1; flex-direction: column; }
}
@media (max-width: 400px) {
    .pfg-screener-filters { grid-template-columns: 1fr !important; }
}

/* ── Sidebar ── */
@media (max-width: 900px) {
    .pfg-review-sidebar { display: flex; flex-direction: column; gap: 14px; }
}

/* ── Sub-page grids ── */
@media (max-width: 900px) {
    .pfg-sub-grid { grid-template-columns: repeat(2,1fr) !important; }
    .pfg-sub-podium { grid-template-columns: 1fr !important; }
    .pfg-aff-tiers { grid-template-columns: repeat(2,1fr) !important; }
    .pfg-awards-grid { grid-template-columns: repeat(2,1fr) !important; }
    .pfg-about-section { grid-template-columns: 1fr !important; }
    .pfg-about-covers { grid-template-columns: repeat(2,1fr) !important; }
    .pfg-info-cards,.pfg-promo-types { grid-template-columns: 1fr !important; }
    .pfg-contact-layout { grid-template-columns: 1fr !important; }
    .pfg-lb-table th:nth-child(5),.pfg-lb-table td:nth-child(5) { display: none; }
    .pfg-payout-table th:nth-child(4),.pfg-payout-table td:nth-child(4) { display: none; }
    .pfg-cta-inner,.pfg-sub-cta-inner { flex-direction: column !important; text-align: center; }
    .pfg-sub-cta p,.pfg-cta-sub { max-width: none !important; }
    .pfg-feat-table-wrap { font-size: 11px; }
}
@media (max-width: 600px) {
    .pfg-sub-grid { grid-template-columns: 1fr !important; }
    .pfg-awards-grid { grid-template-columns: 1fr !important; }
    .pfg-aff-tiers { grid-template-columns: 1fr !important; }
    .pfg-about-covers { grid-template-columns: 1fr !important; }
    .pfg-about-values,.pfg-hiw-flow { padding: 0 !important; }
    .pfg-hiw-step-left { display: none; }
    .pfg-bl-grid { grid-template-columns: 1fr !important; }
    .pfg-bl-card--wide { flex-direction: column !important; }
    .pfg-bl-card--wide .pfg-bl-card-img-wrap { width: 100% !important; }
    .pfg-offers-grid { grid-template-columns: 1fr !important; }
}

/* ── Comparison tool ── */
@media (max-width: 900px) {
    .cmp-panels { flex-direction: column !important; }
    .cmp-panel { width: 100% !important; }
    .cmp-table { font-size: 11px; }
    .cmp-td-lbl { min-width: 80px !important; }
    .cmp-sel-row { flex-direction: column; }
    .cmp-vs-badge { display: none; }
}
@media (max-width: 600px) {
    .cmp-table { display: block; overflow-x: auto; }
}

/* ── Blog post ── */
@media (max-width: 900px) {
    .pfg-blog-layout { grid-template-columns: 1fr !important; }
    .pfg-blog-sidebar { display: none !important; }
    .pfg-blog-wrap { padding: 0 16px 48px; }
}

/* ── Announcement / news cards ── */
@media (max-width: 600px) {
    .ann-grid,.news-grid { grid-template-columns: 1fr !important; }
    .news-event-card { grid-template-columns: 1fr !important; gap: 8px; }
}

/* ── Footer ── */
@media (max-width: 768px) {
    .footer-grid { grid-template-columns: 1fr 1fr !important; gap: 24px; }
    .footer-brand { grid-column: 1 / -1; }
}
@media (max-width: 480px) {
    .footer-grid { grid-template-columns: 1fr !important; }
    .footer-bottom { flex-direction: column; gap: 8px; text-align: center; }
}

/* ── Red flag detector page ── */
@media (max-width: 900px) {
    .rf-inner { grid-template-columns: 1fr !important; }
}
@media (max-width: 600px) {
    .rf-list { gap: 10px; }
    .rf-item { flex-direction: column; gap: 8px; }
}

/* ── Firm cards on homepage ── */
@media (max-width: 600px) {
    .firm-card { padding: 16px; }
    .fstat-grid { grid-template-columns: repeat(2,1fr) !important; }
    .firms-grid { grid-template-columns: 1fr !important; }
}

/* ── Fix mobile nav background for silver + light themes ── */
@media (max-width: 900px) {
    body.theme-silver .main-nav.is-open,
    body.theme-silver .primary-nav.open {
        background: rgba(4,8,20,.98);
        border-color: rgba(79,195,247,.15);
    }
    body.theme-silver .main-nav.is-open a,
    body.theme-silver .primary-nav.open a { color: var(--t1); }
    body.theme-light .main-nav.is-open,
    body.theme-light .primary-nav.open {
        background: rgba(245,243,238,.98);
        border-color: rgba(0,0,0,.1);
    }
    body.theme-light .main-nav.is-open a,
    body.theme-light .primary-nav.open a { color: var(--t1); }
    /* Mobile sub-menu for silver */
    body.theme-silver .main-nav .sub-menu[style*="flex"],
    body.theme-silver .primary-nav .nav-dropdown[style*="flex"] {
        background: rgba(79,195,247,.04) !important;
        border-color: rgba(79,195,247,.1) !important;
    }
    /* Mobile sub-menu for light */
    body.theme-light .main-nav .sub-menu[style*="flex"],
    body.theme-light .primary-nav .nav-dropdown[style*="flex"] {
        background: rgba(0,0,0,.03) !important;
        border-color: rgba(0,0,0,.08) !important;
    }
    body.theme-light .main-nav .sub-menu a,
    body.theme-light .primary-nav .nav-dropdown a { color: #2d2620 !important; }
}

/* ── General touch-friendly sizing ── */
@media (max-width: 900px) {
    .btn { min-height: 40px; }
    input, select, textarea { font-size: 16px !important; } /* prevent iOS zoom */
}

/* ============================================================================
   NAV CONTRAST — DEFINITIVE FINAL OVERRIDES
   Must be at end of file so they win all cascade conflicts.
   All three themes: dark (default), light, silver.
   ============================================================================ */

/* Dark theme (default — no theme class on body) */
.site-header .main-nav a,
.site-header .nav-link {
    color: #d5ccf0;
    font-weight: 600;
}
.site-header .main-nav a:hover,
.site-header .nav-link:hover,
.site-header .main-nav .current-menu-item > a {
    color: #ffffff;
    background: rgba(255,255,255,.08);
}

/* Light theme */
body.theme-light .site-header .main-nav a,
body.theme-light .site-header .nav-link {
    color: #1a0f00;
    font-weight: 600;
}
body.theme-light .site-header .main-nav a:hover,
body.theme-light .site-header .nav-link:hover,
body.theme-light .site-header .main-nav .current-menu-item > a {
    color: #000000;
    background: rgba(0,0,0,.06);
}

/* Silver theme */
body.theme-silver .site-header .main-nav a,
body.theme-silver .site-header .nav-link {
    color: #c8ddf5;
    font-weight: 600;
}
body.theme-silver .site-header .main-nav a:hover,
body.theme-silver .site-header .nav-link:hover,
body.theme-silver .site-header .main-nav .current-menu-item > a {
    color: #e8f4fd;
    background: rgba(79,195,247,.08);
}

/* Mobile open nav — all themes */
@media (max-width: 900px) {
    .main-nav.is-open a,
    .primary-nav.open .nav-link {
        color: #d5ccf0;
    }
    body.theme-light .main-nav.is-open a,
    body.theme-light .primary-nav.open .nav-link {
        color: #1a0f00;
    }
    body.theme-silver .main-nav.is-open a,
    body.theme-silver .primary-nav.open .nav-link {
        color: #c8ddf5;
    }
}
