/*
Theme Name: BUILD Conference
Theme URI: https://njbuild.org/
Author: Coleraine Design
Author URI: https://www.colerainedesign.com/
Description: A bespoke, WCAG 2.2 AA-compliant custom WordPress theme for The BUILD Conference, hosted by The Southern New Jersey Building Trades Council and the Signatory Contractors Association (S.C.A.). Fully editable via Advanced Custom Fields. No page builders.
Version: 1.2.1
Requires at least: 6.4
Tested up to: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: build-conference
Tags: accessibility-ready, custom-colors, custom-menu, featured-images, translation-ready
*/

/* =====================================================================
   BUILD CONFERENCE — DESIGN SYSTEM
   Palette derived from the Southern NJ Building Trades logo.
   Every text/background pair below is validated to WCAG 2.2 AA
   (>= 4.5:1 normal text, >= 3:1 large text / UI).
   ===================================================================== */

:root {
    /* Brand core (from logo) */
    --bc-blue:          #304090; /* royal blue — 9.28:1 on #fff */
    --bc-blue-deep:     #1f2c63; /* hover / headings — 13.14:1 on #fff */
    --bc-blue-royal:    #2a3a80; /* section fills — 10.42:1 white-on-blue */
    --bc-red:           #c8102e; /* flag red — 5.88:1 on #fff */
    --bc-red-deep:      #a10d25;
    --bc-gray:          #d5d9e0; /* hard-hat / lower banner gray */
    --bc-gray-soft:     #eef1f6;

    /* Neutrals / text */
    --bc-ink:           #14213a; /* headings — 16.05:1 on #fff */
    --bc-body:          #33415c; /* body copy — 10.24:1 on #fff */
    --bc-muted:         #5a6577; /* meta text — 5.89:1 on #fff */
    --bc-white:         #ffffff;
    --bc-offwhite:      #f4f6fa;
    --bc-border:        #d3d8e2;

    /* Deep navy from the BUILD Conference logo (hero / CTA backgrounds) */
    --bc-navy:          #0b2b48; /* logo wordmark navy — white text ~14:1 */
    --bc-navy-2:        #123a5e; /* slightly lighter navy for subtle depth */

    /* Accents */
    --bc-gold:          #b8860b; /* Gold tier decorative */
    --bc-gold-text:     #8a6d00; /* Gold tier text — 4.92:1 on #fff */
    --bc-silver:        #6b7280; /* Silver tier text — >4.5:1 on #fff */
    --bc-focus:         #ffbf00; /* high-visibility focus ring */

    /* Type */
    --bc-font-head: "Montserrat", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
    --bc-font-body: "Merriweather", Georgia, "Times New Roman", serif;

    /* Layout */
    --bc-maxw: 1180px;
    --bc-gap: clamp(1rem, 3vw, 2rem);
    --bc-radius: 12px;
    --bc-shadow: 0 10px 30px rgba(20, 33, 58, 0.10);
    --bc-shadow-lg: 0 20px 55px rgba(20, 33, 58, 0.18);
    --bc-transition: 200ms ease;
}

/* ---------- Reset & base ---------- */
*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
    margin: 0;
    font-family: var(--bc-font-body);
    font-size: clamp(1rem, 0.96rem + 0.2vw, 1.0625rem);
    line-height: 1.7;
    color: var(--bc-body);
    background: var(--bc-white);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

img { max-width: 100%; height: auto; display: block; }

h1, h2, h3, h4, h5, h6 {
    font-family: var(--bc-font-head);
    color: var(--bc-ink);
    line-height: 1.15;
    font-weight: 800;
    margin: 0 0 0.5em;
    letter-spacing: -0.01em;
}

p { margin: 0 0 1em; }

a { color: var(--bc-blue); text-decoration: none; }
a:hover { color: var(--bc-blue-deep); }

/* ---------- Accessibility utilities ---------- */
/* Visible, high-contrast focus for keyboard users (WCAG 2.4.7 / 2.4.11) */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible,
.bc-btn:focus-visible {
    outline: 3px solid var(--bc-focus);
    outline-offset: 3px;
    border-radius: 4px;
}

