/* ==========================================================================
   BGZ public site — page chrome (header, footer) and page sections.
   Loaded after tokens.css + components.css by layouts/public.blade.php.
   Based on Ferry's mockup (EXAMPLE/css/style.css), renamed to bgz- BEM and
   rewritten on tokens. Behaviour (menu, hero fade, reveal, counters) lives
   in public/js/bgz/public.js.
   ========================================================================== */

*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; scroll-padding-top: calc(var(--bgz-nav-height) + var(--bgz-space-2)); }
body {
    margin: 0;
    background: var(--bgz-bg); color: var(--bgz-text);
    font-family: var(--bgz-font-body); font-size: var(--bgz-text-body); line-height: var(--bgz-leading);
    -webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4 { margin: 0 0 var(--bgz-space-3); font-family: var(--bgz-font-display); font-weight: var(--bgz-weight-black); line-height: 1.1; color: inherit; text-wrap: balance; }
p  { margin: 0 0 var(--bgz-space-4); }
a  { color: inherit; text-underline-offset: 0.2em; }
img { max-width: 100%; height: auto; }
:focus-visible { outline: 3px solid var(--bgz-primary); outline-offset: 3px; }
.bgz-sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.bgz-container { width: 100%; max-width: var(--bgz-container); margin: 0 auto; padding: 0 var(--bgz-gutter); }
.bgz-main { min-height: 60vh; }

/* ── Buttons (public additions to .bgz-btn) ── */
.bgz-btn--lg { padding: var(--bgz-space-3) var(--bgz-space-6); border-width: 2px; border-radius: var(--bgz-radius-full); font-size: var(--bgz-text-base); }
.bgz-btn--ghost { background: transparent; color: var(--bgz-primary); border-color: var(--bgz-primary); }
.bgz-btn--ghost:hover { background: var(--bgz-primary); color: var(--bgz-on-primary); }
.bgz-btn--bright { background: var(--bgz-accent-bright); color: var(--bgz-ink); }
.bgz-btn--bright:hover { background: var(--bgz-accent-bright-hover); }
.bgz-btn--light { background: transparent; color: var(--bgz-on-navy); border-color: var(--bgz-on-navy); }
.bgz-btn--light:hover { background: var(--bgz-on-navy); color: var(--bgz-ink); }

/* ── Header + navigation ── */
.bgz-site-header { position: sticky; top: 0; z-index: var(--bgz-z-header); background: var(--bgz-navy); color: var(--bgz-on-navy); }
.bgz-site-header__inner { display: flex; align-items: center; gap: var(--bgz-space-4); }
.bgz-nav { margin-left: auto; }

.bgz-site-header__brand { padding-block: var(--bgz-space-2); text-decoration: none; }

.bgz-nav__list { display: flex; align-items: center; margin: 0; padding: 0; list-style: none; }
.bgz-nav__item { position: relative; display: flex; align-items: center; }
.bgz-nav__link {
    display: flex; align-items: center; min-height: var(--bgz-nav-height); padding: 0 var(--bgz-space-4);
    color: var(--bgz-on-navy); font-weight: var(--bgz-weight-medium); text-decoration: none;
    transition: background-color var(--bgz-transition-slow), color var(--bgz-transition-slow);
}
.bgz-nav__link--active { background-color: var(--bgz-on-navy-hover); }
.bgz-nav__item:hover > .bgz-nav__link,
.bgz-nav__item:focus-within > .bgz-nav__link { background-color: var(--bgz-accent-bright); color: var(--bgz-ink); }
.bgz-nav__cta { margin-left: var(--bgz-space-3); padding: var(--bgz-space-2) var(--bgz-space-5); border-radius: var(--bgz-radius-full); background: var(--bgz-accent-bright); color: var(--bgz-ink); font-weight: var(--bgz-weight-bold); text-decoration: none; white-space: nowrap; }
.bgz-nav__cta:hover { background: var(--bgz-accent-bright-hover); }

/* Dropdown: fades in on hover or keyboard focus */
.bgz-nav__submenu {
    position: absolute; top: 100%; left: 0; z-index: var(--bgz-z-menu);
    min-width: 15rem; margin: 0; padding: var(--bgz-space-2) 0; list-style: none;
    background: var(--bgz-navy); border-top: 3px solid var(--bgz-accent-bright); box-shadow: var(--bgz-shadow-menu);
    opacity: 0; visibility: hidden; transform: translateY(0.5rem);
    transition: opacity var(--bgz-transition-slow), transform var(--bgz-transition-slow), visibility var(--bgz-transition-slow);
}
.bgz-nav__item:hover > .bgz-nav__submenu,
.bgz-nav__item:focus-within > .bgz-nav__submenu { opacity: 1; visibility: visible; transform: none; }
.bgz-nav__sublink { display: block; padding: var(--bgz-space-3) var(--bgz-space-5); color: var(--bgz-on-navy); text-decoration: none; white-space: nowrap; transition: background-color var(--bgz-transition-slow), color var(--bgz-transition-slow); }
.bgz-nav__sublink:hover, .bgz-nav__sublink:focus-visible { background-color: var(--bgz-accent-bright); color: var(--bgz-ink); }

/* Account bubble: member's initials (→ dashboard) or a login icon */
.bgz-account {
    display: inline-flex; flex: none; align-items: center; justify-content: center;
    width: var(--bgz-avatar-size); height: var(--bgz-avatar-size);
    border: 2px solid var(--bgz-on-navy-line); border-radius: 50%;
    color: var(--bgz-on-navy); font-family: var(--bgz-font-display); font-size: var(--bgz-text-lg); font-weight: var(--bgz-weight-black); letter-spacing: 0.02em; text-decoration: none;
    transition: background-color var(--bgz-transition-slow), border-color var(--bgz-transition-slow), color var(--bgz-transition-slow);
}
.bgz-account svg { width: 1.375rem; height: 1.375rem; }
.bgz-account:hover, .bgz-account:focus-visible { background: var(--bgz-accent-bright); border-color: var(--bgz-accent-bright); color: var(--bgz-ink); }
.bgz-account--signed-in { background: var(--bgz-on-navy); border-color: var(--bgz-on-navy); color: var(--bgz-navy); }

.bgz-nav-toggle { display: none; padding: var(--bgz-space-2); background: none; border: 2px solid var(--bgz-on-navy-line); border-radius: var(--bgz-radius-md); color: var(--bgz-on-navy); cursor: pointer; }
.bgz-nav-toggle svg { display: block; width: 1.75rem; height: 1.75rem; }

/* Phones/tablets: hamburger; the open menu lists every link, submenus inline */
@media (max-width: 60em) {
    .bgz-nav-toggle { display: block; }
    .bgz-site-header__inner { flex-wrap: wrap; }
    .bgz-nav { display: none; order: 99; width: 100%; margin-left: 0; padding-bottom: var(--bgz-space-4); }
    .bgz-account { margin-left: auto; }
    .bgz-nav--open { display: block; }
    .bgz-nav__list { flex-direction: column; align-items: stretch; }
    .bgz-nav__item { flex-direction: column; align-items: stretch; }
    .bgz-nav__link { min-height: 2.75rem; padding: 0 var(--bgz-space-3); border-radius: var(--bgz-radius-sm); }
    .bgz-nav__item:hover > .bgz-nav__link { background-color: transparent; color: var(--bgz-on-navy); }
    .bgz-nav__submenu { position: static; min-width: 0; padding: 0 0 var(--bgz-space-2) var(--bgz-space-4); border-top: 0; box-shadow: none; background: transparent; opacity: 1; visibility: visible; transform: none; }
    .bgz-nav__sublink { padding: var(--bgz-space-2) var(--bgz-space-3); color: var(--bgz-on-navy-muted); }
    .bgz-nav__cta { display: block; margin: var(--bgz-space-3) 0 0; text-align: center; }
}

/* ── Hero (photo with heading) ── */
.bgz-hero { position: relative; overflow: hidden; background: var(--bgz-navy); color: var(--bgz-on-navy); }
.bgz-hero__slide { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 70% center; opacity: 0; transition: opacity 1.2s ease; }
.bgz-hero__slide--active { opacity: 1; }
.bgz-hero::before { content: ""; position: absolute; inset: 0; z-index: 1; background-image: var(--bgz-hero-shade); }
.bgz-hero__inner { position: relative; z-index: 2; padding-block: clamp(3.5rem, 11vw, 7.5rem) clamp(4.5rem, 12vw, 8.5rem); }
.bgz-hero--compact .bgz-hero__inner { padding-block: clamp(2.5rem, 7vw, 4.75rem); }
.bgz-hero__title { max-width: 12ch; margin: 0 0 var(--bgz-space-4); font-size: var(--bgz-display-xl); line-height: 1; text-shadow: var(--bgz-text-shadow); }
.bgz-hero__lead { max-width: 34ch; margin: 0 0 var(--bgz-space-8); font-size: clamp(1.125rem, 2.4vw, 1.375rem); text-shadow: var(--bgz-text-shadow); }
.bgz-hero--compact .bgz-hero__lead { margin-bottom: 0; }
.bgz-hero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--bgz-space-3); }
.bgz-hero__dots { position: absolute; z-index: 3; left: 0; right: 0; bottom: var(--bgz-space-12); display: flex; justify-content: center; gap: var(--bgz-space-3); }
.bgz-hero--compact .bgz-hero__dots { bottom: var(--bgz-space-4); }
.bgz-hero__dot { width: 0.875rem; height: 0.875rem; padding: 0; border: 2px solid var(--bgz-on-navy); border-radius: 50%; background: transparent; cursor: pointer; }
.bgz-hero__dot[aria-current="true"] { background: var(--bgz-on-navy); }

