/**
 * BigEvent — RADAR Tokens (foundation layer)
 * =============================================================================
 * Purpose      : Expose the RADAR design tokens (colour, signal, paper, type
 *                families, layout + documented scalar foundations) as CSS custom
 *                properties for later RADAR implementation slices. This is the
 *                RADAR Phase 1 "tokens and foundations" foundation — additive only.
 *
 * Source of truth
 * -----------------------------------------------------------------------------
 *   - model/BigEvent/radar.css                :root block (colour/signal/paper/type/layout) — copied verbatim
 *   - model/BigEvent/BIGEVENT_DESIGN_SYSTEM.md §4/§6/§7/§12/§13 — scalar foundations below
 *   The design source model/BigEvent/radar.css is NOT modified by this file.
 *
 * NO VISUAL SELECTORS
 * -----------------------------------------------------------------------------
 *   This file declares ONLY `:root` custom properties. It contains:
 *     - no component selectors, no page/layout/card/row/homepage/taxonomy/search
 *       /button styles;
 *     - no overrides of existing `.be-*` classes;
 *     - no `body` / `html` / `*` rules;
 *     - none of the mockups' terse `.b*` classes.
 *   Because nothing on the current staging site references these token names, and
 *   there are NO selectors here, loading this file produces ZERO visual change.
 *
 * Token-name safety
 * -----------------------------------------------------------------------------
 *   RADAR tokens use short names (--ink, --sig, --w, --t1 …). The live staging
 *   token set uses the `--be-*` prefix (--be-ink, --be-accent, --be-space-N …).
 *   The two sets do not share a single name, so this file overrides nothing.
 *
 * Fonts
 * -----------------------------------------------------------------------------
 *   Only the font-family STACKS are declared (--sans / --mono). They fall back to
 *   system fonts (-apple-system / ui-monospace), so type does not change until a
 *   later slice references them AND the Archivo / JetBrains Mono webfonts are
 *   loaded. No @font-face and no external @import are included here: the webfont
 *   loading method (Google Fonts <link> + preconnect, or self-hosted) is a
 *   deployment-time decision, approved separately, to keep performance/privacy
 *   explicit. No remote font files are stored in this repository.
 *
 * Deployment (future, not now)
 * -----------------------------------------------------------------------------
 *   Intended as a NEW site-wide WPCode CSS snippet "BigEvent — RADAR Tokens"
 *   (created manually on staging — the deploy endpoint cannot create new snippets).
 *   Staging only; never production until the S8 cutover.
 *
 * Rollback
 * -----------------------------------------------------------------------------
 *   Deactivate the snippet (Active off). Instant, no visual delta — nothing
 *   consumes these tokens yet.
 */

:root {
  /* --- Dark product surfaces (radar.css §4) --- */
  --ink:   #0F1216;  /* page base — blue-cast slate, deliberately not pure black */
  --ink2:  #141920;  /* raised: row hover, cards, featured */
  --ink3:  #1A2027;  /* artwork fallback panel */
  --rule:  #232A33;  /* 1px hairline */
  --rule2: #2E3742;  /* borders, ghost buttons */

  /* --- Text (contrast on --ink) --- */
  --w:   #FFFFFF;  /* headlines            18.9:1 */
  --t1:  #D8DDE3;  /* long-form body       13.4:1 */
  --t2:  #A9B1BB;  /* secondary body        9.1:1 */
  --t3:  #7C8590;  /* metadata              5.2:1 */
  --dim: #5C6672;  /* decorative only — fails AA, NEVER for text (3.3:1) */

  /* --- Signal: the only accent (acid green) --- */
  --sig:       #C6F24E;  /* signal on dark   14.6:1 */
  --sigd:      #9BC53D;  /* deeper signal (dashed borders, hover) */
  --sigink:    #0D1005;  /* ink on a green fill */
  --sig-paper: #4C6B12;  /* green is 1.3:1 on paper — use this for text on light (DESIGN_SYSTEM §4) */

  /* --- Paper: light editorial surface --- */
  --paper: #F5F3EF;  /* editorial surface (long-form, trust, SEO copy) */
  --pink:  #12141A;  /* ink on paper */
  --p2:    #57534A;  /* secondary text on paper */
  --prule: #DED9D0;  /* hairline on paper */

  /* --- Type families (stacks only; semantic split — Archivo=voice, mono=instrumentation) --- */
  --sans: Archivo, -apple-system, sans-serif;
  --mono: 'JetBrains Mono', ui-monospace, monospace;

  /* --- Layout (radar.css) --- */
  --max: 1280px;  /* container max; wider viewports grow margins, not measure */
  --gut: 60px;    /* gutter ≥1180 (responsive 40 / 18 applied later via media queries) */
  --gut-1024: 40px;  /* DESIGN_SYSTEM §6 — 1024–1179 (token only; not yet applied) */
  --gut-mobile: 18px;/* DESIGN_SYSTEM §6 — ≤767 (token only; not yet applied) */

  /* --- Spacing scale (DESIGN_SYSTEM §6: 4 8 12 16 20 26 34 44 68) --- */
  --space-4:  4px;
  --space-8:  8px;
  --space-12: 12px;
  --space-16: 16px;
  --space-20: 20px;
  --space-26: 26px;
  --space-34: 34px;
  --space-44: 44px;
  --space-68: 68px;  /* section top desktop (mobile 40) */

  /* --- Radius (DESIGN_SYSTEM §6: square everywhere) --- */
  --radius: 0;

  /* --- Focus ring (DESIGN_SYSTEM §13: 2px signal ring, offset 2, never removed) --- */
  --focus-width:  2px;
  --focus-offset: 2px;

  /* --- Date column — the signature (DESIGN_SYSTEM §7) --- */
  --date-col:    150px;  /* desktop + tablet */
  --date-col-mb: 70px;   /* mobile */

  /* --- Motion durations (DESIGN_SYSTEM §12; all honour prefers-reduced-motion later) --- */
  --dur-ticker: 40s;    /* ticker linear, pauses on hover/focus */
  --dur-pulse:  2s;     /* status dot opacity pulse */
  --dur-hover:  120ms;  /* row hover background */
  --dur-expand: 180ms;  /* row expansion height + opacity */
  --dur-chip:   100ms;  /* filter chip fill */
  --dur-drawer: 220ms;  /* mobile drawer slide */
}
/* ============================================================
   BigEvent — Homepage Gateway
   ============================================================
   Snippet title : BigEvent — Homepage Gateway CSS
   Phase         : S5.5a / S5.5c-a of the design / template build
   Environment   : LOCAL ONLY. Not yet pushed to staging.

   Companion file: wpcode-ready/bigevent-homepage.php
   Requires      : wpcode-ready/bigevent-design-system-tokens.css
                   wpcode-ready/bigevent-card.css

   Scope         : All selectors are anchored on .be-home / .be-home__*
                   or .be-site-header / .be-site-footer, OR are
                   explicitly scoped with body.bigevent-surface prefix.
                   - The P5.5c-a "hide Kadence chrome" rules below ALL
                     start with `body.bigevent-surface` so they affect
                     ONLY the 5 BigEvent surfaces. Non-BigEvent pages
                     keep their Kadence header/footer unchanged.
                   - !important is used ONLY on the hide-Kadence + the
                     content-area neutralization rules, where it is
                     necessary to override Kadence theme styles. Every
                     such use is explicit and scoped.

   Layout philosophy
   -----------------------------------------------------------------------------
   Calm, editorial gateway. Hero is text-driven (mono eyebrow + sans
   display H1 + serif italic subhead + mono stats). Shortcut grids
   are surface-tone cards with the count rendered in mono — the
   directional anchor of the page. Trust block is three columns of
   editorial copy. Footer rail is a small set of crawl-depth links.

   No JavaScript is required. Every interactive element is a real
   <a href>. Hover states are subtle: border darken + small lift.
   ============================================================ */


/* === P5.5c-a — Hide Kadence chrome on BigEvent surfaces ===========
   Selector list confirmed by reading the live staging HTML of
   /events-new/ on 2026-05-21 (probe at c:/tmp/p5_5c_a/events_new_raw.html).
   Every rule below is prefixed with `body.bigevent-surface` so the only
   surfaces affected are the 5 enumerated in the body_class filter in
   slot 123369:
     - /home-new/             (is_page('home-new'))
     - /events-new/           (is_post_type_archive('event'))
     - /events-new/topic/*    (is_tax('event_topic'))
     - /events-new/country/*  (is_tax('event_country'))
     - /events-new/city/*     (is_tax('event_city'))
   Non-BigEvent pages (/partners/, /about/, /contact/, /terms/, etc.)
   do not get the body class, so these rules are inert there and the
   Kadence chrome renders normally.
   =================================================================== */

body.bigevent-surface #masthead,
body.bigevent-surface header.site-header,
body.bigevent-surface .site-header,
body.bigevent-surface .site-header-wrap {
    display: none !important;
}

body.bigevent-surface #colophon,
body.bigevent-surface footer.site-footer,
body.bigevent-surface .site-footer,
body.bigevent-surface .site-footer-wrap {
    display: none !important;
}

body.bigevent-surface .kadence-scroll-to-top {
    display: none !important;
}

/* === P5.5c-a3 (2026-05-22) — finish disabling Kadence chrome =======
   Probe of staging /events-new/ after a2 confirmed the Kadence desktop
   + mobile header (#masthead, with #mobile-header nested inside) and the
   footer (#colophon) ARE hidden, and #inner-wrap padding IS zeroed. The
   remaining top/edge artifact was the Kadence BODY BACKGROUND
   (--global-palette8 = #F7FAFC, a cool off-white) showing through as a
   thin strip wherever the BE shell doesn't paint — clashing with the
   warm parchment (#f7f5ef). The fixes below are all scoped to
   body.bigevent-surface, so non-BE pages keep Kadence's body background
   and chrome untouched.
   =================================================================== */

/* (1) Pin the page background to the BE parchment on BE surfaces. This is
   the catch-all that removes any cool-white residue strip regardless of
   where a sub-pixel gap appears. Non-BE pages are unaffected. */
body.bigevent-surface {
    background: var(--be-bg) !important;
}

/* (2) Defense-in-depth: hide the Kadence mobile header wrap and any sticky
   / transparent-header placeholder explicitly, in case a future Kadence
   setting renders them as siblings of #masthead rather than children. */
body.bigevent-surface #mobile-header,
body.bigevent-surface .site-mobile-header-wrap,
body.bigevent-surface .kadence-sticky-header-placeholder,
body.bigevent-surface .kadence-scrollbar-fixer {
    display: none !important;
}

/* (3) Neutralize Kadence outer-wrapper vertical spacing on BE surfaces so
   the BE header sits flush at the top (the WP admin bar, when logged in,
   is the only element allowed above it). */
body.bigevent-surface #wrapper.site,
body.bigevent-surface .site.wp-site-blocks {
    padding-top: 0 !important;
    margin-top: 0 !important;
}

/* (4) Neutralize Kadence content-area gutters / max-width on BigEvent
   surfaces so the BE-owned shell renders full-width. The Kadence theme
   wraps the main content area in <main id="inner-wrap" class="wrap kt-clear">.
   The body also carries content-vertical-padding-show; zeroing the
   inner-wrap padding here removes that top/bottom content padding too. */
body.bigevent-surface #inner-wrap,
body.bigevent-surface main#inner-wrap.wrap,
body.bigevent-surface main.wrap.kt-clear {
    padding: 0 !important;
    margin: 0 !important;
    max-width: none !important;
    width: 100% !important;
}


/* === P5.5c-a4 — BigEvent-owned site header (editorial, mockup-aligned) ==
   Slot 123369 emits the markup; styling lives here.
   P5.5c-a4 (2026-05-22) — header rebuilt to follow model/BigEvent/uploads/
   home.png structure with the user's locked light-editorial recolor:
     - light parchment band, subtle hairline border-bottom, thin/compact
     - 3-zone layout: brand left / nav truly centered / CTA right (CSS grid
       1fr auto 1fr so the nav is centered in the band, not just spaced)
     - small BIGEVENT wordmark; small muted nav links; discreet outline CTA
     - no navy band, no cyan, no heavy filled SaaS button
   The footer block further below keeps its dark warm near-black band.
   ==================================================================== */

.be-site-header {
    position: relative;
    z-index: 5;
    background: var(--be-bg);
    color: var(--be-ink);
    border-bottom: 1px solid var(--be-border);
}

.be-site-header__inner {
    max-width: var(--be-container);
    margin: 0 auto;
    /* Thin, compact editorial band: ~10px vertical. */
    padding: 10px var(--be-space-7);
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: var(--be-space-5);
}

.be-site-header__brand {
    justify-self: start;
    display: inline-flex;
    align-items: center;
    gap: 9px;
    font-family: var(--be-font-serif); /* P5.8d — serif wordmark per shell.jsx .be-logo__word */
    font-weight: 600;
    font-size: 17px;
    letter-spacing: 0.005em;
    color: var(--be-ink);
    text-decoration: none;
    transition: opacity var(--be-dur-fast) var(--be-ease);
}

/* P5.8d — saddle logo mark (prototype .be-logo__mark): small rounded square
   with a saddle radial gradient. Pure CSS, no asset. */
.be-site-header__mark {
    width: 22px;
    height: 22px;
    border-radius: 4px;
    flex-shrink: 0;
    background: radial-gradient(circle at 35% 35%, var(--be-accent) 0%, var(--be-accent-ink) 60%, #3d2710 100%);
    box-shadow: inset 0 0 0 1px rgba(0,0,0,0.15);
}

.be-site-header__brand:hover,
.be-site-header__brand:focus-visible {
    opacity: 0.78;
}

/* Centered nav. */
.be-site-header__nav {
    justify-self: center;
    display: flex;
    align-items: center;
    gap: var(--be-space-6);
}

.be-site-header__nav-link {
    font-family: var(--be-font-sans);
    font-size: 13.5px;
    font-weight: 500;
    letter-spacing: 0.01em;
    color: var(--be-ink-2);
    text-decoration: none;
    padding: 4px 2px;
    transition: color var(--be-dur-fast) var(--be-ease);
}

.be-site-header__nav-link:hover,
.be-site-header__nav-link:focus-visible {
    color: var(--be-ink);
}

/* Discreet right-side CTA — small outline pill, NOT a heavy filled button. */
.be-site-header__cta {
    justify-self: end;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 5px 13px;
    font-family: var(--be-font-sans);
    font-size: 13px;
    font-weight: 500;
    color: var(--be-ink-2);
    background: transparent;
    border: 1px solid var(--be-border-strong);
    border-radius: var(--be-radius-pill);
    text-decoration: none;
    transition: color var(--be-dur-fast) var(--be-ease),
                border-color var(--be-dur-fast) var(--be-ease);
}

.be-site-header__cta:hover,
.be-site-header__cta:focus-visible {
    color: var(--be-ink);
    border-color: var(--be-ink-3);
}

.be-site-header__cta-arrow {
    font-family: var(--be-font-mono);
    font-size: 12px;
    line-height: 1;
}

/* Tablet / small desktop: hide the centered nav, fall back to a simple
   brand-left / CTA-right band. Keeps the header from crowding. */
@media (max-width: 720px) {
    .be-site-header__inner {
        grid-template-columns: 1fr auto;
        gap: var(--be-space-4);
    }
    .be-site-header__nav {
        display: none;
    }
    .be-site-header__cta {
        justify-self: end;
    }
}

/* Extra-narrow phones: tighten horizontal padding + sizes. */
@media (max-width: 480px) {
    .be-site-header__inner {
        padding: 9px var(--be-space-4);
    }
    .be-site-header__brand {
        font-size: 15px;
        letter-spacing: 0.04em;
    }
    .be-site-header__cta {
        padding: 5px 11px;
        font-size: 12.5px;
    }
}


/* === Shell =================================================== */

.be-home {
    background: var(--be-bg);
    color: var(--be-ink);
    padding: 0 0 var(--be-space-10);
}

/* When a block shortcode (e.g. [bigevent_hero]) is used standalone
   outside the full-page composition, it carries an extra wrapper so
   it inherits the surface background without nesting issues. */
.be-home.be-home--standalone {
    padding: 0 0 var(--be-space-7);
}

.be-home__visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}


/* === Hero ====================================================
   P5.5c-a2 (2026-05-22) — visual reset away from dark navy SaaS.
   New direction matches the AI conferences mockup:
     - light parchment background, no dark hero band, no cyan glow
     - sans-serif H1, two-line layout
     - "professional events" line uses the saddle/gold accent
     - ink subhead and mono ink-3 microcopy
   Footer keeps the dark band; everything above the footer is light.
   ============================================================ */

.be-home__hero {
    padding: var(--be-space-9) 0 var(--be-space-7);
    background: var(--be-bg);
    color: var(--be-ink);
    border-bottom: 1px solid var(--be-border);
}

.be-home__hero-inner {
    max-width: var(--be-container);
    margin: 0 auto;
    padding: 0 var(--be-space-7);
    text-align: center;
}

/* Eyebrow class kept for backwards-compatibility on any pre-rendered
   HTML, but P5.5a render_hero() no longer emits it. */
.be-home__eyebrow {
    font-family: var(--be-font-mono);
    font-size: var(--be-text-eyebrow);
    font-weight: 500;
    letter-spacing: var(--be-ls-eyebrow);
    text-transform: uppercase;
    color: var(--be-ink-3);
    margin-bottom: var(--be-space-3);
}

/* P5.8h — hero eyebrow crumb (prototype .hero__crumbs): restrained mono line
   above the H1. */
.be-home__hero-crumbs {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: var(--be-space-2);
    margin-bottom: var(--be-space-4);
    font-family: var(--be-font-mono);
    font-size: var(--be-text-eyebrow);
    letter-spacing: var(--be-ls-eyebrow);
    text-transform: uppercase;
}

.be-home__hero-eyebrow {
    color: var(--be-ink-3);
    font-weight: 500;
}

.be-home__hero-crumbs-sep {
    color: var(--be-ink-4);
}

.be-home__hero-crumbs-note {
    color: var(--be-ink-4);
}

.be-home__title {
    font-family: var(--be-font-sans);
    font-weight: 600;
    font-size: clamp(38px, 5.4vw, 60px);
    line-height: 1.08;
    letter-spacing: var(--be-ls-tight);
    color: var(--be-ink);
    margin: 0 auto var(--be-space-4);
    max-width: 22ch;
    text-wrap: balance;
}

.be-home__title-line {
    display: block;
}

/* P5.5c-a2 — saddle accent on the second H1 line ("professional events"). */
.be-home__title-line--accent {
    font-family: var(--be-font-sans);
    font-style: normal;
    font-weight: 600;
    color: var(--be-accent-ink);
}

.be-home__subhead {
    font-family: var(--be-font-sans);
    font-style: normal;
    font-weight: 400;
    font-size: clamp(16px, 1.4vw, 18px);
    line-height: var(--be-lh-snug);
    color: var(--be-ink-2);
    margin: 0 auto var(--be-space-5);
    max-width: 52ch;
    text-wrap: pretty;
}

/* Microcopy line (live events count · updated daily · global coverage). */
.be-home__stats {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: var(--be-space-2);
    font-family: var(--be-font-mono);
    font-size: 12.5px;
    color: var(--be-ink-3);
    letter-spacing: var(--be-ls-meta);
}

.be-home__stats-item {
    color: var(--be-ink-2);
    font-weight: 500;
}

.be-home__stats-dot {
    color: var(--be-ink-4);
}

/* === Hero search (P5.5c-b / M2) ==============================
   Submits to /events-new/?s=. One editorial pill: white input on the
   left, ink-filled submit on the right. Calm, no cyan, no shadow noise.
   ============================================================ */

.be-home__search {
    display: flex;
    align-items: stretch;
    gap: 0;
    max-width: 560px;
    margin: 0 auto var(--be-space-5);
    background: var(--be-surface);
    border: 1px solid var(--be-border-strong);
    border-radius: var(--be-radius-pill);
    padding: 4px;
    box-shadow: var(--be-shadow-card);
}

.be-home__search-input {
    flex: 1 1 auto;
    min-width: 0;
    border: 0;
    background: transparent;
    padding: 0 var(--be-space-4);
    font-family: var(--be-font-sans);
    font-size: 14.5px;
    color: var(--be-ink);
    line-height: 1.2;
}

.be-home__search-input::placeholder {
    color: var(--be-ink-4);
}

.be-home__search-input:focus {
    outline: none;
}

.be-home__search-submit {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 9px 20px;
    border: 0;
    border-radius: var(--be-radius-pill);
    background: var(--be-ink);
    color: var(--be-bg);
    font-family: var(--be-font-sans);
    font-size: 13.5px;
    font-weight: 500;
    cursor: pointer;
    transition: background var(--be-dur-fast) var(--be-ease);
}

.be-home__search-submit:hover,
.be-home__search-submit:focus-visible {
    background: #2c2a2d;
    outline: none;
}

@media (max-width: 480px) {
    .be-home__search {
        max-width: 100%;
    }
    .be-home__search-submit {
        padding: 8px 14px;
        font-size: 12.5px;
    }
}

/* P5.8h — quick-filter chips under the hero search (prototype
   .search-hero__quick). Real archive links; calm pill row, centered. */
.be-home__hero-quick {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 8px;
    max-width: 620px;
    margin: 0 auto var(--be-space-5);
}

.be-home__hero-quick-label {
    font-family: var(--be-font-mono);
    font-size: var(--be-text-meta);
    letter-spacing: var(--be-ls-meta);
    color: var(--be-ink-3);
}

.be-home__hero-quick-chip {
    display: inline-flex;
    align-items: center;
    font-family: var(--be-font-sans);
    font-size: 13px;
    font-weight: 500;
    color: var(--be-ink-2);
    background: var(--be-surface);
    border: 1px solid var(--be-border);
    border-radius: var(--be-radius-pill);
    padding: 6px 14px;
    text-decoration: none;
    line-height: 1.3;
    transition: color var(--be-dur-fast) var(--be-ease),
                border-color var(--be-dur-fast) var(--be-ease),
                background var(--be-dur-fast) var(--be-ease);
}

.be-home__hero-quick-chip:hover,
.be-home__hero-quick-chip:focus-visible {
    color: var(--be-ink);
    border-color: var(--be-accent-line);
    background: var(--be-accent-soft);
}


/* === Shortcut sections ======================================= */

.be-home__shortcuts {
    margin-top: var(--be-space-9);
}

.be-home__shortcuts-inner {
    max-width: var(--be-container);
    margin: 0 auto;
    padding: 0 var(--be-space-7);
}

.be-home__shortcuts-head {
    display: flex;
    /* Baseline alignment so the "All N topics →" overflow link sits on
       the H2's typographic baseline at desktop rather than its flush-bottom
       edge — the previous flex-end created a visible alignment drift. */
    align-items: baseline;
    justify-content: space-between;
    gap: var(--be-space-4);
    margin-bottom: var(--be-space-5);
    flex-wrap: wrap;
}

.be-home__shortcuts-head-text {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}

.be-home__shortcuts-eyebrow {
    font-family: var(--be-font-mono);
    font-size: var(--be-text-eyebrow);
    font-weight: 500;
    letter-spacing: var(--be-ls-eyebrow);
    text-transform: uppercase;
    color: var(--be-ink-3);
}

.be-home__shortcuts-title {
    font-family: var(--be-font-serif);
    font-weight: 500;
    font-size: clamp(22px, 2.4vw, 28px);
    line-height: var(--be-lh-tight);
    letter-spacing: -0.01em;
    color: var(--be-ink);
    margin: 0;
}

/* P5.5c-d (M4) — "Show More" is now a discreet pill, bottom-left under the grid. */
.be-home__shortcuts-more {
    margin-top: var(--be-space-5);
}

.be-home__shortcuts-overflow {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 16px;
    font-family: var(--be-font-sans);
    font-size: 13px;
    font-weight: 500;
    color: var(--be-ink-2);
    background: transparent;
    border: 1px solid var(--be-border-strong);
    border-radius: var(--be-radius-pill);
    text-decoration: none;
    transition: color var(--be-dur-fast) var(--be-ease),
                border-color var(--be-dur-fast) var(--be-ease);
}

.be-home__shortcuts-overflow:hover,
.be-home__shortcuts-overflow:focus-visible {
    color: var(--be-ink);
    border-color: var(--be-ink-3);
}

.be-home__shortcuts-overflow-icon {
    font-family: var(--be-font-mono);
    font-size: 13px;
    line-height: 1;
}


/* === Shortcut chips (P5.5c-d / M4) ===========================
   Simplified from count-bearing cards to light wrapped pills,
   matching the mockup's Popular topics / cities / countries rows.
   No count, no chevron. Calm directory index.
   ============================================================ */

.be-home__shortcuts-grid {
    display: flex;
    flex-wrap: wrap;
    gap: var(--be-space-2);
}