/* Skip link (WCAG 2.4.1) */
.bc-skip-link {
    position: absolute;
    left: 8px;
    top: -60px;
    z-index: 1000;
    background: var(--bc-blue-deep);
    color: var(--bc-white);
    padding: 12px 20px;
    border-radius: 0 0 8px 8px;
    font-family: var(--bc-font-head);
    font-weight: 700;
    text-decoration: none;
    transition: top var(--bc-transition);
}
.bc-skip-link:focus { top: 0; color: var(--bc-white); }

/* Screen-reader-only text */
.screen-reader-text {
    position: absolute !important;
    width: 1px; height: 1px;
    padding: 0; margin: -1px;
    overflow: hidden; clip: rect(0,0,0,0);
    white-space: nowrap; border: 0;
}
.screen-reader-text:focus {
    position: fixed; top: 8px; left: 8px;
    width: auto; height: auto; clip: auto;
    padding: 12px 20px; background: var(--bc-blue-deep);
    color: var(--bc-white); z-index: 1000;
}

/* ---------- Layout ---------- */
.bc-container {
    width: 100%;
    max-width: var(--bc-maxw);
    margin-inline: auto;
    padding-inline: var(--bc-gap);
}
.bc-section { padding-block: clamp(3rem, 7vw, 6rem); }
.bc-section--tint { background: var(--bc-offwhite); }
.bc-section--blue { background: var(--bc-blue-royal); color: var(--bc-white); }
.bc-section--blue h2, .bc-section--blue h3 { color: var(--bc-white); }

.bc-section__head { max-width: 720px; margin: 0 auto clamp(2rem, 4vw, 3rem); text-align: center; }
.bc-eyebrow {
    display: inline-block;
    font-family: var(--bc-font-head);
    font-weight: 700;
    font-size: 0.8rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--bc-red);
    margin-bottom: 0.75rem;
}
.bc-section--blue .bc-eyebrow { color: var(--bc-gray); }
.bc-section__title { font-size: clamp(1.9rem, 1.3rem + 2.6vw, 3rem); }
.bc-section__intro { font-size: 1.1rem; color: var(--bc-muted); }
.bc-section--blue .bc-section__intro { color: var(--bc-gray-soft); }

/* ---------- Buttons (min target 24x24, most 44px+ per WCAG 2.5.8) ---------- */
.bc-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    min-height: 48px;
    min-width: 48px;
    padding: 0.85rem 1.6rem;
    font-family: var(--bc-font-head);
    font-weight: 700;
    font-size: 1rem;
    line-height: 1.1;
    text-decoration: none;
    border: 2px solid transparent;
    border-radius: 999px;
    cursor: pointer;
    transition: transform var(--bc-transition), background var(--bc-transition), box-shadow var(--bc-transition);
}
.bc-btn--primary { background: var(--bc-red); color: var(--bc-white); }
.bc-btn--primary:hover { background: var(--bc-red-deep); color: var(--bc-white); transform: translateY(-2px); box-shadow: var(--bc-shadow); }
.bc-btn--secondary { background: var(--bc-white); color: var(--bc-blue-deep); border-color: var(--bc-blue); }
.bc-btn--secondary:hover { background: var(--bc-blue); color: var(--bc-white); transform: translateY(-2px); }
.bc-btn--ghost { background: transparent; color: var(--bc-white); border-color: rgba(255,255,255,0.8); }
.bc-btn--ghost:hover { background: var(--bc-white); color: var(--bc-blue-deep); }

/* ---------- Site header / nav ---------- */
.bc-header {
    position: sticky;
    top: 0;
    z-index: 100;
    background: var(--bc-white);
    border-bottom: 1px solid var(--bc-border);
    box-shadow: 0 2px 12px rgba(20,33,58,0.05);
}
.bc-header__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    min-height: 96px;
}
.bc-brand { display: flex; align-items: center; gap: 0.85rem; text-decoration: none; }
.bc-brand img { height: 64px; width: auto; max-width: min(60vw, 360px); object-fit: contain; }
.bc-brand__text { font-family: var(--bc-font-head); font-weight: 800; color: var(--bc-ink); font-size: 1.1rem; line-height: 1.1; }
.bc-brand__text small { display: block; font-weight: 600; font-size: 0.72rem; color: var(--bc-muted); letter-spacing: 0.04em; }

