/* ============================================================================
   Varsity Athletic (Template A) inner sub-pages — Events / Clinics / Teams /
   Facilities / About. Shared chrome (page-header band, CTA strip, footer) +
   the per-page atoms (date blocks, type tags, event rows).

   Scoped under .theme-default so it never touches the kinetic theme or the admin
   shell. Colours come from the per-club brand palette the shell emits
   (--brand-primary / secondary / accent + the paper/muted neutrals); --cm-edge
   (from theme-default.css) keeps content inside the 1440 artboard while section
   backgrounds run full-bleed. Class prefix: vp- (varsity page).
   ============================================================================ */

/* The shell Body slot is normally a centred 1100px column; Varsity sub-pages opt into full-bleed
   (PublicSiteShell FullBleed) so each section's colour runs the full width, content centred by
   the per-section --cm-edge gutter. */
.public-site-shell__body--bleed {
    max-width: none;
    margin: 0;
    padding: 0;
    width: auto;
}

/* Kinetic-only decorations (rendered by the shared components) — hidden on the default theme. */
.public-site-shell .vp-header-marquee,
.public-site-shell .vp-cta__bg { display: none; }

/* Shared typography for the public sub-pages — BOTH themes use Anton for display + JetBrains Mono
   for labels. Un-themed (not .theme-*-scoped) so the kinetic theme's colour/layout overrides don't
   drop the font family; the per-theme rules only set colour, size, and layout. */
.vp-header__title, .vp-sechead__title, .vp-featured__title, .vp-evrow__title, .vp-featured__badge-d,
.vp-roster__name, .vp-roster__group, .vp-roster__wl, .vp-standings__age, .vp-standings__rec,
.vp-fac__name, .vp-fac__index, .vp-glance__num, .vp-facts__num, .vp-tips__num, .vp-tips__title,
.vp-expect__num, .vp-bring__mark, .vp-ccard__title, .vp-icard__title, .vp-date__d, .vp-cta__head,
.vp-cta__bg, .vp-footer__brand-name, .vp-mark, .vp-header-marquee__track {
    font-family: "Anton", system-ui, sans-serif;
    font-weight: 400;
}
.vp-header__crumb, .vp-header__meta, .vp-pill, .vp-filter__label, .vp-date__m, .vp-tag,
.vp-evrow__when, .vp-fac__role, .vp-fac__primary-tag, .vp-fac__addr, .vp-roster__meta,
.vp-roster__streak, .vp-standings__head, .vp-standings__streak, .vp-glance__label, .vp-facts__label,
.vp-note__tag, .vp-ccard__k, .vp-footer__col-title, .vp-featured__badge-m {
    font-family: "JetBrains Mono", ui-monospace, monospace;
}