.be-home__shortcut-card {
    display: inline-flex;
    align-items: center;
    padding: 7px 14px;
    background: var(--be-surface);
    border: 1px solid var(--be-border);
    border-radius: var(--be-radius-pill);
    color: var(--be-ink-2);
    text-decoration: none;
    line-height: 1.3;
    transition: color var(--be-dur-fast) var(--be-ease),
                border-color var(--be-dur-fast) var(--be-ease),
                background var(--be-dur-fast) var(--be-ease);
}

.be-home__shortcut-card:hover,
.be-home__shortcut-card:focus-visible {
    color: var(--be-ink);
    border-color: var(--be-ink-3);
    background: var(--be-surface-2);
}

.be-home__shortcut-name {
    font-family: var(--be-font-sans);
    font-size: 13.5px;
    font-weight: 500;
    letter-spacing: var(--be-ls-card);
}


/* === Module head (Featured / Picks / Quarter) ================ */

.be-home__featured,
.be-home__picks,
.be-home__quarter {
    margin-top: var(--be-space-10);
}

.be-home__featured-inner,
.be-home__picks-inner,
.be-home__quarter-inner {
    max-width: var(--be-container);
    margin: 0 auto;
    padding: 0 var(--be-space-7);
}

.be-home__module-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--be-space-5);
    margin-bottom: var(--be-space-6);
    flex-wrap: wrap;
}

.be-home__module-head-text {
    display: flex;
    flex-direction: column;
    gap: var(--be-space-2);
    max-width: 64ch;
}

.be-home__module-eyebrow {
    font-family: var(--be-font-mono);
    font-size: var(--be-text-eyebrow);
    font-weight: 500;
    letter-spacing: var(--be-ls-eyebrow);
    text-transform: uppercase;
    color: var(--be-ink-3);
}

.be-home__module-eyebrow--featured {
    color: var(--be-accent-ink);
}

/* P5.8d — Editor's pick eyebrow is INK, never the saddle accent. This is the
   monetization "this isn't paid" visual contract (DESIGN_HANDOFF §6.2 / §10).
   Was var(--be-warn) (a gold tone) — corrected to ink. */
.be-home__module-eyebrow--picks {
    color: var(--be-ink);
}

.be-home__module-title {
    font-family: var(--be-font-serif);
    font-weight: 500;
    font-size: clamp(24px, 2.6vw, 30px);
    line-height: var(--be-lh-tight);
    letter-spacing: -0.01em;
    color: var(--be-ink);
    margin: 0;
}

.be-home__module-lede {
    font-family: var(--be-font-sans);
    font-size: 14.5px;
    line-height: var(--be-lh-loose);
    color: var(--be-ink-2);
    margin: 0;
    max-width: 60ch;
}

.be-home__module-disclosure {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px;
    border: 1px solid var(--be-border);
    border-radius: var(--be-radius-pill);
    background: var(--be-surface-2);
    font-family: var(--be-font-mono);
    font-size: var(--be-text-eyebrow);
    text-transform: uppercase;
    letter-spacing: var(--be-ls-eyebrow);
    color: var(--be-ink-3);
}

.be-home__module-overflow {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: var(--be-font-sans);
    font-size: 13.5px;
    font-weight: 500;
    color: var(--be-ink-2);
    text-decoration: none;
    border-bottom: 1px solid var(--be-ink-4);
    padding-bottom: 2px;
    transition: color var(--be-dur-fast) var(--be-ease),
                border-color var(--be-dur-fast) var(--be-ease);
}

.be-home__module-overflow:hover,
.be-home__module-overflow:focus-visible {
    color: var(--be-ink);
    border-color: var(--be-ink);
}

.be-home__module-preview-banner {
    margin-bottom: var(--be-space-5);
    padding: var(--be-space-3) var(--be-space-5);
    background: var(--be-surface-2);
    border: 1px dashed var(--be-border-strong);
    border-radius: var(--be-radius);
    font-family: var(--be-font-sans);
    font-size: 13px;
    line-height: var(--be-lh-snug);
    color: var(--be-ink-2);
}


/* === Featured grid ===========================================
   Hero card spans full width; the two side cards sit below in a
   two-column row. The card primitive owns the actual card visuals;
   here we only define the grid container.
   ============================================================ */

.be-home__featured-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--be-space-4);
}

/* P5.5c-c (M3) — image-led Featured grid: clean equal 3-up (no hero+side).
   Compound selector so it overrides the legacy hero-span / 2-col rules below
   regardless of source order. Picks / Quarter grids are untouched. */
.be-home__featured-grid.be-home__featured-grid--image {
    grid-template-columns: 1fr;
    gap: var(--be-space-5);
}

.be-home__featured-grid.be-home__featured-grid--image > .be-card:first-child {
    grid-column: auto;
}

@media (min-width: 600px) {
    .be-home__featured-grid.be-home__featured-grid--image {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 960px) {
    .be-home__featured-grid.be-home__featured-grid--image {
        grid-template-columns: repeat(3, 1fr);
    }
}


/* === Picks grid ============================================== */

.be-home__picks-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--be-space-4);
}


/* === This quarter grid ======================================= */

.be-home__quarter-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--be-space-4);
}


/* === Trust block — "Our Valued Partners" =====================
   P5.5a — single-column text-only treatment per mockup.
   Q5 = no logo assets shipped; ship heading + paragraph + CTA pill.
   ============================================================ */

.be-home__trust {
    margin-top: var(--be-space-10);
    padding: var(--be-space-9) 0;
    background: var(--be-bg-sunken);
    border-top: 1px solid var(--be-border);
    border-bottom: 1px solid var(--be-border);
}

.be-home__trust-inner {
    max-width: var(--be-container);
    margin: 0 auto;
    padding: 0 var(--be-space-7);
    text-align: center;
}

.be-home__trust-heading {
    font-family: var(--be-font-sans);
    font-weight: 600;
    font-size: clamp(26px, 3.2vw, 32px);
    line-height: var(--be-lh-tight);
    letter-spacing: var(--be-ls-tight);
    color: var(--be-ink);
    margin: 0 auto var(--be-space-4);
    max-width: 36ch;
    text-wrap: balance;
}

.be-home__trust-body {
    font-family: var(--be-font-sans);
    font-size: 15px;
    line-height: var(--be-lh-loose);
    color: var(--be-ink-2);
    margin: 0 auto var(--be-space-5);
    max-width: 64ch;
    text-wrap: pretty;
}

.be-home__trust-cta-row {
    margin: 0;
}

.be-home__trust-cta {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 10px 22px;
    font-family: var(--be-font-sans);
    font-size: 14px;
    font-weight: 500;
    color: var(--be-bg);
    background: var(--be-ink);
    border: 1px solid var(--be-ink);
    border-radius: 999px;
    text-decoration: none;
    transition: color var(--be-dur-fast) var(--be-ease),
                background var(--be-dur-fast) var(--be-ease),
                border-color var(--be-dur-fast) var(--be-ease);
}

.be-home__trust-cta:hover,
.be-home__trust-cta:focus-visible {
    color: var(--be-ink);
    background: transparent;
    border-color: var(--be-ink);
}


/* === Footer (P5.5a — 2-column links + branding row) ==========
   Replaces the previous single-row "crawl rail". Matches the
   mockup home.png footer pattern: dark band with brand wordmark
   on the left, "Top Categories" + "Company" columns, bottom row
   with copyright and Terms link.
   ============================================================ */

.be-home__footer {
    margin-top: 0;
    padding: var(--be-space-9) 0 var(--be-space-7);
    background: var(--be-bg-dark);
    color: var(--be-ink-on-dark);
    border-top: 1px solid var(--be-border-on-dark);
}

.be-home__footer-inner {
    max-width: var(--be-container);
    margin: 0 auto;
    padding: 0 var(--be-space-7);
}

/* P5.8d — 5-column footer (brand + By topic + By country + By city + BigEvent),
   matching shell.jsx .be-footer__grid (1.5fr 1fr 1fr 1fr 1fr). */
.be-home__footer-cols {
    display: grid;
    grid-template-columns: 1.5fr 1fr 1fr 1fr 1fr;
    gap: var(--be-space-7);
    align-items: flex-start;
    margin-bottom: var(--be-space-7);
}

.be-home__footer-brand {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.be-home__footer-wordmark {
    font-family: var(--be-font-serif);
    font-weight: 600;
    font-size: 22px;
    letter-spacing: 0.01em;
    color: var(--be-ink-on-dark);
}

.be-home__footer-tagline {
    font-family: var(--be-font-sans);
    font-size: 13.5px;
    line-height: var(--be-lh-snug);
    color: var(--be-ink-on-dark-soft);
    margin: 0;
    max-width: 36ch;
}

/* P5.8d — editorial principles line (mono, muted) per shell.jsx footer. */
.be-home__footer-principles {
    font-family: var(--be-font-mono);
    font-size: 11px;
    line-height: 1.7;
    letter-spacing: 0.02em;
    color: var(--be-ink-on-dark-mute);
    margin: 0;
    max-width: 38ch;
}

.be-home__footer-col {
    display: flex;
    flex-direction: column;
    gap: var(--be-space-3);
}

.be-home__footer-col-heading {
    font-family: var(--be-font-sans);
    font-weight: 600;
    font-size: 13px;
    letter-spacing: 0.02em;
    color: var(--be-ink-on-dark);
    margin: 0 0 4px;
}

.be-home__footer-col-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.be-home__footer-col-link {
    font-family: var(--be-font-sans);
    font-size: 13.5px;
    color: var(--be-ink-on-dark-soft);
    text-decoration: none;
    transition: color var(--be-dur-fast) var(--be-ease);
}

.be-home__footer-col-link:hover,
.be-home__footer-col-link:focus-visible {
    color: var(--be-ink-on-dark);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.be-home__footer-bottom {
    padding-top: var(--be-space-5);
    border-top: 1px solid var(--be-border-on-dark);
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    font-family: var(--be-font-mono);
    font-size: 12px;
    color: var(--be-ink-on-dark-mute);
}

.be-home__footer-copy {
    color: var(--be-ink-on-dark-mute);
}

/* P5.8d — push the bottom links/social to the right (© left, links right). */
.be-home__footer-bottom-spacer {
    flex: 1 1 auto;
}

.be-home__footer-bottom-sep {
    color: var(--be-ink-on-dark-mute);
}

.be-home__footer-bottom-link {
    color: var(--be-ink-on-dark-soft);
    text-decoration: none;
    border-bottom: 1px solid transparent;
    transition: color var(--be-dur-fast) var(--be-ease),
                border-color var(--be-dur-fast) var(--be-ease);
}

.be-home__footer-bottom-link:hover,
.be-home__footer-bottom-link:focus-visible {
    color: var(--be-ink-on-dark);
    border-color: var(--be-ink-on-dark-soft);
}

/* P5.5c-d (M4) — DEMO footer social rail. Pushed to the right of the bottom
   row. Items are non-interactive placeholders (spans), so cursor stays default. */
.be-home__footer-social {
    margin-left: auto;
    display: inline-flex;
    align-items: center;
    gap: var(--be-space-2);
}

.be-home__footer-social-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    color: var(--be-ink-on-dark-soft);
    border: 1px solid var(--be-border-on-dark);
    background: var(--be-bg-dark-soft);
}

.be-home__footer-social-link svg {
    display: block;
}

@media (max-width: 720px) {
    .be-home__footer-social {
        margin-left: 0;
    }
}


/* === Backwards-compat: footer-rail classes (kept inert) ======
   The previous single-row "crawl rail" PHP function was replaced
   in P5.5a. If any cached HTML still contains .be-home__footer-rail
   markup, these rules keep it readable without leaking visual style
   into the new footer.
   ============================================================ */

.be-home__footer-rail {
    margin: 0;
    padding: var(--be-space-5) 0;
}

.be-home__footer-rail-inner {
    max-width: var(--be-container);
    margin: 0 auto;
    padding: 0 var(--be-space-7);
}

.be-home__footer-rail-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    gap: var(--be-space-4);
}

.be-home__footer-rail-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: var(--be-font-sans);
    font-size: 13px;
    color: var(--be-ink-3);
    text-decoration: none;
}


/* === Responsive ==============================================
   Mobile first.
   - Shortcuts: 2 cols mobile → 3 cols ≥600 → 4 cols ≥960 → 6/5/4 cols ≥1280
     (topics / cities / countries respectively).
   - Featured grid: hero card on top, 2-col side row ≥720.
   - Trust block: 1 col mobile → 3 cols ≥860.
   ============================================================ */

@media (min-width: 600px) {
    .be-home__featured-grid > .be-card:first-child {
        grid-column: 1 / -1;
    }
}

@media (min-width: 720px) {
    .be-home__featured-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    .be-home__picks-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    .be-home__quarter-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 860px) {
    /* P5.5a — trust block is now single-column text-only; the legacy
       3-col grid rules are deprecated. Keep `.be-home__trust-grid` /
       `.be-home__trust-col` rules in the responsive backwards-compat
       block below for any cached HTML. */
    .be-home__trust-grid {
        grid-template-columns: 1fr;
        gap: var(--be-space-7);
    }
}

@media (min-width: 1080px) {
    .be-home__quarter-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 720px) {
    .be-home__hero {
        padding: var(--be-space-8) 0 var(--be-space-6);
    }
    .be-home__hero-inner,
    .be-home__shortcuts-inner,
    .be-home__featured-inner,
    .be-home__picks-inner,
    .be-home__quarter-inner,
    .be-home__trust-inner,
    .be-home__footer-inner,
    .be-home__footer-rail-inner {
        padding-left: var(--be-space-4);
        padding-right: var(--be-space-4);
    }
    .be-home__title {
        font-size: 30px;
    }
    .be-home__subhead {
        font-size: 16px;
    }
    .be-home__shortcuts {
        margin-top: var(--be-space-8);
    }
    .be-home__featured,
    .be-home__picks,
    .be-home__quarter {
        margin-top: var(--be-space-9);
    }
    .be-home__module-head {
        flex-direction: column;
        align-items: flex-start;
        gap: var(--be-space-3);
    }
    .be-home__trust {
        padding: var(--be-space-8) 0;
    }
    .be-home__trust-heading {
        font-size: 24px;
    }
    /* P5.8d — 5-col footer collapses to 2-col on phones; brand spans full. */
    .be-home__footer-cols {
        grid-template-columns: 1fr 1fr;
        gap: var(--be-space-6);
    }
    .be-home__footer-brand {
        grid-column: 1 / -1;
    }
    .be-home__footer {
        padding: var(--be-space-7) 0 var(--be-space-5);
    }
    .be-home__footer-rail-list {
        flex-direction: column;
        align-items: flex-start;
        gap: var(--be-space-2);
    }
}

/* P5.8d — tablet: 5-col footer → brand full row + 4 link columns. */
@media (min-width: 721px) and (max-width: 1024px) {
    .be-home__footer-cols {
        grid-template-columns: repeat(4, 1fr);
    }
    .be-home__footer-brand {
        grid-column: 1 / -1;
    }
}

/* P5.5a — extra-narrow phones (~360px-400px). Tighten hero padding
   so the H1 doesn't crowd the viewport edges. */
@media (max-width: 480px) {
    .be-home__hero {
        padding: var(--be-space-7) 0 var(--be-space-5);
    }
    .be-home__title {
        font-size: 28px;
        line-height: 1.12;
    }
    .be-home__subhead {
        font-size: 15px;
    }
    .be-home__stats {
        font-size: 11.5px;
    }
}


/* === P5.5c-a5 (2026-05-22) — defeat external --be-bg collision =======
   ROOT CAUSE of the "navy header on staging": an unrelated WPCode snippet
   ("Newsletter Popup — Popup Maker + WPForms Styling") declares its own
   popup theme tokens on :root using the SAME variable name as the BigEvent
   design system:

       :root { --be-bg:#0E223F; ... }   (navy)

   That :root declaration loads AFTER the BigEvent design tokens, so at the
   document root our --be-bg (#f7f5ef parchment) is overridden to navy. The
   BigEvent header (.be-site-header) is rendered OUTSIDE any .be-surface
   wrapper, so it inherited --be-bg from :root and turned navy. (Archive /
   homepage CONTENT was unaffected because .be-surface re-declares --be-bg
   locally; only the header — and the a3 body-background rule — leaked navy.)
   Confirmed by read-only probe of /events-new/ on 2026-05-22: --be-bg is
   defined 3x in the served CSS — #f7f5ef, #f7f5ef, and #0E223F. Only
   --be-bg collides; the popup's other --be-* names are not consumed here.

   FIX (scoped to BigEvent surfaces only; footer untouched — it uses
   --be-bg-dark, not --be-bg):
   (1) Re-assert the BigEvent surface palette on body.bigevent-surface so
       the whole BE subtree (header included) inherits parchment again,
       independent of stylesheet source order (a declaration on the body
       element beats the inherited :root value for all descendants).
   (2) Belt-and-suspenders: force the header background with an explicit
       parchment value !important so no navy survives even if --be-bg is
       hijacked again at a closer scope. The hardcoded #f7f5ef mirrors
       --be-bg by design — keep the two in sync if the token ever changes.
   =================================================================== */

body.bigevent-surface {
    --be-bg:        #f7f5ef;
    --be-bg-sunken: #f1eee6;
    --be-surface:   #fdfbf6;
}

body.bigevent-surface .be-site-header {
    background: #f7f5ef !important;   /* parchment — mirrors --be-bg */
    color: var(--be-ink) !important;
    border-bottom: 1px solid var(--be-border) !important;
}

body.bigevent-surface .be-site-header__brand {
    color: var(--be-ink) !important;
}

body.bigevent-surface .be-site-header__nav-link,
body.bigevent-surface .be-site-header__cta {
    color: var(--be-ink-2) !important;
}


/* =========================================================================
 * P5.34 — Get Featured conversion page  (/get-featured/)
 * Fully scoped under .be-gf; uses existing design tokens only (no new hues).
 * ========================================================================= */
.be-gf {
    background: var(--be-bg);
    color: var(--be-ink-2);
    padding-bottom: var(--be-space-9);
}
.be-gf__container {
    max-width: var(--be-container);
    margin-inline: auto;
    padding-inline: var(--be-space-7);
}
.be-gf__container-narrow {
    max-width: var(--be-container-narrow);
    margin-inline: auto;
    padding-inline: var(--be-space-7);
}
.be-gf-ic { width: 1em; height: 1em; flex: 0 0 auto; }

/* shared section heads + eyebrow + H2 */
.be-gf-eyebrow {
    font-family: var(--be-font-mono);
    font-size: 11px;
    letter-spacing: var(--be-ls-eyebrow);
    text-transform: uppercase;
    color: var(--be-accent-ink);
    margin-bottom: var(--be-space-3);
}
.be-gf-h2 {
    font-family: var(--be-font-serif);
    font-size: clamp(24px, 3.2vw, 30px);
    font-weight: 500;
    line-height: var(--be-lh-tight);
    color: var(--be-ink);
    margin: 0;
}
.be-gf-section { padding-block: clamp(40px, 6vw, 60px); }
.be-gf-section__head { margin-bottom: var(--be-space-7); }
.be-gf-section__head--center { text-align: center; max-width: 640px; margin-inline: auto; }
.be-gf-section__lede { color: var(--be-ink-3); margin: var(--be-space-3) 0 0; font-size: 15px; }

/* buttons (scoped) */
.be-gf-btn {
    display: inline-flex; align-items: center; gap: 7px;
    font-family: var(--be-font-sans); font-size: 14px; font-weight: 500;
    line-height: 1; text-decoration: none; cursor: pointer;
    padding: 12px 18px; border-radius: var(--be-radius-md);
    border: 1px solid transparent; transition: background var(--be-dur-fast) var(--be-ease), border-color var(--be-dur-fast) var(--be-ease), color var(--be-dur-fast) var(--be-ease);
}
.be-gf-btn--primary { background: var(--be-ink); color: var(--be-ink-on-dark); }
.be-gf-btn--primary:hover { background: var(--be-accent-ink); }
.be-gf-btn--secondary { background: transparent; color: var(--be-ink); border-color: var(--be-border-strong); }
.be-gf-btn--secondary:hover { background: var(--be-surface-2); }
.be-gf-btn .be-gf-ic { width: 14px; height: 14px; }

/* 1 — hero */
.be-gf-hero { padding-block: clamp(36px, 6vw, 64px); border-bottom: 1px solid var(--be-border); background:
    radial-gradient(120% 80% at 85% 0%, var(--be-accent-soft) 0%, transparent 55%); }
.be-gf-hero__inner { display: grid; grid-template-columns: 1.05fr 0.95fr; gap: clamp(28px, 4vw, 56px); align-items: center; }
.be-gf-hero__title {
    font-family: var(--be-font-serif); font-weight: 500;
    font-size: clamp(32px, 4.6vw, 50px); line-height: 1.05; letter-spacing: var(--be-ls-tight);
    color: var(--be-ink); margin: 0 0 var(--be-space-5);
}
.be-gf-hero__title em { font-style: italic; color: var(--be-accent); }
.be-gf-hero__sub { font-size: 16px; line-height: var(--be-lh-loose); color: var(--be-ink-2); max-width: 46ch; margin: 0 0 var(--be-space-6); }
.be-gf-hero__cta-row { display: flex; align-items: center; gap: var(--be-space-5); flex-wrap: wrap; margin-bottom: var(--be-space-6); }
.be-gf-reassure { font-family: var(--be-font-mono); font-size: 12px; color: var(--be-ink-3); }
.be-gf-hero__trust { display: flex; flex-wrap: wrap; gap: var(--be-space-5); font-size: 13px; color: var(--be-ink-3); }
.be-gf-hero__trust span { display: inline-flex; align-items: center; gap: 6px; }
.be-gf-hero__trust .be-gf-ic { color: var(--be-accent); }

/* preview frame + featured sell card */
.be-gf-preview-frame {
    background: var(--be-surface-2); border: 1px solid var(--be-border);
    border-radius: var(--be-radius-lg); padding: var(--be-space-5);
}
.be-gf-preview-frame__label { font-family: var(--be-font-mono); font-size: 11px; letter-spacing: var(--be-ls-eyebrow); text-transform: uppercase; color: var(--be-ink-4); margin-bottom: var(--be-space-4); }
.be-gf-card {
    background: var(--be-surface); border: 1px solid var(--be-accent-line);
    border-radius: var(--be-radius-md); overflow: hidden; box-shadow: var(--be-shadow-featured);
}
.be-gf-card__media {
    position: relative; aspect-ratio: 16 / 9; display: flex; align-items: center; justify-content: center;
    background:
        repeating-linear-gradient(135deg, rgba(75,79,216,0.10) 0 2px, transparent 2px 16px),
        linear-gradient(140deg, var(--be-accent-soft), var(--be-surface));
}
.be-gf-card__media-note { font-family: var(--be-font-mono); font-size: 11px; letter-spacing: var(--be-ls-meta); color: var(--be-accent-ink); opacity: 0.65; }
.be-gf-card__badge {
    position: absolute; top: 10px; left: 10px;
    font-family: var(--be-font-mono); font-size: 10.5px; font-weight: 500; letter-spacing: var(--be-ls-eyebrow); text-transform: uppercase;
    background: var(--be-accent); color: #fff; padding: 4px 9px; border-radius: var(--be-radius-pill);
}
.be-gf-card__body { padding: var(--be-space-5); }
.be-gf-card__name { font-family: var(--be-font-serif); font-size: 20px; font-weight: 500; color: var(--be-ink); margin: 0 0 var(--be-space-2); }
.be-gf-card__meta { font-size: 13px; color: var(--be-ink-3); display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-bottom: var(--be-space-3); }
.be-gf-card__dot { color: var(--be-ink-4); }
.be-gf-card__chips { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: var(--be-space-4); }
.be-gf-chip { font-family: var(--be-font-mono); font-size: 11px; padding: 3px 8px; border-radius: var(--be-radius-pill); background: var(--be-surface-2); border: 1px solid var(--be-border); color: var(--be-ink-3); }
.be-gf-chip--tech { background: var(--be-accent-soft); border-color: var(--be-accent-line); color: var(--be-accent-ink); }
.be-gf-card__cta { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 500; color: var(--be-accent-ink); }
.be-gf-card__cta .be-gf-ic { width: 13px; height: 13px; }

/* 2 — package */
.be-gf-package { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--be-space-4) var(--be-space-7); }
.be-gf-package__item { display: flex; gap: var(--be-space-4); padding: var(--be-space-4); border: 1px solid var(--be-border); border-radius: var(--be-radius-md); background: var(--be-surface); }
.be-gf-package__icon { flex: 0 0 auto; width: 34px; height: 34px; display: inline-flex; align-items: center; justify-content: center; border-radius: var(--be-radius-sm); background: var(--be-accent-soft); color: var(--be-accent-ink); }
.be-gf-package__icon .be-gf-ic { width: 17px; height: 17px; }
.be-gf-package__title { font-weight: 600; font-size: 15px; color: var(--be-ink); margin-bottom: 2px; }
.be-gf-package__desc { font-size: 13.5px; color: var(--be-ink-3); line-height: var(--be-lh-base); }