.bc-nav__toggle {
    display: none;
    align-items: center;
    gap: 0.5rem;
    min-height: 44px;
    padding: 0.5rem 0.9rem;
    background: var(--bc-blue);
    color: var(--bc-white);
    border: 0;
    border-radius: 8px;
    font-family: var(--bc-font-head);
    font-weight: 700;
    cursor: pointer;
}
.bc-nav__toggle-bars { display: inline-block; width: 20px; height: 2px; background: currentColor; position: relative; }
.bc-nav__toggle-bars::before, .bc-nav__toggle-bars::after { content: ""; position: absolute; left: 0; width: 20px; height: 2px; background: currentColor; }
.bc-nav__toggle-bars::before { top: -6px; }
.bc-nav__toggle-bars::after { top: 6px; }

.bc-nav__list { list-style: none; display: flex; align-items: center; gap: 0.35rem; margin: 0; padding: 0; }
.bc-nav__list a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding: 0.4rem 0.85rem;
    font-family: var(--bc-font-head);
    font-weight: 600;
    font-size: 0.98rem;
    color: var(--bc-ink);
    text-decoration: none;
    border-radius: 8px;
}
.bc-nav__list a:hover { background: var(--bc-gray-soft); color: var(--bc-blue-deep); }
.bc-nav__list .current-menu-item > a { color: var(--bc-blue); }
.bc-nav__cta { margin-left: 0.5rem; }

/* ---------- Hero ---------- */
.bc-hero {
    position: relative;
    color: var(--bc-white);
    background:
        linear-gradient(120deg, rgba(9,40,72,0.94) 0%, rgba(11,43,72,0.86) 45%, rgba(18,58,94,0.80) 100%),
        url("assets/img/hero-bridge.webp") center 25% / cover no-repeat,
        var(--bc-navy);
    overflow: hidden;
}
.bc-hero__pattern {
    position: absolute; inset: 0;
    background-image: repeating-linear-gradient(45deg, rgba(255,255,255,0.04) 0 2px, transparent 2px 22px);
    pointer-events: none;
}
.bc-hero__inner { position: relative; padding-block: clamp(3.5rem, 8vw, 7rem); display: grid; gap: 2.5rem; }
@media (min-width: 900px) {
    .bc-hero__inner { grid-template-columns: 1.15fr 0.85fr; align-items: center; }
}
.bc-hero__host {
    display: inline-block;
    font-family: var(--bc-font-head);
    font-weight: 600;
    font-size: 0.9rem;
    letter-spacing: 0.03em;
    color: var(--bc-gray);
    margin-bottom: 1rem;
    max-width: 46ch;
}
.bc-hero h1 { color: var(--bc-white); font-size: clamp(2.4rem, 1.4rem + 4.6vw, 4.4rem); margin-bottom: 0.4rem; }
.bc-hero__tagline { font-size: clamp(1.1rem, 1rem + 0.6vw, 1.4rem); color: var(--bc-gray-soft); max-width: 48ch; }
.bc-hero__badge {
    display: inline-flex; align-items: center; gap: 0.5rem;
    background: var(--bc-red); color: var(--bc-white);
    font-family: var(--bc-font-head); font-weight: 800;
    letter-spacing: 0.05em; text-transform: uppercase;
    padding: 0.5rem 1.1rem; border-radius: 999px; font-size: 0.9rem;
    margin-bottom: 1.25rem;
}
.bc-hero__actions { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 2rem; }

/* Hero fact card */
.bc-factcard {
    background: rgba(255,255,255,0.08);
    border: 1px solid rgba(255,255,255,0.25);
    border-radius: var(--bc-radius);
    padding: clamp(1.5rem, 3vw, 2.25rem);
    backdrop-filter: blur(4px);
}
.bc-factcard dl { margin: 0; display: grid; gap: 1.15rem; }
.bc-factcard dt {
    font-family: var(--bc-font-head); font-weight: 700; text-transform: uppercase;
    letter-spacing: 0.08em; font-size: 0.75rem; color: var(--bc-gray);
    margin-bottom: 0.15rem;
}
.bc-factcard dd { margin: 0; font-family: var(--bc-font-head); font-weight: 600; color: var(--bc-white); font-size: 1.05rem; line-height: 1.4; }
.bc-factcard .bc-factcard__row { display: flex; gap: 0.9rem; align-items: flex-start; }
.bc-factcard .bc-ico { flex: 0 0 auto; width: 24px; height: 24px; color: var(--bc-gray); margin-top: 2px; }