/* ===== Page-header band — ink hero matching the landing ===== */
.public-site-shell .vp-header {
    position: relative;
    overflow: hidden;
    background: var(--brand-secondary, #0a0a0a);
    color: #f5f1ea;
    padding: clamp(2.25rem, 4vw, 2.75rem) var(--cm-edge) clamp(2.75rem, 5vw, 3.75rem);
}

.public-site-shell .vp-header__watermark {
    position: absolute;
    right: -0.5%;
    top: -16%;
    font-family: "Anton", system-ui, sans-serif;
    font-size: clamp(180px, 26vw, 360px);
    line-height: 0.85;
    letter-spacing: -8px;
    color: var(--brand-primary, #dc2626);
    opacity: 0.08;
    pointer-events: none;
}

.public-site-shell .vp-header__crumb {
    position: relative;
    font-family: "JetBrains Mono", ui-monospace, monospace;
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: rgba(245, 241, 234, 0.55);
    margin-bottom: 1.75rem;
}

.public-site-shell .vp-header__crumb a {
    color: inherit;
    text-decoration: none;
}

.public-site-shell .vp-header__crumb-sep {
    margin: 0 10px;
    color: var(--brand-primary, #dc2626);
}

.public-site-shell .vp-header__grid {
    position: relative;
    display: grid;
    grid-template-columns: 1.25fr 0.9fr;
    gap: clamp(1.5rem, 4vw, 48px);
    align-items: end;
}

.public-site-shell .vp-header__grid--solo {
    grid-template-columns: 1fr;
}

.public-site-shell .vp-header__title {
    margin: 0;
    font-family: "Anton", system-ui, sans-serif;
    font-weight: 400;
    font-size: clamp(3rem, 9vw, 112px);
    line-height: 0.9;
    letter-spacing: -1px;
    text-transform: uppercase;
}

.public-site-shell .vp-header__meta {
    display: flex;
    gap: 28px;
    margin-top: 1.6rem;
    flex-wrap: wrap;
    font-family: "JetBrains Mono", ui-monospace, monospace;
    font-size: 12px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: rgba(245, 241, 234, 0.7);
}

.public-site-shell .vp-header__meta b {
    color: var(--brand-accent, #1aa3d6);
    font-weight: 400;
}

.public-site-shell .vp-header__intro {
    font-size: 18px;
    line-height: 1.55;
    color: rgba(245, 241, 234, 0.8);
    margin: 0;
    padding-bottom: 10px;
}

/* ===== Kicker pill (shared) ===== */
.public-site-shell .vp-pill {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 12px;
    border: 1.5px solid var(--brand-primary, #dc2626);
    border-radius: 999px;
    color: var(--brand-primary, #dc2626);
    font-family: "JetBrains Mono", ui-monospace, monospace;
    font-size: 11px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    font-weight: 500;
    margin-bottom: 1.4rem;
}

/* ===== Filter bar ===== */
.public-site-shell .vp-filter {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    background: #f5f1ea;
    color: #0a0a0a;
    padding: 1.5rem var(--cm-edge);
    border-bottom: 1px solid color-mix(in srgb, #0a0a0a 10%, transparent);
}

.public-site-shell .vp-filter__label {
    font-family: "JetBrains Mono", ui-monospace, monospace;
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #7a7368;
    margin-right: 6px;
}

.public-site-shell .vp-filter__btn {
    cursor: pointer;
    background: transparent;
    color: var(--brand-secondary, #0a0a0a);
    border: 1.5px solid currentColor;
    padding: 9px 18px;
    font-family: "Archivo", system-ui, sans-serif;
    font-weight: 700;
    font-size: 12px;
    letter-spacing: 0.11em;
    text-transform: uppercase;
}

.public-site-shell .vp-filter__btn--tryout { color: var(--brand-primary, #dc2626); }
.public-site-shell .vp-filter__btn--camp { color: var(--brand-accent, #1aa3d6); }

.public-site-shell .vp-filter__btn--on {
    background: currentColor;
}
.public-site-shell .vp-filter__btn--on span { color: #f5f1ea; }

.public-site-shell .vp-filter__count {
    margin-left: auto;
    font-size: 13.5px;
    color: #7a7368;
}

/* ===== Events body ===== */
.public-site-shell .vp-events {
    background: #f5f1ea;
    color: #0a0a0a;
    padding: clamp(3rem, 6vw, 72px) var(--cm-edge) clamp(4rem, 7vw, 96px);
}

/* Featured event — ink card with photo-stripe + date badge */
.public-site-shell .vp-featured {
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    background: var(--brand-secondary, #0a0a0a);
    color: #f5f1ea;
    margin-bottom: 40px;
}

.public-site-shell .vp-featured__body {
    padding: clamp(1.75rem, 4vw, 48px);
}

.public-site-shell .vp-featured__eyebrow {
    display: flex;
    gap: 12px;
    align-items: center;
    margin-bottom: 1.4rem;
    font-family: "JetBrains Mono", ui-monospace, monospace;
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: rgba(245, 241, 234, 0.6);
}

.public-site-shell .vp-featured__title {
    font-family: "Anton", system-ui, sans-serif;
    font-weight: 400;
    font-size: clamp(2.5rem, 5vw, 68px);
    line-height: 0.95;
    letter-spacing: -0.5px;
    text-transform: uppercase;
    margin: 0;
}

.public-site-shell .vp-featured__facts {
    display: flex;
    gap: 28px;
    margin-top: 1.4rem;
    flex-wrap: wrap;
    font-size: 15.5px;
    color: rgba(245, 241, 234, 0.85);
}

.public-site-shell .vp-featured__facts b { color: #f5f1ea; font-weight: 700; }

.public-site-shell .vp-featured__desc {
    font-size: 16px;
    line-height: 1.6;
    color: rgba(245, 241, 234, 0.78);
    margin: 1.4rem 0 0;
    max-width: 520px;
}

.public-site-shell .vp-featured__photo {
    position: relative;
    background: repeating-linear-gradient(135deg,
        var(--brand-primary, #dc2626) 0 14px,
        color-mix(in srgb, var(--brand-primary, #dc2626) 86%, black) 14px 28px);
    min-height: 240px;
}

.public-site-shell .vp-featured__badge {
    position: absolute;
    top: 24px;
    right: 24px;
    width: 92px;
    height: 92px;
    background: #f5f1ea;
    color: #0a0a0a;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border-top: 5px solid var(--brand-primary, #dc2626);
}
.public-site-shell .vp-featured__badge-m {
    font-family: "JetBrains Mono", ui-monospace, monospace;
    font-size: 12px;
    letter-spacing: 0.12em;
    color: var(--brand-primary, #dc2626);
}
.public-site-shell .vp-featured__badge-d {
    font-family: "Anton", system-ui, sans-serif;
    font-size: 42px;
    line-height: 1;
}

/* Event list — bordered rows with date blocks */
.public-site-shell .vp-evlist {
    border: 1px solid color-mix(in srgb, #0a0a0a 10%, transparent);
}

.public-site-shell .vp-evrow {
    display: grid;
    grid-template-columns: 84px minmax(0, 1fr) auto;
    gap: 28px;
    align-items: center;
    padding: 1.75rem 2rem;
    border-bottom: 1px solid color-mix(in srgb, #0a0a0a 8%, transparent);
    background: #f5f1ea;
}
.public-site-shell .vp-evrow:last-child { border-bottom: 0; }

.public-site-shell .vp-evrow__head {
    display: flex;
    gap: 10px;
    align-items: center;
    margin-bottom: 10px;
    flex-wrap: wrap;
}

.public-site-shell .vp-evrow__when {
    font-size: 13px;
    color: #7a7368;
    font-family: "JetBrains Mono", ui-monospace, monospace;
    letter-spacing: 0.03em;
}

.public-site-shell .vp-evrow__title {
    font-family: "Anton", system-ui, sans-serif;
    font-weight: 400;
    font-size: 30px;
    line-height: 1;
    letter-spacing: 0.3px;
    text-transform: uppercase;
    margin: 0;
}

.public-site-shell .vp-evrow__desc {
    font-size: 14.5px;
    line-height: 1.55;
    color: #7a7368;
    margin: 10px 0 0;
    max-width: 720px;
}

.public-site-shell .vp-evrow__cta { justify-self: end; }

.public-site-shell .vp-empty {
    padding: 3.5rem 2rem;
    text-align: center;
    color: #7a7368;
    font-size: 16px;
}

/* ===== Date block atom ===== */
.public-site-shell .vp-date {
    width: 84px;
    height: 84px;
    flex-shrink: 0;
    background: var(--brand-secondary, #0a0a0a);
    color: #f5f1ea;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border-top: 4px solid var(--vp-accent, var(--brand-primary, #dc2626));
}
.public-site-shell .vp-date__m {
    font-family: "JetBrains Mono", ui-monospace, monospace;
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--vp-accent, var(--brand-primary, #dc2626));
}
.public-site-shell .vp-date__d {
    font-family: "Anton", system-ui, sans-serif;
    font-size: 36px;
    line-height: 1;
}

/* ===== Type tag atom ===== */
.public-site-shell .vp-tag {
    display: inline-flex;
    align-items: center;
    color: var(--vp-accent, var(--brand-primary, #dc2626));
    border: 1.5px solid currentColor;
    padding: 5px 11px;
    font-family: "JetBrains Mono", ui-monospace, monospace;
    font-size: 10.5px;
    letter-spacing: 0.13em;
    text-transform: uppercase;
    font-weight: 600;
}
.public-site-shell .vp-tag--solid {
    background: currentColor;
}
.public-site-shell .vp-tag--solid span { color: #f5f1ea; }

/* ===== Underline accent link atom ===== */
.public-site-shell .vp-link,
.public-site-shell .vp-link:link,
.public-site-shell .vp-link:visited {
    color: var(--vp-accent, var(--brand-primary, #dc2626));
    text-decoration: none;
    font-weight: 700;
    font-size: 12px;
    letter-spacing: 0.13em;
    text-transform: uppercase;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    border-bottom: 2px solid currentColor;
    padding-bottom: 4px;
    white-space: nowrap;
}

/* ===== "Members only" note ===== */
.public-site-shell .vp-note {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-top: 40px;
    background: color-mix(in srgb, #0a0a0a 4%, #f5f1ea);
    border: 1px solid color-mix(in srgb, #0a0a0a 12%, transparent);
    border-left: 4px solid var(--brand-accent, #1aa3d6);
    padding: 1.1rem 1.4rem;
}
.public-site-shell .vp-note__tag {
    flex-shrink: 0;
    font-family: "JetBrains Mono", ui-monospace, monospace;
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--brand-accent, #1aa3d6);
}
.public-site-shell .vp-note__text { font-size: 14.5px; color: #0a0a0a; line-height: 1.5; }
.public-site-shell .vp-note__text a { color: #0a0a0a; font-weight: 700; }

/* ===== CTA strip ===== */
.public-site-shell .vp-cta {
    background: var(--brand-primary, #dc2626);
    color: #f5f1ea;
    padding: clamp(2rem, 4vw, 48px) var(--cm-edge);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 40px;
    flex-wrap: wrap;
}
.public-site-shell .vp-cta__head {
    font-family: "Anton", system-ui, sans-serif;
    font-weight: 400;
    font-size: clamp(2rem, 4vw, 52px);
    line-height: 0.95;
    letter-spacing: -0.5px;
    text-transform: uppercase;
}
.public-site-shell .vp-cta__right {
    display: flex;
    align-items: center;
    gap: 18px;
    flex-wrap: wrap;
}
.public-site-shell .vp-cta__phone { font-size: 15px; color: rgba(245, 241, 234, 0.85); }
.public-site-shell .vp-cta__phone b { color: #f5f1ea; }
.public-site-shell .vp-cta__btn,
.public-site-shell .vp-cta__btn:link,
.public-site-shell .vp-cta__btn:visited {
    background: #f5f1ea;
    color: var(--brand-secondary, #0a0a0a);
    padding: 16px 26px;
    font-family: "Archivo", system-ui, sans-serif;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    font-size: 14px;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 12px;
}

/* ===== Footer ===== */
.public-site-shell .vp-footer {
    background: var(--brand-secondary, #0a0a0a);
    color: #f5f1ea;
    padding: clamp(3rem, 6vw, 72px) var(--cm-edge) 2.5rem;
}
.public-site-shell .vp-footer__grid {
    display: grid;
    grid-template-columns: 1.4fr 1fr 1fr 1fr;
    gap: 40px;
}
.public-site-shell .vp-footer__brand {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 1.1rem;
    text-decoration: none;
    color: #f5f1ea;
}
.public-site-shell .vp-footer__brand-name {
    font-family: "Anton", system-ui, sans-serif;
    font-size: 24px;
    letter-spacing: 1px;
    text-transform: uppercase;
}
.public-site-shell .vp-footer__blurb {
    font-size: 13.5px;
    line-height: 1.55;
    color: rgba(245, 241, 234, 0.6);
    max-width: 340px;
    margin: 0;
}
.public-site-shell .vp-footer__col-title {
    font-family: "JetBrains Mono", ui-monospace, monospace;
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #7a7368;
    margin-bottom: 1.1rem;
}
.public-site-shell .vp-footer__col--portal .vp-footer__col-title { color: var(--brand-primary, #dc2626); }
.public-site-shell .vp-footer__links {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 10px;
}
.public-site-shell .vp-footer__links a {
    color: rgba(245, 241, 234, 0.85);
    text-decoration: none;
    font-size: 14px;
    font-weight: 500;
}
.public-site-shell .vp-footer__bar {
    margin-top: 3.5rem;
    padding-top: 1.75rem;
    border-top: 1px solid rgba(245, 241, 234, 0.12);
    display: flex;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    font-family: "JetBrains Mono", ui-monospace, monospace;
    font-size: 12px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #7a7368;
}
.public-site-shell .vp-footer__values { display: flex; gap: 16px; flex-wrap: wrap; }

/* The CSS-only brand mark (logo placeholder) reused in nav/footer. */
.public-site-shell .vp-mark {
    width: 36px;
    height: 36px;
    flex-shrink: 0;
    background: #f5f1ea;
    color: var(--brand-secondary, #0a0a0a);
    display: grid;
    place-items: center;
    font-family: "Anton", system-ui, sans-serif;
    font-size: 18px;
    letter-spacing: -1px;
    position: relative;
}
.public-site-shell .vp-mark::after {
    content: "";
    position: absolute;
    right: -4px;
    top: -4px;
    width: 10px;
    height: 10px;
    background: var(--brand-primary, #dc2626);
}

/* ===== Section head (paper/ink sections below the page header) ===== */
.public-site-shell .vp-sechead {
    margin-bottom: clamp(2rem, 4vw, 48px);
    max-width: 900px;
}
.public-site-shell .vp-sechead__title {
    font-family: "Anton", system-ui, sans-serif;
    font-weight: 400;
    font-size: clamp(2.25rem, 6vw, 72px);
    line-height: 0.94;
    letter-spacing: -0.5px;
    text-transform: uppercase;
    margin: 0.5rem 0 0;
}
.public-site-shell .vp-sechead--light .vp-sechead__title { color: #f5f1ea; }
.public-site-shell .vp-sechead__blurb {
    font-size: 16.5px;
    line-height: 1.55;
    color: #7a7368;
    max-width: 520px;
    margin: 1rem 0 0;
}
.public-site-shell .vp-sechead--light .vp-sechead__blurb { color: rgba(245, 241, 234, 0.78); }

/* ===== Facilities — photo + detail cards ===== */
.public-site-shell .vp-fac {
    background: #f5f1ea;
    color: #0a0a0a;
    padding: clamp(3rem, 6vw, 88px) var(--cm-edge);
}
.public-site-shell .vp-fac__list { display: grid; gap: 28px; }
.public-site-shell .vp-fac__card {
    display: grid;
    grid-template-columns: minmax(0, 440px) minmax(0, 1fr);
    background: #f5f1ea;
    color: #0a0a0a;
    border: 1px solid color-mix(in srgb, #0a0a0a 10%, transparent);
}
.public-site-shell .vp-fac__card--primary {
    background: var(--brand-secondary, #0a0a0a);
    color: #f5f1ea;
    border: 0;
}
.public-site-shell .vp-fac__photo {
    min-height: 240px;
    position: relative;
    background: repeating-linear-gradient(135deg,
        color-mix(in srgb, #0a0a0a 6%, #f5f1ea) 0 14px,
        color-mix(in srgb, #0a0a0a 12%, #f5f1ea) 14px 28px);
}
.public-site-shell .vp-fac__card--primary .vp-fac__photo {
    background: repeating-linear-gradient(135deg,
        var(--brand-primary, #dc2626) 0 14px,
        color-mix(in srgb, var(--brand-primary, #dc2626) 86%, black) 14px 28px);
}
.public-site-shell .vp-fac__photo-cap {
    position: absolute;
    left: 16px;
    bottom: 14px;
    font-family: "JetBrains Mono", ui-monospace, monospace;
    font-size: 11px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    opacity: 0.75;
}
.public-site-shell .vp-fac__card--primary .vp-fac__photo-cap { color: #f5f1ea; }
.public-site-shell .vp-fac__body {
    padding: clamp(1.5rem, 3vw, 40px);
    display: flex;
    flex-direction: column;
}
.public-site-shell .vp-fac__head { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.public-site-shell .vp-fac__primary-tag {
    font-family: "JetBrains Mono", ui-monospace, monospace;
    font-size: 11px;
    letter-spacing: 0.13em;
    text-transform: uppercase;
    color: rgba(245, 241, 234, 0.6);
}
.public-site-shell .vp-fac__name {
    font-family: "Anton", system-ui, sans-serif;
    font-weight: 400;
    font-size: clamp(2rem, 4vw, 48px);
    line-height: 0.95;
    letter-spacing: 0.3px;
    text-transform: uppercase;
    margin: 0;
}
.public-site-shell .vp-fac__addr {
    font-size: 14.5px;
    margin-top: 12px;
    font-family: "JetBrains Mono", ui-monospace, monospace;
    color: #7a7368;
}
.public-site-shell .vp-fac__card--primary .vp-fac__addr { color: rgba(245, 241, 234, 0.8); }
.public-site-shell .vp-fac__note {
    font-size: 14.5px;
    line-height: 1.55;
    margin: auto 0 0;
    padding-top: 18px;
    color: #7a7368;
    border-top: 1px solid color-mix(in srgb, #0a0a0a 10%, transparent);
}
.public-site-shell .vp-fac__card--primary .vp-fac__note {
    color: rgba(245, 241, 234, 0.78);
    border-top-color: rgba(245, 241, 234, 0.16);
}
.public-site-shell .vp-fac__note b { color: #0a0a0a; }
.public-site-shell .vp-fac__card--primary .vp-fac__note b { color: #f5f1ea; }
.public-site-shell .vp-fac__note a {
    color: var(--brand-primary, #dc2626);
    font-weight: 700;
    text-decoration: underline;
    white-space: nowrap;
}
.public-site-shell .vp-fac__card--primary .vp-fac__note a { color: #f5f1ea; }

/* ===== Game-day tips (ink) ===== */
.public-site-shell .vp-tips {
    background: var(--brand-secondary, #0a0a0a);
    color: #f5f1ea;
    padding: clamp(3rem, 6vw, 88px) var(--cm-edge);
}
.public-site-shell .vp-tips__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border: 1px solid rgba(245, 241, 234, 0.16);
}
.public-site-shell .vp-tips__cell {
    padding: 2rem 1.75rem 2.25rem;
    border-right: 1px solid rgba(245, 241, 234, 0.16);
}
.public-site-shell .vp-tips__cell:last-child { border-right: 0; }
.public-site-shell .vp-tips__num {
    font-family: "Anton", system-ui, sans-serif;
    font-size: 30px;
    line-height: 1;
    color: var(--brand-primary, #dc2626);
    margin-bottom: 14px;
}
.public-site-shell .vp-tips__cell:nth-child(2) .vp-tips__num { color: var(--brand-accent, #1aa3d6); }
.public-site-shell .vp-tips__title {
    font-family: "Anton", system-ui, sans-serif;
    font-size: 26px;
    letter-spacing: 0.3px;
    text-transform: uppercase;
}
.public-site-shell .vp-tips__text {
    font-size: 14.5px;
    line-height: 1.55;
    color: rgba(245, 241, 234, 0.75);
    margin: 10px 0 0;
}

/* ===== Clinics — what to expect / what to bring ===== */
.public-site-shell .vp-clinic-info {
    background: #f5f1ea;
    color: #0a0a0a;
    padding: clamp(3rem, 6vw, 96px) var(--cm-edge);
}
.public-site-shell .vp-clinic-info__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(2rem, 4vw, 56px);
}

/* "What to expect" — numbered list */
.public-site-shell .vp-expect { border-top: 2px solid var(--brand-secondary, #0a0a0a); }
.public-site-shell .vp-expect__row {
    display: grid;
    grid-template-columns: 48px 1fr;
    gap: 18px;
    padding: 22px 0;
    border-bottom: 1px solid color-mix(in srgb, #0a0a0a 10%, transparent);
}
.public-site-shell .vp-expect__num {
    font-family: "Anton", system-ui, sans-serif;
    font-size: 30px;
    line-height: 1;
    color: var(--brand-primary, #dc2626);
}
.public-site-shell .vp-expect__title { font-weight: 700; font-size: 17px; }
.public-site-shell .vp-expect__text { font-size: 14.5px; line-height: 1.55; color: #7a7368; margin: 6px 0 0; }

/* "What to bring" — ink card */
.public-site-shell .vp-bring {
    background: var(--brand-secondary, #0a0a0a);
    color: #f5f1ea;
    padding: clamp(1.5rem, 3vw, 36px);
}
.public-site-shell .vp-bring__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 18px; }
.public-site-shell .vp-bring__item { display: grid; grid-template-columns: 24px 1fr; gap: 14px; }
.public-site-shell .vp-bring__mark {
    color: var(--brand-primary, #dc2626);
    font-family: "Anton", system-ui, sans-serif;
    font-size: 22px;
    line-height: 1;
}
.public-site-shell .vp-bring__title { font-weight: 700; font-size: 16px; }
.public-site-shell .vp-bring__text { font-size: 14px; line-height: 1.5; color: rgba(245, 241, 234, 0.72); margin: 4px 0 0; }
.public-site-shell .vp-bring__note {
    margin-top: 30px;
    padding-top: 24px;
    border-top: 1px solid rgba(245, 241, 234, 0.16);
    font-size: 14px;
    color: rgba(245, 241, 234, 0.8);
}
.public-site-shell .vp-bring__note a { color: #f5f1ea; font-weight: 700; text-decoration: underline; }

/* Note under the clinic schedule */
.public-site-shell .vp-clinic-note { margin-top: 28px; font-size: 14px; color: rgba(245, 241, 234, 0.65); }
.public-site-shell .vp-clinic-note b { color: #f5f1ea; }

/* ===== Teams — "how to join" band ===== */
.public-site-shell .vp-join {
    background: #f5f1ea;
    color: #0a0a0a;
    padding: clamp(3rem, 6vw, 72px) var(--cm-edge);
    border-bottom: 1px solid color-mix(in srgb, #0a0a0a 10%, transparent);
}
.public-site-shell .vp-join__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(2rem, 4vw, 56px);
    align-items: center;
}
.public-site-shell .vp-join__text { font-size: 17px; line-height: 1.6; margin: 0 0 18px; max-width: 560px; }
.public-site-shell .vp-join__ctas { display: flex; gap: 14px; flex-wrap: wrap; align-items: center; }

.public-site-shell .vp-btn,
.public-site-shell .vp-btn:link,
.public-site-shell .vp-btn:visited {
    background: var(--brand-primary, #dc2626);
    color: #f5f1ea;
    padding: 16px 24px;
    font-family: "Archivo", system-ui, sans-serif;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    font-size: 13px;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 10px;
}
.public-site-shell .vp-btn-link,
.public-site-shell .vp-btn-link:link,
.public-site-shell .vp-btn-link:visited {
    color: var(--brand-secondary, #0a0a0a);
    padding: 16px 4px;
    font-family: "Archivo", system-ui, sans-serif;
    font-weight: 700;
    letter-spacing: 0.11em;
    text-transform: uppercase;
    font-size: 13px;
    text-decoration: none;
    border-bottom: 2px solid var(--brand-secondary, #0a0a0a);
}

.public-site-shell .vp-facts {
    display: grid;
    grid-template-columns: 1fr 1fr;
    border: 1px solid color-mix(in srgb, #0a0a0a 10%, transparent);
}
.public-site-shell .vp-facts__cell {
    padding: 26px 24px;
    border-right: 1px solid color-mix(in srgb, #0a0a0a 10%, transparent);
    border-bottom: 1px solid color-mix(in srgb, #0a0a0a 10%, transparent);
}
.public-site-shell .vp-facts__cell:nth-child(2n) { border-right: 0; }
.public-site-shell .vp-facts__cell:nth-last-child(-n+2) { border-bottom: 0; }
.public-site-shell .vp-facts__num { font-family: "Anton", system-ui, sans-serif; font-size: 34px; line-height: 1; }
.public-site-shell .vp-facts__label {
    font-family: "JetBrains Mono", ui-monospace, monospace;
    font-size: 11px;
    letter-spacing: 0.13em;
    text-transform: uppercase;
    color: #7a7368;
    margin-top: 10px;
}

/* ===== Teams — roster cards ===== */
.public-site-shell .vp-roster {
    background: #f5f1ea;
    color: #0a0a0a;
    padding: clamp(3rem, 6vw, 96px) var(--cm-edge);
}
.public-site-shell .vp-roster__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.public-site-shell .vp-roster__card {
    background: #f5f1ea;
    border: 1px solid color-mix(in srgb, #0a0a0a 10%, transparent);
    display: flex;
    flex-direction: column;
}
.public-site-shell .vp-roster__card--dark { background: var(--brand-secondary, #0a0a0a); color: #f5f1ea; border: 0; }
.public-site-shell .vp-roster__photo {
    aspect-ratio: 16 / 10;
    position: relative;
    background: repeating-linear-gradient(135deg,
        color-mix(in srgb, #0a0a0a 6%, #f5f1ea) 0 14px,
        color-mix(in srgb, #0a0a0a 12%, #f5f1ea) 14px 28px);
}
.public-site-shell .vp-roster__card--dark .vp-roster__photo {
    background: repeating-linear-gradient(135deg,
        var(--brand-primary, #dc2626) 0 14px,
        color-mix(in srgb, var(--brand-primary, #dc2626) 86%, black) 14px 28px);
}
.public-site-shell .vp-roster__cap {
    position: absolute; left: 14px; bottom: 12px;
    font-family: "JetBrains Mono", ui-monospace, monospace; font-size: 10.5px;
    letter-spacing: 0.04em; text-transform: uppercase; opacity: 0.75;
}
.public-site-shell .vp-roster__card--dark .vp-roster__cap { color: #f5f1ea; }
.public-site-shell .vp-roster__body { padding: 26px 26px 28px; flex: 1; display: flex; flex-direction: column; }
.public-site-shell .vp-roster__top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; gap: 10px; }
.public-site-shell .vp-roster__group { font-family: "Anton", system-ui, sans-serif; font-size: 30px; line-height: 1; color: var(--brand-primary, #dc2626); }
.public-site-shell .vp-roster__name { font-family: "Anton", system-ui, sans-serif; font-size: 26px; line-height: 1; letter-spacing: 0.3px; text-transform: uppercase; }
.public-site-shell .vp-roster__meta { font-size: 13.5px; margin-top: 8px; font-family: "JetBrains Mono", ui-monospace, monospace; color: #7a7368; }
.public-site-shell .vp-roster__card--dark .vp-roster__meta { color: rgba(245, 241, 234, 0.7); }
.public-site-shell .vp-roster__record {
    display: flex; gap: 20px; margin-top: 18px; padding-top: 16px;
    border-top: 1px solid color-mix(in srgb, #0a0a0a 10%, transparent);
    align-items: baseline;
}
.public-site-shell .vp-roster__card--dark .vp-roster__record { border-top-color: rgba(245, 241, 234, 0.16); }
.public-site-shell .vp-roster__wl { font-family: "Anton", system-ui, sans-serif; font-size: 28px; line-height: 1; }
.public-site-shell .vp-roster__wl span { color: #7a7368; font-size: 20px; }
.public-site-shell .vp-roster__streak { font-size: 12px; color: #7a7368; font-family: "JetBrains Mono", ui-monospace, monospace; letter-spacing: 0.06em; }
.public-site-shell .vp-roster__view { margin-top: 20px; }

/* ===== Teams — standings table ===== */
.public-site-shell .vp-standings {
    background: var(--brand-secondary, #0a0a0a);
    color: #f5f1ea;
    padding: clamp(3rem, 6vw, 96px) var(--cm-edge);
}
.public-site-shell .vp-standings__table { border: 1px solid rgba(245, 241, 234, 0.16); }
.public-site-shell .vp-standings__head,
.public-site-shell .vp-standings__row {
    display: grid;
    grid-template-columns: 80px minmax(0, 1fr) 120px 100px 120px;
    align-items: center;
    padding: 18px 28px;
    gap: 12px;
}
.public-site-shell .vp-standings__head {
    border-bottom: 1px solid rgba(245, 241, 234, 0.16);
    font-family: "JetBrains Mono", ui-monospace, monospace;
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #7a7368;
}
.public-site-shell .vp-standings__row { border-bottom: 1px solid rgba(245, 241, 234, 0.1); }
.public-site-shell .vp-standings__row:last-child { border-bottom: 0; }
.public-site-shell .vp-standings__age { font-family: "Anton", system-ui, sans-serif; font-size: 26px; line-height: 1; color: var(--brand-primary, #dc2626); }
.public-site-shell .vp-standings__team { font-weight: 700; font-size: 16px; }
.public-site-shell .vp-standings__rec { font-family: "Anton", system-ui, sans-serif; font-size: 22px; line-height: 1; }
.public-site-shell .vp-standings__pct { font-size: 15px; color: rgba(245, 241, 234, 0.85); }
.public-site-shell .vp-standings__streak { font-family: "JetBrains Mono", ui-monospace, monospace; font-size: 13px; font-weight: 700; color: #7a7368; }
.public-site-shell .vp-standings__streak--w { color: var(--brand-accent, #1aa3d6); }

/* ===== About — mission + at-a-glance ===== */
.public-site-shell .vp-mission {
    background: #f5f1ea;
    color: #0a0a0a;
    padding: clamp(3rem, 6vw, 96px) var(--cm-edge);
}
.public-site-shell .vp-mission__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(2rem, 4vw, 56px);
    align-items: center;
}
.public-site-shell .vp-mission__lead { font-size: 18px; line-height: 1.65; margin: 0 0 18px; max-width: 560px; }
.public-site-shell .vp-mission__body { font-size: 16px; line-height: 1.65; color: #7a7368; margin: 0; max-width: 560px; }
.public-site-shell .vp-mission__photo {
    aspect-ratio: 4 / 3;
    position: relative;
    background: repeating-linear-gradient(135deg,
        var(--brand-primary, #dc2626) 0 14px,
        color-mix(in srgb, var(--brand-primary, #dc2626) 86%, black) 14px 28px);
    outline: 8px solid var(--brand-secondary, #0a0a0a);
    outline-offset: -8px;
}
.public-site-shell .vp-mission__cap {
    position: absolute; left: 16px; bottom: 14px;
    font-family: "JetBrains Mono", ui-monospace, monospace; font-size: 11px;
    letter-spacing: 0.04em; text-transform: uppercase; opacity: 0.75; color: #f5f1ea;
}
.public-site-shell .vp-glance {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    margin-top: clamp(2.5rem, 5vw, 64px);
    border-top: 2px solid var(--brand-secondary, #0a0a0a);
}
.public-site-shell .vp-glance__cell { padding: 32px 24px; border-right: 1px solid color-mix(in srgb, #0a0a0a 10%, transparent); }
.public-site-shell .vp-glance__cell:last-child { border-right: 0; }
.public-site-shell .vp-glance__num { font-family: "Anton", system-ui, sans-serif; font-size: clamp(2.5rem, 5vw, 64px); line-height: 0.9; }
.public-site-shell .vp-glance__label {
    font-family: "JetBrains Mono", ui-monospace, monospace;
    font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: #7a7368; margin-top: 12px;
}

/* ===== About — contact + info cards ===== */
.public-site-shell .vp-about-contact { background: #f5f1ea; padding: 0 var(--cm-edge) clamp(4rem, 7vw, 96px); }
.public-site-shell .vp-about-contact__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.public-site-shell .vp-ccard { background: var(--brand-secondary, #0a0a0a); color: #f5f1ea; padding: clamp(1.75rem, 4vw, 40px); }
.public-site-shell .vp-ccard__title {
    font-family: "Anton", system-ui, sans-serif; font-size: clamp(2rem, 4vw, 44px);
    line-height: 0.95; letter-spacing: 0.3px; text-transform: uppercase; margin: 0;
}
.public-site-shell .vp-ccard__rows { margin-top: 26px; display: grid; gap: 16px; }
.public-site-shell .vp-ccard__row { display: grid; grid-template-columns: 130px 1fr; gap: 12px; align-items: baseline; }
.public-site-shell .vp-ccard__k {
    font-family: "JetBrains Mono", ui-monospace, monospace; font-size: 11px;
    letter-spacing: 0.14em; text-transform: uppercase; color: rgba(245, 241, 234, 0.55);
}
.public-site-shell .vp-ccard__v { font-size: 17px; font-weight: 600; }
.public-site-shell .vp-ccard__v a { color: #f5f1ea; text-decoration: none; border-bottom: 2px solid var(--brand-primary, #dc2626); }
.public-site-shell .vp-icard {
    border: 1px solid color-mix(in srgb, #0a0a0a 10%, transparent);
    padding: clamp(1.75rem, 4vw, 40px);
    color: #0a0a0a;
    display: flex;
    flex-direction: column;
}
.public-site-shell .vp-icard__title {
    font-family: "Anton", system-ui, sans-serif; font-size: clamp(2rem, 4vw, 44px);
    line-height: 0.95; letter-spacing: 0.3px; text-transform: uppercase; margin: 0; color: #0a0a0a;
}
.public-site-shell .vp-icard__text { font-size: 15.5px; line-height: 1.6; color: #7a7368; margin: 22px 0 0; }

/* ===== About — staff cards ===== */
.public-site-shell .vp-staff { background: #f5f1ea; padding: clamp(3rem, 6vw, 80px) var(--cm-edge); }
.public-site-shell .vp-staff__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 28px;
    margin-top: clamp(1.5rem, 3vw, 36px);
}
.public-site-shell .vp-staff__card {
    border: 1px solid color-mix(in srgb, #0a0a0a 10%, transparent);
    background: #fff;
    display: flex;
    flex-direction: column;
}
.public-site-shell .vp-staff__photo { aspect-ratio: 1 / 1; background-size: cover; background-position: center; }
.public-site-shell .vp-staff__photo--placeholder {
    display: flex; align-items: center; justify-content: center;
    background: repeating-linear-gradient(135deg,
        var(--brand-primary, #dc2626) 0 14px,
        color-mix(in srgb, var(--brand-primary, #dc2626) 86%, black) 14px 28px);
}
.public-site-shell .vp-staff__initials {
    font-family: "Anton", system-ui, sans-serif; font-size: clamp(2.5rem, 5vw, 56px);
    color: #f5f1ea; letter-spacing: 1px;
}
.public-site-shell .vp-staff__body { padding: clamp(1.25rem, 2.5vw, 26px); display: flex; flex-direction: column; }
.public-site-shell .vp-staff__role {
    font-family: "JetBrains Mono", ui-monospace, monospace;
    font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase;
    color: var(--brand-primary, #dc2626); margin-bottom: 10px;
}
.public-site-shell .vp-staff__name {
    font-family: "Anton", system-ui, sans-serif; font-size: clamp(1.5rem, 3vw, 28px);
    line-height: 0.95; letter-spacing: 0.3px; text-transform: uppercase; margin: 0; color: #0a0a0a;
}
.public-site-shell .vp-staff__bio { font-size: 15px; line-height: 1.6; color: #7a7368; margin: 14px 0 0; }

/* ===== Responsive ===== */
@media (max-width: 900px) {
    .public-site-shell .vp-mission__grid { grid-template-columns: 1fr; }
    .public-site-shell .vp-glance { grid-template-columns: 1fr 1fr; }
    .public-site-shell .vp-glance__cell:nth-child(2n) { border-right: 0; }
    .public-site-shell .vp-about-contact__grid { grid-template-columns: 1fr; }
    .public-site-shell .vp-header__grid { grid-template-columns: 1fr; align-items: start; }
    .public-site-shell .vp-featured { grid-template-columns: 1fr; }
    .public-site-shell .vp-footer__grid { grid-template-columns: 1fr 1fr; }
    .public-site-shell .vp-fac__card { grid-template-columns: 1fr; }
    .public-site-shell .vp-tips__grid { grid-template-columns: 1fr; }
    .public-site-shell .vp-tips__cell { border-right: 0; border-bottom: 1px solid rgba(245, 241, 234, 0.16); }
    .public-site-shell .vp-clinic-info__grid { grid-template-columns: 1fr; }
    .public-site-shell .vp-join__grid { grid-template-columns: 1fr; }
    .public-site-shell .vp-roster__grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
    .public-site-shell .vp-roster__grid { grid-template-columns: 1fr; }
    .public-site-shell .vp-standings__head { display: none; }
    .public-site-shell .vp-standings__row { grid-template-columns: 64px 1fr auto; row-gap: 4px; }
    .public-site-shell .vp-standings__row > :nth-child(3) { display: none; }
}

@media (max-width: 620px) {
    .public-site-shell .vp-evrow { grid-template-columns: 64px minmax(0, 1fr); }
    .public-site-shell .vp-evrow__cta { grid-column: 2; justify-self: start; margin-top: 12px; }
    .public-site-shell .vp-cta { flex-direction: column; align-items: flex-start; }
    .public-site-shell .vp-footer__grid { grid-template-columns: 1fr; }
    .public-site-shell .vp-footer__bar { flex-direction: column; }
}