/* ── Quick-link cards overlapping the hero ── */
.bgz-cards { position: relative; z-index: 2; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); gap: var(--bgz-space-5); margin-top: calc(-1 * var(--bgz-space-10)); }
.bgz-card {
    display: block; padding: var(--bgz-space-5) var(--bgz-space-6);
    background: var(--bgz-surface); color: var(--bgz-text); text-decoration: none;
    border: 1px solid var(--bgz-border); border-top: 4px solid var(--bgz-primary); border-radius: var(--bgz-radius-card);
    box-shadow: var(--bgz-shadow-card); transition: transform var(--bgz-transition-slow), box-shadow var(--bgz-transition-slow);
}
.bgz-card:hover, .bgz-card:focus-visible { transform: translateY(-0.25rem); box-shadow: var(--bgz-shadow-card-hover); }
.bgz-card__label { display: block; color: var(--bgz-primary); font-size: var(--bgz-text-xs); font-weight: var(--bgz-weight-black); letter-spacing: 0.12em; text-transform: uppercase; }
.bgz-card__title { margin: var(--bgz-space-2) 0; font-size: var(--bgz-display-sm); }
.bgz-card__text { margin: 0 0 var(--bgz-space-3); color: var(--bgz-text-muted); }
.bgz-card__link { color: var(--bgz-primary); font-weight: var(--bgz-weight-bold); }
.bgz-card__link::after { content: " →"; }