/* ---------- Host / marquee strip ---------- */
.bc-hosts { background: var(--bc-white); border-bottom: 1px solid var(--bc-border); }
.bc-hosts__inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 1rem 2rem; padding-block: 1.75rem; text-align: center; }
.bc-hosts__label { font-family: var(--bc-font-head); font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; font-size: 0.75rem; color: var(--bc-muted); }
.bc-hosts__org { display: flex; align-items: center; gap: 0.85rem; }
.bc-hosts__seal { height: 64px; width: auto; flex: 0 0 auto; }
.bc-hosts__name { font-family: var(--bc-font-head); font-weight: 700; color: var(--bc-ink); font-size: 1.02rem; text-align: left; max-width: 22ch; }

/* ---------- Event details cards ---------- */
.bc-details__grid { display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); }
.bc-detail {
    background: var(--bc-white);
    border: 1px solid var(--bc-border);
    border-radius: var(--bc-radius);
    padding: 1.75rem;
    box-shadow: var(--bc-shadow);
    text-align: center;
}
.bc-detail__ico {
    width: 52px; height: 52px; margin: 0 auto 1rem;
    display: grid; place-items: center;
    background: var(--bc-gray-soft); color: var(--bc-blue);
    border-radius: 50%;
}
.bc-detail__ico svg { width: 26px; height: 26px; }
.bc-detail h3 { font-size: 1.05rem; margin-bottom: 0.35rem; }
.bc-detail p { margin: 0; color: var(--bc-body); }
.bc-detail a { color: var(--bc-blue); }

/* ---------- Speakers grid ---------- */
/* Flex (not grid) so an incomplete final row centers under the row above. */
.bc-speakers__grid {
    display: flex; flex-wrap: wrap; justify-content: center;
    gap: clamp(1.25rem, 3vw, 2rem);
    list-style: none; margin: 0; padding: 0;
}
.bc-speaker {
    flex: 0 1 250px;
    background: var(--bc-white);
    border: 1px solid var(--bc-border);
    border-radius: var(--bc-radius);
    overflow: hidden;
    box-shadow: var(--bc-shadow);
    transition: transform var(--bc-transition), box-shadow var(--bc-transition);
}
.bc-speaker:hover, .bc-speaker:focus-within { transform: translateY(-4px); box-shadow: var(--bc-shadow-lg); }
.bc-speaker__media { position: relative; aspect-ratio: 4 / 5; background: var(--bc-gray-soft); }
.bc-speaker__media img { width: 100%; height: 100%; object-fit: cover; }
.bc-speaker__placeholder { width: 100%; height: 100%; display: grid; place-items: center; color: var(--bc-muted); font-family: var(--bc-font-head); font-weight: 800; font-size: 2.4rem; background: linear-gradient(160deg, var(--bc-gray-soft), var(--bc-gray)); }
.bc-speaker__body { padding: 1.25rem 1.35rem 1.5rem; }
.bc-speaker__name { font-size: 1.18rem; margin-bottom: 0.2rem; }
.bc-speaker__name a { color: var(--bc-ink); text-decoration: none; }
.bc-speaker__name a:hover { color: var(--bc-blue); }
.bc-speaker__role { font-family: var(--bc-font-head); font-weight: 600; color: var(--bc-blue); font-size: 0.95rem; margin: 0; }
.bc-speaker__org { color: var(--bc-muted); font-size: 0.92rem; margin: 0.15rem 0 0; }
.bc-speaker__tag {
    display: inline-block; margin-bottom: 0.75rem;
    font-family: var(--bc-font-head); font-weight: 700; font-size: 0.7rem;
    letter-spacing: 0.08em; text-transform: uppercase;
    color: var(--bc-red); background: #fdecef; padding: 0.2rem 0.6rem; border-radius: 999px;
}