/* 3 — pricing */
.be-gf-pricing { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--be-space-6); align-items: start; max-width: 880px; margin-inline: auto; }
.be-gf-plan { position: relative; background: var(--be-surface); border: 1px solid var(--be-border); border-radius: var(--be-radius-lg); padding: var(--be-space-7); display: flex; flex-direction: column; }
.be-gf-plan--featured { border-color: var(--be-accent); box-shadow: 0 12px 40px -18px rgba(75,79,216,0.45); }
.be-gf-plan__ribbon { position: absolute; top: -11px; right: var(--be-space-6); font-family: var(--be-font-mono); font-size: 10.5px; font-weight: 500; letter-spacing: var(--be-ls-eyebrow); text-transform: uppercase; background: var(--be-accent); color: #fff; padding: 4px 11px; border-radius: var(--be-radius-pill); }
.be-gf-plan__name { font-family: var(--be-font-serif); font-size: 19px; color: var(--be-ink); }
.be-gf-plan__badge { font-family: var(--be-font-mono); font-size: 11px; letter-spacing: var(--be-ls-eyebrow); text-transform: uppercase; background: var(--be-accent-soft); color: var(--be-accent-ink); padding: 2px 8px; border-radius: var(--be-radius-pill); }
.be-gf-plan__price { display: flex; align-items: baseline; gap: 8px; margin: var(--be-space-4) 0 var(--be-space-2); }
.be-gf-plan__amount { font-family: var(--be-font-serif); font-size: 40px; font-weight: 500; color: var(--be-ink); line-height: 1; }
.be-gf-plan__once { font-family: var(--be-font-mono); font-size: 12px; color: var(--be-ink-4); }
.be-gf-plan__for { font-size: 13.5px; color: var(--be-ink-3); margin: 0 0 var(--be-space-5); }
.be-gf-plan__everything { font-family: var(--be-font-mono); font-size: 12px; color: var(--be-accent-ink); margin-bottom: var(--be-space-4); }
.be-gf-plan__list { list-style: none; margin: 0 0 var(--be-space-6); padding: 0; display: flex; flex-direction: column; gap: var(--be-space-3); }
.be-gf-plan__list li { display: flex; align-items: flex-start; gap: 9px; font-size: 14px; color: var(--be-ink-2); }
.be-gf-plan__list .be-gf-ic { color: var(--be-accent); margin-top: 2px; }
.be-gf-plan__list--featured li { color: var(--be-ink); }
.be-gf-plan__cta { width: 100%; justify-content: center; margin-top: auto; }
.be-gf-plan__note { font-family: var(--be-font-mono); font-size: 11.5px; color: var(--be-ink-4); text-align: center; margin-top: var(--be-space-3); }

/* 4 — compare band */
.be-gf-band { background: var(--be-bg-sunken); border-block: 1px solid var(--be-border); padding-block: clamp(40px, 6vw, 60px); }
.be-gf-compare { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--be-space-5); }
.be-gf-compare__col { background: var(--be-surface); border: 1px solid var(--be-border); border-radius: var(--be-radius-md); padding: var(--be-space-6); }
.be-gf-compare__col--be { border-color: var(--be-accent-line); }
.be-gf-compare__label { font-family: var(--be-font-mono); font-size: 11px; letter-spacing: var(--be-ls-eyebrow); text-transform: uppercase; margin-bottom: var(--be-space-4); color: var(--be-ink-4); }
.be-gf-compare__col--be .be-gf-compare__label { color: var(--be-accent-ink); }
.be-gf-compare__col ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--be-space-3); }
.be-gf-compare__col li { font-size: 14px; color: var(--be-ink-3); display: flex; gap: 8px; align-items: flex-start; }
.be-gf-compare__col--ads li { padding-left: 18px; position: relative; }
.be-gf-compare__col--ads li::before { content: "×"; position: absolute; left: 2px; color: var(--be-ink-4); }
.be-gf-compare__col--be li { color: var(--be-ink-2); }
.be-gf-compare__col--be .be-gf-ic { color: var(--be-accent); margin-top: 3px; }

/* 5 — trust row */
.be-gf-trustrow { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--be-space-4); }
.be-gf-trustrow__item { display: flex; align-items: center; gap: 10px; font-size: 13.5px; color: var(--be-ink-2); padding: var(--be-space-4); border: 1px solid var(--be-border); border-radius: var(--be-radius-md); background: var(--be-surface); }
.be-gf-trustrow__item .be-gf-ic { color: var(--be-accent); width: 15px; height: 15px; }

/* 6 — FAQ */
.be-gf-faq__list { display: flex; flex-direction: column; gap: var(--be-space-2); max-width: 760px; }
.be-gf-faq__item { border: 1px solid var(--be-border); border-radius: var(--be-radius-md); background: var(--be-surface); }
.be-gf-faq__q { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: var(--be-space-4); padding: var(--be-space-5); font-size: 15px; font-weight: 500; color: var(--be-ink); }
.be-gf-faq__q::-webkit-details-marker { display: none; }
.be-gf-faq__chev { color: var(--be-ink-4); transition: transform var(--be-dur-fast) var(--be-ease); }
.be-gf-faq__item[open] .be-gf-faq__chev { transform: rotate(180deg); }
.be-gf-faq__a { padding: 0 var(--be-space-5) var(--be-space-5); font-size: 14px; line-height: var(--be-lh-loose); color: var(--be-ink-3); }