/* ── Sections ── */
.bgz-section { padding-block: var(--bgz-section-pad); }
.bgz-section--alt { background: var(--bgz-surface); border-block: 1px solid var(--bgz-border); }
.bgz-section--flush { padding-block: 0; }
.bgz-eyebrow { margin: 0 0 var(--bgz-space-2); color: var(--bgz-primary); font-family: var(--bgz-font-display); font-size: var(--bgz-text-sm); font-weight: var(--bgz-weight-bold); letter-spacing: 0.14em; text-transform: uppercase; }
.bgz-section__title { margin: 0 0 var(--bgz-space-4); font-size: var(--bgz-display-lg); }
.bgz-subhead { margin: var(--bgz-space-8) 0 var(--bgz-space-3); font-size: var(--bgz-text-2xl); }
.bgz-lead { max-width: 62ch; margin: 0; color: var(--bgz-text-muted); font-size: var(--bgz-text-lg); }
.bgz-lead a, .bgz-note a { color: var(--bgz-primary); }
.bgz-note { margin: var(--bgz-space-5) 0 0; color: var(--bgz-text-muted); font-size: var(--bgz-text-base); }
.bgz-more { display: flex; flex-wrap: wrap; gap: var(--bgz-space-3); margin-top: var(--bgz-space-8); }

/* ── About + facts list ── */
.bgz-about { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: var(--bgz-space-10); align-items: start; }
.bgz-facts { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--bgz-border); }
.bgz-facts li { display: flex; justify-content: space-between; gap: var(--bgz-space-4); padding: var(--bgz-space-3) 0; border-bottom: 1px solid var(--bgz-border); }
.bgz-facts span { color: var(--bgz-text-muted); }
.bgz-facts b { font-weight: var(--bgz-weight-bold); text-align: right; }
@media (max-width: 48em) { .bgz-about { grid-template-columns: minmax(0, 1fr); gap: var(--bgz-space-8); } }