/* ---------- Southern NJ landmarks band ---------- */
.bc-landmarks {
    background: linear-gradient(160deg, var(--bc-navy) 0%, var(--bc-navy-2) 100%);
    color: var(--bc-white);
}
.bc-landmarks .bc-eyebrow { color: var(--bc-gray); }
.bc-landmarks .bc-section__title { color: var(--bc-white); }
.bc-landmarks .bc-section__intro { color: var(--bc-gray-soft); }

.bc-landmarks__grid {
    display: grid;
    gap: clamp(1.25rem, 3vw, 2rem);
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    list-style: none; margin: 0; padding: 0;
}
.bc-landmark { margin: 0; }
.bc-landmark__fig {
    position: relative;
    margin: 0;
    aspect-ratio: 3 / 2;
    border-radius: var(--bc-radius);
    overflow: hidden;
    box-shadow: var(--bc-shadow-lg);
    border: 1px solid rgba(255,255,255,0.14);
}
.bc-landmark__fig img {
    width: 100%; height: 100%;
    object-fit: cover;
    transition: transform 450ms ease;
}
.bc-landmark:hover .bc-landmark__fig img,
.bc-landmark:focus-within .bc-landmark__fig img { transform: scale(1.06); }
.bc-landmark__cap {
    position: absolute; left: 0; right: 0; bottom: 0;
    padding: 1.6rem 1.15rem 1rem;
    font-family: var(--bc-font-head);
    font-weight: 700;
    font-size: 1.05rem;
    letter-spacing: 0.01em;
    color: var(--bc-white);
    background: linear-gradient(to top, rgba(9,40,72,0.92) 0%, rgba(9,40,72,0.55) 55%, transparent 100%);
}

/* ---------- Sponsorship ---------- */
.bc-tiers { display: grid; gap: 1.5rem; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); max-width: 760px; margin: 0 auto 3rem; }
.bc-tier {
    position: relative;
    background: var(--bc-white);
    border: 2px solid var(--bc-border);
    border-radius: var(--bc-radius);
    padding: 2rem 1.75rem;
    text-align: center;
    box-shadow: var(--bc-shadow);
}
.bc-tier--gold { border-color: var(--bc-gold); }
.bc-tier--silver { border-color: var(--bc-silver); }
.bc-tier__name { font-family: var(--bc-font-head); font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; font-size: 1.1rem; }
.bc-tier--gold .bc-tier__name { color: var(--bc-gold-text); }
.bc-tier--silver .bc-tier__name { color: var(--bc-silver); }
.bc-tier__price { font-family: var(--bc-font-head); font-weight: 800; font-size: 2.6rem; color: var(--bc-ink); line-height: 1; margin: 0.5rem 0 0.25rem; }
.bc-tier__price small { font-size: 1rem; color: var(--bc-muted); font-weight: 600; }
.bc-tier__meta { color: var(--bc-muted); margin: 0; }

.bc-payinfo {
    max-width: 760px; margin: 0 auto 3rem;
    background: var(--bc-gray-soft);
    border-left: 4px solid var(--bc-blue);
    border-radius: 8px;
    padding: 1.5rem 1.75rem;
}
.bc-payinfo h3 { font-size: 1.05rem; margin-bottom: 0.4rem; }
.bc-payinfo address { font-style: normal; color: var(--bc-body); }

/* Sponsorship / registration form shell */
.bc-formwrap { max-width: 760px; margin: 0 auto; background: var(--bc-white); border: 1px solid var(--bc-border); border-radius: var(--bc-radius); padding: clamp(1.5rem, 4vw, 2.75rem); box-shadow: var(--bc-shadow); }
.bc-formwrap h3 { font-size: 1.4rem; }