/* 7 — final CTA (dark) */
.be-gf-final { background: var(--be-bg-dark); padding-block: clamp(48px, 7vw, 72px); margin-top: var(--be-space-9); }
.be-gf-final__inner { text-align: center; }
.be-gf-final__title { font-family: var(--be-font-serif); font-weight: 500; font-size: clamp(28px, 4vw, 40px); line-height: 1.1; color: var(--be-ink-on-dark); margin: 0 0 var(--be-space-6); }
.be-gf-final__title em { font-style: italic; color: var(--be-accent-cyan, #a9abff); }
.be-gf-final .be-gf-btn--primary { background: #fff; color: var(--be-ink); }
.be-gf-final .be-gf-btn--primary:hover { background: var(--be-accent-soft); }
.be-gf-final__reassure { font-family: var(--be-font-mono); font-size: 12px; color: var(--be-ink-on-dark-mute); margin-top: var(--be-space-4); }

/* responsive */
@media (max-width: 980px) {
    .be-gf-hero__inner { grid-template-columns: 1fr; }
    .be-gf-hero__preview { max-width: 460px; }
}
@media (max-width: 768px) {
    .be-gf__container, .be-gf__container-narrow { padding-inline: var(--be-space-5); }
    .be-gf-package { grid-template-columns: 1fr; }
    .be-gf-pricing { grid-template-columns: 1fr; }
    .be-gf-plan--featured { order: -1; }      /* Featured first on mobile */
    .be-gf-compare { grid-template-columns: 1fr; }
    .be-gf-trustrow { grid-template-columns: 1fr; }
    .be-gf-hero__preview { max-width: none; }
}


/* =========================================================================
 * P5.35 — Homepage design alignment with the v6 Claude Design model.
 * Override block (source-order precedence). Tokens only; restrained indigo
 * accent; editorial serif hero; grid topic/city cards. No new hues.
 * ========================================================================= */

/* --- Hero: editorial serif H1 + indigo italic accent --- */
.be-home__title {
    font-family: var(--be-font-serif);
    font-weight: 500;
    letter-spacing: -0.015em;
    line-height: 1.05;
    max-width: 20ch;
}
.be-home__title-line--accent {
    font-family: var(--be-font-serif);
    font-style: italic;
    font-weight: 500;
    color: var(--be-accent);
}
.be-home__hero-eyebrow { color: var(--be-accent-ink); }

/* --- Search: keep the pill; firm the dark button to the ink-on-dark system --- */
.be-home__search { border-color: var(--be-border-strong); box-shadow: var(--be-shadow-card); }
.be-home__search-submit { background: var(--be-ink); color: var(--be-ink-on-dark); }
.be-home__search-submit:hover,
.be-home__search-submit:focus-visible { background: var(--be-accent-ink); }

/* --- Browse by topic / city: grid CARDS (model .topic-card) --- */
.be-home__shortcuts-grid,
.be-home__shortcuts-grid--topics,
.be-home__shortcuts-grid--cities {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(168px, 1fr));
    gap: var(--be-space-3);
}
.be-home__shortcut-card {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 5px;
    min-height: 78px;
    padding: var(--be-space-4) var(--be-space-5) var(--be-space-4) var(--be-space-4);
    background: var(--be-surface);
    border: 1px solid var(--be-border);
    border-radius: var(--be-radius-md);
    transition: border-color var(--be-dur-fast) var(--be-ease),
                box-shadow var(--be-dur-fast) var(--be-ease),
                transform var(--be-dur-fast) var(--be-ease);
}
.be-home__shortcut-card:hover,
.be-home__shortcut-card:focus-visible {
    border-color: var(--be-accent-line);
    background: var(--be-surface);
    box-shadow: var(--be-shadow-card);
    transform: translateY(-1px);
}
.be-home__shortcut-name {
    font-family: var(--be-font-sans);
    font-size: 15px;
    font-weight: 600;
    color: var(--be-ink);
    letter-spacing: -0.005em;
    line-height: 1.2;
}
.be-home__shortcut-count {
    font-family: var(--be-font-mono);
    font-size: 11.5px;
    letter-spacing: var(--be-ls-meta);
    color: var(--be-ink-3);
}
.be-home__shortcut-arrow {
    position: absolute;
    top: 12px;
    right: 12px;
    font-family: var(--be-font-mono);
    font-size: 12px;
    line-height: 1;
    color: var(--be-accent);
    opacity: 0.55;
}
.be-home__shortcut-card:hover .be-home__shortcut-arrow { opacity: 1; }

/* --- Section head: "All N topics →" link, top-right --- */
.be-home__shortcuts-allink {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    flex: 0 0 auto;
    font-family: var(--be-font-sans);
    font-size: 13px;
    font-weight: 500;
    color: var(--be-accent-ink);
    text-decoration: none;
    white-space: nowrap;
    transition: color var(--be-dur-fast) var(--be-ease);
}
.be-home__shortcuts-allink:hover,
.be-home__shortcuts-allink:focus-visible { color: var(--be-accent); }
.be-home__shortcuts-eyebrow { color: var(--be-accent-ink); }

/* --- Footer: real social anchors (hover) + flush dark end --- */
.be-home__footer-social-link {
    transition: color var(--be-dur-fast) var(--be-ease),
                border-color var(--be-dur-fast) var(--be-ease),
                background var(--be-dur-fast) var(--be-ease);
}
.be-home__footer-social-link:hover,
.be-home__footer-social-link:focus-visible {
    color: var(--be-ink-on-dark);
    border-color: var(--be-accent);
    background: var(--be-accent-ink);
}
/* Remove trailing whitespace under the dark footer block. */
.be-home__footer { margin-bottom: 0; }
.be-home { padding-bottom: 0; }
body.bigevent-surface .site-footer,
body.bigevent-surface .site-footer-row-container-inner { display: none; }

/* --- Mobile --- */
@media (max-width: 600px) {
    .be-home__shortcuts-grid,
    .be-home__shortcuts-grid--topics,
    .be-home__shortcuts-grid--cities {
        grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    }
    .be-home__shortcuts-head { align-items: flex-start; }
}
@media (max-width: 400px) {
    .be-home__shortcuts-grid,
    .be-home__shortcuts-grid--topics,
    .be-home__shortcuts-grid--cities {
        grid-template-columns: 1fr 1fr;
    }
}


/* =========================================================================
 * P5.35B — Fidelity pass to the Claude Design source (pages/home.html +
 * components.css). Exact values ported from the prototype (.hero / .search-hero
 * / .topic-card / .home-list / .ec). Source-order precedence over P5.35.
 * ========================================================================= */

/* --- Hero: centered, SANS display H1 flowing inline (em = serif italic
   indigo), generous rhythm. Matches .hero / .hero__title. --- */
.be-home__hero { padding: 96px 0 64px; }
.be-home__hero-inner { text-align: center; }
.be-home__hero-crumbs { margin-bottom: 28px; }
.be-home__title {
    font-family: var(--be-font-sans);
    font-weight: 600;
    font-size: clamp(38px, 5vw, 58px);
    line-height: 1.18;
    letter-spacing: -0.02em;
    max-width: 19ch;            /* holds the two-line balance like the model */
    /* !important defeats the Kadence `h1` margin rule (it injects
       `margin: 87px 0 29px`, which left-anchors the block); auto sides center
       it, matching the model's centered hero. */
    margin: 0 auto 32px !important;
    text-align: center !important;
    text-wrap: balance;
}
.be-home__title-line { display: inline; }   /* one flowing sentence, not 2 blocks */
.be-home__title-line--accent {
    font-family: var(--be-font-serif);
    font-style: italic;
    font-weight: 400;
    color: var(--be-accent);
}
.be-home__subhead {
    font-size: 17px;
    line-height: 1.55;
    max-width: 620px;
    margin: 0 auto 40px;
}
.be-home__stats { margin-top: 28px; font-size: 13px; }

/* --- Search: 640px pill, search icon, 16px input, model shadow/focus.
   Matches .search-hero / .search-hero__field. --- */
.be-home__search {
    max-width: 640px;
    margin: 0 auto var(--be-space-5);
    padding: 6px 6px 6px 18px;
    box-shadow: 0 4px 24px -10px rgba(24, 23, 26, 0.10);
}
.be-home__search:focus-within {
    border-color: var(--be-ink);
    box-shadow: 0 0 0 4px rgba(24, 23, 26, 0.05), 0 4px 24px -10px rgba(24, 23, 26, 0.14);
}
.be-home__search-icon {
    display: inline-flex;
    align-items: center;
    color: var(--be-ink-3);
    flex-shrink: 0;
}
.be-home__search-input { font-size: 16px; padding: 12px 12px; }
.be-home__search-submit { border-radius: 100px; padding: 10px 22px; font-size: 14px; }

/* --- Chips: match .search-hero__quick --- */
.be-home__hero-quick { margin-top: 18px; gap: 10px; margin-bottom: var(--be-space-5); }
.be-home__hero-quick-chip { padding: 5px 12px; font-size: 12.5px; }

/* --- Browse cards: serif name 19px (model .topic-card__name) --- */
.be-home__shortcut-name {
    font-family: var(--be-font-serif);
    font-size: 19px;
    font-weight: 500;
    letter-spacing: -0.005em;
}
.be-home__shortcut-count { margin-top: 2px; }

/* === THE KEY FIX — "Conferences worth your week" =====================
   Model `.home-list` is a SINGLE COLUMN of full-width horizontal cards
   (`.ec` = 64px date col + body). Our `.be-card` already has that exact
   grid; the homepage just wrongly wrapped them in a 2/3-col grid. Switch
   the section to a single-column flex list so cards render full-width and
   short, not tall-and-narrow. ===================================== */
.be-home__quarter-grid {
    display: flex !important;
    flex-direction: column;
    gap: 10px;
    grid-template-columns: none !important;
}

/* --- Footer: flush dark end (no white gap) --- */
.be-home__footer { margin-bottom: 0; }

/* --- Mobile --- */
@media (max-width: 720px) {
    .be-home__hero { padding: 56px 0 40px; }
    .be-home__title { font-size: clamp(30px, 8vw, 40px); max-width: 16ch; }
    .be-home__search { max-width: 100%; }
    .be-home__search-input { font-size: 16px; }   /* keep >=16px to avoid iOS zoom */
}


/* =========================================================================
 * P5.35C — Design-source fidelity corrections (hero 2-line · search chrome ·
 * hover · featured editorial container). Source-order precedence.
 * ========================================================================= */

/* --- Hero: 2-line H1 — line 1 "Find the next tech conference", line 2 the
   italic indigo accent on its OWN line. --- */
.be-home__title { max-width: 860px; }
.be-home__title-line { display: inline; }
.be-home__title-line--accent { display: block; }   /* forces "worth your week." to line 2 */

/* --- Search: kill the native search-field chrome (the white inner rectangle)
   and refine the button hover (subtle ink darken, not a hue shift). --- */
.be-home__search .be-home__search-input,
.be-home__search-input {
    appearance: none;
    -webkit-appearance: none;
    /* !important defeats the theme's input field styling (white bg + border +
       inset shadow) that was drawing the "white rectangle" inside the pill. */
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    outline: 0 !important;
}
.be-home__search-input::-webkit-search-decoration,
.be-home__search-input::-webkit-search-cancel-button,
.be-home__search-input::-webkit-search-results-button,
.be-home__search-input::-webkit-search-results-decoration {
    -webkit-appearance: none;
    display: none;
}
.be-home__search-submit:hover,
.be-home__search-submit:focus-visible {
    background: #2c2a30;   /* subtle charcoal lift of --be-ink; no indigo hue shift */
}

/* --- Topic / city cards: premium subtle TINT hover (model .topic-card:hover),
   not the previous box-shadow. --- */
.be-home__shortcut-card:hover,
.be-home__shortcut-card:focus-visible {
    border-color: var(--be-ink-3);
    background: var(--be-surface-2);
    transform: translateY(-1px);
    box-shadow: none;
}

/* --- Featured: editorial layout container (lead card + 3-up rest). --- */
.be-home__featured-editorial {
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.be-home__featured-rest {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
}
@media (max-width: 900px) {
    .be-home__featured-rest { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
    .be-home__featured-rest { grid-template-columns: 1fr; }
}


/* =========================================================================
 * P5.35C2 — two-tier topics (Tech / Business) · tech marker + indigo hover ·
 * "How we work" trust columns. Tokens only; restrained indigo.
 * ========================================================================= */

/* Tier label rows (model .topic-tier__label). */
.be-home__tier-label {
    display: flex;
    align-items: baseline;
    gap: 12px;
    margin: 4px 0 12px;
    flex-wrap: wrap;
}
.be-home__tier-label--business {
    margin-top: 28px;
    padding-top: 18px;
    border-top: 1px solid var(--be-border);
}
.be-home__tier-name {
    font-family: var(--be-font-mono);
    font-size: var(--be-text-eyebrow, 11px);
    font-weight: 500;
    letter-spacing: var(--be-ls-eyebrow);
    text-transform: uppercase;
    color: var(--be-accent-ink);
}
.be-home__tier-hint {
    font-family: var(--be-font-mono);
    font-size: 11px;
    letter-spacing: var(--be-ls-meta);
    color: var(--be-ink-4);
}

/* Tech topic card: indigo square marker (model .topic-card--tech::before) +
   indigo-gradient hover (NOT brown). */
.be-home__shortcut-card--tech { padding-left: 28px; }
.be-home__shortcut-card--tech::before {
    content: "";
    position: absolute;
    top: 16px;
    left: 14px;
    width: 6px;
    height: 6px;
    border-radius: 2px;
    background: var(--be-accent);
}
.be-home__shortcut-card--tech:hover,
.be-home__shortcut-card--tech:focus-visible {
    border-color: var(--be-accent-line);
    background: linear-gradient(180deg, var(--be-accent-soft) 0%, var(--be-surface) 70%);
    box-shadow: none;
    transform: translateY(-1px);
}

/* "How we work" trust columns (model .trust). */
.be-home__trust--how {
    margin-top: 64px;
    padding: 64px 0 80px;
    background: var(--be-bg-sunken);
    border-top: 1px solid var(--be-border);
}
.be-home__trust-inner--cols {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 40px;
    max-width: var(--be-container);
    margin: 0 auto;
    padding: 0 var(--be-space-7);
}
.be-home__trust-eyebrow {
    font-family: var(--be-font-mono);
    font-size: var(--be-text-eyebrow, 11px);
    font-weight: 500;
    letter-spacing: var(--be-ls-eyebrow);
    text-transform: uppercase;
    color: var(--be-accent-ink);
    margin-bottom: 8px;
}
.be-home__trust-h {
    font-family: var(--be-font-serif);
    font-weight: 500;
    font-size: 22px;
    letter-spacing: -0.005em;
    margin: 4px 0 10px;
    color: var(--be-ink);
}
.be-home__trust-p {
    font-size: 14.5px;
    line-height: 1.55;
    color: var(--be-ink-2);
    margin: 0;
    text-wrap: pretty;
}
@media (max-width: 768px) {
    .be-home__trust-inner--cols { grid-template-columns: 1fr; gap: 28px; }
    .be-home__trust--how { margin-top: 40px; padding: 40px 0 48px; }
}

/* P5.SUPPORT — support-page design system (partners/contact/about/terms) + homepage partners strip. Tokens from 123364. No JS. */
.be-support { background: var(--be-bg, #f7f5ef); color: var(--be-ink, #18171a); }
.be-support__container { max-width: 1120px; margin: 0 auto; padding: 0 24px; }
.be-support__hero { padding: 72px 0 36px; text-align: center; }
.be-support__eyebrow { font-size: 13px; letter-spacing: .08em; text-transform: uppercase; color: var(--be-accent, #4B4FD8); font-weight: 600; margin: 0 0 14px; }
.be-support__title { font-size: clamp(32px, 4.4vw, 50px); line-height: 1.12; letter-spacing: -.01em; margin: 0 auto 18px; max-width: 760px; }
.be-support__lede { font-size: 17px; line-height: 1.6; color: var(--be-ink-2, #46433f); max-width: 640px; margin: 0 auto; }
.be-support__section { padding: 28px 0 56px; }
.be-support__cta { padding: 8px 0 80px; }
.be-support__cta-inner { background: var(--be-surface, #fdfbf6); border: 1px solid var(--be-accent-line, #c7c8f4); border-radius: 20px; padding: 44px 32px; text-align: center; }
.be-support__cta-title { font-size: clamp(24px, 3vw, 32px); margin: 0 0 12px; }
.be-support__cta-text { font-size: 16px; color: var(--be-ink-2, #46433f); max-width: 520px; margin: 0 auto 24px; line-height: 1.55; }
.be-support__cta-actions { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
.be-support__btn { display: inline-flex; align-items: center; justify-content: center; padding: 12px 22px; border-radius: var(--be-radius-pill, 100px); font-weight: 600; font-size: 15px; text-decoration: none; transition: background .15s ease; }
.be-support__btn--primary { background: var(--be-accent, #4B4FD8); color: #fff; }
.be-support__btn--primary:hover { background: var(--be-accent-ink, #25235C); }
.be-support__btn--ghost { background: transparent; color: var(--be-ink, #18171a); border: 1px solid var(--be-accent-line, #c7c8f4); }
.be-support__btn--ghost:hover { background: var(--be-accent-soft, #ECECFF); }
.be-partners__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.be-partner-card { display: flex; flex-direction: column; background: var(--be-surface, #fdfbf6); border: 1px solid var(--be-line, #e7e2d6); border-radius: 16px; padding: 24px 22px; transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease; }
.be-partner-card:hover { border-color: var(--be-accent-line, #c7c8f4); box-shadow: 0 8px 28px -18px rgba(37,35,92,.45); transform: translateY(-2px); }
.be-partner-card__logo { height: 64px; display: flex; align-items: center; justify-content: flex-start; margin-bottom: 18px; }
.be-partner-card__logo img { max-height: 48px; max-width: 160px; width: auto; height: auto; object-fit: contain; }
.be-partner-card__name { font-size: 17px; line-height: 1.3; margin: 0 0 8px; color: var(--be-ink, #18171a); }
.be-partner-card__desc { font-size: 14px; line-height: 1.55; color: var(--be-ink-3, #7a756d); margin: 0 0 18px; flex: 1; }
.be-partner-card__cta { font-size: 14px; font-weight: 600; color: var(--be-accent, #4B4FD8); text-decoration: none; align-self: flex-start; }
.be-partner-card__cta:hover { color: var(--be-accent-ink, #25235C); }
.be-partner-card__cta span { transition: transform .15s ease; display: inline-block; }
.be-partner-card__cta:hover span { transform: translateX(3px); }
.be-home__partners { padding: 8px 0 16px; }
.be-home__partners-inner { max-width: 1120px; margin: 0 auto; padding: 0 24px; text-align: center; }
.be-home__partners-title { font-size: clamp(20px, 2.4vw, 26px); margin: 0 0 10px; }
.be-home__partners-intro { font-size: 15px; color: var(--be-ink-3, #7a756d); max-width: 560px; margin: 0 auto 26px; line-height: 1.55; }
.be-home__partners-strip { list-style: none; margin: 0 0 22px; padding: 0; display: grid; grid-template-columns: repeat(6, 1fr); gap: 24px 18px; align-items: center; }
.be-home__partners-item { display: flex; align-items: center; justify-content: center; min-height: 44px; }
.be-home__partners-item img { max-height: 34px; max-width: 130px; width: auto; height: auto; object-fit: contain; opacity: .72; filter: grayscale(100%); transition: opacity .18s ease, filter .18s ease; }
.be-home__partners-item img:hover { opacity: 1; filter: grayscale(0%); }
.be-home__partners-link { font-size: 15px; font-weight: 600; color: var(--be-accent, #4B4FD8); text-decoration: none; }
.be-home__partners-link:hover { color: var(--be-accent-ink, #25235C); }
.be-home__partners-link span { display: inline-block; transition: transform .15s ease; }
.be-home__partners-link:hover span { transform: translateX(3px); }
.be-contact-alt { max-width: 620px; margin: 28px auto 0; padding: 18px 22px; background: var(--be-surface, #fdfbf6); border: 1px solid var(--be-line, #e7e2d6); border-radius: 14px; text-align: center; }
.be-contact-alt__label { font-size: 13px; letter-spacing: .04em; text-transform: uppercase; color: var(--be-ink-3, #7a756d); margin: 0 0 4px; }
.be-contact-alt__value { font-size: 17px; margin: 0; }
.be-contact-alt__value a { color: var(--be-accent, #4B4FD8); text-decoration: none; font-weight: 600; }
.be-contact-alt__value a:hover { color: var(--be-accent-ink, #25235C); text-decoration: underline; }
body.page-id-62727 .wpforms-field-label { font-weight: 600; font-size: 14px; color: var(--be-ink-2, #46433f); }
body.page-id-62727 .wpforms-field input[type="text"], body.page-id-62727 .wpforms-field input[type="email"], body.page-id-62727 .wpforms-field textarea { border: 1px solid var(--be-line, #e7e2d6) !important; border-radius: 10px !important; padding: 11px 13px !important; font-size: 15px !important; background: var(--be-surface, #fdfbf6) !important; box-shadow: none !important; }
body.page-id-62727 .wpforms-field input:focus, body.page-id-62727 .wpforms-field textarea:focus { border-color: var(--be-accent, #4B4FD8) !important; outline: 2px solid var(--be-accent-soft, #ECECFF) !important; outline-offset: 1px; }
body.page-id-62727 .wpforms-submit { background: var(--be-accent, #4B4FD8) !important; border: 0 !important; border-radius: var(--be-radius-pill, 100px) !important; padding: 12px 26px !important; font-weight: 600 !important; color: #fff !important; }
body.page-id-62727 .wpforms-submit:hover { background: var(--be-accent-ink, #25235C) !important; }
body.page-id-62515, body.page-id-84016 { background: var(--be-bg, #f7f5ef); }
body.page-id-84016 .entry-content { max-width: 820px; margin-left: auto; margin-right: auto; }
body.page-id-84016 .entry-content h2 { margin-top: 2em; font-size: 24px; line-height: 1.25; }
body.page-id-84016 .entry-content h3 { margin-top: 1.5em; font-size: 19px; }
body.page-id-84016 .entry-content p, body.page-id-84016 .entry-content li { font-size: 16px; line-height: 1.7; color: var(--be-ink-2, #46433f); }
body.page-id-62515 .entry-content { color: var(--be-ink-2, #46433f); }
@media (max-width: 900px) { .be-partners__grid { grid-template-columns: repeat(2, 1fr); } .be-home__partners-strip { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 560px) { .be-support__hero { padding: 52px 0 28px; } .be-partners__grid { grid-template-columns: 1fr; } .be-home__partners-strip { grid-template-columns: repeat(3, 1fr); gap: 20px 14px; } .be-support__cta-inner { padding: 32px 20px; } }

/* P5.SUPPORT-POLISH — about/contact intercept sections (value cards, splits, prose, contact two-column). */
.be-support__prose { max-width: 720px; margin: 0 auto; }
.be-support__prose p { font-size: 17px; line-height: 1.7; color: var(--be-ink-2, #46433f); margin: 0 0 18px; }
.be-support__section--tint { background: var(--be-bg-sunken, #f1eee6); }
.be-values__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; max-width: 1000px; margin: 0 auto; }
.be-value-card { background: var(--be-surface, #fdfbf6); border: 1px solid var(--be-line, #e7e2d6); border-radius: 16px; padding: 26px 24px; }
.be-value-card__title { font-size: 18px; line-height: 1.3; margin: 0 0 10px; color: var(--be-ink, #18171a); }
.be-value-card__text { font-size: 14.5px; line-height: 1.6; color: var(--be-ink-3, #7a756d); margin: 0; }
.be-support__split { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; max-width: 900px; margin: 0 auto; }
.be-support__split-title { font-size: 20px; margin: 0 0 10px; color: var(--be-ink, #18171a); }
.be-support__split-text { font-size: 15.5px; line-height: 1.6; color: var(--be-ink-2, #46433f); margin: 0; }
.be-contact__grid { display: grid; grid-template-columns: 0.85fr 1.15fr; gap: 32px; align-items: start; max-width: 980px; margin: 0 auto; }
.be-contact__aside-title { font-size: 18px; margin: 0 0 14px; color: var(--be-ink, #18171a); }
.be-contact__reasons { list-style: none; margin: 0 0 24px; padding: 0; }
.be-contact__reasons li { position: relative; padding: 0 0 0 22px; margin: 0 0 11px; font-size: 15px; line-height: 1.5; color: var(--be-ink-2, #46433f); }
.be-contact__reasons li::before { content: ""; position: absolute; left: 2px; top: 8px; width: 7px; height: 7px; border-radius: 2px; background: var(--be-accent, #4B4FD8); }
.be-contact__aside .be-contact-alt { text-align: left; margin: 0; }
.be-contact__formcard { background: var(--be-surface, #fdfbf6); border: 1px solid var(--be-line, #e7e2d6); border-radius: 18px; padding: 30px 28px; }
.be-contact__reassure { font-size: 13.5px; color: var(--be-ink-3, #7a756d); margin: 16px 0 0; text-align: center; }
@media (max-width: 820px) {
    .be-values__grid { grid-template-columns: 1fr; max-width: 460px; }
    .be-support__split { grid-template-columns: 1fr; gap: 28px; }
    .be-contact__grid { grid-template-columns: 1fr; gap: 24px; }
    .be-contact__formcard { padding: 24px 18px; }
}

/* P5.SUPPORT-POLISH — editorial alignment to validated mockup: serif support hero,
 * wordmark partner cards (no logos), topic chips, wordmark homepage strip. */
.be-support__title, .be-support__cta-title, .be-value-card__title, .be-support__split-title, .be-contact__aside-title { font-family: var(--be-font-serif); letter-spacing: -.01em; }
.be-support__title em { font-style: italic; color: var(--be-accent, #4B4FD8); }
/* partner cards: editorial wordmark + topic chip, no logo zone */
.be-partner-card { min-height: 0; }
.be-partner-card__top { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.be-partner-card__wordmark { font-family: var(--be-font-serif); font-size: 19px; font-weight: 600; line-height: 1.2; letter-spacing: -.01em; color: var(--be-ink, #18171a); }
.be-partner-card__topic { flex: none; font-size: 11px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--be-accent-ink, #25235C); background: var(--be-accent-soft, #ECECFF); border-radius: 100px; padding: 4px 11px; white-space: nowrap; }
/* homepage strip: muted serif wordmarks, calm wrapping row (no logos, no grid) */
.be-home__partners-strip { display: flex !important; flex-wrap: wrap; justify-content: center; gap: 14px 30px; grid-template-columns: none !important; margin: 0 0 24px; padding: 0; list-style: none; }
.be-home__partners-item { min-height: 0; }
.be-home__partners-wordmark { font-family: var(--be-font-serif); font-size: 16px; font-weight: 600; letter-spacing: -.01em; color: var(--be-ink-3, #7a756d); transition: color .15s ease; }
.be-home__partners-item:hover .be-home__partners-wordmark { color: var(--be-accent, #4B4FD8); }
@media (max-width: 560px) { .be-home__partners-strip { gap: 12px 20px; } .be-partner-card__wordmark { font-size: 18px; } }

/* =========================================================================
 * P5.FINAL — Newsletter popup (Popup Maker + WPForms) styling. FULLY SCOPED to
 * .pum-container so it never touches the global tokens (--be-bg parchment), the
 * event .be-card, or the /contact/ WPForms. Token overrides live ON .pum-container
 * (scoped cascade), and the be-* content wrappers are scoped under .pum-container.
 * ========================================================================= */
.pum-container {
    --pbe-bg:#0E223F; --pbe-bg-2:#12284A; --pbe-text:#ffffff; --pbe-muted:#d1d5db;
    --pbe-cta-1:#22D3EE; --pbe-cta-2:#0891B2; --pbe-link:#7dd3fc; --pbe-ico:#22D3EE; --pbe-w:520px;
}
.pum-overlay { backdrop-filter: blur(2px); }
.pum-container {
    max-width: 560px; padding: 0 !important; border-radius: 14px;
    background: var(--pbe-bg) !important; color: var(--pbe-text);
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.04), 0 14px 40px rgba(0,0,0,.35);
}
/* P5.FINAL-FIX — the popup content div is `.be-pop.be-card`; `.be-card` is ALSO
   the event-card class (123365: display:grid 64px/1fr, parchment bg, border,
   shadow). Those leaked into the popup, hiding the navy container and breaking
   the layout. Reset them here (scoped to the popup, !important to beat the
   event-card rules) so the navy popup design actually applies. */
.pum-container .be-pop.be-card,
.pum-container .be-card {
    display: block !important;
    grid-template-columns: none !important;
    gap: 0 !important;
    align-items: initial !important;
    background: var(--pbe-bg) !important;
    border: 0 !important;
    border-radius: 14px !important;
    box-shadow: none !important;
    color: var(--pbe-text) !important;
    padding: 24px 22px;
    font-family: var(--global-body-font-family, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif);
}
@media (min-width:640px){ .pum-container .be-pop.be-card, .pum-container .be-card { padding: 28px 32px; } }
.pum-container .be-head, .pum-container .be-points, .pum-container .be-form, .pum-container .be-legal { max-width: var(--pbe-w); margin-left: auto; margin-right: auto; }
.pum-container .be-head h2, .pum-container .be-head p { text-align: left; }
.pum-container .be-head h2 { margin: 0 0 .4rem 0; line-height: 1.15; font-size: clamp(24px,3vw,34px); letter-spacing: .2px; color: var(--pbe-text); }
.pum-container .be-head p { margin: 0 0 14px 0; color: var(--pbe-muted); font-size: 16px; }
.pum-container .be-points { list-style: none; padding: 0; margin: 10px auto 12px; }
.pum-container .be-points li { list-style: none; position: relative; padding-left: 26px; margin: 6px 0; font-size: 16px; line-height: 1.5; color: var(--pbe-text); }
.pum-container .be-ico { position: absolute; left: 2px; top: 6px; color: var(--pbe-ico); display: inline-flex; width: 16px; height: 16px; }
.pum-container .wpforms-container-full, .pum-container .wpforms-form { margin: 0 !important; padding: 0 !important; }
.pum-container .wpforms-field-label, .pum-container .wpforms-field-sublabel { color: #eef2ff; }
.pum-container .wpforms-form .wpforms-field { margin-bottom: 8px; }
.pum-container .wpforms-form input[type="text"], .pum-container .wpforms-form input[type="email"], .pum-container .wpforms-form select, .pum-container .wpforms-form textarea {
    width: 100% !important; box-sizing: border-box; background: #ffffff; color: #0b1220; border: 1px solid #d1d5db; border-radius: 10px; padding: 12px 14px; box-shadow: 0 1px 0 rgba(0,0,0,.02);
}
.pum-container .wpforms-form input::placeholder, .pum-container .wpforms-form textarea::placeholder { color: #6b7280; }
.pum-container .wpforms-form input:focus, .pum-container .wpforms-form select:focus, .pum-container .wpforms-form textarea:focus { outline: none; border-color: var(--pbe-cta-2); box-shadow: 0 0 0 3px rgba(34,211,238,.28); }
.pum-container .wpforms-form select { -webkit-appearance: none; -moz-appearance: none; appearance: none;
    background-image: linear-gradient(45deg, transparent 50%, #93a3b8 50%), linear-gradient(135deg, #93a3b8 50%, transparent 50%), linear-gradient(to right, #ffffff, #ffffff);
    background-position: calc(100% - 18px) calc(50% - 3px), calc(100% - 12px) calc(50% - 3px), 100% 0; background-size: 6px 6px, 6px 6px, 2.5rem 100%; background-repeat: no-repeat; }
.pum-container .wpforms-submit-container { margin-top: 8px !important; }
.pum-container .wpforms-submit { width: 100%; border-radius: 12px; padding: 14px 18px; font-weight: 800; font-size: 16px; color: #fff; background: linear-gradient(180deg, var(--pbe-cta-1), var(--pbe-cta-2)) !important; box-shadow: 0 12px 28px rgba(8,145,178,.45); transition: transform .04s ease, box-shadow .2s ease, filter .2s ease; }
.pum-container .wpforms-submit:hover { filter: brightness(1.08); box-shadow: 0 14px 36px rgba(8,145,178,.55); }
.pum-container .wpforms-submit:active { transform: translateY(1px); }
.pum-container .wpforms-confirmation-container-full { background: var(--pbe-bg-2); color: #e6edf7; border: 1px solid rgba(255,255,255,.08); border-radius: 12px; padding: 14px; }
.pum-container .be-legal { text-align: left; font-size: 12px; color: var(--pbe-muted); opacity: .95; margin-top: 12px; }
.pum-container .be-legal a { color: var(--pbe-link); text-decoration: underline; }
.pum-theme-default-theme .pum-close { background: var(--pbe-cta-2, #0891B2); color: #fff; border-radius: 6px; padding: 8px 10px; font-size: 12px; line-height: 1; }
.pum-theme-default-theme .pum-close:hover { filter: brightness(1.08); }
@media (max-width:480px){ .pum-container { border-radius: 12px; } .pum-container .be-card { padding: 22px 16px; } .pum-container .be-head h2 { font-size: 24px; } }

/* =========================================================================
 * P5.POST — footer column alignment + CTA/link hover consistency.
 * ========================================================================= */
/* #1 Footer: heading + links share the exact same left edge (kill any inherited
   Kadence/browser ul padding-inline-start that offset the links from the title). */
.be-home__footer-col { padding-left: 0; }
.be-home__footer-col-heading { margin-left: 0; padding-left: 0; text-indent: 0; }
.be-home__footer-col-list {
    padding-left: 0 !important;
    margin-left: 0 !important;
    padding-inline-start: 0 !important;
    margin-inline-start: 0 !important;
    list-style: none;
}
.be-home__footer-col-item { margin-left: 0; padding-left: 0; text-indent: 0; }

/* #2/#3 Homepage partner wordmarks are now external links — keep them as calm
   serif wordmarks (no underline, no default blue), accent on hover/focus. */
.be-home__partners-wordmark { text-decoration: none; }
.be-home__partners-wordmark:link,
.be-home__partners-wordmark:visited { color: var(--be-ink-3, #7a756d); }
.be-home__partners-wordmark:hover,
.be-home__partners-wordmark:focus-visible {
    color: var(--be-accent, #4B4FD8) !important;
    text-decoration: none;
}
.be-home__partners-wordmark:focus-visible { outline: 2px solid var(--be-accent-soft, #ECECFF); outline-offset: 3px; border-radius: 3px; }

/* #3 Defensive: BigEvent CTA/link components must never fall back to the theme's
   default blue link hover. Scoped to known classes only (no global a override). */
.be-home__partners-link:hover,
.be-partner-card__cta:hover,
.be-support__btn--ghost:hover,
.be-gf-btn:hover { color: var(--be-accent-ink, #25235C); }
.be-gf-btn--primary:hover { color: #fff; }

/* =========================================================================
 * P5.POST2 — CTA hover text color + airier "Our valued partners" section.
 * ========================================================================= */
/* #1 Dark button-like CTAs set color on base but not on :hover, so the theme's
   global a:hover blue leaked into the button TEXT. Re-assert the light text on
   hover/focus/active — scoped to the known BigEvent CTA classes only (no global
   a:hover override). Keeps the exact default text color (no contrast change). */
.be-card__cta:hover, .be-card__cta:focus, .be-card__cta:focus-visible, .be-card__cta:active, .be-card__cta:visited,
.be-filters__apply:hover, .be-filters__apply:focus, .be-filters__apply:focus-visible, .be-filters__apply:active,
.be-gf-btn--primary:hover, .be-gf-btn--primary:focus, .be-gf-btn--primary:focus-visible, .be-gf-btn--primary:active, .be-gf-btn--primary:visited,
.be-support__btn--primary:hover, .be-support__btn--primary:focus, .be-support__btn--primary:focus-visible, .be-support__btn--primary:active, .be-support__btn--primary:visited,
.be-site-header__cta:hover, .be-site-header__cta:focus, .be-site-header__cta:focus-visible, .be-site-header__cta:active, .be-site-header__cta:visited,
.be-home__trust-cta:hover, .be-home__trust-cta:focus, .be-home__trust-cta:focus-visible, .be-home__trust-cta:active, .be-home__trust-cta:visited,
.be-archive__row-cta:hover, .be-archive__row-cta:focus-visible, .be-archive__row-cta:active,
.be-archive__empty-cta:hover, .be-archive__empty-cta:focus-visible, .be-archive__empty-cta:active,
.be-compare-grid__evcta:hover, .be-compare-grid__evcta:focus-visible, .be-compare-grid__evcta:active {
    color: var(--be-bg, #ffffff) !important;
}
/* keep the off-site arrow icon the same light color on hover (currentColor). */
.be-card__cta:hover .be-card__cta-icon, .be-card__cta:focus-visible .be-card__cta-icon { color: var(--be-bg, #ffffff) !important; }

/* #2 Airier, editorial partners section (no logos, no cards). */
.be-home__partners { padding: 64px 0 60px; }
.be-home__partners-inner { max-width: 1000px; }
.be-home__partners-eyebrow {
    font-size: 12px; letter-spacing: .12em; text-transform: uppercase; font-weight: 600;
    color: var(--be-accent, #4B4FD8); margin: 0 0 14px;
}
.be-home__partners-title { font-family: var(--be-font-serif); font-size: clamp(26px, 3vw, 36px); letter-spacing: -.01em; margin: 0 0 16px; }
.be-home__partners-intro { font-size: 16px; max-width: 600px; margin: 0 auto 44px; line-height: 1.6; }
.be-home__partners-strip {
    display: flex !important; flex-wrap: wrap; justify-content: center;
    align-items: center; gap: 26px 52px !important; margin: 0 0 40px !important; padding: 0;
    grid-template-columns: none !important;
}
.be-home__partners-item { min-height: 0; }
.be-home__partners-wordmark {
    font-family: var(--be-font-serif); font-size: 21px; font-weight: 500; letter-spacing: -.01em;
    line-height: 1.2; color: var(--be-ink-2, #46433f); transition: color .15s ease;
}
.be-home__partners-cta { margin-top: 4px; }
.be-home__partners-link { font-size: 15px; }
@media (max-width: 680px) {
    .be-home__partners { padding: 48px 0 44px; }
    .be-home__partners-strip { gap: 20px 36px !important; }
    .be-home__partners-wordmark { font-size: 19px; }
    .be-home__partners-intro { margin-bottom: 34px; }
}

/* =========================================================================
 * P5.POST3 — homepage search-submit white text in all states + airier partners.
 * ========================================================================= */
/* #1 The homepage search button (.be-home__search-submit) + its label set color
   only on the base rule; every :hover rule changes background only, so the theme
   blue leaked into the button text. Re-assert white text in all states (+ the
   inner label, which holds the visible text). Scoped — no global override. */
.be-home__search-submit,
.be-home__search-submit:hover,
.be-home__search-submit:focus,
.be-home__search-submit:focus-visible,
.be-home__search-submit:active,
.be-home__search-submit:visited,
.be-home__search-submit-label,
.be-home__search-submit:hover .be-home__search-submit-label,
.be-home__search-submit:focus .be-home__search-submit-label,
.be-home__search-submit:focus-visible .be-home__search-submit-label,
.be-home__search-submit:active .be-home__search-submit-label,
.be-home__search-submit svg,
.be-home__search-submit:hover svg {
    color: var(--be-ink-on-dark, #ffffff) !important;
}

/* #2 Partners section: more breathing room, names clearly separated from the
   paragraph above, airy editorial row (no logos / cards / borders). */
.be-home__partners { padding: 80px 0 72px; }
.be-home__partners-eyebrow { margin: 0 0 16px; }
.be-home__partners-title { margin: 0 0 18px; }
.be-home__partners-intro { margin: 0 auto 56px; }      /* clear gap before partner names */
.be-home__partners-strip {
    gap: 30px 58px !important;
    margin: 0 0 48px !important;
    row-gap: 30px;
}
.be-home__partners-wordmark { font-size: 22px; }
.be-home__partners-cta { margin-top: 8px; }
@media (max-width: 680px) {
    .be-home__partners { padding: 56px 0 48px; }
    .be-home__partners-intro { margin-bottom: 40px; }
    .be-home__partners-strip { gap: 22px 38px !important; margin-bottom: 38px !important; }
    .be-home__partners-wordmark { font-size: 19px; }
}

/* =========================================================================
 * P5.POST4 — "Our partners" rebuilt to MATCH the validated mockup `.hp-partners`
 * exactly (model/BigEvent/components.css). The prior versions diverged: no band
 * background / top border (section blended into the page), oversized gaps+fonts,
 * full-opacity wordmarks (too link-like). This is the authoritative spec.
 * ========================================================================= */
.be-home__partners {
    border-top: 1px solid var(--be-border, #e7e2d6);
    padding: 56px 0 64px;
    background: var(--be-surface, #fdfbf6);   /* distinct editorial band */
}
.be-home__partners-inner { max-width: 1120px; margin: 0 auto; padding: 0 24px; text-align: center; }
/* eyebrow + title + intro = one contained head block, with a clean 36px gap
   to the partner wordmark zone below. */
.be-home__partners-head { text-align: center; max-width: 620px; margin: 0 auto 36px; }
.be-home__partners-eyebrow { font-size: 12px; letter-spacing: .12em; text-transform: uppercase; font-weight: 600; color: var(--be-accent, #4B4FD8); margin: 0 0 12px; }
.be-home__partners-title { font-family: var(--be-font-serif); font-weight: 500; font-size: 24px; letter-spacing: -0.01em; color: var(--be-ink, #18171a); margin: 0 0 12px; }
.be-home__partners-intro { font-size: 14.5px; line-height: 1.55; color: var(--be-ink-2, #46433f); margin: 0; max-width: 620px; }
/* partner wordmark zone — its own calm, centered band */
.be-home__partners-strip {
    display: flex !important; flex-wrap: wrap; align-items: center; justify-content: center;
    gap: 14px 40px !important; padding: 8px 0 4px !important; margin: 0 !important;
    grid-template-columns: none !important; list-style: none;
}
.be-home__partners-item { min-height: 0; display: inline-flex; }
.be-home__partners-wordmark {
    font-family: var(--be-font-serif); font-weight: 600; font-size: 18px; letter-spacing: -0.01em;
    color: var(--be-ink-3, #7a756d) !important; opacity: 0.78; white-space: nowrap; text-decoration: none;
    transition: color 140ms ease, opacity 140ms ease;
}
.be-home__partners-wordmark:hover, .be-home__partners-wordmark:focus-visible {
    color: var(--be-accent-ink, #25235C) !important; opacity: 1; text-decoration: none;
}
.be-home__partners-wordmark:focus-visible { outline: 2px solid var(--be-accent-soft, #ECECFF); outline-offset: 3px; border-radius: 3px; }
.be-home__partners-cta { text-align: center; margin-top: 30px; }
.be-home__partners-link { font-size: 14.5px; font-weight: 600; color: var(--be-accent, #4B4FD8); text-decoration: none; }
.be-home__partners-link:hover { color: var(--be-accent-ink, #25235C); }
@media (max-width: 768px) {
    .be-home__partners { padding: 48px 0 52px; }
    .be-home__partners-head { margin-bottom: 30px; }
    .be-home__partners-strip { gap: 12px 26px !important; }
    .be-home__partners-wordmark { font-size: 15px; }
}
/* ==========================================================================
   BATCH 6 - Partners canonical grid (Homepage + /partners/). Wordmark + mono
   meta tiles, 6/3/2 responsive, "+ N more" overflow tile. No carousel/marquee.
   Surface-scoped (both surfaces carry body.bigevent-surface).
   ========================================================================== */
html body.bigevent-surface .be-partners-grid{
  list-style:none; margin:26px 0 0; padding:0;
  display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:1px;
  background:var(--rule,#232A33); border:1px solid var(--rule,#232A33);
}
html body.bigevent-surface .be-partners-grid__item{ min-width:0; display:flex; }
html body.bigevent-surface .be-partners-tile{
  background:var(--ink,#0F1216); padding:20px 16px; width:100%;
  display:flex; flex-direction:column; justify-content:space-between;
  min-height:96px; min-width:0; box-sizing:border-box; text-decoration:none;
}
html body.bigevent-surface .be-partners-tile:hover .be-partners-tile__name{ color:var(--w,#FFFFFF); }
html body.bigevent-surface a.be-partners-tile:focus-visible{ outline:var(--focus-width,2px) solid var(--sig,#C6F24E); outline-offset:-2px; }
html body.bigevent-surface .be-partners-tile__name{
  font-size:15px; font-weight:700; letter-spacing:-.015em; color:var(--t1,#D8DDE3); line-height:1.2;
}
html body.bigevent-surface .be-partners-tile__meta{
  font-family:var(--mono,'JetBrains Mono',monospace); font-size:9.5px; letter-spacing:.11em;
  color:var(--t3,#7C8590); margin-top:12px; text-transform:uppercase;
}
html body.bigevent-surface .be-partners-more{ background:var(--ink2,#141920); align-items:center; justify-content:center; text-align:center; }
html body.bigevent-surface .be-partners-more__label{ font-family:var(--mono,'JetBrains Mono',monospace); font-size:12px; letter-spacing:.1em; color:var(--sig,#C6F24E); }
html body.bigevent-surface .be-partners-more:hover .be-partners-more__label{ color:var(--sigd,#9BC53D); }
html body.bigevent-surface .be-partners__foot{ margin-top:16px; }
html body.bigevent-surface .be-partners__foot-note{ font-family:var(--mono,'JetBrains Mono',monospace); font-size:10.5px; letter-spacing:.09em; color:var(--t3,#7C8590); }
@media (max-width:1024px){ html body.bigevent-surface .be-partners-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); } } /* handoff §6: 1024 -> 3 cols */
@media (max-width:767px){
  html body.bigevent-surface .be-partners-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  html body.bigevent-surface .be-partners-tile{ min-height:82px; padding:16px 14px; }
  html body.bigevent-surface .be-partners-tile__name{ font-size:14px; }
}

/* ============================================================
   BigEvent — Listing Archive
   ============================================================
   Snippet title : BigEvent — Listing Archive CSS
   Phase         : S5.2 of the design / template build
   Environment   : LOCAL ONLY. Not yet pushed to staging.

   Companion file: wpcode-ready/bigevent-listing-archive.php
   Requires      : wpcode-ready/bigevent-design-system-tokens.css
                   wpcode-ready/bigevent-card.css

   Scope         : All selectors are anchored on .be-surface, .be-archive,
                   .be-archive__*. Nothing in this file affects Kadence
                   chrome, TEC surfaces, or any element outside the BigEvent
                   archive <main> wrapper.

   Layout philosophy
   -----------------------------------------------------------------------------
   The archive shell is calm and editorial. The hero is text-driven (eyebrow +
   serif title + intro sentence + count). The filter strip is a single row of
   pill chips. The grid is responsive 1/2/3 columns. Related-terms block is
   a chip rail. Empty state is opinionated: title + body + two CTAs.

   No JavaScript is required for v1. All filter affordances are <a> links that
   round-trip GET params; the server re-queries on each toggle.
   ============================================================ */


/* === Shell =================================================== */

.be-surface.be-archive {
    display: block;
    background: var(--be-bg);
    color: var(--be-ink);
    padding: 0 0 var(--be-space-10);
}


/* === Editor preview notice ===================================
   Visible only when current_user_can('edit_posts'). Reminds editors
   that they see drafts where anonymous visitors do not. Low-contrast,
   mono caps — present but not loud.                                  */

.be-archive__editor-notice {
    max-width: var(--be-container);
    margin: var(--be-space-5) auto 0;
    padding: var(--be-space-3) var(--be-space-7);
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: var(--be-space-3);
    background: var(--be-surface-2);
    border: 1px solid var(--be-border);
    border-radius: var(--be-radius);
    color: var(--be-ink-3);
    font-size: var(--be-text-meta);
    line-height: var(--be-lh-snug);
}

.be-archive__editor-notice-eyebrow {
    font-family: var(--be-font-mono);
    font-size: var(--be-text-eyebrow);
    font-weight: 500;
    letter-spacing: var(--be-ls-eyebrow);
    text-transform: uppercase;
    color: var(--be-warn);
    flex-shrink: 0;
}

.be-archive__editor-notice-body {
    font-family: var(--be-font-sans);
    color: var(--be-ink-2);
}


/* === Hero strip ==============================================
   P5.5c-a2 (2026-05-22) — visual reset: archive hero is now light
   and editorial (matches the AI conferences mockup). Removed:
     - dark navy background (--be-bg-dark)
     - cyan glow radial-gradient
     - cyan eyebrow color
     - ink-on-dark text colors
   Replaced with: parchment bg, ink-1/ink-2/ink-3 text, hairline
   border. The H1 stays sans 600; eyebrow stays mono uppercase but
   now in ink-3 (no accent), to keep the editorial restraint.
   ============================================================ */

.be-archive__hero {
    padding: var(--be-space-8) 0 var(--be-space-6);
    background: var(--be-bg);
    color: var(--be-ink);
    border-bottom: 1px solid var(--be-border);
}

.be-archive__hero-inner {
    max-width: var(--be-container);
    margin: 0 auto;
    padding: 0 var(--be-gutter); /* Batch A — canonical structural gutter (was --be-space-7 32px) */
    text-align: left;
}

.be-archive__eyebrow {
    font-family: var(--be-font-mono);
    font-size: var(--be-text-eyebrow);
    font-weight: 500;
    letter-spacing: var(--be-ls-eyebrow);
    text-transform: uppercase;
    color: var(--be-ink-3);
    margin-bottom: var(--be-space-3);
}

.be-archive__title {
    font-family: var(--be-font-sans);
    font-weight: 600;
    font-size: clamp(30px, 4.0vw, 44px);
    line-height: 1.1;
    letter-spacing: var(--be-ls-tight);
    color: var(--be-ink);
    margin: 0 0 var(--be-space-3);
    text-wrap: balance;
}

/* P5.8e — subhead now matches the prototype `.topic-hero__sub` (`.h-display`):
   serif, weight 500, ink. The optional <em> term carries the saddle accent in
   italic, the only chromatic note in the hero text column. */
.be-archive__subhead {
    font-family: var(--be-font-serif);
    font-style: normal;
    font-weight: 500;
    font-size: clamp(19px, 1.8vw, 23px);
    line-height: 1.15;
    letter-spacing: -0.015em;
    color: var(--be-ink);
    margin: 0 0 var(--be-space-4);
    max-width: 36ch;
    text-wrap: pretty;
}

.be-archive__subhead em {
    font-style: italic;
    font-weight: 400;
    color: var(--be-accent);
}

.be-archive__intro {
    font-family: var(--be-font-sans);
    font-size: 14.5px;
    line-height: var(--be-lh-loose);
    color: var(--be-ink-2);
    margin: 0 0 var(--be-space-4);
    max-width: 64ch;
    text-wrap: pretty;
}

.be-archive__stats {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--be-space-2);
    font-family: var(--be-font-mono);
    font-size: var(--be-text-meta);
    color: var(--be-ink-3);
    letter-spacing: var(--be-ls-meta);
}

.be-archive__stats-scope {
    color: var(--be-ink-4);
}


/* === P5.8e — breadcrumb + hero stats grid ====================
   Mirrors the prototype `.topic-hero` (.bcrumb, .topic-hero__row,
   .topic-hero__stats). Breadcrumb is mono ink-3 above the hero;
   the hero splits into a text column and a 2x2 bordered stats dl
   on desktop, stacking on narrow viewports.
   ============================================================ */

.be-archive__bcrumb {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: var(--be-space-5);
    font-family: var(--be-font-mono);
    font-size: var(--be-text-meta);
    letter-spacing: var(--be-ls-meta);
    color: var(--be-ink-3);
}

.be-archive__bcrumb-link {
    color: var(--be-ink-3);
    text-decoration: none;
    transition: color var(--be-dur-fast) var(--be-ease);
}

.be-archive__bcrumb-link:hover {
    color: var(--be-ink);
}

.be-archive__bcrumb-sep {
    color: var(--be-ink-4);
}

.be-archive__bcrumb-current {
    color: var(--be-ink);
}

.be-archive__hero-row {
    display: grid;
    grid-template-columns: 1.6fr 1fr;
    gap: var(--be-space-8);
    align-items: end;
}

.be-archive__hero-left {
    min-width: 0;
}

/* The legacy scope line sits tighter to the stats grid now that the
   hero is two-column; drop its bottom margin inside the left column. */
.be-archive__hero-left .be-archive__stats {
    margin-top: var(--be-space-2);
}

.be-archive__hero-stats {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
    margin: 0;
    border-top: 1px solid var(--be-border);
    border-left: 1px solid var(--be-border);
}

.be-archive__hero-stat {
    border-bottom: 1px solid var(--be-border);
    border-right: 1px solid var(--be-border);
    padding: var(--be-space-3) var(--be-space-4);
    background: var(--be-surface);
}

.be-archive__hero-stat-label {
    font-family: var(--be-font-mono);
    font-size: var(--be-text-eyebrow);
    letter-spacing: var(--be-ls-eyebrow);
    text-transform: uppercase;
    color: var(--be-ink-3);
}

.be-archive__hero-stat-value {
    margin: 4px 0 0;
    font-family: var(--be-font-serif);
    font-size: 22px;
    font-weight: 500;
    line-height: 1.1;
    color: var(--be-ink);
}

@media (max-width: 1024px) {
    .be-archive__hero-row {
        grid-template-columns: 1fr;
        gap: var(--be-space-6);
        align-items: start;
    }
}

@media (max-width: 540px) {
    /* P5.FINAL — keep the four upper stat blocks as a compact 2x2 grid on mobile
       (was 1 column = four tall rows, creating excessive vertical gap above the
       search/filter area). Desktop layout unchanged. */
    .be-archive__hero-stats {
        grid-template-columns: repeat(2, 1fr);
        gap: 8px;
    }
    .be-archive__hero-stat {
        padding: 10px 12px;
    }
}


/* === Filter strip ============================================ */

.be-archive__filters {
    max-width: var(--be-container);
    margin: var(--be-space-7) auto 0;
    padding: 0 var(--be-gutter); /* Batch A — canonical structural gutter (was --be-space-7 32px) */
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--be-space-3);
}

.be-archive__filters-label {
    font-family: var(--be-font-mono);
    font-size: var(--be-text-eyebrow);
    text-transform: uppercase;
    letter-spacing: var(--be-ls-eyebrow);
    color: var(--be-ink-3);
}

.be-archive__filters-chips {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}

.be-archive__filter-chip {
    display: inline-flex;
    align-items: center;
    font-family: var(--be-font-sans);
    font-size: 12.5px;
    font-weight: 500;
    color: var(--be-ink-2);
    background: var(--be-surface);
    border: 1px solid var(--be-border);
    border-radius: var(--be-radius-pill);
    padding: 6px 14px;
    text-decoration: none;
    line-height: 1.3;
    transition: color var(--be-dur-fast) var(--be-ease),
                border-color var(--be-dur-fast) var(--be-ease),
                background var(--be-dur-fast) var(--be-ease);
}

.be-archive__filter-chip:hover,
.be-archive__filter-chip:focus-visible {
    color: var(--be-ink);
    border-color: var(--be-ink-3);
}

.be-archive__filter-chip.is-active {
    background: var(--be-ink);
    color: var(--be-bg);
    border-color: var(--be-ink);
}


/* === P5.8f — GET-param FiltersBar ============================
   Server-rendered `<form method="get">`. Bordered parchment panel
   (prototype `.filters`): full-width search, inline selects, an Apply
   button, a result-count bar, and removable active-filter chips.
   No JS, no AJAX, no mobile drawer — selects stack full-width ≤720px.
   ============================================================ */

.be-archive__filterbar {
    max-width: var(--be-container); /* P5.8k — align filters to the wider list/hero */
    margin: var(--be-space-7) auto 0;
    padding: 0 var(--be-gutter); /* Batch A — canonical structural gutter (was --be-space-7 32px) */
    display: flex;
    flex-direction: column;
    gap: var(--be-space-3);
}

.be-filters {
    display: flex;
    flex-direction: column;
    gap: var(--be-space-3);
    padding: var(--be-space-4) var(--be-space-5);
    background: var(--be-surface);
    border: 1px solid var(--be-border-strong);
    border-radius: var(--be-radius-lg);
}

.be-filters__row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--be-space-2);
}

/* Visually-hidden label text (search field, chip remove hint). */
.be-filters__sr {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.be-filters__search {
    position: relative;
    flex: 1 1 100%;
    display: flex;
    align-items: center;
}

.be-filters__input {
    width: 100%;
    padding: 11px 14px;
    border: 1px solid var(--be-border-strong);
    border-radius: var(--be-radius);
    font-family: var(--be-font-sans);
    font-size: 15px;
    background: var(--be-bg);
    color: var(--be-ink);
    outline: 0;
    transition: border-color var(--be-dur-fast) var(--be-ease),
                box-shadow var(--be-dur-fast) var(--be-ease);
}

.be-filters__input::placeholder {
    color: var(--be-ink-4);
}

.be-filters__input:focus {
    border-color: var(--be-ink);
    box-shadow: 0 0 0 3px rgba(24, 23, 26, 0.06);
}

.be-filters__select {
    position: relative;
    display: inline-flex;
    align-items: center;
    border: 1px solid var(--be-border);
    border-radius: var(--be-radius);
    padding: 0 10px 0 12px;
    background: var(--be-bg);
    cursor: pointer;
    transition: border-color var(--be-dur-fast) var(--be-ease),
                background var(--be-dur-fast) var(--be-ease);
}

.be-filters__select:hover {
    border-color: var(--be-ink-4);
}

.be-filters__select.has-value {
    border-color: var(--be-ink);
    background: var(--be-ink);
}

.be-filters__select.has-value .be-filters__select-label {
    color: rgba(247, 245, 239, 0.7);
}

.be-filters__select.has-value select {
    color: var(--be-bg);
}

.be-filters__select-label {
    font-family: var(--be-font-mono);
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: var(--be-ls-eyebrow);
    color: var(--be-ink-3);
    pointer-events: none;
    margin-right: 6px;
}

.be-filters__select select {
    border: 0;
    background: transparent;
    font-family: var(--be-font-sans);
    font-size: 13px;
    font-weight: 500;
    padding: 9px 0;
    color: inherit;
    outline: 0;
    cursor: pointer;
}

/* Native dropdown list items stay on the parchment, not the dark chip. */
.be-filters__select select option {
    color: var(--be-ink);
    background: var(--be-bg);
}

.be-filters__apply {
    margin-left: auto;
    border: 1px solid var(--be-ink);
    border-radius: var(--be-radius);
    background: var(--be-ink);
    color: var(--be-bg);
    font-family: var(--be-font-sans);
    font-size: 13px;
    font-weight: 600;
    padding: 10px 18px;
    cursor: pointer;
    transition: background var(--be-dur-fast) var(--be-ease),
                border-color var(--be-dur-fast) var(--be-ease);
}

.be-filters__apply:hover {
    background: var(--be-ink-2);
    border-color: var(--be-ink-2);
}

.be-filters__result-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--be-space-3);
    border-top: 1px solid var(--be-divider);
    padding-top: var(--be-space-3);
}

.be-filters__count {
    display: flex;
    align-items: baseline;
    gap: 6px;
    color: var(--be-ink-2);
    font-size: 13px;
}

.be-filters__count-num {
    font-family: var(--be-font-serif);
    font-size: 22px;
    font-weight: 500;
    color: var(--be-ink);
    line-height: 1;
}

.be-filters__count-label {
    color: var(--be-ink-3);
}

.be-filters__clear {
    font-family: var(--be-font-sans);
    font-size: 12.5px;
    font-weight: 500;
    color: var(--be-accent-ink);
    text-decoration: none;
    border-bottom: 1px solid var(--be-accent-line);
    padding-bottom: 1px;
}

.be-filters__clear:hover {
    color: var(--be-accent);
}

.be-filters__active {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.be-filters__chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: var(--be-font-sans);
    font-size: 12px;
    font-weight: 500;
    padding: 5px 10px;
    border-radius: var(--be-radius-pill);
    border: 1px solid var(--be-border);
    text-decoration: none;
    line-height: 1.3;
}

.be-filters__chip--remove {
    color: var(--be-ink-2);
    background: var(--be-surface);
    transition: color var(--be-dur-fast) var(--be-ease),
                border-color var(--be-dur-fast) var(--be-ease);
}

.be-filters__chip--remove:hover,
.be-filters__chip--remove:focus-visible {
    color: var(--be-ink);
    border-color: var(--be-ink-3);
}

.be-filters__chip--locked {
    color: var(--be-accent-ink);
    background: var(--be-accent-soft);
    border-color: var(--be-accent-line);
}

.be-filters__chip-x {
    font-size: 14px;
    line-height: 1;
    color: var(--be-ink-4);
}

.be-filters__chip--remove:hover .be-filters__chip-x {
    color: var(--be-ink);
}

@media (max-width: 720px) {
    .be-filters__row {
        gap: var(--be-space-2);
    }
    .be-filters__select {
        flex: 1 1 100%;
        justify-content: space-between;
    }
    .be-filters__select select {
        flex: 1 1 auto;
        text-align: right;
    }
    .be-filters__apply {
        margin-left: 0;
        width: 100%;
    }
}


/* === Related terms (chip rail under filters) ================= */

.be-archive__related {
    max-width: var(--be-container);
    margin: var(--be-space-5) auto 0;
    padding: 0 var(--be-gutter); /* Batch A — canonical structural gutter (was --be-space-7 32px) */
}

.be-archive__related-label {
    font-family: var(--be-font-mono);
    font-size: var(--be-text-eyebrow);
    text-transform: uppercase;
    letter-spacing: var(--be-ls-eyebrow);
    color: var(--be-ink-3);
    margin-bottom: var(--be-space-2);
}

.be-archive__related-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.be-chip--related {
    /* extends .be-chip (defined in bigevent-card.css) */
    background: var(--be-surface);
}

.be-chip--related:hover,
.be-chip--related:focus-visible {
    color: var(--be-ink);
    border-color: var(--be-ink-3);
    background: var(--be-surface-2);
}

.be-chip__count {
    margin-left: 6px;
    font-family: var(--be-font-mono);
    font-size: 10.5px;
    color: var(--be-ink-4);
    letter-spacing: var(--be-ls-meta);
}


/* === P5.8g — related navigation (below the list) =============
   Mirrors prototype `.related`: section heading + either a card grid
   (`.be-related__cards` → `.be-related-chip`-style cards with serif
   title + mono count) or an inline pill row (`.be-related__chips`).
   Warm editorial, parchment cards, accent-soft hover. Stacks on mobile.
   ============================================================ */

.be-archive__related-nav {
    max-width: var(--be-container); /* P5.8k — align related nav to the wider list */
    margin: var(--be-space-9) auto 0;
    padding: 0 var(--be-gutter); /* Batch A — canonical structural gutter (was --be-space-7 32px) */
    display: flex;
    flex-direction: column;
    gap: var(--be-space-8);
}

.be-related__head {
    margin-bottom: var(--be-space-4);
    padding-bottom: var(--be-space-3);
    border-bottom: 1px solid var(--be-border);
}

.be-related__heading {
    font-family: var(--be-font-serif);
    font-size: clamp(20px, 2vw, 26px);
    font-weight: 500;
    letter-spacing: -0.012em;
    line-height: 1.2;
    color: var(--be-ink);
    margin: 0;
}

.be-related__cards {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--be-space-2);
}

.be-related__card {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
    text-align: left;
    background: var(--be-surface);
    border: 1px solid var(--be-border);
    border-radius: var(--be-radius);
    padding: 14px 16px;
    text-decoration: none;
    transition: border-color var(--be-dur-fast) var(--be-ease),
                background var(--be-dur-fast) var(--be-ease),
                transform var(--be-dur-fast) var(--be-ease);
}

.be-related__card:hover,
.be-related__card:focus-visible {
    border-color: var(--be-accent-line);
    background: var(--be-accent-soft);
    transform: translateY(-1px);
}

.be-related__card-title {
    font-family: var(--be-font-serif);
    font-size: 15px;
    font-weight: 500;
    line-height: 1.25;
    color: var(--be-ink);
}

.be-related__card-count {
    font-family: var(--be-font-mono);
    font-size: 11px;
    letter-spacing: var(--be-ls-meta);
    color: var(--be-ink-3);
}

.be-related__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.be-related__chip {
    display: inline-flex;
    align-items: center;
    font-family: var(--be-font-sans);
    font-size: 13px;
    font-weight: 500;
    color: var(--be-ink-2);
    background: var(--be-surface);
    border: 1px solid var(--be-border);
    border-radius: var(--be-radius-pill);
    padding: 7px 14px;
    text-decoration: none;
    line-height: 1.3;
    transition: color var(--be-dur-fast) var(--be-ease),
                border-color var(--be-dur-fast) var(--be-ease),
                background var(--be-dur-fast) var(--be-ease);
}

.be-related__chip:hover,
.be-related__chip:focus-visible {
    color: var(--be-ink);
    border-color: var(--be-accent-line);
    background: var(--be-accent-soft);
}

@media (max-width: 900px) {
    .be-related__cards {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 540px) {
    .be-related__cards {
        grid-template-columns: 1fr;
    }
}


/* === Results: date-grouped editorial list (P5.8b) ============
   Strict-alignment pass to the AI-conferences mockup. Each row:
   date stack (left) · body [date-range+format eyebrow → bold title →
   bold venue + lighter city/country → 2-line description → foot
   (topic chips · best-for · scale stats)] · official-site CTA (right).
   Generous editorial spacing; dedicated mobile layout further below.
   ============================================================ */

.be-archive__results {
    /* P5.8k — widened narrow→full container (1240px) to match the hero/filters
       and the prototype `.container`, so the list reads as the dominant content
       block instead of a narrow column. */
    max-width: var(--be-container);
    margin: var(--be-space-7) auto 0;
    padding: 0 var(--be-gutter); /* Batch A — canonical structural gutter (was --be-space-7 32px) */
}

.be-archive__list {
    display: flex;
    flex-direction: column;
    gap: var(--be-space-9);
}

.be-archive__month {
    display: flex;
    flex-direction: column;
}

.be-archive__month-heading {
    font-family: var(--be-font-serif);
    font-weight: 500;
    font-size: clamp(19px, 2.1vw, 24px);
    letter-spacing: -0.01em;
    color: var(--be-ink);
    margin: 0 0 var(--be-space-4);
    padding-bottom: var(--be-space-3);
    border-bottom: 1px solid var(--be-border-strong);
}

/* P5.8c — card stack within a month group (prototype .home-list: a flat
   column of rich .be-card / .ec event cards, ~10-12px gap). */
.be-archive__month-cards {
    display: flex;
    flex-direction: column;
    gap: var(--be-space-3);
}

/* Legacy borderless-row styles below are retained only for the
   function_exists fallback when the card primitive (123363) is inactive. */
.be-archive__rows {
    list-style: none;
    margin: 0;
    padding: 0;
}

.be-archive__row {
    display: grid;
    grid-template-columns: 60px 1fr auto;
    align-items: start;
    column-gap: var(--be-space-6);
    padding: var(--be-space-6) 0;
    border-bottom: 1px solid var(--be-divider);
}

.be-archive__row:last-child {
    border-bottom: 0;
}

/* Date stack — clean (no heavy box), big serif day + mono month. */
.be-archive__row-date {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    line-height: 1.05;
    padding-top: 2px;
}

.be-archive__row-date-day {
    font-family: var(--be-font-serif);
    font-weight: 500;
    font-size: 30px;
    color: var(--be-ink);
    letter-spacing: -0.01em;
    white-space: nowrap;
}

.be-archive__row-date-sep {
    color: var(--be-ink-4);
    font-size: 22px;
    margin: 0 1px;
}

.be-archive__row-date-mo {
    font-family: var(--be-font-mono);
    font-size: 11px;
    font-weight: 500;
    letter-spacing: var(--be-ls-eyebrow);
    text-transform: uppercase;
    color: var(--be-accent-ink);
    margin-top: 3px;
}

/* Body */
.be-archive__row-body {
    min-width: 0;
}

.be-archive__row-eyebrow {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    font-family: var(--be-font-mono);
    font-size: var(--be-text-meta);
    letter-spacing: var(--be-ls-meta);
    color: var(--be-ink-3);
    margin-bottom: 5px;
}

.be-archive__row-dot {
    color: var(--be-ink-4);
}

.be-archive__row-title {
    font-family: var(--be-font-sans);
    font-weight: 600;
    font-size: 19px;
    line-height: var(--be-lh-snug);
    letter-spacing: var(--be-ls-tight);
    color: var(--be-ink);
    margin: 0 0 6px;
}

.be-archive__row-loc {
    font-family: var(--be-font-sans);
    font-size: 14px;
    line-height: var(--be-lh-snug);
    color: var(--be-ink-3);
    margin-bottom: 8px;
}

.be-archive__row-venue {
    color: var(--be-ink);
    font-weight: 600;
}

.be-archive__row-venue + .be-archive__row-place::before {
    content: " · ";
    color: var(--be-ink-4);
}

.be-archive__row-loc-virtual {
    color: var(--be-format-virtual-ink);
    font-weight: 600;
}

.be-archive__row-desc {
    font-family: var(--be-font-sans);
    font-size: 14.5px;
    line-height: var(--be-lh-base);
    color: var(--be-ink-2);
    margin: 0 0 10px;
    max-width: 68ch;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Foot: topic chips · best-for · scale stats */
.be-archive__row-foot {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px var(--be-space-4);
    font-family: var(--be-font-sans);
    font-size: 12.5px;
    color: var(--be-ink-3);
}

.be-archive__row-topics {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 6px;
}

.be-archive__row-topic {
    display: inline-flex;
    align-items: center;
    padding: 2px 9px;
    font-size: 11.5px;
    font-weight: 500;
    color: var(--be-ink-2);
    background: var(--be-surface);
    border: 1px solid var(--be-border);
    border-radius: var(--be-radius-pill);
    text-decoration: none;
    transition: color var(--be-dur-fast) var(--be-ease),
                border-color var(--be-dur-fast) var(--be-ease);
}

a.be-archive__row-topic:hover,
a.be-archive__row-topic:focus-visible {
    color: var(--be-ink);
    border-color: var(--be-ink-3);
}

.be-archive__row-bestfor {
    color: var(--be-ink-3);
}

.be-archive__row-bestfor-label {
    font-family: var(--be-font-mono);
    font-size: 10.5px;
    letter-spacing: var(--be-ls-eyebrow);
    text-transform: uppercase;
    color: var(--be-ink-4);
    margin-right: 5px;
}

.be-archive__row-stats {
    font-family: var(--be-font-mono);
    font-size: var(--be-text-meta);
    letter-spacing: var(--be-ls-meta);
    color: var(--be-ink-3);
}

/* CTA (right column, desktop) */
.be-archive__row-aside {
    display: flex;
    align-items: flex-start;
    padding-top: 2px;
}

.be-archive__row-cta {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 8px 16px;
    font-family: var(--be-font-sans);
    font-size: 13px;
    font-weight: 500;
    color: var(--be-ink);
    background: transparent;
    border: 1px solid var(--be-border-strong);
    border-radius: var(--be-radius-pill);
    text-decoration: none;
    white-space: nowrap;
    transition: color var(--be-dur-fast) var(--be-ease),
                border-color var(--be-dur-fast) var(--be-ease),
                background var(--be-dur-fast) var(--be-ease);
}

.be-archive__row-cta:hover,
.be-archive__row-cta:focus-visible {
    color: var(--be-bg);
    background: var(--be-ink);
    border-color: var(--be-ink);
}

.be-archive__row-cta-icon {
    font-family: var(--be-font-mono);
    font-size: 12px;
    line-height: 1;
}


/* === Pagination ==============================================
   P5.5c-a2 — ink-driven pagination (was cyan in P5.5a). The current
   page is a black-fill pill (matches the editorial mockup's ink
   CTAs); hover/focus darkens border + text. No accent color.
   ============================================================ */

.be-archive__pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: var(--be-space-8);
    padding-top: var(--be-space-6);
    border-top: 1px solid var(--be-border);
    font-family: var(--be-font-sans);
    font-size: 13.5px;
}

.be-archive__pagination-item {
    display: inline-flex;
}

.be-archive__pagination .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 36px;
    height: 36px;
    padding: 0 12px;
    border-radius: var(--be-radius-pill);
    border: 1px solid var(--be-border);
    background: var(--be-surface);
    color: var(--be-ink-2);
    text-decoration: none;
    line-height: 1;
    transition: color var(--be-dur-fast) var(--be-ease),
                border-color var(--be-dur-fast) var(--be-ease),
                background var(--be-dur-fast) var(--be-ease);
}

.be-archive__pagination .page-numbers:hover,
.be-archive__pagination .page-numbers:focus-visible {
    color: var(--be-ink);
    border-color: var(--be-ink);
}

.be-archive__pagination .page-numbers.current {
    background: var(--be-ink);
    color: var(--be-bg);
    border-color: var(--be-ink);
}

.be-archive__pagination .page-numbers.dots {
    border-color: transparent;
    background: transparent;
    color: var(--be-ink-4);
}

.be-archive__pagination .page-numbers.prev,
.be-archive__pagination .page-numbers.next {
    padding: 0 16px;
    font-weight: 500;
}


/* === Empty state ============================================= */

.be-archive__empty {
    max-width: var(--be-container);
    margin: var(--be-space-9) auto 0;
    padding: var(--be-space-9) var(--be-space-7);
    background: var(--be-surface);
    border: 1px dashed var(--be-border-strong);
    border-radius: var(--be-radius-lg);
    text-align: left;
}

.be-archive__empty-title {
    font-family: var(--be-font-serif);
    font-weight: 500;
    font-size: 26px;
    letter-spacing: -0.01em;
    color: var(--be-ink);
    margin: 0 0 var(--be-space-3);
    line-height: var(--be-lh-tight);
    text-wrap: balance;
}

.be-archive__empty-body {
    font-size: 15px;
    line-height: var(--be-lh-loose);
    color: var(--be-ink-2);
    margin: 0 0 var(--be-space-5);
    max-width: 60ch;
}

.be-archive__empty-actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--be-space-3);
}

.be-archive__empty-cta {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 9px 16px;
    border-radius: var(--be-radius);
    background: var(--be-ink);
    color: var(--be-bg);
    font-family: var(--be-font-sans);
    font-size: 13.5px;
    font-weight: 500;
    text-decoration: none;
    transition: background var(--be-dur-fast) var(--be-ease);
}

.be-archive__empty-cta:hover,
.be-archive__empty-cta:focus-visible {
    background: #2c2a2d;
}

.be-archive__empty-link {
    display: inline-flex;
    align-items: center;
    padding: 9px 0;
    color: var(--be-ink-2);
    font-family: var(--be-font-sans);
    font-size: 13.5px;
    text-decoration: none;
    border-bottom: 1px solid var(--be-ink-4);
    transition: color var(--be-dur-fast) var(--be-ease),
                border-color var(--be-dur-fast) var(--be-ease);
}

.be-archive__empty-link:hover,
.be-archive__empty-link:focus-visible {
    color: var(--be-ink);
    border-color: var(--be-ink);
}


/* === Surface variants ========================================
   Minor visual differentiation between archive surfaces, e.g.
   topic archives get a slightly different hero accent.
   ============================================================ */

.be-archive--topic .be-archive__hero,
.be-archive--country .be-archive__hero,
.be-archive--city .be-archive__hero {
    background:
        radial-gradient(ellipse 80% 60% at 50% 0%, rgba(138, 90, 43, 0.06) 0%, transparent 75%),
        var(--be-bg);
}


/* === Responsive ============================================== */

@media (max-width: 720px) {
    .be-archive__hero {
        padding: var(--be-space-7) 0 var(--be-space-5);
    }
    .be-archive__hero-inner,
    .be-archive__filters,
    .be-archive__related,
    .be-archive__results,
    .be-archive__empty {
        padding-left: var(--be-space-4);
        padding-right: var(--be-space-4);
    }
    .be-archive__title {
        font-size: 28px;
    }
    .be-archive__intro {
        font-size: 14.5px;
    }
    .be-archive__filters {
        flex-direction: column;
        align-items: flex-start;
        gap: var(--be-space-2);
        margin-top: var(--be-space-5);
    }
    .be-archive__filters-chips {
        overflow-x: auto;
        flex-wrap: nowrap;
        width: 100%;
        padding-bottom: 4px;
        scrollbar-width: thin;
    }
    .be-archive__filter-chip {
        flex-shrink: 0;
    }
    .be-archive__empty {
        padding: var(--be-space-7) var(--be-space-5);
    }

    /* P5.8b — DEDICATED MOBILE ROW (not a squeezed desktop row).
       Layout: a top line with an inline date chip + format eyebrow, then
       title, location, description, foot; the CTA is a full-width tap
       target at the bottom. Comfortable spacing, readable meta. */
    .be-archive__row {
        display: flex;
        flex-direction: column;
        gap: 0;
        padding: var(--be-space-5) 0;
    }
    /* Date becomes a compact inline chip on its own line above the title. */
    .be-archive__row-date {
        flex-direction: row;
        align-items: baseline;
        gap: 6px;
        padding-top: 0;
        margin-bottom: 4px;
    }
    .be-archive__row-date-day {
        font-size: 18px;
        font-weight: 600;
        font-family: var(--be-font-sans);
    }
    .be-archive__row-date-mo {
        margin-top: 0;
        font-size: 11px;
    }
    .be-archive__row-title {
        font-size: 18px;
    }
    .be-archive__row-desc {
        font-size: 14px;
    }
    /* CTA: full-width tap target at the bottom of the row. */
    .be-archive__row-aside {
        padding-top: 0;
        margin-top: var(--be-space-4);
    }
    .be-archive__row-cta {
        width: 100%;
        justify-content: center;
        padding: 11px 16px;
    }
}

/* P5.5a — extra-narrow phones (~360-480px). */
@media (max-width: 480px) {
    .be-archive__hero {
        padding: var(--be-space-6) 0 var(--be-space-4);
    }
    .be-archive__title {
        font-size: 26px;
        line-height: 1.15;
    }
    .be-archive__subhead {
        font-size: 15px;
    }
    .be-archive__intro {
        font-size: 13.5px;
    }
    .be-archive__empty-title {
        font-size: 22px;
    }
    .be-archive__pagination {
        gap: 4px;
    }
    .be-archive__pagination .page-numbers {
        min-width: 32px;
        height: 32px;
        padding: 0 10px;
        font-size: 13px;
    }
    .be-archive__row-title {
        font-size: 17px;
    }
    /* Foot wraps to its own lines on tiny screens for legibility. */
    .be-archive__row-foot {
        gap: 6px var(--be-space-3);
    }
}


/* === Demo FAQ block (P5.5c-d / M4) ===========================
   Bottom-of-archive FAQ accordion using native <details>/<summary>.
   Rendering-only demo content (see bigevent_archive_render_faq_demo).
   ============================================================ */

.be-archive__faq {
    max-width: var(--be-container-narrow);
    margin: var(--be-space-10) auto 0;
    padding: var(--be-space-8) var(--be-space-7) 0;
    border-top: 1px solid var(--be-border);
}

.be-archive__faq-heading {
    font-family: var(--be-font-serif);
    font-weight: 500;
    font-size: clamp(20px, 2.4vw, 26px);
    letter-spacing: -0.01em;
    color: var(--be-ink);
    margin: 0 0 var(--be-space-5);
    text-wrap: balance;
}

.be-archive__faq-list {
    display: flex;
    flex-direction: column;
}

.be-archive__faq-item {
    border-bottom: 1px solid var(--be-divider);
}

.be-archive__faq-q {
    list-style: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--be-space-4);
    padding: var(--be-space-4) 0;
    font-family: var(--be-font-sans);
    font-size: 15px;
    font-weight: 600;
    color: var(--be-ink);
    transition: color var(--be-dur-fast) var(--be-ease);
}

.be-archive__faq-q::-webkit-details-marker {
    display: none;
}

/* Custom +/− affordance on the right. */
.be-archive__faq-q::after {
    content: "+";
    font-family: var(--be-font-mono);
    font-size: 18px;
    line-height: 1;
    color: var(--be-ink-3);
    flex-shrink: 0;
}

.be-archive__faq-item[open] .be-archive__faq-q::after {
    content: "−";
}

.be-archive__faq-q:hover {
    color: var(--be-accent-ink);
}

.be-archive__faq-a {
    padding: 0 0 var(--be-space-4);
    font-family: var(--be-font-sans);
    font-size: 14px;
    line-height: var(--be-lh-loose);
    color: var(--be-ink-2);
    max-width: 72ch;
}

@media (max-width: 720px) {
    .be-archive__faq {
        padding-left: var(--be-space-4);
        padding-right: var(--be-space-4);
    }
}


/* === P5.8i — index pages (Topics / Cities / Countries) =======
   Editorial term index. Hero reuses the .be-archive__* classes; the
   grid below mirrors the prototype `.index-grid` / `.index-card`
   (serif name, mono count, accent CTA, accent-soft hover). Cities are
   grouped by country (.be-index__group). Warm parchment; stacks on mobile.
   ============================================================ */

.be-index {
    background: var(--be-bg);
}

.be-index__inner {
    /* P5.8j — align to the hero/full container (1240px), matching the prototype
       index which uses `.container` (not narrow) for the card grid. This makes
       the cards the primary content block instead of a narrow column. */
    max-width: var(--be-container);
    margin: 0 auto;
    padding: var(--be-space-7) var(--be-space-7) var(--be-space-10);
}

.be-index__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
}

.be-index__grid--compact {
    grid-template-columns: repeat(4, 1fr);
    gap: 10px;
}

.be-index__card {
    display: flex;
    flex-direction: column;
    gap: var(--be-space-3);
    text-align: left;
    background: var(--be-surface);
    border: 1px solid var(--be-border);
    border-radius: var(--be-radius-lg);
    padding: 22px 24px;
    text-decoration: none;
    min-height: 180px;
    transition: border-color var(--be-dur-fast) var(--be-ease),
                background var(--be-dur-fast) var(--be-ease),
                transform var(--be-dur-fast) var(--be-ease);
}

.be-index__card:hover,
.be-index__card:focus-visible {
    border-color: var(--be-accent-line);
    background: linear-gradient(180deg, var(--be-accent-soft) 0%, var(--be-surface) 70%);
    transform: translateY(-1px);
}

.be-index__card-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    padding-bottom: var(--be-space-3);
    border-bottom: 1px solid var(--be-border);
}

.be-index__card-name {
    font-family: var(--be-font-serif);
    font-weight: 500;
    font-size: 22px;
    letter-spacing: -0.008em;
    line-height: 1.18;
    color: var(--be-ink);
}

.be-index__card-count {
    flex-shrink: 0;
    font-family: var(--be-font-mono);
    font-size: var(--be-text-meta);
    letter-spacing: var(--be-ls-meta);
    color: var(--be-ink-3);
}

.be-index__card-desc {
    flex: 1;
    font-family: var(--be-font-sans);
    font-size: 13.5px;
    line-height: 1.5;
    color: var(--be-ink-2);
    text-wrap: pretty;
}

.be-index__card-sub {
    display: flex;
    flex-direction: column;
    gap: 2px;
    flex: 1;
    font-family: var(--be-font-sans);
    font-size: 13px;
}

.be-index__card-sub-label {
    font-family: var(--be-font-mono);
    font-size: 10.5px;
    letter-spacing: var(--be-ls-eyebrow);
    text-transform: uppercase;
    color: var(--be-ink-3);
}

.be-index__card-sub-value {
    color: var(--be-ink-2);
}

.be-index__card-cta {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: auto;
    font-family: var(--be-font-sans);
    font-size: 12.5px;
    font-weight: 500;
    color: var(--be-accent-ink);
}

.be-index__card:hover .be-index__card-cta {
    color: var(--be-accent);
}

.be-index__card-cta-icon {
    font-size: 12px;
}

.be-index__card--compact {
    min-height: 104px;
    padding: 16px 18px;
    gap: var(--be-space-2);
}

.be-index__card--compact .be-index__card-name {
    font-size: 17px;
}

.be-index__card--compact .be-index__card-head {
    padding-bottom: var(--be-space-2);
}

.be-index__group {
    margin-bottom: var(--be-space-8);
}

.be-index__group-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: var(--be-space-4);
    padding-bottom: var(--be-space-3);
    border-bottom: 1px solid var(--be-border);
}

.be-index__group-title {
    font-family: var(--be-font-serif);
    font-weight: 500;
    font-size: 24px;
    letter-spacing: -0.008em;
    line-height: 1.2;
    color: var(--be-ink);
    margin: 0;
}

.be-index__group-link {
    flex-shrink: 0;
    font-family: var(--be-font-sans);
    font-size: 13px;
    font-weight: 500;
    color: var(--be-accent-ink);
    text-decoration: none;
    border-bottom: 1px solid var(--be-accent-line);
    padding-bottom: 1px;
}

.be-index__group-link:hover {
    color: var(--be-accent);
}

@media (max-width: 900px) {
    .be-index__grid {
        grid-template-columns: repeat(2, 1fr);
    }
    .be-index__grid--compact {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 600px) {
    .be-index__grid,
    .be-index__grid--compact {
        grid-template-columns: 1fr;
    }
    .be-index__inner {
        padding-left: var(--be-space-4);
        padding-right: var(--be-space-4);
    }
    .be-index__group-head {
        flex-direction: column;
        align-items: flex-start;
        gap: 6px;
    }
}


/* === P5.8k — Featured conferences module (above the list, /events/) ====== */

.be-archive__featured {
    background: var(--be-bg);
}

.be-archive__featured-inner {
    max-width: var(--be-container);
    margin: var(--be-space-7) auto 0;
    padding: var(--be-space-6) var(--be-space-7);
}

.be-archive__featured-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: var(--be-space-4);
    margin-bottom: var(--be-space-5);
    padding-bottom: var(--be-space-3);
    border-bottom: 1px solid var(--be-border);
}

.be-archive__featured-eyebrow {
    font-family: var(--be-font-mono);
    font-size: var(--be-text-eyebrow);
    letter-spacing: var(--be-ls-eyebrow);
    text-transform: uppercase;
    color: var(--be-accent-ink); /* saddle accent — paid placement */
    margin-bottom: var(--be-space-1);
}

.be-archive__featured-title {
    font-family: var(--be-font-serif);
    font-weight: 500;
    font-size: clamp(22px, 2.2vw, 28px);
    letter-spacing: -0.012em;
    line-height: 1.15;
    color: var(--be-ink);
    margin: 0;
}

.be-archive__featured-disclosure {
    flex-shrink: 0;
    font-family: var(--be-font-mono);
    font-size: var(--be-text-meta);
    letter-spacing: var(--be-ls-meta);
    color: var(--be-ink-3);
}

.be-archive__featured-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--be-space-3);
}

@media (max-width: 900px) {
    .be-archive__featured-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 600px) {
    .be-archive__featured-grid {
        grid-template-columns: 1fr;
    }
    .be-archive__featured-head {
        flex-direction: column;
        align-items: flex-start;
        gap: 6px;
    }
}


/* === P5.8k — compare bar (sticky, client-side) ========================== */

.be-compare-bar {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 80;
    background: var(--be-ink);
    color: var(--be-bg);
    box-shadow: var(--be-shadow-pop);
}

.be-compare-bar[hidden] {
    display: none;
}

.be-compare-bar__inner {
    max-width: var(--be-container);
    margin: 0 auto;
    padding: var(--be-space-3) var(--be-space-7);
    display: flex;
    align-items: center;
    gap: var(--be-space-4);
    flex-wrap: wrap;
}

.be-compare-bar__meta {
    display: flex;
    flex-direction: column;
    line-height: 1.25;
    flex-shrink: 0;
}

.be-compare-bar__count {
    font-family: var(--be-font-serif);
    font-size: 16px;
    font-weight: 500;
}

.be-compare-bar__cap {
    font-family: var(--be-font-mono);
    font-size: 10.5px;
    letter-spacing: var(--be-ls-meta);
    text-transform: uppercase;
    color: rgba(247, 245, 239, 0.6);
}

.be-compare-bar__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    flex: 1 1 auto;
    min-width: 0;
}

.be-compare-bar__chip {
    font-family: var(--be-font-sans);
    font-size: 12px;
    padding: 4px 10px;
    border: 1px solid rgba(247, 245, 239, 0.28);
    border-radius: var(--be-radius-pill);
    color: var(--be-bg);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 220px;
}

.be-compare-bar__actions {
    display: flex;
    gap: var(--be-space-2);
    flex-shrink: 0;
}

.be-compare-bar__btn {
    font-family: var(--be-font-sans);
    font-size: 13px;
    font-weight: 500;
    padding: 8px 16px;
    border-radius: var(--be-radius);
    border: 1px solid rgba(247, 245, 239, 0.4);
    background: transparent;
    color: var(--be-bg);
    cursor: pointer;
    transition: background var(--be-dur-fast) var(--be-ease),
                border-color var(--be-dur-fast) var(--be-ease);
}

.be-compare-bar__btn:hover {
    border-color: var(--be-bg);
}

.be-compare-bar__btn--primary {
    background: var(--be-accent);
    border-color: var(--be-accent);
    color: var(--be-bg);
}

.be-compare-bar__btn--primary:hover {
    background: var(--be-accent-ink);
    border-color: var(--be-accent-ink);
}

/* Expanded state (v1: emphasizes the selected list; full side-by-side drawer
   is the documented next step). */
.be-compare-bar.is-expanded .be-compare-bar__list {
    flex-basis: 100%;
    order: 3;
    padding-top: var(--be-space-2);
    border-top: 1px solid rgba(247, 245, 239, 0.2);
}

.be-compare-bar.is-shake {
    animation: be-compare-shake 0.4s ease;
}

@keyframes be-compare-shake {
    0%, 100% { transform: translateX(0); }
    25% { transform: translateX(-4px); }
    75% { transform: translateX(4px); }
}

@media (max-width: 600px) {
    .be-compare-bar__inner {
        padding: var(--be-space-2) var(--be-space-4);
        gap: var(--be-space-2);
    }
    .be-compare-bar__list {
        flex-basis: 100%;
        order: 3;
    }
}


/* === P5.8k-b — compare modal (side-by-side) ============================= */

html.be-compare-open {
    overflow: hidden;
}

.be-compare-modal {
    position: fixed;
    inset: 0;
    z-index: 120;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--be-space-5);
}

.be-compare-modal[hidden] {
    display: none;
}

.be-compare-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(24, 23, 26, 0.5);
}

.be-compare-modal__panel {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 1040px;
    max-height: 88vh;
    display: flex;
    flex-direction: column;
    background: var(--be-bg);
    border: 1px solid var(--be-border-strong);
    border-radius: var(--be-radius-lg);
    box-shadow: var(--be-shadow-pop);
    overflow: hidden;
}

.be-compare-modal__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--be-space-4);
    padding: var(--be-space-4) var(--be-space-5);
    border-bottom: 1px solid var(--be-border);
}

.be-compare-modal__title {
    font-family: var(--be-font-serif);
    font-weight: 500;
    font-size: 20px;
    letter-spacing: -0.01em;
    color: var(--be-ink);
    margin: 0;
}

.be-compare-modal__close {
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    border: 1px solid var(--be-border);
    border-radius: var(--be-radius);
    background: var(--be-surface);
    color: var(--be-ink-2);
    font-size: 20px;
    line-height: 1;
    cursor: pointer;
    transition: color var(--be-dur-fast) var(--be-ease),
                border-color var(--be-dur-fast) var(--be-ease);
}

.be-compare-modal__close:hover {
    color: var(--be-ink);
    border-color: var(--be-ink-3);
}

.be-compare-modal__body {
    padding: var(--be-space-5);
    overflow: auto;
}

.be-compare-modal__empty {
    font-family: var(--be-font-sans);
    color: var(--be-ink-3);
    margin: 0;
}

.be-compare-modal__foot {
    padding: var(--be-space-3) var(--be-space-5);
    border-top: 1px solid var(--be-border);
    display: flex;
    justify-content: flex-end;
}

/* The foot Clear button reuses dark .be-compare-bar__btn but here on parchment;
   re-skin it for the light modal foot. */
.be-compare-modal__foot .be-compare-bar__btn {
    border-color: var(--be-border-strong);
    color: var(--be-ink-2);
}

.be-compare-modal__foot .be-compare-bar__btn:hover {
    border-color: var(--be-ink-3);
    color: var(--be-ink);
}

/* Comparison grid: first column = field labels, then one column per event. */
.be-compare-grid {
    display: grid;
    gap: 0;
    font-family: var(--be-font-sans);
    border-top: 1px solid var(--be-divider);
    border-left: 1px solid var(--be-divider);
}

.be-compare-grid__corner,
.be-compare-grid__evhead,
.be-compare-grid__label,
.be-compare-grid__cell {
    border-right: 1px solid var(--be-divider);
    border-bottom: 1px solid var(--be-divider);
    padding: 10px 12px;
    min-width: 0;
}

.be-compare-grid__corner {
    background: var(--be-surface);
}

.be-compare-grid__evhead {
    display: flex;
    flex-direction: column;
    gap: 6px;
    background: var(--be-surface);
}

.be-compare-grid__evname {
    font-family: var(--be-font-serif);
    font-weight: 500;
    font-size: 15px;
    line-height: 1.25;
    color: var(--be-ink);
}

.be-compare-grid__evcta {
    font-family: var(--be-font-sans);
    font-size: 12px;
    font-weight: 500;
    color: var(--be-accent-ink);
    text-decoration: none;
}

.be-compare-grid__evcta:hover {
    color: var(--be-accent);
}

.be-compare-grid__remove {
    align-self: flex-start;
    background: transparent;
    border: 0;
    padding: 0;
    font-family: var(--be-font-mono);
    font-size: 10.5px;
    letter-spacing: var(--be-ls-meta);
    text-transform: uppercase;
    color: var(--be-ink-4);
    cursor: pointer;
}

.be-compare-grid__remove:hover {
    color: var(--be-ink-2);
}

.be-compare-grid__label {
    font-family: var(--be-font-mono);
    font-size: 11px;
    letter-spacing: var(--be-ls-meta);
    text-transform: uppercase;
    color: var(--be-ink-3);
    background: var(--be-surface);
}

.be-compare-grid__cell {
    font-size: 13px;
    line-height: 1.45;
    color: var(--be-ink-2);
    text-wrap: pretty;
}

.be-compare-grid__dash {
    color: var(--be-ink-4);
}

@media (max-width: 600px) {
    .be-compare-modal {
        padding: 0;
    }
    .be-compare-modal__panel {
        max-width: 100%;
        max-height: 100vh;
        height: 100vh;
        border-radius: 0;
        border: 0;
    }
    .be-compare-grid__evname {
        font-size: 13px;
    }
    .be-compare-grid__corner,
    .be-compare-grid__evhead,
    .be-compare-grid__label,
    .be-compare-grid__cell {
        padding: 8px 9px;
    }
}

/* ============================================================
   BigEvent — Event Card Component
   ============================================================
   Snippet title : BigEvent — Event Card Component (CSS)
   Phase         : S5.1 of the design / template build
   Environment   : LOCAL ONLY. Not yet pushed to staging.

   Companion file: wpcode-ready/bigevent-card.php
   Requires      : wpcode-ready/bigevent-design-system-tokens.css

   Scope         : All selectors are anchored on .be-card or
                   .be-card__*. The card primitive renders the same
                   on every BigEvent surface; archive / single /
                   homepage layouts only choose the variant and
                   grid context. Nothing in this file affects the
                   global page chrome (Kadence header, footer,
                   body styling).

   Variants      : .be-card--default
                   .be-card--compact
                   .be-card--featured
                   .be-card--virtual

   Modifiers     : .be-card--editorial-pick   (orthogonal to variant)
                   .be-card--accent-{bucket}  (topic-driven date accent)
                                              bucket ∈ ai | dev | business
                                                       | security | creative | neutral
   ============================================================ */


/* === Base card =============================================== */

.be-card {
    position: relative;
    display: block;
    background: var(--be-surface);
    border: 1px solid var(--be-border);
    border-radius: var(--be-radius-md);
    padding: var(--be-space-5) var(--be-space-6);
    transition: border-color var(--be-dur-fast) var(--be-ease),
                box-shadow   var(--be-dur-fast) var(--be-ease);
    box-shadow: var(--be-shadow-card);
    color: var(--be-ink-2);
    font-family: var(--be-font-sans);
    /* Use grid so date block + body line up cleanly regardless of body height. */
    display: grid;
    grid-template-columns: 64px 1fr;
    gap: var(--be-space-5);
    align-items: start;
    /* Long event names should wrap rather than overflow. */
    word-wrap: break-word;
}

.be-card:hover,
.be-card:focus-within {
    border-color: var(--be-border-strong);
    box-shadow: var(--be-shadow-hover);
}


/* === Date block (visual identity anchor) ===================== */

.be-card__date {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding-right: var(--be-space-4);
    border-right: 1px solid var(--be-divider);
    padding-top: 2px;
    min-width: 0;
}

.be-card__date-mo {
    font-family: var(--be-font-mono);
    font-size: 10.5px;
    font-weight: 500;
    letter-spacing: var(--be-ls-eyebrow);
    text-transform: uppercase;
    color: var(--be-accent-ink);
}

/* Topic-accent bucket recolors the month label only. Subtle. */
.be-card--accent-ai       .be-card__date-mo { color: var(--be-topic-ai-ink); }
.be-card--accent-dev      .be-card__date-mo { color: var(--be-topic-dev-ink); }
.be-card--accent-business .be-card__date-mo { color: var(--be-topic-business-ink); }
.be-card--accent-security .be-card__date-mo { color: var(--be-topic-security-ink); }
.be-card--accent-creative .be-card__date-mo { color: var(--be-topic-creative-ink); }
.be-card--accent-neutral  .be-card__date-mo { color: var(--be-topic-neutral-ink); }

.be-card__date-day {
    font-family: var(--be-font-serif);
    font-size: 28px;
    font-weight: 500;
    line-height: 1;
    color: var(--be-ink);
    margin-top: 2px;
    display: inline-flex;
    align-items: baseline;
    gap: 3px;
}

.be-card__date-sep {
    font-family: var(--be-font-serif);
    font-weight: 400;
    color: var(--be-ink-4);
    font-size: 22px;
    line-height: 1;
}

.be-card__date-day-end {
    font-family: var(--be-font-serif);
    font-weight: 500;
    color: var(--be-ink);
    font-size: 22px;
    line-height: 1;
}

.be-card__date-yr {
    font-family: var(--be-font-mono);
    font-size: 10.5px;
    color: var(--be-ink-4);
    margin-top: 4px;
    letter-spacing: var(--be-ls-meta);
}

/* P5.12g — cross-month / cross-year range tile: two compact month+day parts
   ("SEP 28 – OCT 2"), so both endpoints are unambiguous within the same tile.
   Same fonts/colors as the single-date tile; just laid out horizontally. */
.be-card__date--range {
    justify-content: center;
}
.be-card__date-rng {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    margin-top: 2px;
}
.be-card__date-rng-part {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    line-height: 1;
}
.be-card__date-rng-mo {
    font-family: var(--be-font-mono);
    font-size: 9px;
    font-weight: 500;
    letter-spacing: var(--be-ls-eyebrow);
    text-transform: uppercase;
    color: var(--be-ink-4);
}
.be-card__date-rng-part--start .be-card__date-rng-mo {
    color: var(--be-accent-ink);
}
.be-card__date-rng-day {
    font-family: var(--be-font-serif);
    font-size: 20px;
    font-weight: 500;
    color: var(--be-ink);
    margin-top: 2px;
}
.be-card__date-rng-to {
    font-family: var(--be-font-serif);
    font-size: 15px;
    color: var(--be-ink-4);
    align-self: center;
}

/* Keep the topic-accent month colour consistent on the range tile's start part. */
.be-card--accent-ai       .be-card__date-rng-part--start .be-card__date-rng-mo { color: var(--be-topic-ai-ink); }
.be-card--accent-dev      .be-card__date-rng-part--start .be-card__date-rng-mo { color: var(--be-topic-dev-ink); }
.be-card--accent-business .be-card__date-rng-part--start .be-card__date-rng-mo { color: var(--be-topic-business-ink); }
.be-card--accent-security .be-card__date-rng-part--start .be-card__date-rng-mo { color: var(--be-topic-security-ink); }
.be-card--accent-creative .be-card__date-rng-part--start .be-card__date-rng-mo { color: var(--be-topic-creative-ink); }
.be-card--accent-neutral  .be-card__date-rng-part--start .be-card__date-rng-mo { color: var(--be-topic-neutral-ink); }


/* === Body ==================================================== */

.be-card__body {
    min-width: 0;          /* allow long names to wrap inside grid */
}

.be-card__labels {
    display: flex;
    align-items: center;
    gap: var(--be-space-3);
    flex-wrap: wrap;
    margin-bottom: var(--be-space-1);
    min-height: 14px;
}

.be-card__label {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-family: var(--be-font-mono);
    font-size: 10.5px;
    font-weight: 500;
    letter-spacing: var(--be-ls-eyebrow);
    text-transform: uppercase;
    line-height: 1;
}

.be-card__label--featured {
    color: var(--be-accent-ink);
}

.be-card__label--featured::before {
    content: "";
    display: inline-block;
    width: 5px;
    height: 5px;
    background: var(--be-accent);
    border-radius: 1px;
}

.be-card__label--pick {
    color: var(--be-ink);
    border: 1px solid var(--be-border-strong);
    padding: 2px 7px;
    border-radius: var(--be-radius-sm);
}

.be-card__name {
    font-family: var(--be-font-serif);
    font-size: var(--be-text-h-card);
    font-weight: 500;
    letter-spacing: var(--be-ls-card);
    line-height: var(--be-lh-tight);
    color: var(--be-ink);
    margin: 0;
    /* Heading wraps; long names get balanced wrapping. */
    text-wrap: balance;
}

.be-card__alt-name {
    font-family: var(--be-font-serif);
    font-style: italic;
    font-size: 12.5px;
    color: var(--be-ink-3);
    margin-top: 3px;
    line-height: var(--be-lh-snug);
}


/* === Meta row (date · location · venue · format) ============= */

.be-card__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    column-gap: var(--be-space-2);
    row-gap: var(--be-space-1);
    font-size: var(--be-text-sm);
    color: var(--be-ink-2);
    margin-top: var(--be-space-3);
    line-height: var(--be-lh-snug);
}

.be-card__meta-item {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    min-width: 0;
}

.be-card__meta-icon {
    display: inline-flex;
    color: var(--be-ink-3);
    line-height: 0;
}

.be-card__meta-dot {
    color: var(--be-ink-4);
    user-select: none;
    line-height: 1;
}

.be-card__meta-virtual {
    color: var(--be-format-virtual-ink);
    font-weight: 500;
    background: var(--be-format-virtual-soft);
    border: 1px solid var(--be-format-virtual-line);
    padding: 2px 8px;
    border-radius: var(--be-radius-pill);
    font-size: 12px;
}

.be-card__meta-format--hybrid {
    color: var(--be-format-hybrid-ink);
    background: var(--be-format-hybrid-soft);
    border: 1px solid var(--be-format-hybrid-line);
    padding: 2px 8px;
    border-radius: var(--be-radius-pill);
    font-size: 12px;
}

/* Location chip links inside the meta row (city / country). */
.be-card__loc-link {
    color: var(--be-ink-2);
    text-decoration: none;
    border-bottom: 1px solid transparent;
    transition: color var(--be-dur-fast) var(--be-ease),
                border-color var(--be-dur-fast) var(--be-ease);
}

.be-card__loc-link:hover,
.be-card__loc-link:focus-visible {
    color: var(--be-ink);
    border-color: var(--be-ink-4);
}

.be-card__loc-sep {
    color: var(--be-ink-4);
    margin: 0 4px;
}

.be-card__meta-venue {
    color: var(--be-ink-3);
}

/* P5.8c — scale stats in the meta row (prototype .ec__stat). */
.be-card__stat {
    color: var(--be-ink-3);
}

.be-card__stat b {
    font-weight: 600;
    color: var(--be-ink);
}


/* === Chips =================================================== */

.be-card__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    margin-top: var(--be-space-3);
}

.be-chip {
    display: inline-flex;
    align-items: center;
    font-family: var(--be-font-sans);
    font-size: 11.5px;
    font-weight: 500;
    color: var(--be-ink-2);
    background: transparent;
    border: 1px solid var(--be-border);
    border-radius: var(--be-radius-sm);
    padding: 3px 7px;
    text-decoration: none;
    line-height: 1.3;
    transition: color var(--be-dur-fast) var(--be-ease),
                border-color var(--be-dur-fast) var(--be-ease),
                background var(--be-dur-fast) var(--be-ease);
}

.be-chip--topic:hover,
.be-chip--topic:focus-visible {
    color: var(--be-ink);
    border-color: var(--be-ink-3);
    background: var(--be-surface-2);
}

.be-chip--more {
    color: var(--be-ink-3);
    cursor: default;
}


/* === Excerpt + decision block ================================ */

.be-card__excerpt {
    font-size: var(--be-text-body);
    line-height: var(--be-lh-base);
    color: var(--be-ink-2);
    margin: var(--be-space-3) 0 0;
    text-wrap: pretty;
}

.be-card__decision {
    display: flex;
    flex-direction: column;
    gap: var(--be-space-1);
    margin: var(--be-space-3) 0 0;
    padding-top: var(--be-space-3);
    border-top: 1px dashed var(--be-divider);
}

.be-card__decision-row {
    display: grid;
    grid-template-columns: 88px 1fr;
    gap: var(--be-space-3);
    align-items: baseline;
    font-size: var(--be-text-sm);
    line-height: var(--be-lh-base);
    margin: 0;
}

.be-card__decision-label {
    font-family: var(--be-font-mono);
    font-size: 10.5px;
    letter-spacing: var(--be-ls-eyebrow);
    text-transform: uppercase;
    color: var(--be-ink-3);
}

.be-card__decision-value {
    color: var(--be-ink-2);
    margin: 0;
    text-wrap: pretty;
}

.be-card__decision-why {
    font-family: var(--be-font-serif);
    font-style: italic;
    color: var(--be-ink);
    font-size: 13.5px;
}


/* === Organizer line ========================================== */

.be-card__organizer {
    margin-top: var(--be-space-3);
    font-size: 12.5px;
    color: var(--be-ink-3);
    display: inline-flex;
    align-items: baseline;
    gap: 6px;
    font-family: var(--be-font-sans);
}

.be-card__organizer-label {
    font-family: var(--be-font-mono);
    font-size: 10.5px;
    letter-spacing: var(--be-ls-eyebrow);
    text-transform: uppercase;
    color: var(--be-ink-4);
}

.be-card__organizer-value {
    color: var(--be-ink-2);
}


/* === CTA row ================================================= */

.be-card__cta-row {
    margin-top: var(--be-space-4);
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: var(--be-space-3);
}

.be-card__cta {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 14px;
    border-radius: var(--be-radius);
    background: var(--be-ink);
    color: var(--be-bg);
    font-family: var(--be-font-sans);
    font-size: 12.5px;
    font-weight: 500;
    letter-spacing: 0.005em;
    text-decoration: none;
    transition: background var(--be-dur-fast) var(--be-ease);
    white-space: nowrap;
}

.be-card__cta:hover,
.be-card__cta:focus-visible {
    background: #2c2a2d;
}

.be-card__cta-icon {
    display: inline-flex;
    font-size: 13px;
    transition: transform var(--be-dur-fast) var(--be-ease);
}

.be-card__cta:hover .be-card__cta-icon {
    transform: translateX(2px);
}


/* === Variant: default ========================================
   The base styles above ARE the default variant.
   ============================================================ */


/* === Variant: featured (paid placement) ====================== */

.be-card--featured {
    background: linear-gradient(180deg, var(--be-accent-soft) 0%, var(--be-surface) 36%);
    border-color: var(--be-accent-line);
    box-shadow: var(--be-shadow-featured);
    padding-left: calc(var(--be-space-6) + 2px); /* room for the accent rule */
}

.be-card--featured::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 4px;
    background: var(--be-accent);
    border-radius: var(--be-radius-md) 0 0 var(--be-radius-md);
}

.be-card--featured:hover,
.be-card--featured:focus-within {
    border-color: var(--be-accent);
}

.be-card--featured .be-card__name {
    font-size: var(--be-text-h-featured);
}


/* === Variant: virtual ======================================== */

.be-card--virtual .be-card__date-mo {
    color: var(--be-format-virtual-ink);
}

.be-card--virtual .be-card__date {
    border-right-color: var(--be-format-virtual-line);
}


/* === Variant: compact ========================================
   No date block, denser padding. Used in related-events rails
   and other tight contexts.
   ============================================================ */

.be-card--compact {
    grid-template-columns: 1fr;
    gap: 0;
    padding: var(--be-space-4) var(--be-space-5);
}

.be-card--compact .be-card__name {
    font-size: 16px;
    line-height: var(--be-lh-snug);
}

.be-card--compact .be-card__meta {
    margin-top: var(--be-space-2);
    font-size: 12px;
}

.be-card--compact .be-card__chips {
    margin-top: var(--be-space-2);
}


/* === Modifier: editorial-pick ================================ */

.be-card--editorial-pick:not(.be-card--featured) {
    /* Hairline ink-3 left accent + no saddle. Distinct from Featured. */
    border-left: 3px solid var(--be-ink-3);
    padding-left: calc(var(--be-space-6) - 2px);
}


/* === Grid contexts (informational; archives will set their own) ====
   Cards work in 1-col / 2-col / 3-col grids without modification.
   The base card has min-width: 0 inside the grid because the body
   uses min-width: 0; this prevents long event names from breaking
   the grid track.
   ============================================================ */


/* === Responsive ============================================== */

@media (max-width: 720px) {
    .be-card {
        grid-template-columns: 56px 1fr;
        gap: var(--be-space-3);
        padding: var(--be-space-4) var(--be-space-5);
    }
    .be-card__date {
        padding-right: var(--be-space-3);
    }
    .be-card__date-day {
        font-size: 24px;
    }
    .be-card__name {
        font-size: 18px;
    }
    .be-card--featured .be-card__name {
        font-size: 22px;
    }
    .be-card__cta-row {
        margin-top: var(--be-space-3);
        justify-content: flex-start;
    }
    .be-card__decision-row {
        grid-template-columns: 72px 1fr;
        font-size: 12.5px;
    }
}

@media (max-width: 480px) {
    .be-card {
        grid-template-columns: 48px 1fr;
        padding: var(--be-space-3) var(--be-space-4);
    }
    .be-card__date-mo {
        font-size: 9.5px;
    }
    .be-card__date-day {
        font-size: 22px;
    }
    .be-card__date-yr {
        font-size: 9.5px;
    }
    .be-card__meta {
        font-size: 12px;
    }
}


/* === Variant: featured-image (P5.5c-c / M3) ==================
   Image-led card for the homepage Featured Conferences grid.
   Overrides the base grid layout to a single column (media on top,
   body below). Self-contained: it only adds .be-card--featured-image
   and .be-card__media* rules and re-scopes a few base classes WITHIN
   this variant, so the default/compact/featured/virtual variants are
   untouched. The media block uses a real WP featured image when one
   exists, else a clean tonal placeholder (the BigEvent data model has
   no image field, so the placeholder is the normal case).
   ============================================================ */

.be-card--featured-image {
    display: block;
    padding: 0;
    overflow: hidden;
    color: var(--be-ink-2);
}

.be-card--featured-image:hover,
.be-card--featured-image:focus-within {
    border-color: var(--be-border-strong);
    box-shadow: var(--be-shadow-pop);
}

/* Media block (image or placeholder) */
.be-card__media {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    background: var(--be-surface-2);
    overflow: hidden;
}

.be-card__media-img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Premium image-less fallback (P5.34c, handoff §6) — tonal wash keyed to the
   topic accent bucket + a subtle indigo tech-grid overlay + a large quiet month
   mark. Reads as an intentional branded panel, never a broken/empty image. */
.be-card__media-placeholder {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background:
        linear-gradient(135deg, var(--be-surface) 0%, var(--be-surface-2) 100%);
}

/* Subtle indigo tech-grid, layered above the bucket wash uniformly (so it works
   regardless of the per-bucket `background` override below). */
.be-card__media-placeholder::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient( var(--be-accent-line) 1px, transparent 1px ),
        linear-gradient( 90deg, var(--be-accent-line) 1px, transparent 1px );
    background-size: 22px 22px;
    opacity: 0.22;
    pointer-events: none;
}

/* Faint indigo corner glow to give the panel depth and a deliberate, premium
   feel rather than a flat empty box. */
.be-card__media-placeholder::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient( 120% 90% at 100% 0%, var(--be-accent-soft) 0%, transparent 55% );
    opacity: 0.7;
    pointer-events: none;
}

.be-card__media-placeholder-mark {
    position: relative;        /* sit above the grid + glow layers */
    z-index: 1;
    font-family: var(--be-font-serif);
    font-size: 40px;
    font-weight: 500;
    letter-spacing: 0.06em;
    color: var(--be-accent-ink);
    opacity: 0.5;
    user-select: none;
}

/* Accent-bucket tint on the placeholder wash. */
.be-card--featured-image.be-card--accent-ai       .be-card__media-placeholder { background: linear-gradient(135deg, var(--be-topic-ai-soft) 0%, var(--be-surface) 100%); }
.be-card--featured-image.be-card--accent-dev      .be-card__media-placeholder { background: linear-gradient(135deg, var(--be-topic-dev-soft) 0%, var(--be-surface) 100%); }
.be-card--featured-image.be-card--accent-business .be-card__media-placeholder { background: linear-gradient(135deg, var(--be-topic-business-soft) 0%, var(--be-surface) 100%); }
.be-card--featured-image.be-card--accent-security .be-card__media-placeholder { background: linear-gradient(135deg, var(--be-topic-security-soft) 0%, var(--be-surface) 100%); }
.be-card--featured-image.be-card--accent-creative .be-card__media-placeholder { background: linear-gradient(135deg, var(--be-topic-creative-soft) 0%, var(--be-surface) 100%); }

/* Date overlay (top-left), mirrors the mockup's date badge. */
.be-card__media-date {
    position: absolute;
    top: var(--be-space-3);
    left: var(--be-space-3);
    display: flex;
    flex-direction: column;
    align-items: center;
    min-width: 40px;
    padding: 5px 7px;
    background: var(--be-bg);
    border: 1px solid var(--be-border);
    border-radius: var(--be-radius);
    line-height: 1;
    box-shadow: var(--be-shadow-card);
}

.be-card__media-date-mo {
    font-family: var(--be-font-mono);
    font-size: 9.5px;
    font-weight: 500;
    letter-spacing: var(--be-ls-eyebrow);
    text-transform: uppercase;
    color: var(--be-accent-ink);
}

.be-card__media-date-day {
    font-family: var(--be-font-serif);
    font-size: 19px;
    font-weight: 500;
    color: var(--be-ink);
    margin-top: 2px;
}

/* Featured badge (top-right) — only rendered when event_featured is true. */
.be-card__media-badge {
    position: absolute;
    top: var(--be-space-3);
    right: var(--be-space-3);
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 4px 9px;
    font-family: var(--be-font-mono);
    font-size: 10px;
    font-weight: 500;
    letter-spacing: var(--be-ls-eyebrow);
    text-transform: uppercase;
    color: #fff;
    background: var(--be-accent);
    border-radius: var(--be-radius-sm);
}

/* Body — reuses .be-card__name / .be-card__meta / .be-card__cta but gets
   its own padding since the card padding was zeroed for the media. */
.be-card--featured-image .be-card__body {
    padding: var(--be-space-5) var(--be-space-5) var(--be-space-5);
}

.be-card--featured-image .be-card__name {
    font-size: 18px;
    line-height: var(--be-lh-snug);
}

.be-card--featured-image .be-card__meta {
    margin-top: var(--be-space-2);
    font-size: 12.5px;
}

.be-card--featured-image .be-card__cta-row {
    margin-top: var(--be-space-4);
    justify-content: flex-start;
}

@media (max-width: 480px) {
    .be-card--featured-image .be-card__body {
        padding: var(--be-space-4) var(--be-space-4);
    }
    .be-card__media-placeholder-mark {
        font-size: 32px;
    }
}


/* === P5.8k / P5.8k-b — head row, top-right actions, More details === */

/* Head: title cluster (left) + action cluster (top-right), like the mockup. */
.be-card__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--be-space-4);
}

.be-card__head-text {
    min-width: 0;
    flex: 1 1 auto;
}

.be-card__actions {
    display: flex;
    align-items: center;
    gap: var(--be-space-3);
    flex-shrink: 0;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.be-card__compare {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    cursor: pointer;
    font-family: var(--be-font-mono);
    font-size: var(--be-text-meta, 12px);
    letter-spacing: var(--be-ls-meta);
    text-transform: uppercase;
    color: var(--be-ink-3);
    user-select: none;
}

.be-card__compare-input {
    width: 15px;
    height: 15px;
    margin: 0;
    accent-color: var(--be-accent);
    cursor: pointer;
}

.be-card__compare:hover .be-card__compare-text {
    color: var(--be-ink);
}

/* More details — native <details>/<summary>, no JS. */
.be-card__more {
    margin-top: var(--be-space-3);
    border-top: 1px solid var(--be-divider);
}

.be-card__more-summary {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: var(--be-space-3) 0 0;
    cursor: pointer;
    list-style: none;
    font-family: var(--be-font-sans);
    font-size: 13px;
    font-weight: 500;
    color: var(--be-accent-ink);
    transition: color var(--be-dur-fast) var(--be-ease);
}

.be-card__more-summary::-webkit-details-marker {
    display: none;
}

.be-card__more-summary:hover {
    color: var(--be-accent);
}

.be-card__more-icon {
    font-size: 11px;
    transition: transform var(--be-dur-fast) var(--be-ease);
}

.be-card__more[open] .be-card__more-icon {
    transform: rotate(180deg);
}

.be-card__more-body {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--be-space-5);
    padding: var(--be-space-4) 0 var(--be-space-2);
}

.be-card__more-eyebrow {
    font-family: var(--be-font-mono);
    font-size: var(--be-text-eyebrow, 11px);
    letter-spacing: var(--be-ls-eyebrow);
    text-transform: uppercase;
    color: var(--be-ink-3);
    margin-bottom: var(--be-space-2);
}

.be-card__more-why {
    font-family: var(--be-font-sans);
    font-size: 13.5px;
    line-height: var(--be-lh-base);
    color: var(--be-ink-2);
    margin: 0;
    text-wrap: pretty;
}

.be-card__more-dl {
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.be-card__more-dl > div {
    display: flex;
    gap: 10px;
    font-size: 13px;
    line-height: 1.4;
}

.be-card__more-dl dt {
    flex: 0 0 84px;
    font-family: var(--be-font-mono);
    font-size: 11px;
    letter-spacing: var(--be-ls-meta);
    text-transform: uppercase;
    color: var(--be-ink-3);
    margin: 0;
}

.be-card__more-dl dd {
    margin: 0;
    color: var(--be-ink-2);
    font-family: var(--be-font-sans);
}

/* Inline featured placement inside the organic list. */
.be-card--inline-featured {
    border-color: var(--be-accent-line);
    background: linear-gradient(180deg, var(--be-accent-soft) 0%, var(--be-surface, var(--be-bg)) 42%);
}

.be-card__label--paid {
    display: inline-flex;
    align-items: center;
    font-family: var(--be-font-mono);
    font-size: 10.5px;
    letter-spacing: var(--be-ls-meta);
    text-transform: uppercase;
    color: var(--be-accent-ink);
}

@media (max-width: 560px) {
    .be-card__more-body {
        grid-template-columns: 1fr;
        gap: var(--be-space-4);
    }
    /* Stack the action cluster below the title on small screens, grouped + tappable. */
    .be-card__head {
        flex-direction: column;
        gap: var(--be-space-3);
    }
    .be-card__actions {
        justify-content: flex-start;
        width: 100%;
    }
}


/* =========================================================================
 * P5.34b — Lower info block (About → Best for → Stands out → Organizer):
 * single DOM, desktop non-expandable, mobile "More details" disclosure.
 * Reuses the existing be-card__excerpt / be-card__decision / be-card__organizer
 * styles; this only governs the wrapper + disclosure behavior.
 * ========================================================================= */

/* Static (homepage) wrapper — transparent; children keep their own margins. */
.be-card__lower--static {
    display: block;
}

/* Disclosure body carrying the lower block — neutralize the legacy 2-col panel
   grid/padding so the full-width excerpt/decision/organizer stack naturally. */
.be-card__more--lower > .be-card__more-body.be-card__lower {
    display: block;
    grid-template-columns: none;
    gap: 0;
    padding: 0;
}

/* Desktop (>=769px): non-expandable — reveal the block, hide the toggle, and
   drop the disclosure's own top divider so it reads as inline content (the
   excerpt's own margin-top supplies the gap from the chips above). */
@media (min-width: 769px) {
    .be-card__more--lower {
        margin-top: 0;
        border-top: none;
    }
    .be-card__more--lower > .be-card__more-summary {
        display: none !important;
    }
    .be-card__more--lower > .be-card__more-body {
        display: block !important;
    }
    /* Newer engines hide closed <details> content via ::details-content; force it
       visible too so the desktop card is reliably non-expandable. Harmlessly
       ignored where unsupported. */
    .be-card__more--lower::details-content {
        content-visibility: visible !important;
    }
}

/* Mobile (<=768px): keep the native disclosure — the toggle is visible and the
   browser collapses/expands the body. Collapsed shows none of the lower fields
   (so there is no duplication with the expanded state). */
@media (max-width: 768px) {
    .be-card__more--lower > .be-card__more-summary {
        display: inline-flex;
    }
}


/* =========================================================================
 * P5.35B — Featured image-less fallback: uniform PALE INDIGO base (not the
 * per-topic warm tints). Pairs with the P5.34c indigo tech-grid + glow so all
 * fallback panels read as one intentional, premium, branded surface.
 * ========================================================================= */
.be-card--featured-image .be-card__media-placeholder,
.be-card__media-placeholder {
    background: linear-gradient(150deg, var(--be-accent-soft) 0%, var(--be-surface) 100%) !important;
}


/* =========================================================================
 * P5.35C — Design-source fidelity: unified labeled detail rows + lead
 * (horizontal) featured card + featured chips/excerpt.
 * ========================================================================= */

/* Desktop lower-block order: About → Best for → Stands out → Organizer
   (DOM order stays Best for · Stands out · About · Organizer for mobile). */
@media (min-width: 769px) {
    .be-card__detail-row--about     { order: 1; }
    .be-card__detail-row--bestfor   { order: 2; }
    .be-card__detail-row--standsout { order: 3; }
    .be-card__detail-row--organizer { order: 4; }
}

/* Featured image-card chips + lead value line (model .featcard__chips/__excerpt). */
.be-card--featured-image .be-card__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    margin-top: 12px;
}
.be-card__media-excerpt {
    font-size: 13.5px;
    line-height: 1.5;
    color: var(--be-ink-2);
    margin: 12px 0 0;
    text-wrap: pretty;
}

/* LEAD featured card — horizontal: media left + body right (model .featcard--lead). */
.be-card--featured-lead {
    display: grid;
    grid-template-columns: 1.15fr 1fr;
    align-items: stretch;
}
.be-card--featured-lead .be-card__media {
    aspect-ratio: auto;
    height: 100%;
    min-height: 280px;
}
.be-card--featured-lead .be-card__body {
    display: flex;
    flex-direction: column;
    padding: 26px 28px;
}
.be-card--featured-lead .be-card__name { font-size: 26px; margin-bottom: 8px; }
.be-card--featured-lead .be-card__meta { font-size: 13.5px; }
.be-card--featured-lead .be-card__cta-row { margin-top: auto; padding-top: 14px; }
.be-card--featured-lead .be-card__media-placeholder-mark { font-size: 56px; }

@media (max-width: 768px) {
    .be-card--featured-lead { grid-template-columns: 1fr; }
    .be-card--featured-lead .be-card__media { aspect-ratio: 16 / 9; min-height: 0; }
    .be-card--featured-lead .be-card__body { padding: 16px 18px; }
    .be-card--featured-lead .be-card__name { font-size: 20px; }
}
/* §5 — subtle Sponsored disclosure beside the Featured card date (paired with the FEATURED media badge) */
.be-card__sponsored{
  display:block; margin-top:8px;
  font-family:"JetBrains Mono",ui-monospace,monospace; font-size:9.5px; font-weight:400; letter-spacing:.06em; line-height:1;
  color:#7C8590; text-transform:none;
}

/* ============================================================
   BigEvent — Design System Tokens
   ============================================================
   Snippet title : BigEvent — Design System Tokens
   Phase         : S5.1 of the design / template build
   Environment   : LOCAL ONLY. Not yet pushed to staging.

   Aesthetic     : Editorial-neutral B2B conference directory.
                   Warm parchment background, charcoal text,
                   saddle accent reserved for paid Featured surfaces.
                   Calm, clean, high-trust. Tech-first but broad.

   Scope         : This file declares CSS custom properties only.
                   It does NOT style anything globally. It does
                   NOT override Kadence, nor add reset rules to
                   html/body/*. Layout snippets (cards, archives,
                   single event page, homepage featured) consume
                   these tokens via var(--be-*).

   The tokens are scoped under both :root (project-wide) AND a
   local .be-surface wrapper, so a surface that needs to opt out
   of overrides can wrap itself in <div class="be-surface">.

   The few non-token declarations at the end are scoped to
   .be-surface (a wrapper class), never to bare element selectors,
   so this file is safe to load globally on staging without
   affecting unrelated pages.

   Conventions
   -----------------------------------------------------------------------------
   Every token is namespaced with a `--be-` prefix.

   Color tokens use the editorial-neutral palette from the model
   folder design references, kept verbatim because the palette is
   the single most important driver of the premium feel.

   Topic accent tokens map a small set of color buckets to the
   eventual topic groups; the mapping from a specific event_topic
   slug to a bucket is the responsibility of the consuming layer
   (the card component picks a bucket via a slug → bucket helper).
   ============================================================ */

/* === Tokens (project-wide) ================================== */
:root {
    /* — Surface palette — */
    --be-bg:                 #f7f5ef;  /* warm parchment background */
    --be-bg-sunken:          #f1eee6;  /* recessed sections, page-level alt rows */
    --be-surface:            #fdfbf6;  /* default card surface */
    --be-surface-2:          #f4f1e8;  /* hover state, tonal blocks */

    /* — Ink scale (text) — */
    --be-ink:                #18171a;  /* primary heading / strong body */
    --be-ink-2:              #46433f;  /* secondary body */
    --be-ink-3:              #7a756d;  /* tertiary / meta */
    --be-ink-4:              #a39d92;  /* hint / placeholder */

    /* — Borders & dividers — */
    --be-border:             #e6e0d1;  /* default card border */
    --be-border-strong:      #cfc6b1;  /* hover, input focus rest state */
    --be-divider:            #ede7d8;  /* dashed/dotted internal separators */

    /* — Saddle accent (paid Featured + headline highlight) —
       P5.5c-a2 (2026-05-22) — promoted to primary accent token for headline
       highlights ("professional events" line, archive eyebrow, etc.). The
       previous cyan accent (--be-accent-cyan*) was removed in this phase
       after the visual reset away from the dark-navy / cyan SaaS direction
       toward a warm editorial palette. See
       notes/BIGEVENT_PRODUCTION_P5_5C_A2_VISUAL_TOKEN_RESET.md. */
    --be-accent:             #4B4FD8;  /* P5.35 — Deep Indigo (v6 handoff §1.4); was saddle #8a5a2b */
    --be-accent-ink:         #25235C;
    --be-accent-soft:        #ECECFF;
    --be-accent-line:        #c7c8f4;

    /* — Dark surface palette (FOOTER ONLY) —
       P5.5c-a2 — re-tuned from #0a1224 (dark navy SaaS) to #1a1816
       (warm editorial near-black) so the dark footer reads as the
       editorial ink-on-parchment opposite of the light shell. No
       hero or header uses --be-bg-dark anymore. */
    --be-bg-dark:            #1a1816;        /* warm editorial near-black */
    --be-bg-dark-soft:       rgba(255, 255, 255, 0.06);
    --be-ink-on-dark:        #ffffff;
    --be-ink-on-dark-soft:   rgba(255, 255, 255, 0.72);
    --be-ink-on-dark-mute:   rgba(255, 255, 255, 0.52);
    --be-border-on-dark:     rgba(255, 255, 255, 0.10);

    /* — Status palette (very muted) — */
    --be-positive:           #4a6b3a;
    --be-positive-soft:      #e8efde;
    --be-warn:               #8a6a17;

    /* — Format tokens (in_person / virtual / hybrid) — */
    --be-format-in_person-ink:    var(--be-ink-3);
    --be-format-in_person-soft:   transparent;     /* in-person is the default; no badge background */
    --be-format-virtual-ink:      #2a4d6b;
    --be-format-virtual-soft:     #e3edf5;
    --be-format-virtual-line:     #b6cadb;
    --be-format-hybrid-ink:       #5a3a73;
    --be-format-hybrid-soft:      #ece4f1;
    --be-format-hybrid-line:      #c9b8d4;

    /* — Topic accent buckets —
       Six muted buckets mapped to the major event_topic clusters.
       The card layer maps a specific topic slug to a bucket; an
       unmapped topic falls back to the `--neutral` bucket.            */
    --be-topic-ai-ink:           #3a5a72;
    --be-topic-ai-soft:          #e6edf3;
    --be-topic-dev-ink:          #2e5a4b;
    --be-topic-dev-soft:         #e2ede8;
    --be-topic-business-ink:     #5a4a30;
    --be-topic-business-soft:    #ece6d8;
    --be-topic-security-ink:     #6b3a3a;
    --be-topic-security-soft:    #f1e3e3;
    --be-topic-creative-ink:     #5a3a73;
    --be-topic-creative-soft:    #ece4f1;
    --be-topic-neutral-ink:      var(--be-ink-3);
    --be-topic-neutral-soft:     var(--be-surface-2);

    /* — Typography families — */
    --be-font-serif: "Source Serif 4", "Source Serif Pro", Georgia, "Times New Roman", serif;
    --be-font-sans:  "Geist", -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Segoe UI", Arial, sans-serif;
    --be-font-mono:  "Geist Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;

    /* — Type scale (px) — */
    --be-text-eyebrow:    11px;     /* mono caps small labels */
    --be-text-meta:       11.5px;   /* mono small metadata */
    --be-text-xs:         12px;
    --be-text-sm:         13px;
    --be-text-body:       14px;
    --be-text-lg:         15px;
    --be-text-h-card:     22px;     /* card heading */
    --be-text-h-featured: 26px;     /* featured card heading */
    --be-text-h-section:  28px;     /* section heading */
    --be-text-h-display:  44px;     /* page hero */

    /* — Line-height — */
    --be-lh-tight:        1.18;
    --be-lh-snug:         1.35;
    --be-lh-base:         1.5;
    --be-lh-loose:        1.6;

    /* — Letter-spacing — */
    --be-ls-tight:        -0.015em;
    --be-ls-card:         -0.005em;
    --be-ls-eyebrow:      0.08em;
    --be-ls-meta:         0.02em;

    /* — Spacing scale (px) — */
    --be-space-1:    4px;
    --be-space-2:    8px;
    --be-space-3:    12px;
    --be-space-4:    16px;
    --be-space-5:    20px;
    --be-space-6:    24px;
    --be-space-7:    32px;
    --be-space-8:    40px;
    --be-space-9:    56px;
    --be-space-10:   72px;

    /* — Radius scale — */
    --be-radius-sm:   4px;   /* chip-mini, small inputs */
    --be-radius:      6px;   /* buttons, inputs */
    --be-radius-md:   10px;  /* cards */
    --be-radius-lg:   14px;  /* Featured modules */
    --be-radius-pill: 100px; /* pills, search field */

    /* — Shadows (intentionally subtle) — */
    --be-shadow-card:     0 1px 0 rgba(24,23,26,0.02), 0 1px 2px rgba(24,23,26,0.03);
    --be-shadow-hover:    0 1px 0 rgba(24,23,26,0.02), 0 6px 16px -10px rgba(24,23,26,0.12);
    --be-shadow-featured: 0 1px 0 rgba(138,90,43,0.06), 0 6px 18px -10px rgba(138,90,43,0.18);
    --be-shadow-pop:      0 6px 24px -8px rgba(24,23,26,0.12), 0 2px 6px rgba(24,23,26,0.04);

    /* — Motion — */
    --be-ease:            cubic-bezier(0.2, 0.0, 0, 1);
    --be-dur-fast:        120ms;
    --be-dur-base:        160ms;
    --be-dur-slow:        220ms;

    /* — Focus ring (a11y) — */
    --be-focus-ring:      0 0 0 3px rgba(24,23,26,0.18);

    /* — Container widths — CANONICAL STRUCTURAL GRID (approved mockup .wrap: --max 1280 / --gut 60).
       Batch A consolidation: one authoritative structural container consumed by header + every
       content section. Was 1240 (legacy) competing with 1280 (RADAR modules) and 1200 (archives). */
    --be-container:        1280px;   /* was 1240px — retired to the mockup canonical (--max) */
    --be-container-narrow: 980px;
    --be-gutter:           60px;     /* canonical desktop structural gutter (mockup --gut) */
}

/* Canonical RESPONSIVE gutter — mirrors the approved mockup (60 → 40 → 18). Every structural
   container uses padding: 0 var(--be-gutter), so all BigEvent surfaces degrade uniformly. */
@media ( max-width: 1080px ) { :root { --be-gutter: 40px; } }
@media ( max-width: 959px )  { :root { --be-gutter: 18px; } }  /* aligns with the header's ≤959 mobile switch */

/* === Tokens (local re-scope) =================================
   The same tokens re-declared inside .be-surface so a parent
   element can carry a brand-scoped context independent of :root.
   Useful when BigEvent surfaces are embedded in a non-BigEvent
   page (e.g. homepage featured-conferences block inside a Kadence
   row): wrap them in <div class="be-surface"> to keep BigEvent
   styling within those bounds and reduce specificity collisions.
   ============================================================ */
.be-surface {
    --be-bg:                 #f7f5ef;
    --be-bg-sunken:          #f1eee6;
    --be-surface:            #fdfbf6;
    --be-surface-2:          #f4f1e8;

    --be-ink:                #18171a;
    --be-ink-2:              #46433f;
    --be-ink-3:              #7a756d;
    --be-ink-4:              #a39d92;

    --be-border:             #e6e0d1;
    --be-border-strong:      #cfc6b1;
    --be-divider:            #ede7d8;

    --be-accent:             #4B4FD8;  /* P5.35 — Deep Indigo (v6 handoff §1.4); was saddle #8a5a2b */
    --be-accent-ink:         #25235C;
    --be-accent-soft:        #ECECFF;
    --be-accent-line:        #c7c8f4;

    --be-positive:           #4a6b3a;
    --be-positive-soft:      #e8efde;
    --be-warn:               #8a6a17;
}

/* === Surface base ============================================
   Light wrapper styling for the BigEvent surface region only.
   Does not style anything outside .be-surface, and does not
   reset global element styles. Intentionally minimal.
   ============================================================ */
.be-surface {
    color: var(--be-ink);
    font-family: var(--be-font-sans);
    font-size: var(--be-text-body);
    line-height: var(--be-lh-base);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

.be-surface *,
.be-surface *::before,
.be-surface *::after {
    box-sizing: border-box;
}

/* Visible focus ring on any focusable inside a BigEvent surface.
   Scoped so it never overrides global focus styles outside. */
.be-surface :is(a, button, input, select, textarea, [tabindex]):focus-visible {
    outline: none;
    box-shadow: var(--be-focus-ring);
    border-radius: var(--be-radius-sm);
}

/* === Typography primitives (utility classes) =================
   Optional, used by composing layers. Not required for cards
   to render. Keep names verbose to avoid collision.
   ============================================================ */
.be-surface .be-eyebrow {
    font-family: var(--be-font-mono);
    font-size: var(--be-text-eyebrow);
    font-weight: 500;
    letter-spacing: var(--be-ls-eyebrow);
    text-transform: uppercase;
    color: var(--be-ink-3);
}

.be-surface .be-meta {
    font-family: var(--be-font-mono);
    font-size: var(--be-text-meta);
    letter-spacing: var(--be-ls-meta);
    color: var(--be-ink-3);
}

.be-surface .be-serif-italic {
    font-family: var(--be-font-serif);
    font-style: italic;
    font-weight: 400;
    color: var(--be-ink);
}

/* === Reduced-motion ========================================== */
@media (prefers-reduced-motion: reduce) {
    .be-surface * {
        transition-duration: 0ms !important;
        animation-duration: 0ms !important;
    }
}

/* -------------------------------------------------------
   Title: Newsletter Popup – Popup Maker + WPForms Styling
   Description: Defines theme tokens and full styling for
   the bigevent.io popup (Popup Maker) and embedded WPForms:
   card layout, typography, inputs, CTA button, and responsive.
------------------------------------------------------- */

/* ========= Theme tokens ========= */
:root{
  --be-bg:#0E223F;          /* fond principal (navy clair) */
  --be-bg-2:#12284A;        /* variante */
  --be-text:#ffffff;        /* texte principal */
  --be-muted:#d1d5db;       /* texte secondaire */
  --be-cta-1:#22D3EE;       /* cyan clair CTA */
  --be-cta-2:#0891B2;       /* teal soutenu CTA */
  --be-link:#7dd3fc;        /* liens */
  --be-ico:#22D3EE;         /* puces / icônes */
  --be-w:520px;             /* largeur commune des blocs internes */
}

/* ========= Overlay & container ========= */
.pum-overlay{ backdrop-filter: blur(2px); }
.pum-container{
  max-width:560px;
  padding:0 !important;
  border-radius:14px;
  background: var(--be-bg) !important;
  color: var(--be-text);
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.04),
    0 14px 40px rgba(0,0,0,.35);
}

/* ========= Card interne & typo ========= */
.be-card{
  padding:24px 22px;
  font-family:var(--global-body-font-family, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif);
}
@media (min-width:640px){ .be-card{ padding:28px 32px; }}

/* ========= Largeur commune & alignement ========= */
.be-head, .be-points, .be-form, .be-legal{
  max-width: var(--be-w);
  margin-left: auto;
  margin-right: auto;
}
.be-head h2, .be-head p{ text-align: left; }

/* ========= Header ========= */
.be-head h2{
  margin:0 0 .4rem 0;
  line-height:1.15;
  font-size:clamp(24px,3vw,34px);
  letter-spacing:.2px;
  color:var(--be-text);
}
.be-head p{
  margin:0 0 14px 0;
  color:var(--be-muted);
  font-size:16px;
}

/* ========= Liste bénéfices ========= */
.be-points{
  list-style:none;
  padding:0;
  margin:10px auto 12px;
}
.be-points li{
  list-style:none;
  position:relative;
  padding-left:26px;
  margin:6px 0;
  font-size:16px; line-height:1.5; color:var(--be-text);
}
.be-ico{
  position:absolute;
  left:2px; top:6px;
  color:var(--be-ico);
  display:inline-flex;
  width:16px; height:16px;
}

/* ========= Bloc formulaire ========= */
.be-form, .be-legal{ max-width:var(--be-w); }

/* Reset WPForms dans le popup */
.pum-container .wpforms-container-full,
.pum-container .wpforms-form{
  margin:0 !important;
  padding:0 !important;
}

/* Labels WPForms */
.pum-container .wpforms-field-label,
.pum-container .wpforms-field-sublabel { color:#eef2ff; }

/* Champs WPForms */
.pum-container .wpforms-form .wpforms-field{ margin-bottom:8px; }
.pum-container .wpforms-form input[type="text"],
.pum-container .wpforms-form input[type="email"],
.pum-container .wpforms-form select,
.pum-container .wpforms-form textarea{
  width:100% !important; box-sizing:border-box;
  background:#ffffff; color:#0b1220;
  border:1px solid #d1d5db;
  border-radius:10px; padding:12px 14px;
  box-shadow: 0 1px 0 rgba(0,0,0,.02);
}
.pum-container .wpforms-form input::placeholder,
.pum-container .wpforms-form textarea::placeholder{ color:#6b7280; }

/* Focus */
.pum-container .wpforms-form input:focus,
.pum-container .wpforms-form select:focus,
.pum-container .wpforms-form textarea:focus{
  outline:none;
  border-color: var(--be-cta-2);
  box-shadow: 0 0 0 3px rgba(34,211,238,.28);
}

/* Select caret */
.pum-container .wpforms-form select{
  -webkit-appearance:none; -moz-appearance:none; appearance:none;
  background-image: linear-gradient(45deg, transparent 50%, #93a3b8 50%),
                    linear-gradient(135deg, #93a3b8 50%, transparent 50%),
                    linear-gradient(to right, #ffffff, #ffffff);
  background-position: calc(100% - 18px) calc(50% - 3px),
                       calc(100% - 12px) calc(50% - 3px),
                       100% 0;
  background-size: 6px 6px, 6px 6px, 2.5rem 100%;
  background-repeat: no-repeat;
}

/* Bouton submit */
.pum-container .wpforms-submit-container{ margin-top:8px !important; }

.pum-container .wpforms-submit{
  width:100%;
  border-radius:12px;
  padding:14px 18px;
  font-weight:800;
  font-size:16px;
  color:#fff;
  background: linear-gradient(180deg, var(--be-cta-1), var(--be-cta-2)) !important;
  box-shadow: 0 12px 28px rgba(8,145,178,.45);
  transition: transform .04s ease, box-shadow .2s ease, filter .2s ease;
}
.pum-container .wpforms-submit:hover{
  filter: brightness(1.08);
  box-shadow: 0 14px 36px rgba(8,145,178,.55);
}
.pum-container .wpforms-submit:active{ transform: translateY(1px); }

/* Confirmation WPForms */
.pum-container .wpforms-confirmation-container-full{
  background: var(--be-bg-2);
  color:#e6edf7;
  border:1px solid rgba(255,255,255,.08);
  border-radius:12px;
  padding:14px;
}

/* ========= Mentions & liens ========= */
.be-legal{
  text-align:left;
  font-size:12px;
  color:var(--be-muted);
  opacity:.95;
  margin-top:12px;
}
.be-legal a{ color:var(--be-link); text-decoration: underline; }

/* ========= Bouton Close ========= */
.pum-theme-default-theme .pum-close{
  background: var(--be-cta-2);
  color:#fff;
  border-radius:6px;
  padding:8px 10px;
  font-size:12px;
  line-height:1;
}
.pum-theme-default-theme .pum-close:hover{ filter: brightness(1.08); }

/* ========= Responsive ========= */
@media (max-width:480px){
  .pum-container{ border-radius:12px; }
  .be-card{ padding:22px 16px; }
  .be-head h2{ font-size:24px; }
}