/* ── Stats band (counts up when scrolled into view) ── */
.bgz-stats { background: var(--bgz-navy); color: var(--bgz-on-navy); }
.bgz-stats__list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--bgz-space-4); margin: 0; padding: var(--bgz-space-8) 0; list-style: none; text-align: center; }
.bgz-stats__value { display: block; color: var(--bgz-accent-bright); font-family: var(--bgz-font-display); font-size: var(--bgz-display-xl); font-weight: var(--bgz-weight-black); line-height: 1; font-variant-numeric: tabular-nums; }
.bgz-stats__label { display: block; margin-top: var(--bgz-space-2); color: var(--bgz-on-navy-muted); font-size: clamp(0.875rem, 2.4vw, 1.125rem); }
.bgz-stats__sub { display: block; margin-top: var(--bgz-space-1); color: var(--bgz-accent-bright); font-size: clamp(0.875rem, 2.4vw, 1.25rem); font-weight: var(--bgz-weight-bold); }

/* ── Play times ── */
.bgz-slots { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); gap: var(--bgz-space-5); margin-top: var(--bgz-space-8); }
.bgz-slot { min-width: 0; padding: var(--bgz-space-6); background: var(--bgz-bg); border: 1px solid var(--bgz-border); border-radius: var(--bgz-radius-card); }
.bgz-slot__day { margin: 0; font-family: var(--bgz-font-display); font-size: var(--bgz-text-3xl); font-weight: var(--bgz-weight-black); line-height: 1.1; }
.bgz-slot__time { margin: var(--bgz-space-1) 0 var(--bgz-space-2); color: var(--bgz-floor); font-family: var(--bgz-font-display); font-size: 2.5rem; font-weight: var(--bgz-weight-bold); line-height: 1.1; font-variant-numeric: tabular-nums; }
.bgz-slot__text { margin: 0; color: var(--bgz-text-muted); }

/* ── Court lines with a shuttle that flies along while scrolling ── */
.bgz-court { position: relative; height: 4.375rem; margin-top: var(--bgz-space-10); --p: 0.5; }
.bgz-court__lines { display: block; width: 100%; height: 100%; fill: none; stroke: var(--bgz-primary); stroke-width: 2; stroke-opacity: 0.45; }
.bgz-court__lines * { vector-effect: non-scaling-stroke; }
.bgz-court__net { stroke-width: 4; stroke-opacity: 0.7; }
.bgz-court__thin { stroke-width: 1; stroke-opacity: 0.3; }
.bgz-court__shuttle {
    position: absolute; width: 2.5rem; height: 2.5rem;
    left: calc(var(--p) * (100% - 2.5rem)); top: calc(1.125rem - var(--p) * (1 - var(--p)) * 7.5rem);
    fill: var(--bgz-primary); stroke: var(--bgz-primary); stroke-width: 2; stroke-linecap: round;
    transform: rotate(calc(-20deg + var(--p) * 40deg));
}
.bgz-court__shuttle path { fill: none; }

/* ── Membership plans ── */
.bgz-plans { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 13.75rem), 1fr)); gap: var(--bgz-space-5); margin-top: var(--bgz-space-8); }
.bgz-plan { min-width: 0; padding: var(--bgz-space-6); background: var(--bgz-surface); border: 1px solid var(--bgz-border); border-radius: var(--bgz-radius-card); }
.bgz-plan--free { background: var(--bgz-primary-soft); border-color: var(--bgz-primary); }
.bgz-plan__title { margin: 0 0 var(--bgz-space-1); font-size: var(--bgz-text-xl); font-weight: var(--bgz-weight-bold); letter-spacing: 0.02em; }
.bgz-plan__price { font-family: var(--bgz-font-display); font-size: 3rem; font-weight: var(--bgz-weight-black); line-height: 1.1; font-variant-numeric: tabular-nums; }
.bgz-plan--free .bgz-plan__price { color: var(--bgz-primary); }
.bgz-plan__unit { display: block; color: var(--bgz-text-muted); font-family: var(--bgz-font-body); font-size: var(--bgz-text-base); font-weight: 400; line-height: 1.4; }
.bgz-plan__text { margin: var(--bgz-space-2) 0 0; color: var(--bgz-text-muted); }
.bgz-plan ul { margin: var(--bgz-space-2) 0 0; padding-left: 1.1em; color: var(--bgz-text-muted); }
.bgz-plan li + li { margin-top: var(--bgz-space-1); }