/* Native fallback form (used if Gravity/Super Forms not active) */
.bc-form { display: grid; gap: 1.25rem; }
.bc-form__row { display: grid; gap: 0.4rem; }
.bc-form__row--2 { grid-template-columns: 1fr 1fr; gap: 1.25rem; }
@media (max-width: 560px) { .bc-form__row--2 { grid-template-columns: 1fr; } }
.bc-form label { font-family: var(--bc-font-head); font-weight: 700; color: var(--bc-ink); font-size: 0.95rem; }
.bc-form .req { color: var(--bc-red); }
.bc-form .bc-hint { font-size: 0.85rem; color: var(--bc-muted); font-family: var(--bc-font-body); font-weight: 400; }
.bc-form input, .bc-form select, .bc-form textarea {
    width: 100%;
    min-height: 48px;
    padding: 0.7rem 0.9rem;
    font-family: var(--bc-font-body);
    font-size: 1rem;
    color: var(--bc-ink);
    background: var(--bc-white);
    border: 2px solid var(--bc-border);
    border-radius: 8px;
}
.bc-form textarea { min-height: 120px; resize: vertical; }
.bc-form input:hover, .bc-form select:hover, .bc-form textarea:hover { border-color: var(--bc-blue); }
.bc-form input[type="file"] { padding: 0.6rem; }

/* ---------- Final CTA ---------- */
.bc-cta { text-align: center; }
.bc-cta__inner { background: linear-gradient(135deg, var(--bc-navy), var(--bc-navy-2)); border-radius: var(--bc-radius); padding: clamp(2.5rem, 6vw, 4.5rem) 1.5rem; color: var(--bc-white); }
.bc-cta__inner h2 { color: var(--bc-white); font-size: clamp(1.8rem, 1.3rem + 2.4vw, 3rem); }
.bc-cta__inner p { color: var(--bc-gray-soft); font-size: 1.15rem; max-width: 52ch; margin-inline: auto; }
.bc-cta__actions { display: flex; flex-wrap: wrap; gap: 1rem; justify-content: center; margin-top: 2rem; }

/* ---------- Footer ---------- */
.bc-footer { background: var(--bc-ink); color: var(--bc-gray); }
.bc-footer__inner { display: grid; gap: 2rem; padding-block: 3rem; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.bc-footer h2, .bc-footer h3 { color: var(--bc-white); font-size: 1rem; text-transform: uppercase; letter-spacing: 0.08em; }
.bc-footer a { color: #cfd6e6; }
.bc-footer a:hover { color: var(--bc-white); }
.bc-footer address { font-style: normal; line-height: 1.8; }
.bc-footer__bar { border-top: 1px solid rgba(255,255,255,0.12); padding-block: 1.25rem; font-size: 0.85rem; text-align: center; color: #aeb6c9; }
.bc-footer__bar a { color: #cfd6e6; }

/* ---------- Single speaker ---------- */
.bc-single-speaker { padding-block: clamp(2.5rem, 6vw, 5rem); }
.bc-single-speaker__grid { display: grid; gap: 2.5rem; }
@media (min-width: 800px) { .bc-single-speaker__grid { grid-template-columns: 340px 1fr; align-items: start; } }
.bc-single-speaker__media img { border-radius: var(--bc-radius); box-shadow: var(--bc-shadow); }
.bc-back-link { display: inline-flex; align-items: center; gap: 0.4rem; min-height: 44px; font-family: var(--bc-font-head); font-weight: 700; }

/* ---------- Responsive nav ---------- */
@media (max-width: 860px) {
    .bc-nav__toggle { display: inline-flex; }
    .bc-nav {
        position: absolute; left: 0; right: 0; top: 100%;
        background: var(--bc-white);
        border-bottom: 1px solid var(--bc-border);
        box-shadow: var(--bc-shadow);
        display: none;
    }
    .bc-nav.is-open { display: block; }
    .bc-nav__list { flex-direction: column; align-items: stretch; padding: 0.75rem var(--bc-gap) 1.25rem; }
    .bc-nav__list a { min-height: 48px; }
    .bc-nav__cta { margin: 0.5rem 0 0; }
    .bc-nav__cta .bc-btn { width: 100%; }
    /* Keep the header compact on phones while still readable. */
    .bc-header__inner { min-height: 76px; }
    .bc-brand img { height: 46px; max-width: 64vw; }
}

/* ---------- Motion preference (WCAG 2.3.3) ---------- */
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { animation-duration: 0.001ms !important; animation-iteration-count: 1 !important; transition-duration: 0.001ms !important; }
}

/* ---------- Forced-colors / Windows High Contrast ---------- */
@media (forced-colors: active) {
    .bc-btn { border: 2px solid ButtonText; }
    .bc-speaker, .bc-detail, .bc-tier, .bc-factcard { border: 1px solid CanvasText; }
}