/* ── Numbered steps ── */
.bgz-steps { display: grid; gap: var(--bgz-space-3); max-width: 47.5rem; margin: var(--bgz-space-8) 0 0; padding: 0; list-style: none; counter-reset: step; }
.bgz-steps li { counter-increment: step; display: grid; grid-template-columns: 2.75rem minmax(0, 1fr); gap: var(--bgz-space-4); align-items: start; padding: var(--bgz-space-4) var(--bgz-space-5); background: var(--bgz-surface); border: 1px solid var(--bgz-border); border-radius: var(--bgz-radius-card); }
.bgz-steps li::before { content: counter(step); color: var(--bgz-primary); font-family: var(--bgz-font-display); font-size: 2.125rem; font-weight: var(--bgz-weight-black); line-height: 1; }
.bgz-steps b { font-size: var(--bgz-text-lg); font-weight: var(--bgz-weight-bold); }
.bgz-steps p { margin: var(--bgz-space-1) 0 0; color: var(--bgz-text-muted); }

/* ── Posts: news items and agenda entries share this list ── */
.bgz-posts { display: grid; gap: var(--bgz-space-3); margin: 0; padding: 0; list-style: none; }
.bgz-post { display: grid; grid-template-columns: 4.75rem minmax(0, 1fr); gap: var(--bgz-space-4); padding: var(--bgz-space-4) var(--bgz-space-5); background: var(--bgz-surface); border: 1px solid var(--bgz-border); border-radius: var(--bgz-radius-card); }
.bgz-section--alt .bgz-post { background: var(--bgz-bg); }
.bgz-post--featured { border: 2px solid var(--bgz-primary); }
.bgz-post__date { align-self: start; padding: var(--bgz-space-2) var(--bgz-space-1); background: var(--bgz-navy); color: var(--bgz-on-navy); border-radius: var(--bgz-radius-sm); text-align: center; line-height: 1.1; }
.bgz-post__date small { display: block; color: var(--bgz-accent-pale); font-size: var(--bgz-text-xs); letter-spacing: 0.12em; text-transform: uppercase; }
.bgz-post__date b { display: block; font-family: var(--bgz-font-display); font-size: 1.875rem; font-weight: var(--bgz-weight-black); }
.bgz-post__title { margin: 0 0 var(--bgz-space-1); font-size: var(--bgz-text-xl); line-height: 1.2; }
.bgz-post--featured .bgz-post__title { font-size: var(--bgz-display-sm); }
.bgz-post__text { margin: 0; color: var(--bgz-text-muted); white-space: pre-line; }
.bgz-post__text + .bgz-post__text { margin-top: var(--bgz-space-1); }
.bgz-post__body { min-width: 0; color: var(--bgz-text-muted); font-size: var(--bgz-text-body); }
.bgz-post__body img { margin-inline: 0; max-width: min(100%, 26rem); }
.bgz-post__badge { display: inline-block; margin-bottom: var(--bgz-space-2); padding: 0.125rem var(--bgz-space-3); background: var(--bgz-primary); color: var(--bgz-on-primary); border-radius: var(--bgz-radius-full); font-size: var(--bgz-text-xs); font-weight: var(--bgz-weight-black); letter-spacing: 0.1em; text-transform: uppercase; }
.bgz-posts__empty { color: var(--bgz-text-muted); }

.bgz-month { margin: var(--bgz-space-8) 0 0; }
.bgz-month__title { margin: 0 0 var(--bgz-space-3); font-size: var(--bgz-display-sm); }
.bgz-month__title::first-letter { text-transform: uppercase; }

.bgz-years { display: flex; flex-wrap: wrap; gap: var(--bgz-space-2); margin: var(--bgz-space-6) 0 var(--bgz-space-2); }
.bgz-years a { padding: var(--bgz-space-2) var(--bgz-space-5); border: 2px solid var(--bgz-primary); border-radius: var(--bgz-radius-full); color: var(--bgz-primary); font-weight: var(--bgz-weight-bold); text-decoration: none; transition: background-color var(--bgz-transition-slow), color var(--bgz-transition-slow); }
.bgz-years a:hover, .bgz-years a[aria-current="page"] { background: var(--bgz-primary); color: var(--bgz-on-primary); }

/* ── "In het kort" Q&A ── */
.bgz-qa { display: grid; gap: var(--bgz-space-3); max-width: 51.25rem; margin: var(--bgz-space-5) 0 0; }
.bgz-qa > div { padding: var(--bgz-space-3) var(--bgz-space-5); background: var(--bgz-surface); border: 1px solid var(--bgz-border); border-radius: var(--bgz-radius-lg); }
.bgz-qa dt { margin: 0 0 var(--bgz-space-1); color: var(--bgz-navy); font-weight: var(--bgz-weight-bold); }
.bgz-qa dd { margin: 0; color: var(--bgz-text-muted); }

/* ── Contact ── */
.bgz-contact { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 17.5rem), 1fr)); gap: var(--bgz-space-8); margin-top: var(--bgz-space-8); }
.bgz-contact__list { margin: 0; }
.bgz-contact__list dt { margin-top: var(--bgz-space-5); color: var(--bgz-primary); font-family: var(--bgz-font-display); font-size: var(--bgz-text-sm); font-weight: var(--bgz-weight-bold); letter-spacing: 0.12em; text-transform: uppercase; }
.bgz-contact__list dt:first-child { margin-top: 0; }
.bgz-contact__list dd { margin: 0.125rem 0 0; font-size: var(--bgz-text-lg); overflow-wrap: anywhere; }
.bgz-cta-box { min-width: 0; padding: var(--bgz-space-8); background: var(--bgz-navy); color: var(--bgz-on-navy); border-radius: var(--bgz-radius-card); }
.bgz-cta-box__title { margin: 0 0 var(--bgz-space-2); font-size: var(--bgz-display-sm); }
.bgz-cta-box p { margin: 0 0 var(--bgz-space-5); color: var(--bgz-on-navy-muted); }
.bgz-cta-box .bgz-btn { margin: 0 var(--bgz-space-2) var(--bgz-space-3) 0; }

/* ── Invitation band (bottom of home) ── */
.bgz-band { background: var(--bgz-navy); color: var(--bgz-on-navy); }
.bgz-band__inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--bgz-space-5) var(--bgz-space-8); padding-block: var(--bgz-space-10); }
.bgz-band__title { margin: 0 0 var(--bgz-space-2); font-size: var(--bgz-display-md); }
.bgz-band p { margin: 0; color: var(--bgz-on-navy-muted); }
.bgz-band__actions { display: flex; flex-wrap: wrap; gap: var(--bgz-space-3); }

/* ── Footer ── */
.bgz-site-footer { background: var(--bgz-navy); color: var(--bgz-on-navy-muted); font-size: var(--bgz-text-sm); }
.bgz-site-footer__columns { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: var(--bgz-space-8); padding-block: var(--bgz-space-10) var(--bgz-space-6); }
.bgz-site-footer__heading { display: block; margin-bottom: var(--bgz-space-3); color: var(--bgz-on-navy); font-family: var(--bgz-font-display); font-size: var(--bgz-text-xl); letter-spacing: 0.04em; }
.bgz-site-footer p { margin: 0 0 var(--bgz-space-3); }
.bgz-site-footer ul { display: grid; gap: var(--bgz-space-2); margin: 0; padding: 0; list-style: none; }
.bgz-site-footer a { color: var(--bgz-on-navy-muted); text-decoration: none; }
.bgz-site-footer a:hover, .bgz-site-footer a:focus-visible { color: var(--bgz-on-navy); text-decoration: underline; }
.bgz-site-footer__bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--bgz-space-2) var(--bgz-space-6); padding-block: var(--bgz-space-4); border-top: 1px solid var(--bgz-on-navy-line); font-size: var(--bgz-text-xs); }
@media (max-width: 48em) {
    .bgz-site-footer__columns { grid-template-columns: minmax(0, 1fr); gap: var(--bgz-space-6); padding-block: var(--bgz-space-8) var(--bgz-space-4); }
}

/* ── Soft slide-in when blocks scroll into view (enabled by public.js) ── */
.bgz-motion .bgz-reveal { opacity: 0; transform: translateY(1.5rem); transition: opacity 0.7s ease, transform 0.7s ease; }
.bgz-motion .bgz-reveal--in { opacity: 1; transform: none; }

/* ── Phones ── */
@media (max-width: 40em) {
    .bgz-stats__list { gap: var(--bgz-space-2); }
    .bgz-post { grid-template-columns: 4rem minmax(0, 1fr); gap: var(--bgz-space-3); padding: var(--bgz-space-3); }
    .bgz-btn--lg { padding: var(--bgz-space-3) var(--bgz-space-5); }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    .bgz-hero__slide, .bgz-card, .bgz-nav__link, .bgz-nav__submenu, .bgz-nav__sublink { transition: none; }
    .bgz-motion .bgz-reveal { opacity: 1; transform: none; transition: none; }
}
