/* Volleyball Site — one club chrome (paper + navy). No remote CDNs. */
:root,
html,
body,
.vball-admin,
body.vball-admin,
.vball-family,
body.vball-family,
body.is-family-app {
	--vball-navy: #0a1628;
	--vball-accent: #0a1628;
	--vball-ink: #1d2327;
	--vball-text: #1d2327;
	--vball-muted: #646970;
	--vball-bg: #f6f7f7;
	--vball-card: #fff;
	--vball-paper: #fff;
	--vball-wash: #f6f7f7;
	--vball-line: #dcdcde;
	--vball-footer: #0a1628;
	--navy: var(--vball-navy);
	--accent: var(--vball-navy);
	--bg: var(--vball-bg);
	--card: var(--vball-card);
	--ink: var(--vball-ink);
	--text: var(--vball-text);
	--muted: var(--vball-muted);
	--vball-league: #2e6da4;
	--vball-lessons: #3d8b6e;
	--vball-mini: #e07a3d;
	--vball-club: #0a1628;
	--vball-opengym: #7b4ea3;
	--vball-open: #7b4ea3;
	--vball-radius: 12px;
	--vball-shadow: 0 1px 2px rgba(10, 22, 40, .06);
	--vball-header: 72px;
	--vball-container: 1180px;
	--vball-font: system-ui, -apple-system, "Segoe UI", "Helvetica Neue", Arial, sans-serif;
	--vball-tap: 44px;
	--safe-b: env(safe-area-inset-bottom, 0px);
	--safe-t: env(safe-area-inset-top, 0px);
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--vball-wash, var(--vball-bg)); }
html, body {
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	max-width: none !important;
	width: 100% !important;
	min-height: 100%;
	--wp--style--global--content-size: 100%;
	--wp--style--global--wide-size: 100%;
	--wp--style--root--padding: 0px;
	--wp--style--root--padding-top: 0px;
	--wp--style--root--padding-right: 0px;
	--wp--style--root--padding-bottom: 0px;
	--wp--style--root--padding-left: 0px;
}
.has-global-padding,
.wp-site-blocks,
.is-root-container,
.wp-container-core-group-is-layout-constrained {
	padding: 0 !important;
	margin: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	max-width: none !important;
	width: 100% !important;
}
/* WP layout CSS (is-layout-constrained) boxed the whole site at ~760px. */
body.is-layout-constrained,
body.is-layout-flow,
body.is-layout-flex,
body.is-layout-grid,
.wp-site-blocks,
.wp-site-blocks > *,
body > .announce,
body > .site-header,
body > .site-main,
body > .site-footer,
body > .mobile-drawer,
.site-header, .announce, .hero, .page-hero, .site-main, .site-footer, .mobile-drawer {
	max-width: none !important;
	width: 100% !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	float: none !important;
}
body.is-layout-constrained > *,
body.is-layout-flow > *,
.is-layout-constrained > *:not(.alignleft):not(.alignright),
.is-layout-constrained > .alignfull {
	max-width: none !important;
	width: 100% !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}
body {
	font-family: var(--vball-font);
	color: var(--vball-ink);
	background: var(--vball-wash, var(--vball-bg));
	line-height: 1.5; font-size: 1.0625rem;
	padding-bottom: var(--safe-b);
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--vball-navy); }
a:hover { color: #1a2c4a; }
:focus-visible { outline: 3px solid var(--vball-navy); outline-offset: 3px; }
.skip-link {
	position: absolute; left: -999px; top: 0; z-index: 10000;
	background: var(--vball-navy); color: #fff; padding: 0.6rem 1rem;
}
.skip-link:focus { left: 0.5rem; top: 0.5rem; }
.screen-reader-text {
	clip: rect(1px,1px,1px,1px); position: absolute; height: 1px; width: 1px; overflow: hidden;
}
.wrap { width: min(var(--vball-container), calc(100% - 2rem)); margin-inline: auto; overflow-x: clip; max-width: 100%; }
.section { padding: 4.25rem 0; }
.section-head { margin-bottom: 2rem; }
.eyebrow, .kicker {
	text-transform: uppercase; letter-spacing: 0.12em; font-size: 0.75rem; font-weight: 700; color: var(--vball-muted); margin: 0 0 0.4rem;
}
h1, h2, h3 { font-weight: 750; letter-spacing: -0.03em; color: var(--vball-ink); line-height: 1.15; }
h1 { font-size: clamp(2.35rem, 6.5vw, 4.1rem); }
h2 { font-size: clamp(1.75rem, 3.4vw, 2.5rem); }
.lead { font-size: clamp(1.12rem, 2vw, 1.35rem); color: var(--vball-muted); max-width: 42rem; }
.muted { color: var(--vball-muted); }
.center { text-align: center; }

.btn, button.btn, a.btn {
	display: inline-flex; align-items: center; justify-content: center;
	min-height: var(--vball-tap); padding: 0.7rem 1.15rem; border-radius: 8px;
	font-weight: 700; text-decoration: none; border: 2px solid transparent; cursor: pointer;
	font-family: inherit; font-size: 1rem;
	letter-spacing: -0.01em;
}
.btn-accent, .btn-navy { background: var(--vball-navy); color: #fff; }
.btn-accent:hover, .btn-navy:hover { background: #1a2c4a; color: #fff; }
.btn-ghost { background: transparent; color: var(--vball-navy); border-color: var(--vball-navy); }
.btn.is-league { background: var(--vball-league); color: #fff; }
.btn.is-lessons { background: var(--vball-lessons); color: #fff; }
.btn.is-mini { background: var(--vball-mini); color: #fff; }
.btn.is-club { background: var(--vball-club); color: #fff; }
.btn.is-opengym { background: var(--vball-opengym); color: #fff; }

.announce { background: var(--vball-navy); color: #fff; font-size: 0.95rem; }
.announce .wrap { display: flex; gap: 1rem; align-items: center; justify-content: space-between; padding: 0.55rem 0; }
.announce a { color: #fff; text-decoration: underline; text-underline-offset: 2px; }
.announce__close { background: none; border: 0; color: #fff; font-size: 1.4rem; min-width: var(--vball-tap); min-height: var(--vball-tap); }

.site-header {
	position: sticky; top: 0; z-index: 40;
	background: var(--vball-paper, #fff); color: var(--vball-navy);
	min-height: var(--vball-header);
	padding-top: var(--safe-t);
	border-bottom: 1px solid var(--vball-line);
	box-shadow: var(--vball-shadow);
	transition: background .2s ease, box-shadow .2s ease, color .2s ease, border-color .2s ease;
}
.site-header, .site-header__inner, .nav-menu { overflow: visible; }
.nav-primary { overflow: hidden; min-width: 0; }
.site-header .wrap { overflow: visible; overflow-x: visible; }
/* Translucent over the cinematic hero, then solid paper on scroll. */
.has-transparent-header.is-club-home:not(.is-scrolled) .site-header {
	background: linear-gradient(180deg, rgba(10,22,40,.62) 0%, rgba(10,22,40,.18) 70%, transparent 100%);
	color: #fff;
	border-bottom-color: transparent;
	box-shadow: none;
	position: sticky;
	width: 100%;
}
.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) {
	.admin-bar .site-header { top: 46px; }
}
.site-header.is-compact { min-height: 56px; background: var(--vball-paper, #fff); color: var(--vball-navy); border-bottom-color: var(--vball-line); box-shadow: var(--vball-shadow); }
.site-header__inner { display: flex; align-items: center; gap: 1.25rem; min-height: inherit; flex-wrap: nowrap; }
.header-login { white-space: nowrap; color: inherit; text-decoration: none; font-weight: 600; }
.site-wordmark { display: flex; align-items: center; gap: 0.6rem; color: inherit; text-decoration: none; font-weight: 800; letter-spacing: -0.03em; }
.site-wordmark__mark { background: var(--vball-navy); color: #fff; width: 2.2rem; height: 2.2rem; display: grid; place-items: center; border-radius: 8px; font-size: 0.8rem; }
.custom-logo-link img { max-height: 48px; width: auto; }
.nav-primary { flex: 1; min-width: 0; }
.nav-menu { display: flex; gap: 0.2rem; list-style: none; margin: 0; padding: 0; align-items: center; flex-wrap: nowrap; }
.nav-menu > li > a { color: inherit; text-decoration: none; padding: 0.7rem 0.85rem; display: block; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; font-size: 0.78rem; }
.nav-menu > .current-menu-item > a,
.nav-menu > .current_page_item > a,
.nav-menu > .current-menu-ancestor > a {
	box-shadow: inset 0 -3px 0 currentColor;
}
.nav-menu .menu-cta a, .header-register {
	background: var(--vball-navy); color: #fff !important; border-radius: 8px; padding-inline: 1.15rem;
	font-weight: 800; min-height: var(--vball-tap); display: inline-flex; align-items: center;
	box-shadow: none;
}
.header-actions { display: flex; align-items: center; gap: 0.75rem; margin-left: auto; flex-shrink: 0; }
.nav-primary { flex: 1; min-width: 0; }
.header-phone { color: inherit; text-decoration: none; font-weight: 600; }
.nav-toggle {
	display: none; background: var(--vball-navy); color: #fff; border: 0;
	min-width: var(--vball-tap); min-height: var(--vball-tap); border-radius: 8px;
	padding: 0 0.85rem; gap: 0.45rem; align-items: center; font-weight: 800;
}
.nav-toggle .screen-reader-text {
	clip: auto; position: static; height: auto; width: auto; overflow: visible;
	font-size: 0.9rem; font-weight: 800;
}
.nav-toggle__bar, .nav-toggle__bar::before, .nav-toggle__bar::after {
	display: block; width: 18px; height: 2px; background: #fff; position: relative;
}
.nav-toggle__bar::before, .nav-toggle__bar::after { content: ""; position: absolute; left: 0; }
.nav-toggle__bar::before { top: -7px; }
.nav-toggle__bar::after { top: 7px; }

.mega-programs { position: relative; }
.mega-panel {
	display: none; position: absolute; top: 100%; left: 50%; transform: translateX(-40%);
	background: #fff; color: var(--vball-ink); padding: 1.25rem; border-radius: 12px;
	box-shadow: 0 8px 24px rgba(10,22,40,.12); border: 1px solid var(--vball-line); min-width: 640px; z-index: 50;
}
.mega-programs:hover > .mega-panel, .mega-programs:focus-within > .mega-panel { display: block; }
.mega-panel__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.6rem; }
.mega-card { display: block; padding: 0.9rem; border-radius: 8px; text-decoration: none; color: inherit; background: var(--vball-wash); border: 1px solid var(--vball-line); border-left: 4px solid var(--vball-club); }
.mega-card.is-league { border-color: var(--vball-league); }
.mega-card.is-lessons { border-color: var(--vball-lessons); }
.mega-card.is-mini { border-color: var(--vball-mini); }
.mega-card.is-club { border-color: var(--vball-club); }
.mega-card.is-opengym { border-color: var(--vball-opengym); }
.mega-panel__ages { font-size: 0.85rem; color: var(--vball-muted); margin: 0.75rem 0 0; }
.sub-menu { list-style: none; margin: 0; padding: 0.4rem; background: #fff; color: var(--vball-ink); border-radius: 12px; position: absolute; min-width: 12rem; box-shadow: 0 8px 24px rgba(10,22,40,.12); border: 1px solid var(--vball-line); display: none; }
.menu-item-has-children { position: relative; }
.menu-item-has-children:hover > .sub-menu, .menu-item-has-children:focus-within > .sub-menu { display: block; }
.sub-menu a { display: block; padding: 0.55rem 0.8rem; color: var(--vball-navy); text-decoration: none; min-height: var(--vball-tap); }
.nav-menu > .menu-item-has-children { position: relative; z-index: 50; }
.nav-menu > li > .sub-menu {
	display: none; position: absolute; left: 0; top: 100%;
	z-index: 80; min-width: 12rem;
	background: #fff; color: var(--vball-ink); border: 1px solid var(--vball-line);
	border-radius: 12px; padding: 0.35rem; box-shadow: 0 8px 24px rgba(10,22,40,.12);
}
.nav-menu > li:hover > .sub-menu, .nav-menu > li:focus-within > .sub-menu { display: block; }
.nav-menu > li > .sub-menu a {
	color: var(--vball-navy) !important; display: block; padding: 0.55rem 0.8rem;
	border-radius: 8px; text-transform: none; letter-spacing: 0; font-size: 0.9rem; font-weight: 600;
}
.nav-menu > li > .sub-menu a:hover { background: var(--vball-wash); color: var(--vball-navy) !important; }

.mobile-drawer { display: none; }
@media (max-width: 1100px) {
	.nav-primary, .header-phone { display: none; }
	.nav-toggle { display: inline-flex; }
	.mobile-drawer:not([hidden]) {
		display: block; position: fixed; inset: 0; background: #fff; color: var(--vball-ink); z-index: 60; padding: 5rem 1.25rem 2rem;
		overflow: auto;
	}
	.mobile-menu { list-style: none; padding: 0; margin: 0; }
	.mobile-menu a { color: var(--vball-navy); text-decoration: none; display: block; padding: 0.85rem 0; min-height: var(--vball-tap); font-size: 1.15rem; font-weight: 700; }
	.mobile-drawer .sub-menu {
		display: block;
		position: static;
		background: transparent;
		box-shadow: none;
		min-width: 0;
		padding: 0 0 0.5rem 0.9rem;
		border-radius: 0;
	}
	.mobile-drawer .sub-menu a { font-size: 1rem; color: var(--vball-navy); }
}

.hero {
	background: #0a1628;
	color: #fff; padding: 5.5rem 0 4rem; position: relative; overflow: hidden;
	width: 100%;
	min-height: min(78vh, 720px);
	display: flex;
	align-items: center;
}
.hero::after {
	content: "";
	position: absolute; inset: 0; z-index: 1; pointer-events: none;
	background:
		linear-gradient(90deg, rgba(10,22,40,.78) 0%, rgba(10,22,40,.48) 48%, rgba(10,22,40,.28) 100%),
		linear-gradient(180deg, rgba(10,22,40,.18) 0%, rgba(10,22,40,.55) 100%);
}
.hero__inner { position: relative; z-index: 2; }
.hero h1, .hero .lead, .hero .eyebrow { color: #fff; text-decoration: none; border: 0; box-shadow: none; background: none; }
.hero h1 { -webkit-text-fill-color: #fff; text-decoration: none !important; letter-spacing: -0.04em; max-width: 14ch; }
.hero .lead { color: rgba(255,255,255,.88); max-width: 36rem; }
.hero__actions { display: flex; flex-wrap: wrap; gap: 0.7rem; margin-top: 1.5rem; }
.hero__img { position: absolute; inset: 0; object-fit: cover; object-position: center 45%; opacity: 1; width: 100%; height: 100%; pointer-events: none; z-index: 0; }

.program-grid {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 1rem;
	width: 100%;
}
@media (max-width: 1100px) { .program-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 700px) { .program-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 480px) { .program-grid { grid-template-columns: 1fr; } }
.program-card {
	background: #fff; border-radius: var(--vball-radius); padding: 0.7rem 0.7rem 1.4rem;
	box-shadow: var(--vball-shadow); text-decoration: none; color: inherit; display: flex; flex-direction: column; gap: 0.4rem;
	border: 1px solid var(--vball-line); border-top: 0; min-height: 100%; min-width: 0; max-width: 100%;
	overflow: hidden;
}
.program-card__photo {
	width: 100%;
	max-width: 100%;
	height: 168px;
	object-fit: cover;
	object-position: center;
	margin: 0 0 0.75rem;
	display: block;
	border-radius: 12px;
	background: var(--vball-navy);
}
.program-card:has(.program-card__photo)::before { display: none; }
.program-card::before {
	content: "";
	display: block;
	height: 168px;
	width: 100%;
	margin: 0 0 0.75rem;
	background-color: var(--vball-navy);
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	border-radius: 12px;
}
.program-card.is-league { border-color: var(--vball-league); }
.program-card.is-lessons { border-color: var(--vball-lessons); }
.program-card.is-mini { border-color: var(--vball-mini); }
.program-card.is-club { border-color: var(--vball-club); }
.program-card.is-opengym { border-color: var(--vball-opengym); }
.program-card__signup { margin-top: auto; font-weight: 800; color: var(--vball-navy); }

.age-path { display: flex; gap: 0.5rem; overflow-x: auto; list-style: none; padding: 0; margin: 0; }
.age-path__item { background: var(--vball-card); border-radius: 12px; padding: 0.8rem 1rem; min-width: 7.5rem; box-shadow: var(--vball-shadow); }
.age-path__item.is-mini { border-bottom: 3px solid var(--vball-mini); }
.age-path__item.is-junior { border-bottom: 3px solid var(--vball-club); }
.age-path__item.is-adult { border-bottom: 3px solid var(--vball-league); }

.week-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.6rem; }
.week-item { background: var(--vball-card); border-radius: 12px; padding: 0.9rem 1rem; display: grid; gap: 0.15rem; border-left: 5px solid var(--vball-navy); }
.week-item.is-league { border-color: var(--vball-league); }
.week-item.is-lessons { border-color: var(--vball-lessons); }
.week-item.is-mini_club, .week-item.is-mini { border-color: var(--vball-mini); }
.week-item.is-club { border-color: var(--vball-club); }
.week-item.is-open_gym { border-color: var(--vball-opengym); }

.gym-grid, .news-grid, .team-grid, .parent-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1rem; }
.gym-card, .news-card, .team-card, .info-card, .tourney-card, .age-finder__card, .tonight-card {
	background: var(--vball-card); border-radius: var(--vball-radius); padding: 1.2rem; box-shadow: var(--vball-shadow);
}
.cta-band, .tryout-banner, .signup-band {
	background: var(--vball-navy); color: #fff; padding: 3.5rem 0;
}
.cta-band h2, .tryout-banner h2, .signup-band h2 { color: #fff; }
.program-signup-row { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 1rem 0; }
.tryout-banner { display: flex; justify-content: space-between; gap: 1.5rem; align-items: center; flex-wrap: wrap; }
.sponsor-row { display: flex; flex-wrap: wrap; gap: 1rem 2rem; list-style: none; padding: 0; }
.faq-list details { background: var(--vball-card); border-radius: 12px; padding: 0.9rem 1rem; margin-bottom: 0.5rem; }
.faq-list summary { font-weight: 700; cursor: pointer; min-height: var(--vball-tap); display: flex; align-items: center; }
.faq-list details p { margin: 0.45rem 0 0.1rem; line-height: 1.45; color: var(--vball-muted, #646970); }
.app-stack > .faq { padding: 0; }
.tpl-template-about .faq .section-head { margin-bottom: 1rem; }
.tpl-template-about .faq-list details,
.page-template-template-faq .faq-list details {
	background: #fff;
	color: var(--vball-ink, #1d2327);
}
.tpl-template-about .faq .section-head h2 {
	color: var(--vball-ink, #1d2327);
}
.tpl-template-about .faq-list details p,
.page-template-template-faq .faq-list details p {
	color: #646970;
}

.tonight-tool__form, .age-finder__form { display: grid; gap: 0.8rem; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); align-items: end; }
.tonight-tool input:not([type="radio"]):not([type="checkbox"]),
.tonight-tool select,
.age-finder input:not([type="radio"]):not([type="checkbox"]),
.signup-wizard input:not([type="radio"]):not([type="checkbox"]),
.search-form input:not([type="radio"]):not([type="checkbox"]),
textarea, select {
	width: 100%; min-height: var(--vball-tap); border-radius: 8px; border: 1px solid var(--vball-line, #dcdcde); padding: 0.5rem 0.7rem; font: inherit; background: #fff; color: var(--vball-ink);
}
input[type="radio"], input[type="checkbox"] {
	width: 1.2rem;
	min-width: 1.2rem;
	height: 1.2rem;
	min-height: 1.2rem;
	padding: 0;
	flex: 0 0 auto;
	accent-color: var(--vball-navy, #0a1628);
}
.tonight-card dl { display: grid; gap: 0.4rem; }
.tonight-card__actions { display: flex; flex-wrap: wrap; gap: 0.5rem; }

.page-hero { background: var(--vball-navy); color: #fff; padding: 3.5rem 0 2.5rem; }
.page-hero h1, .page-hero .lead { color: #fff; }
.breadcrumbs { display: none; }
.breadcrumbs ol { display: flex; flex-wrap: wrap; gap: 0.4rem; list-style: none; padding: 1rem 0; margin: 0; font-size: 0.9rem; }
.breadcrumbs li:not(:last-child)::after { content: " /"; color: var(--vball-muted); }

.site-footer { background: var(--vball-footer, var(--vball-navy)); color: #d7dee8; padding: 3rem 0 6rem; }
.footer-grid { display: grid; grid-template-columns: 1.3fr 1fr 1fr; gap: 2rem; }
.footer-brand { font-weight: 800; color: #fff; font-size: 1.2rem; }
.site-footer a { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.site-footer a:hover { color: #fff; }
.social { display: flex; gap: 1rem; list-style: none; padding: 0; }
.copyright { margin-top: 2rem; font-size: 0.85rem; }

.sticky-register {
	display: none; position: fixed; left: 1rem; right: 1rem; bottom: calc(0.75rem + var(--safe-b));
	background: var(--vball-navy); color: #fff; text-align: center; font-weight: 800;
	min-height: var(--vball-tap); border-radius: 8px; text-decoration: none; z-index: 30; align-items: center; justify-content: center;
}
@media (max-width: 800px) { .sticky-register { display: flex; } }

/* Sign-up wizard — compact chrome, sticky Continue, iPhone safe area */
body.is-signup .announce,
body.is-signup .nav-primary,
body.is-signup .header-phone,
body.is-signup .header-register,
body.is-signup .footer-grid,
body.is-signup .copyright,
body.is-signup .sticky-register { display: none !important; }
body.is-signup .site-footer { padding-top: 1rem; padding-bottom: 2rem; }
body.is-signup .site-header { min-height: 52px; position: sticky; }
body.is-signup .signup-main { padding: 1.25rem 1rem calc(6.5rem + var(--safe-b)); }
.signup-shell { max-width: 40rem; margin: 0 auto; }
.signup-programs { display: grid; gap: 0.6rem; }
.signup-choice {
	display: flex; flex-direction: column; gap: 0.15rem; padding: 0.9rem 1rem; border-radius: 12px;
	background: #fff; border: 2px solid var(--vball-line); min-height: var(--vball-tap);
}
.signup-choice:has(input:checked) { border-color: var(--vball-navy); box-shadow: 0 0 0 3px rgba(10,22,40,.18); }
.signup-choice input { width: auto; min-height: auto; }
.signup-choice.is-league { border-left: 5px solid var(--vball-league); }
.signup-choice.is-lessons { border-left: 5px solid var(--vball-lessons); }
.signup-choice.is-mini { border-left: 5px solid var(--vball-mini); }
.signup-choice.is-club { border-left: 5px solid var(--vball-club); }
.signup-choice.is-opengym { border-left: 5px solid var(--vball-opengym); }
.signup-wizard label { display: block; font-weight: 600; margin: 0.7rem 0; }
.signup-continue {
	position: sticky; bottom: 0; background: linear-gradient(transparent, var(--vball-wash, #f6f7f7) 30%);
	padding: 0.75rem 0 calc(0.75rem + var(--safe-b)); margin-top: 1rem;
}
.signup-continue__btn { width: 100%; min-height: 52px; font-size: 1.1rem; }

/* Kiosk */
body.is-kiosk, body.tpl-kiosk { background: var(--vball-navy); color: #fff; }
body.is-kiosk .site-header, body.is-kiosk .site-footer, body.is-kiosk .announce, body.is-kiosk .sticky-register { display: none !important; }
.kiosk-bar { display: flex; justify-content: space-between; align-items: center; padding: 1rem 1.25rem; }
.kiosk-main { padding: 1rem 1.25rem 2rem; }
.kiosk-athletes { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 0.75rem; }
.kiosk-athlete {
	min-height: 72px; font-size: 1.15rem; font-weight: 700; border: 0; border-radius: 14px;
	background: #fff; color: var(--vball-navy); cursor: pointer;
}
.kiosk-athlete.is-in { background: var(--vball-navy); color: #fff; }

/* Recruiting */
.recruit-hero { background: var(--vball-navy); color: #fff; padding: 3rem 0 2rem; overflow: visible; }
.recruit-hero h1, .recruit-hero .eyebrow, .recruit-hero .recruit-hero__name { color: #fff; }
.recruit-hero__name,
.recruit-hero h1.recruit-hero__name,
.recruit-hero h1 {
	display: block;
	font-size: clamp(2rem, 4.6vw, 3.4rem);
	line-height: 1.08;
	letter-spacing: -0.03em;
	color: #fff;
	-webkit-text-fill-color: #fff;
	-webkit-text-stroke: 0;
	overflow: visible;
	max-width: 100%;
	white-space: normal;
	word-break: break-word;
	margin: 0.15rem 0 0.35rem;
	font-weight: 800;
}
.recruit-hero__inner { display: grid; grid-template-columns: 220px 1fr; gap: 1.5rem; align-items: start; }
.recruit-hero__photo { width: 220px; height: 280px; object-fit: cover; border-radius: 16px; background: #12243c; }
.measurables { display: flex; flex-wrap: wrap; gap: 1rem; }
.measurables div { background: rgba(255,255,255,.08); border-radius: 10px; padding: 0.5rem 0.8rem; }
.measurables dt { font-size: 0.7rem; text-transform: uppercase; letter-spacing: .08em; opacity: .7; }
.measurables dd { margin: 0; font-size: 1.2rem; font-weight: 800; }
.recruit-hero__ctas, .stat-row { display: flex; flex-wrap: wrap; gap: 0.6rem; }
.stat-row { list-style: none; padding: 0; }
.stat-row li { background: var(--vball-card); border-radius: 12px; padding: 0.8rem 1rem; min-width: 6rem; }
.recruit-body { padding: 2rem 0 7rem; display: grid; gap: 2rem; }
.recruit-video{
	padding: 1.15rem 1.15rem 1.25rem;
	border-top: 3px solid var(--vball-navy);
}
.recruit-video h2{
	margin: 0 0 .85rem;
	font-size: 1.15rem;
	letter-spacing: .08em;
	text-transform: uppercase;
}
.recruit-video .vball-embed,
.recruit-video__embed {
	position: relative;
	padding-top: 56.25%;
	background: #0a1628;
	border-radius: 12px;
	overflow: hidden;
	border: 1px solid var(--vball-line);
	box-shadow: var(--vball-shadow);
}
.recruit-video .vball-embed iframe,
.recruit-video__embed iframe {
	position: absolute; inset: 0; width: 100%; height: 100%; border: 0;
}
.recruit-video .vball-lazy-video {
	position: absolute; inset: 0; width: 100%; height: 100%;
	background: radial-gradient(ellipse at center, rgba(10,22,40,.35) 0%, #0a1628 70%);
	color: #0a1628; font-size: .82rem; font-weight: 800; letter-spacing: .12em;
	text-transform: uppercase; cursor: pointer; border: 0;
}
.recruit-video .vball-lazy-video::before{
	content: "";
	display: block;
	width: 72px; height: 72px;
	margin: 0 auto .55rem;
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 0 0 8px rgba(255,255,255,.18);
	clip-path: none;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><polygon fill='%230a1628' points='9,6 9,18 19,12'/></svg>");
	background-repeat: no-repeat;
	background-position: 54% 50%;
	background-size: 36px 36px;
}
.recruit-video__tap{
	min-height: 52px; width: 100%;
	background: var(--vball-navy); color: #fff; font-weight: 800;
	border-radius: 8px; justify-content: center;
}
.recruit-video h3 { margin: 1.1rem 0 0.55rem; font-size: .78rem; letter-spacing: .12em; text-transform: uppercase; color: #8a96a8; }
.recruit-footage {
	list-style: none; padding: 0; margin: 0;
	display: flex; flex-wrap: wrap; gap: 0.5rem;
}
.recruit-footage__chip {
	min-height: 48px;
	padding: .55rem 1rem;
	border-radius: 8px;
	border: 2px solid var(--vball-navy);
	background: #fff;
	color: var(--vball-navy);
	font-weight: 800;
	letter-spacing: .04em;
	text-transform: uppercase;
	font-size: .78rem;
	justify-content: center;
	flex: 1 1 8.5rem;
}
.recruit-footage__chip:hover,.recruit-footage__chip:focus{
	background: var(--vball-navy); color: #fff; border-color: var(--vball-navy);
}
@media (max-width: 720px){
	.recruit-footage__chip{ flex: 1 1 100%; min-height: 52px; }
}
.recruit-sticky {
	position: fixed; left: 0.75rem; right: 0.75rem; bottom: calc(0.6rem + var(--safe-b));
	display: flex; gap: 0.5rem; z-index: 25;
}
.recruit-sticky .btn { flex: 1; }
@media (min-width: 800px) { .recruit-sticky { display: none; } }
@media (max-width: 700px) {
	.recruit-hero__inner { grid-template-columns: 1fr; }
	.recruit-hero__photo { width: 100%; height: 240px; }
}
.roster-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 0.8rem; }
.roster-card { background: var(--vball-card); border-radius: 14px; padding: 0 0 0.9rem; text-align: center; box-shadow: var(--vball-shadow); overflow: hidden; min-width: 0; }
.roster-card a { color: inherit; text-decoration: none; }
.roster-card.is-private { opacity: 0.9; }
.roster-card img, .roster-card__photo {
	display: block;
	width: calc(100% - 1.5rem);
	height: 140px;
	object-fit: cover;
	object-position: center top;
	border-radius: 14px;
	margin: 0.75rem auto 0.55rem;
	background: var(--vball-navy);
}
.recruit-class { padding: 2rem 0; }

.tourney-times { width: 100%; border-collapse: collapse; font-size: 0.95rem; }
.tourney-times th, .tourney-times td { text-align: left; padding: 0.45rem 0.4rem; border-bottom: 1px solid rgba(255,255,255,.12); }
.standings { width: 100%; border-collapse: collapse; background: var(--vball-card); }
.standings th, .standings td { padding: 0.55rem 0.6rem; text-align: left; border-bottom: 1px solid rgba(255,255,255,.12); }

.has-sidebar { display: grid; grid-template-columns: 1fr 280px; gap: 2rem; }
@media (max-width: 900px) {
	.has-sidebar, .footer-grid { grid-template-columns: 1fr; }
}

.plugin-search h2 { margin-top: 1.5rem; }
.error-404 { padding: 4rem 0; }

/* Plugin surfaces */
.vball-card, [class*="vball-"] .card { border-radius: var(--vball-radius); }
.vball-main { padding: 2rem 0 4rem; }

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	* { transition: none !important; animation: none !important; }
}

body.is-recruit-profile .sticky-register { display: none !important; }
.hero .btn-ghost { color: #fff; border-color: rgba(255,255,255,.55); }
.hero .btn-ghost:hover { background: rgba(255,255,255,.1); }
.recruit-num { opacity: .7; font-weight: 600; }
.recruit-private { padding: 4rem 0; }
.academics { list-style: none; padding: 0; display: grid; gap: .4rem; }
.tonight-card dt { font-size: .75rem; text-transform: uppercase; letter-spacing: .08em; color: var(--vball-muted); }
.tonight-card dd { margin: 0; font-weight: 700; }
.age-finder fieldset {
	grid-column: 1 / -1;
	display: grid;
	gap: 0.35rem;
	border: 1px solid var(--vball-line, #dcdcde);
	border-radius: 12px;
	padding: 0.65rem 0.8rem 0.85rem;
	margin: 0;
	min-width: 0;
}
.age-finder fieldset legend { font-weight: 700; padding: 0 0.2rem; }
.age-finder fieldset label {
	display: flex;
	width: 100%;
	box-sizing: border-box;
	min-height: 48px;
	align-items: center;
	gap: 0.75rem;
	margin: 0;
	padding: 0.35rem 0.6rem;
	border-radius: 10px;
	font-weight: 600;
}
.age-finder fieldset label:has(input:checked) {
	background: #e8eef8;
}
.kiosk-bar { background: #07101c; color: #fff; }
.kiosk-bar__clock { font-size: 1.4rem; font-weight: 800; margin: 0; }
.kiosk-practice { font-size: 1.2rem; }
.wp-block-button__link { min-height: var(--vball-tap); display: inline-flex; align-items: center; }
body.has-compact-header .site-header { min-height: 52px; }
.gym-switcher { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-bottom: 1rem; }
.gym-switcher .btn.is-on { background: var(--vball-navy); color: #fff; border-color: var(--vball-navy); }
.vball-unsigned-filters { gap: 0.55rem 0.85rem; align-items: center; }
.vball-unsigned-gender, .vball-unsigned-years { display: inline-flex; flex-wrap: wrap; gap: 0.4rem; align-items: center; }
.vball-unsigned-years .btn { min-width: 44px; padding: 0.35rem 0.7rem; font-variant-numeric: tabular-nums; }
.kicker { margin: 0; }
.site-main { min-height: 40vh; }
.entry-content > *:first-child { margin-top: 0; }
.header-register { text-decoration: none; min-height: var(--vball-tap); display: inline-flex; align-items: center; }

/* ------------------------------------------------------------------
   Sports-app layer — paper + navy, large type, cards, family portal
   ------------------------------------------------------------------ */
.app-view .comments-area,
.is-club-home .comments-area,
.is-signup .comments-area,
.is-recruit-profile .comments-area,
.is-calendar-view .comments-area,
.is-tonight .comments-area,
.is-kiosk .comments-area,
.is-team-view .comments-area,
.is-family-app .comments-area,
.is-club-home .posted-on,
.app-view .posted-on { display: none !important; }

.is-club-home .breadcrumbs,
.is-signup .breadcrumbs,
.is-calendar-view .breadcrumbs,
.is-tonight .breadcrumbs,
.is-family-app .breadcrumbs,
.is-team-view .breadcrumbs,
.is-recruit-profile .breadcrumbs,
.is-recruit-board .breadcrumbs { display: none; }

.app-stack { display: grid; gap: 1.25rem; padding: 1.5rem 0 4.5rem; }
.app-copy { max-width: 42rem; }
.app-copy .lead:first-child { font-size: 1.15rem; }

.app-card {
	background: var(--vball-card);
	border-radius: var(--vball-radius);
	padding: 1.35rem 1.4rem 1.5rem;
	box-shadow: var(--vball-shadow);
	border: 1px solid var(--vball-line, #dcdcde);
	overflow: hidden;
	min-width: 0;
}
.app-card > h2:first-child { margin-top: 0; }
.app-card + .app-card { margin-top: 0; }
.app-card:empty { display: none; }
.app-stack > .section { padding: 0; }
.app-stack > .section > .wrap { width: 100%; margin-inline: 0; }

.program-chip {
	display: inline-block; background: var(--vball-navy); color: #fff;
	border-radius: 999px; padding: 0.2rem 0.7rem; letter-spacing: 0.08em;
}
.program-chip.is-league { background: var(--vball-league); color: #fff; }
.program-chip.is-lessons { background: var(--vball-lessons); color: #fff; }
.program-chip.is-mini { background: var(--vball-mini); color: #fff; }
.program-chip.is-club { background: var(--vball-club); color: #fff; }
.program-chip.is-opengym { background: var(--vball-opengym); color: #fff; }

/* App dock */
.app-dock {
	display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.65rem;
	margin-top: 2rem; position: relative; z-index: 1;
}
.app-dock__tile {
	display: flex; flex-direction: column; gap: 0.15rem;
	background: rgba(255,255,255,.08); color: #fff; text-decoration: none;
	border-radius: 16px; padding: 0.95rem 1rem; min-height: 72px;
	border: 1px solid var(--vball-line, #dcdcde); backdrop-filter: blur(8px);
}
.app-dock__tile strong { font-size: 1.05rem; }
.app-dock__tile span { font-size: 0.8rem; opacity: .75; }
.app-dock__tile.is-accent { background: #fff; color: var(--vball-navy); border-color: transparent; }
.app-dock__tile.is-accent span { opacity: .7; color: var(--vball-navy); }
.app-dock__tile:hover { transform: translateY(-2px); }
@media (max-width: 800px) {
	.app-dock { grid-template-columns: 1fr; }
}

/* Family product nav — shared with plugin portal */
.family-nav {
	display: flex; flex-wrap: wrap; gap: 0.4rem;
	background: var(--vball-card); border-radius: 999px; padding: 0.35rem;
	box-shadow: var(--vball-shadow);
}
.family-nav__item {
	display: inline-flex; align-items: center; justify-content: center;
	min-height: var(--vball-tap); padding: 0.45rem 0.95rem; border-radius: 999px;
	text-decoration: none; color: var(--vball-navy); font-weight: 700; font-size: 0.95rem;
}
.family-nav__item.is-on, .family-nav__item:hover {
	background: var(--vball-navy); color: #fff;
}
.family-nav__item[href*="register"]:not(.is-on) {
	background: var(--vball-navy); color: #fff;
}
.mobile-family { margin-top: 1.5rem; padding-top: 1rem; border-top: 1px solid var(--vball-line); }
.mobile-family .family-nav { background: transparent; box-shadow: none; padding: 0; }
.mobile-family .family-nav__item { color: var(--vball-navy); background: var(--vball-wash); }
.mobile-family .family-nav__item.is-on { background: var(--vball-navy); color: #fff; }

/* Program cards */
.program-card { transition: transform .15s ease, box-shadow .15s ease; }
.program-card:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(10,22,40,.08); color: inherit; }
.program-card h3 { font-size: 1.35rem; margin: 0.15rem 0; }
.program-card__ages {
	display: inline-block; font-size: 0.75rem; font-weight: 800; letter-spacing: .08em;
	text-transform: uppercase; color: var(--vball-navy); background: var(--vball-wash);
	border-radius: 999px; padding: 0.15rem 0.55rem; width: max-content;
}
.program-card__signup::after { content: " →"; }

/* Team cards: photo first, no program-color top bar */
.team-card,
.team-card.is-league,
.team-card.is-mini, .team-card.is-mini_club,
.team-card.is-lessons,
.team-card.is-opengym, .team-card.is-open_gym,
.team-card.vball-prog-club, .team-card.vball-prog-league,
.team-card.vball-prog-mini, .team-card.vball-prog-open,
.team-card.vball-prog-private, .team-card.vball-prog-lessons {
	border-top: 0;
}
.team-card { overflow: hidden; padding: 0 0 1.1rem; }
.team-card__photo,
.team-card img.team-card__photo {
	display: block;
	width: calc(100% - 1.5rem);
	max-width: none;
	height: 200px;
	margin: 0.75rem auto 0.65rem;
	object-fit: cover;
	border-radius: 14px;
}

.week-item { min-height: 64px; }
.week-item strong { font-size: 1.1rem; }
.week-item__type { text-transform: uppercase; letter-spacing: .08em; font-size: .7rem; font-weight: 800; color: var(--vball-muted); }

.tonight-card { border-left: 4px solid var(--vball-navy); }
.tonight-card h3 { font-size: clamp(1.5rem, 3vw, 2rem); margin: 0.2rem 0; }
.app-time, .tonight-card__time { font-size: clamp(1.6rem, 4vw, 2.4rem); font-weight: 800; letter-spacing: -0.03em; color: var(--vball-navy); margin: 0.2rem 0 0.8rem; }
.tonight-tool__head h2 { font-size: clamp(1.8rem, 4vw, 2.6rem); }
.tonight-card dt { font-size: .75rem; text-transform: uppercase; letter-spacing: .08em; color: var(--vball-muted); }
.tonight-card dd { margin: 0; font-weight: 700; font-size: 1.05rem; }

/* Page heroes — sports, not blog */
.page-hero { padding: 4.25rem 0 2.75rem; }
.page-hero h1 { max-width: 18ch; }
.team-hero .hero__actions .btn-ghost { color: #fff; border-color: rgba(255,255,255,.55); }

/* Register / signup — match plugin portal */
body.is-signup { background: var(--vball-bg); }
body.is-signup .signup-main { padding-top: 1.5rem; }
.signup-shell h1 { font-size: clamp(2rem, 5vw, 3rem); }
.signup-card, #vball-signup { background: var(--vball-card); border-radius: var(--vball-radius); padding: 1.25rem; box-shadow: var(--vball-shadow); }
.vball-progress { display: flex; list-style: none; padding: 0; gap: .4rem; margin: 0 0 1.2rem; }
.vball-progress li { flex: 1; text-align: center; font-size: .75rem; padding: .4rem; border-bottom: 3px solid var(--vball-line); color: var(--vball-muted); }
.vball-progress li[aria-current="step"], .vball-progress li.is-done { border-color: var(--vball-navy); color: var(--vball-navy); font-weight: 700; }
.vball-signup-form input, .vball-signup-form select { min-height: var(--vball-tap); font-size: 16px; border-radius: 12px; }
.vball-signup-bar { display: flex; gap: .6rem; padding: .75rem 0 calc(.75rem + var(--safe-b)); position: sticky; bottom: 0; background: linear-gradient(transparent, var(--vball-bg) 28%); }
.vball-next, .vball-signup-bar .vball-btn { background: var(--vball-navy); color: #fff; border-radius: 8px; min-height: 52px; font-weight: 800; }
.vball-program-cards { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; }
.vball-program-card { border-radius: 12px; min-height: 88px; border: 2px solid var(--vball-line); padding: .9rem; background: #fff; }
.vball-program-card.is-selected, .vball-program-card:focus { border-color: var(--vball-navy); box-shadow: 0 0 0 3px rgba(10,22,40,.18); }
.vball-prog-league { border-top: 4px solid var(--vball-league); }
.vball-prog-mini { border-top: 4px solid var(--vball-mini); }
.vball-prog-club { border-top: 4px solid var(--vball-club); }
.vball-prog-open { border-top: 4px solid var(--vball-opengym); }
.vball-prog-private, .vball-prog-lessons { border-top: 4px solid var(--vball-lessons); }
@media (max-width: 480px) { .vball-program-cards { grid-template-columns: 1fr; } }

/* Plugin portal = theme product */
.vball-wrap, .vball-main { color: var(--vball-ink); font-family: var(--vball-font); }
.vball-card, .vball-family-card {
	background: var(--vball-card); border-radius: var(--vball-radius);
	padding: 1.25rem 1.4rem; box-shadow: var(--vball-shadow); border: 0;
}
.vball-hero, .vball-recruit-hero {
	background: var(--vball-navy); color: #fff; border-radius: var(--vball-radius);
	padding: 1.75rem;
}
.vball-hero h1, .vball-recruit-hero h1 { font-size: clamp(1.8rem, 4vw, 2.6rem); letter-spacing: -0.03em; }
.vball-btn, .vball-copy {
	display: inline-flex; align-items: center; justify-content: center;
	min-height: var(--vball-tap); padding: 0.55rem 1.1rem; border-radius: 8px;
	background: var(--vball-navy); color: #fff !important;
	font-weight: 800; text-decoration: none; border: 0;
}
.vball-cal li { padding: .7rem 0; }
.vball-cal-views button { min-height: var(--vball-tap); border-radius: 999px; }
.vball-cal-views button[aria-current="true"] { background: var(--vball-navy); color: #fff; }
.vball-cal-month th, .vball-cal-week th { background: var(--vball-navy); }
.vball-cal-ev.practice { background: var(--vball-navy); }
.vball-cal-ev.match { background: var(--vball-league); }
.vball-cal-ev {
	display: block;
	width: 100%;
	appearance: none;
	-webkit-appearance: none;
	border: 0;
	color: #fff;
	cursor: pointer;
	font: inherit;
	font-size: .75rem;
	font-weight: 700;
	text-align: left;
	touch-action: manipulation;
}
.vball-cal-sheet { z-index: 90; }
.vball-cal-sheet::backdrop { background: rgba(10, 22, 40, .45); }
.vball-cal-sheet__panel {
	background: #fff;
	color: var(--vball-ink, #1d2327);
	border: 1px solid var(--vball-line, #dcdcde);
	box-shadow: var(--vball-shadow);
	width: min(32rem, calc(100% - 1rem));
}
.vball-cal-sheet__title { color: var(--vball-navy, #0a1628); }
.vball-cal-sheet__kind, .vball-cal-sheet__when, .vball-cal-sheet__where { color: var(--vball-muted, #646970); }
.vball-cal-sheet__panel.is-match .vball-cal-sheet__kind { color: var(--vball-league); }
.vball-cal-sheet__close {
	background: var(--vball-wash, #f6f7f7);
	color: var(--vball-navy, #0a1628);
}
.cal-card .vball-cal, .cal-card .vball-wrap { margin: 0; }
.vball-table { width: 100%; border-collapse: collapse; }
.vball-table th, .vball-table td, .standings th, .standings td { padding: 0.7rem 0.65rem; }

/* Kiosk — huge taps, navy board */
body.is-kiosk { background: var(--vball-navy); color: #fff; min-height: 100vh; }
body.is-kiosk .kiosk-main h1 { font-size: clamp(2.2rem, 6vw, 3.6rem); color: #fff; margin: 0.2rem 0; }
.kiosk-lead { font-size: 1.15rem; max-width: 36rem; color: rgba(255,255,255,.8); }
.kiosk-board { margin-top: 1.25rem; }
.kiosk-practice { font-size: 1.35rem; font-weight: 800; }
.kiosk-athletes { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 0.85rem; }
.kiosk-athlete, .vball-kiosk-btn {
	min-height: 112px; font-size: 1.25rem; font-weight: 800; border: 0; border-radius: 16px;
	background: #fff; color: var(--vball-navy); cursor: pointer; padding: 1rem; touch-action: manipulation;
}
.kiosk-athlete.is-in, .vball-kiosk-btn.is-in, .vball-kiosk-btn[data-status="checked_in"] {
	background: #e7f7ee; color: #1e6b3c;
}
.vball-kiosk { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 0.85rem; }
.vball-checkin-public input {
	font-size: 1.6rem; min-height: 56px; width: 9rem; letter-spacing: .28em; text-align: center;
	border-radius: 12px; border: 0;
}
.kiosk-foot { display: flex; flex-wrap: wrap; gap: 0.6rem; margin-top: 1.5rem; }
.kiosk-foot .btn-ghost { color: #fff; border-color: rgba(255,255,255,.45); }
body.is-kiosk .vball-card, body.is-kiosk .vball-family-card { background: rgba(255,255,255,.06); color: #fff; box-shadow: none; }
body.is-kiosk .vball-card a { color: #fff; }

/* Recruiting */
.recruit-hero__photo--empty {
	display: grid; place-items: center; background: #12243c; color: #fff;
	font-size: 2.4rem; font-weight: 800;
}
.stat-row li { min-width: 7rem; }
.stat-row strong { display: block; font-size: 1.6rem; letter-spacing: -0.03em; }
.recruit-pos {
	font-size: 0.95rem;
	font-weight: 700;
	opacity: .9;
	letter-spacing: .08em;
	text-transform: uppercase;
	margin: 0 0 0.85rem;
	color: rgba(255,255,255,.82);
}

/* Mini Club photos stay off */
.is-mini .roster-card img,
.tpl-mini-club .vball-gallery,
.tpl-mini-club .roster-card img,
.vball-team.is-mini img,
.vball-mini .vball-headshot,
.vball-mini .vball-gallery { display: none !important; }

.roster-card { min-height: 8rem; }
.roster-card__num { font-size: 1.4rem; font-weight: 800; color: var(--vball-navy); margin: 0; }
.roster-card.is-private { background: var(--vball-bg); }
.roster-card h3 { font-size: 1.05rem; margin: 0.15rem 0; }

/* Family dashboard */
.family-dash .info-card { min-height: 10rem; }
.info-card h2 { font-size: 1.25rem; margin-top: 0; }
.info-card--cta { background: var(--vball-navy); color: #fff; }
.info-card--cta h2 { color: #fff; }
.info-card__actions { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.info-card__actions .btn { min-height: var(--vball-tap); }

.about-works { margin: 1rem 0 0; padding-left: 1.2rem; }
.about-works li { margin: 0.65rem 0; line-height: 1.45; }

.parent-checkin { margin-top: 0.25rem; }
.age-finder { background: var(--vball-card); border-radius: var(--vball-radius); padding: 1.5rem; box-shadow: var(--vball-shadow); }
.age-finder__card { border-left: 4px solid var(--vball-navy); }

.live-card { background: var(--vball-navy); color: #fff; border-radius: var(--vball-radius); padding: 1.5rem; }
.live-card h3 { color: #fff; font-size: 2rem; }
.vball-scoreboard .sets { font-size: 3.2rem; font-weight: 800; }

.news-card a { text-decoration: none; color: inherit; display: block; }
.news-card h2, .news-card h3 { font-size: 1.2rem; }
.club-home .news-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1rem; }

@media (max-width: 700px) {
	.page-hero { padding: 3rem 0 1.75rem; }
	.app-stack { padding-top: 1rem; }
	.family-nav { border-radius: 18px; }
	.hero { padding: 6.5rem 0 3rem; }
	h1 { font-size: clamp(2.1rem, 9vw, 3rem); }
	.btn, button.btn, a.btn { width: auto; }
	.hero__actions .btn { min-width: 44%; flex: 1; }
	.signup-continue__btn, .vball-next { width: 100%; }
}

@media (hover: none) {
	.program-card:hover, .app-dock__tile:hover { transform: none; }
}

.signup-card #vball-signup { background: transparent; box-shadow: none; padding: 0; margin: 0; }
.florida-region-footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.25rem;
	flex-wrap: wrap;
	font-size: 9pt;
	line-height: 1.4;
	color: var(--vball-muted);
	padding: 1.25rem 0 0.5rem;
	max-width: none;
}
.florida-region-footer__copy { flex: 1 1 28rem; max-width: 52rem; }
.florida-region-footer p { margin: 0 0 0.4rem; }
.affiliation-marks { display: flex; gap: 0.65rem; align-items: center; flex-wrap: wrap; margin: 0; }
.affiliation-marks img, .affiliation-mark {
	display: block;
	height: 48px;
	width: auto;
	max-width: 160px;
	object-fit: contain;
	background: transparent;
	border-radius: 0;
	padding: 0;
	position: static;
}
.affiliation-marks--header {
	display: inline-flex;
	flex-wrap: nowrap;
	align-items: center;
	gap: 0.5rem;
	flex: 0 0 auto;
	position: relative;
	z-index: 3;
	isolation: isolate;
	margin: 0;
	padding: 0 0.4rem;
}
.affiliation-marks--header img,
.affiliation-marks--header .affiliation-mark {
	height: 44px;
	width: auto;
	max-width: 72px;
	max-height: 44px;
	object-fit: contain;
	display: block;
	position: relative;
	z-index: 1;
	background: transparent;
}
.affiliation-marks--header .affiliation-mark--usav {
	height: 54px;
	max-height: 54px;
	max-width: 160px;
	background: transparent;
	padding: 0;
	border-radius: 0;
	object-fit: contain;
	align-self: center;
}
.affiliation-marks--header .affiliation-mark--aau {
	height: 52px;
	max-height: 52px;
	max-width: 48px;
	background: transparent;
	padding: 0;
	border-radius: 0;
	object-fit: contain;
	align-self: center;
}

@media (max-width: 900px) {
	.affiliation-marks--header img { height: 32px; max-width: 48px; }
}
.header-login { font-weight: 700; margin-right: 0; color: inherit; text-decoration: none; flex-shrink: 0; white-space: nowrap; }
.vball-coach-grid, .coach-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 1rem;
	align-items: stretch;
}
.coach-card, .vball-coach-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	min-width: 0;
	padding: 0 0 0.85rem;
	overflow: hidden;
	background: var(--vball-card);
	border-radius: var(--vball-radius);
	box-shadow: var(--vball-shadow);
	position: relative;
}
.coach-card__shot {
	position: relative;
	display: block;
	margin: 0;
}
.coach-card img, .vball-coach-card img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 3 / 4;
	object-fit: cover;
	object-position: center top;
	border-radius: 0;
	margin: 0;
	background: var(--vball-navy);
}
.coach-card h3, .vball-coach-card h3 { margin: 0; font-size: 1.15rem; color: #fff; }
.coach-card h3 a, .vball-coach-card h3 a { color: #fff; }
.coach-card .kicker, .vball-coach-card .kicker {
	margin: 0.15rem 0 0;
	letter-spacing: 0.1em;
	font-size: 0.72rem;
	line-height: 1.3;
	color: #5ad4ff;
	text-transform: uppercase;
}
.coach-card .coach-card__bio, .vball-coach-card .coach-card__bio {
	margin: 0 1rem 0.5rem;
	font-size: 0.9rem;
	color: var(--vball-muted);
	flex: 1 1 auto;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.coach-card .coach-card__contact, .vball-coach-card .coach-card__contact {
	margin: auto 1rem 0;
	padding: 0.5rem 0 0;
	font-size: 0.85rem;
	line-height: 1.45;
	word-break: break-word;
	color: var(--vball-text, inherit);
}
.coach-card .coach-card__contact a,
.vball-coach-card .coach-card__contact a {
	display: inline-flex;
	align-items: center;
	color: inherit;
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 2px;
}
.coach-card h3 a, .vball-coach-card h3 a,
.coach-card a.coach-card__media, .vball-coach-card a.coach-card__media {
	color: inherit;
	text-decoration: none;
}
.coach-card a.coach-card__media, .vball-coach-card a.coach-card__media { display: block; }

.coach-bio__inner {
	display: grid;
	grid-template-columns: 220px 1fr;
	gap: 1.5rem;
	align-items: start;
}
.coach-bio__photo {
	width: 220px;
	height: 280px;
	object-fit: cover;
	object-position: center top;
	border-radius: 16px;
	background: var(--vball-navy);
}
.coach-bio__teams {
	list-style: none;
	margin: 0.75rem 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.45rem;
}
.coach-bio__teams a,
.coach-bio__teams li {
	display: inline-block;
	padding: 0.28rem 0.75rem;
	border-radius: 999px;
	background: var(--vball-wash);
	color: inherit;
	text-decoration: none;
	font-weight: 700;
	font-size: 0.85rem;
}
.coach-bio__contact { display: flex; flex-wrap: wrap; gap: 0.55rem; margin-top: 1rem; }
@media (max-width: 700px) {
	.coach-bio__inner { grid-template-columns: 1fr; }
	.coach-bio__photo { width: 100%; height: auto; aspect-ratio: 3 / 4; }
}

.coach-bio__contact { display: flex; flex-wrap: wrap; gap: 0.55rem; margin-top: 1rem; align-items: center; }
.coach-mail { display: inline-block; position: relative; }
.coach-mail[open] { flex: 1 1 100%; }
.coach-mail__btn::-webkit-details-marker,
.coach-mail__btn::marker { display: none; content: ""; }
.coach-mail-icon,
.coach-mail__btn,
a.coach-mail-icon {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	min-width: 44px;
	min-height: 44px;
	padding: 0;
	border-radius: 999px;
	background: var(--vball-navy, #0a1628);
	color: #fff !important;
	border: 2px solid var(--vball-navy, #0a1628);
	cursor: pointer;
	text-decoration: none !important;
	font-weight: 700;
	list-style: none;
	box-sizing: border-box;
}
.coach-card .coach-mail-icon,
.vball-coach-card .coach-mail-icon {
	border-color: rgba(255,255,255,.4);
}
.coach-mail__svg { display: block; pointer-events: none; }
.coach-mail__panel { margin-top: 0.75rem; max-width: 28rem; }
.coach-form { position: relative; }
.coach-form label { display: block; margin: 0.65rem 0; font-weight: 600; }
.coach-form input,
.coach-form select,
.coach-form textarea {
	display: block;
	width: 100%;
	min-height: 44px;
	margin-top: 0.25rem;
	padding: 0.5rem 0.8rem;
	border-radius: 12px;
	border: 1px solid #c9d2dc;
	font: inherit;
	background: #fff;
	color: #0a1628;
}
.coach-form textarea { min-height: 7rem; }
.coach-form__wants { border: 0; padding: 0; margin: 0.75rem 0; }
.coach-form__wants legend { font-weight: 700; margin-bottom: 0.35rem; }
.coach-form__check { display: block; font-weight: 500; margin: 0.35rem 0; }
.coach-form__check input { display: inline-block; width: auto; min-height: 22px; min-width: 22px; margin-right: 0.4rem; }
.coach-form__notice { font-weight: 700; }
.vball-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.coach-apply { margin-top: 1.25rem; }
.page-hero .coach-mail__btn,
.coach-bio__hero .coach-mail__btn,
.vball-coach-hero .coach-mail__btn {
	background: #fff;
	color: var(--vball-navy, #0a1628);
	border-color: #fff;
}

.coach-card .coach-card__contact,
.vball-coach-card .coach-card__contact {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.45rem 0.75rem;
}
.vball-join-poster { text-align: center; padding: 1.5rem; }
.vball-join-poster svg { max-width: 240px; margin-inline: auto; }
.vball-jersey-pad { display: grid; grid-template-columns: repeat(auto-fill, minmax(88px, 1fr)); gap: 0.5rem; }
.vball-jersey-pad button, .vball-jersey-chip { min-height: 64px; border-radius: 10px; font-weight: 700; }
.vball-jersey-pad .is-green, .vball-jersey-chip.is-green { background: #d4edda; border: 2px solid #3d8b6e; }
.vball-jersey-pad .is-red, .vball-jersey-chip.is-red { background: #f8d7da; border: 2px solid #a33; }
.vball-heat { display: grid; grid-template-columns: repeat(auto-fill, minmax(56px, 1fr)); gap: 4px; }
.vball-heat span { display: block; text-align: center; padding: 0.35rem 0.2rem; border-radius: 6px; font-size: 0.75rem; }
.vball-heat .ok { background: #d4edda; }
.vball-heat .low { background: #fff3cd; }
.vball-heat .out { background: #f8d7da; }
@media print {
	.site-header, .sticky-register, .announce, .nav-toggle, .header-actions { display: none !important; }
	.vball-join-poster { page-break-inside: avoid; }
}

.contact-block { max-width: 36rem; margin: 1.5rem 0 3rem; padding: 1.5rem 1.6rem; }
.contact-block h2 { margin-top: 0; }
.contact-block .btn { display: inline-flex; min-height: var(--vball-tap); align-items: center; }

.team-card a { color: inherit; text-decoration: none; display: block; }
.team-card__photo { object-fit: cover; background: var(--vball-navy); }
.roster-card__photo { width: 100%; height: 180px; object-fit: cover; border-radius: 0; margin: 0 0 0.55rem; background: var(--vball-navy); }
.roster-card__stats {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.4rem;
	list-style: none;
	margin: 0.65rem 0 0;
	padding: 0;
}
.roster-card__stats li {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.12rem;
	background: var(--vball-bg);
	border-radius: 10px;
	padding: 0.45rem 0.2rem 0.4rem;
	min-width: 0;
}
.roster-card__stats strong { font-size: 0.95rem; font-weight: 800; line-height: 1.1; }
.roster-card__stats span {
	font-size: 0.62rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--vball-muted);
	line-height: 1.2;
	text-align: center;
}
.roster-card__meas { font-size: 0.8rem; color: var(--vball-muted); margin: 0; }
.teams-board { padding: 1.5rem 0 4rem; }
.teams-subnav {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
	margin: 0 0 1.15rem;
	padding: 0;
}
.teams-subnav a {
	display: inline-flex;
	align-items: center;
	min-height: 2.2rem;
	padding: 0.2rem 0.95rem;
	border-radius: 999px;
	font-weight: 700;
	font-size: 0.82rem;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	text-decoration: none;
	color: inherit;
	border: 1px solid var(--vball-line);
	background: transparent;
}
.teams-subnav a:hover { color: #fff; background: var(--vball-navy); border-color: var(--vball-navy); }
.teams-subnav a.is-on,
.teams-subnav a[aria-current="page"] {
	background: var(--vball-navy);
	color: #fff;
	border-color: var(--vball-navy);
}
.teams-group-head {
	margin: 1.35rem 0 0.7rem;
	font-size: 1.05rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--vball-ink);
}
.teams-group-head:first-child { margin-top: 0; }
body.is-kiosk #wpadminbar, .is-kiosk #wpadminbar { display: none !important; }
html.admin-bar.is-kiosk, body.is-kiosk.admin-bar { margin-top: 0 !important; padding-top: 0 !important; }
html.admin-bar body.is-kiosk { margin-top: 0 !important; }
.section.programs .wrap, .teams-board.wrap { max-width: 100%; }

/* Color looks */
.scheme-dark { background: var(--vball-bg); color: var(--vball-text); }
.scheme-dark h1, .scheme-dark h2, .scheme-dark h3 { color: var(--vball-ink); }
.scheme-dark .lead, .scheme-dark .muted, .scheme-dark .kicker, .scheme-dark .eyebrow { color: var(--vball-muted); }
.scheme-dark .program-card, .scheme-dark .gym-card, .scheme-dark .coach-card, .scheme-dark .news-card,
.scheme-dark .team-card, .scheme-dark .info-card, .scheme-dark .faq-list details {
	background: var(--vball-card); color: var(--vball-text);
}
.scheme-dark .hero {
	background:
		radial-gradient(circle at 85% 20%, color-mix(in srgb, var(--vball-accent) 22%, transparent), transparent 40%),
		linear-gradient(160deg, var(--vball-navy) 0%, var(--vball-footer, var(--vball-navy)) 100%);
}

.team-hero__photo { display: block; width: min(100%, 920px); height: 220px; object-fit: cover; border-radius: 14px; margin: 1rem 0 0; box-shadow: var(--vball-shadow); }
.roster-card__photo { height: 220px; }

/* Keep roster / unsigned cards inside the page */
.site-main .wrap,
.app-stack,
.app-card,
.vball-card,
.vball-unsigned,
.recruit-board,
.teams-board {
	max-width: 100%;
	min-width: 0;
	overflow-x: clip;
}
.roster-grid,
.vball-unsigned-grid,
.team-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 180px), 1fr));
	gap: 0.9rem;
	width: 100%;
	max-width: 100%;
	min-width: 0;
}
.roster-card,
.vball-unsigned-card,
.team-card {
	min-width: 0;
	max-width: 100%;
	overflow: hidden;
}
.roster-card a,
.vball-unsigned-card a,
.team-card a { min-width: 0; }
.vball-unsigned-card .roster-card__stats { justify-content: flex-start; }
.roster-card.is-recruit { display: flex; flex-direction: column; }
.roster-card.is-recruit a { display: flex; flex-direction: column; flex: 1; color: inherit; text-decoration: none; }
.roster-card h3,
.roster-card p,
.vball-unsigned p,
.entry-content p {
	overflow-wrap: anywhere;
	word-break: break-word;
}
.roster-card__photo,
.team-card__photo { max-width: 100%; }


/* ------------------------------------------------------------------
   Club paper render — light canvas, navy type, no leftover dark WP
   ------------------------------------------------------------------ */
html, body {
	background: var(--bg, var(--vball-wash, #f6f7f7));
	color: var(--text, var(--vball-ink, #1d2327));
}
.page-hero { background: var(--navy, var(--vball-navy)); }
.site-main, .app-stack, .wrap.app-stack { background: transparent; }
.page-hero + .wrap, .page-hero + .wrap.app-stack { background: transparent; }

.page-intro,
.vball-page-intro,
.vball-unsigned > h2:first-child,
.vball-unsigned > p:not([role]):not(.vball-empty):first-of-type { display: none; }

.affiliation-marks img, .affiliation-mark {
	background: transparent !important;
	padding: 0;
	border-radius: 0;
	box-shadow: none;
}

.app-card, .vball-card, .vball-family-card, .roster-card, .team-card,
.coach-card, .vball-coach-card, .program-card, .gym-card, .news-card,
.info-card, .tourney-card, .age-finder, .age-finder__card, .tonight-card,
.signup-card, .signup-choice, .vball-program-card, .vball-unsigned-card,
.faq-list details, .week-item, .age-path__item, .contact-block, .entry.app-card {
	background: #fff;
	color: var(--vball-ink, #1d2327);
	border: 1px solid var(--vball-line, #dcdcde);
	box-shadow: var(--vball-shadow);
	overflow: hidden;
	min-width: 0;
}
.program-card { border-top-width: 0; }
.vball-program-card { background: var(--card, var(--vball-card)); }

.roster-grid, .vball-unsigned-grid, .team-grid,
.gym-grid, .news-grid, .program-grid, .parent-grid {
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 180px), 1fr));
}
.program-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }

.roster-card__photo, .roster-card img, .team-card__photo,
.coach-card img, .vball-coach-card img, .recruit-hero__photo {
	max-width: 100%;
}
.roster-card__photo, .roster-card > a > img, .roster-card img.roster-card__photo {
	box-shadow: none;
}

.roster-card__stats li, .stat-row li, .vball-metrics li, .measurables div {
	background: var(--vball-wash, #f6f7f7);
	color: var(--vball-ink);
	border: 1px solid var(--vball-line, #dcdcde);
}
.roster-card__stats li { color: var(--vball-ink); }
.stat-row li strong, .roster-card__num { color: var(--vball-navy); }

.scheme-dark a { color: #c9d7e8; }
.scheme-dark a:hover { color: #fff; }
.scheme-dark .site-header a, .scheme-dark .announce a { color: #fff; text-decoration: underline; text-underline-offset: 2px; }
.scheme-dark .site-header .sub-menu a,
.scheme-dark .site-header .sub-menu a:visited { color: #fff !important; }
.scheme-dark .site-header .sub-menu a:hover { color: #fff !important; background: rgba(255,255,255,.12); }
.scheme-dark .nav-menu > li > a, .scheme-dark .header-login, .scheme-dark .header-phone { color: #fff; }
.scheme-dark .header-register, .scheme-dark .nav-menu .menu-cta a { color: #fff !important; background: var(--vball-navy); }
.scheme-dark .program-card__signup { color: #fff; }
.scheme-dark .program-card__ages { background: rgba(255,255,255,.12); color: #fff; }

.scheme-dark .vball-table, .scheme-dark .standings, .scheme-dark .tourney-times, .scheme-dark .ncaa-table {
	background: transparent;
	color: var(--vball-text);
	width: 100%;
}
.scheme-dark .vball-table th, .scheme-dark .standings th, .scheme-dark .tourney-times th, .scheme-dark .ncaa-table th {
	background: #0c1524;
	color: var(--vball-ink);
	border-bottom: 1px solid rgba(255,255,255,.12);
}
.scheme-dark .vball-table td, .scheme-dark .standings td, .scheme-dark .tourney-times td, .scheme-dark .ncaa-table td {
	color: var(--vball-text);
	border-bottom: 1px solid rgba(255,255,255,.08);
}
.scheme-dark .vball-cal-month td, .scheme-dark .vball-cal-week td {
	border-color: rgba(255,255,255,.08);
	background: var(--vball-card);
	color: var(--vball-text);
}
.scheme-dark .vball-cal-daynum { color: var(--vball-ink); }
.scheme-dark .vball-cal li { border-bottom-color: rgba(255,255,255,.08); }
.scheme-dark .vball-cal-views button {
	background: #0c1524;
	color: var(--vball-text);
	border-color: rgba(255,255,255,.2);
}

.scheme-dark input, .scheme-dark select, .scheme-dark textarea,
.scheme-dark .tonight-tool input, .scheme-dark .tonight-tool select,
.scheme-dark .age-finder input:not([type="radio"]):not([type="checkbox"]), .scheme-dark .signup-wizard input:not([type="radio"]):not([type="checkbox"]),
.scheme-dark .search-form input, .scheme-dark .vball-signup-form input,
.scheme-dark .vball-signup-form select, .scheme-dark .vball-interest-form input,
.scheme-dark .vball-interest-form select, .scheme-dark .vball-interest-form textarea,
.scheme-dark .contact-block input, .scheme-dark .contact-block textarea {
	background: #0c1524;
	color: var(--vball-ink);
	border: 1px solid rgba(255,255,255,.18);
}
.scheme-dark input:focus, .scheme-dark select:focus, .scheme-dark textarea:focus {
	border-color: #fff;
	outline: 2px solid #fff;
	outline-offset: 1px;
}
.scheme-dark input::placeholder, .scheme-dark textarea::placeholder { color: var(--vball-muted); }

.scheme-dark .mega-panel, .scheme-dark .sub-menu {
	background: #0a1628;
	color: #fff;
}
.scheme-dark .mega-card { background: #0c1524; color: var(--vball-text); }
.scheme-dark .sub-menu a { color: #fff; }
.scheme-dark .family-nav { background: var(--vball-card); }
.scheme-dark .family-nav__item { color: var(--vball-ink); }
.scheme-dark .family-nav__item.is-on, .scheme-dark .family-nav__item:hover {
	background: #fff; color: var(--vball-navy);
}
.scheme-dark .app-time, .scheme-dark .tonight-card__time { color: #fff; }
.scheme-dark .vball-progress li { border-bottom-color: rgba(255,255,255,.12); color: var(--vball-muted); }
.scheme-dark .vball-progress li[aria-current="step"], .scheme-dark .vball-progress li.is-done {
	color: #fff;
}
.scheme-dark .vball-program-card { background: var(--vball-card); color: var(--vball-text); border-color: rgba(255,255,255,.22); }
.scheme-dark .signup-choice { background: var(--vball-card); border-color: rgba(255,255,255,.22); color: var(--vball-text); }
.scheme-dark .vball-wrap, .scheme-dark .vball-main { color: var(--vball-text); }
.scheme-dark .vball-empty, .scheme-dark .vball-note { color: var(--vball-muted); }
.scheme-dark .sidebar .widget, .scheme-dark .widget {
	background: var(--vball-card);
	border-radius: var(--vball-radius);
	padding: 1rem 1.1rem;
	border: 1px solid rgba(255,255,255,.12);
}
.scheme-dark .kiosk-athlete, .scheme-dark .vball-kiosk-btn { background: #fff; color: var(--vball-navy); }

.scheme-light {
	--vball-shadow: 0 1px 2px rgba(10, 22, 40, .06);
}
.scheme-light .app-card, .scheme-light .vball-card, .scheme-light .roster-card,
.scheme-light .team-card, .scheme-light .coach-card, .scheme-light .program-card {
	border-color: var(--vball-line, #dcdcde);
}

.vball-interest-form { margin-top: 1.25rem; }
.vball-unsigned { min-width: 0; overflow-x: clip; }
.ncaa-table { display: block; overflow-x: auto; }

.team-card img.team-card__photo { border-radius: 14px; }
.recruit-hero__photo { box-shadow: var(--vball-shadow); }

/* Header dropdown lock: paper box, navy links. */
.site-header,
.site-header__inner,
.site-header .wrap,
.nav-menu,
.menu-item-has-children {
	overflow: visible;
}
.nav-primary { overflow: hidden; }
.site-header .sub-menu,
.nav-menu .sub-menu,
.scheme-dark .site-header .sub-menu {
	background: #fff !important;
	color: var(--vball-navy) !important;
	overflow: visible;
	z-index: 80;
	border: 1px solid var(--vball-line);
}
.site-header .sub-menu a,
.nav-menu .sub-menu a,
.scheme-dark .site-header .sub-menu a,
.scheme-dark .site-header .sub-menu a:visited {
	color: var(--vball-navy) !important;
}
.site-header .sub-menu a:hover,
.nav-menu .sub-menu a:hover,
.scheme-dark .site-header .sub-menu a:hover {
	color: var(--vball-navy) !important;
	background: var(--vball-wash, #f6f7f7);
}

/* Theme polish: coach photos 3:4, no extra page box, hero not crushed, leftover light plates. */
.page-template-template-coaches .app-card:has(.vball-coach-grid, .coach-grid) {
	background: transparent;
	border: 0;
	box-shadow: none;
	padding: 0;
}
.site-header .affiliation-marks img,
.site-footer .affiliation-marks img,
.florida-region-footer .affiliation-marks img {
	background: transparent !important;
}
.vball-program-card { background: #fff; border-color: var(--vball-line, #dcdcde); }

/* Teams page already has Club/Mini subnav — hide leftover group heads. */
.is-team-view .teams-group-head,
.is-team-view .vball-teams > h2:first-child { display: none; }
/* Check-in is a kiosk, not a public footer teaser. */
.site-footer a[href*="check-in"] { display: none; }
/* Theme register page keeps one h1. Plugin wizard step titles stay h2. */
.is-signup #vball-signup > h1,
.is-signup .vball-signup > h1,
.is-signup .vball-register > h1 { display: none; }

/* Theme wins over plugin .vball-coach-card img { height:180px; border-radius:12px }. */
.coach-card img,
.vball-coach-card img,
.vball-coach-card.coach-card img {
	width: 100% !important;
	height: auto !important;
	aspect-ratio: 3 / 4 !important;
	object-fit: cover !important;
	object-position: center top;
	border-radius: 0 !important;
	margin: 0;
}

/* Family portal — light desk (paper + navy). Scoped so public pages stay as-is. */
.vball-family{
	--vball-navy:#0a1628;
	--vball-accent:#0a1628;
	--vball-paper:#fff;
	--vball-wash:#f6f7f7;
	--vball-line:#dcdcde;
	--vball-ink:#1d2327;
	--vball-muted:#646970;
	--vball-card:#fff;
	--vball-text:#1d2327;
	--card:#fff;
	--text:#1d2327;
	--ink:#1d2327;
	--muted:#646970;
	--accent:#0a1628;
	color:var(--vball-ink);
	background:var(--vball-wash);
}
.family-app .app-card:has(.vball-family),
.family-app .app-card:has(.vball-token-card){
	background:#f6f7f7;
	color:#1d2327;
	border:1px solid #dcdcde;
	border-radius:16px;
	box-shadow:none;
	overflow:visible;
}
.vball-family a,
.scheme-dark .vball-family a,
.scheme-dark .vball-token-card a{color:#0a1628}
.scheme-dark .vball-family a:hover,
.scheme-dark .vball-token-card a:hover{color:#1a2c4a}
.vball-family-head{
	background:#fff;
	color:#0a1628;
	border-radius:16px;
	padding:1.05rem 1.2rem;
	margin:0 0 1.1rem;
	border:1px solid #dcdcde;
}
.vball-family-kicker{color:#646970}
.vball-family-head h1{color:#0a1628;font-size:1.6rem}
.vball-family-card{
	background:#fff;
	color:#1d2327;
	border:1px solid #dcdcde;
	border-top:3px solid var(--vball-prog,var(--vball-navy,#0a1628));
	border-radius:16px;
	padding:1.15rem 1.15rem 1.25rem;
	margin:0 0 1.15rem;
	box-shadow:0 1px 3px rgba(10,22,40,.06);
	overflow:visible;
}
.vball-family-card__top{align-items:center;gap:.75rem}
.vball-family-card__top h2{color:#0a1628;font-size:1.25rem;letter-spacing:-.02em}
.vball-family-who{display:flex;align-items:center;gap:.75rem;min-width:0}
.vball-family-avatar{
	flex:0 0 48px;
	width:48px;height:48px;
	border-radius:50%;
	background:#0a1628;
	color:#fff;
	font-weight:800;
	font-size:1rem;
	letter-spacing:.02em;
	display:flex;align-items:center;justify-content:center;
}
.vball-family-meta{margin:.15rem 0 0;color:#646970;font-size:.9rem}
.vball-family-prog{background:#0a1628;color:#fff;border:1px solid #0a1628}
.vball-family-status{border-radius:999px;padding:.3rem .7rem}
.vball-family-status.is-ok{background:#e7f7ee;color:#1e6b3c}
.vball-family-status.is-past,.vball-family-status.is-block{background:#fdecea;color:#b32d2e}
.vball-family-status.is-due,.vball-family-status.is-hold{background:#fff4e0;color:#7a4e00}
.vball-family-status.is-pending,.vball-family-status.is-cancel{background:#e8eef8;color:#0a1628}
.vball-family-status.is-uncommitted{background:#0a1628;color:#fff}
.vball-family-tabs{
	display:flex;
	flex-wrap:nowrap;
	align-items:stretch;
	gap:.35rem;
	overflow-x:auto;
	overscroll-behavior-x:contain;
	-webkit-overflow-scrolling:touch;
	scrollbar-width:none;
	position:sticky;
	top:8px;
	z-index:5;
	background:#fff;
	border:1px solid #dcdcde;
	border-radius:12px;
	padding:4px;
	margin:0 0 1rem;
}
.vball-family-tabs::-webkit-scrollbar{display:none}
.vball-family-tabs button{
	flex:0 0 auto;
	border:0;
	background:transparent;
	color:#646970;
	font-weight:800;
	padding:.75rem 1.05rem;
	min-height:48px;
	min-width:5.6rem;
	border-radius:8px;
	cursor:pointer;
	font:inherit;
	font-size:.9rem;
	white-space:nowrap;
	-webkit-tap-highlight-color:transparent;
}
.vball-family-tabs button.is-on{background:#0a1628;color:#fff}
@media (max-width:420px){
	.vball-family-tabs{top:0;margin:0 -4px 1rem;border-radius:12px}
	.vball-family-tabs button{min-height:48px;font-size:.88rem;padding:.7rem .95rem}
}
.vball-tab-panel{display:none}
.vball-tab-panel.is-on{display:block}
.vball-family .vball-btn,
.vball-family-card .vball-btn,
.vball-family .vball-btn-volt,
.vball-family .vball-btn-tap,
.vball-bill-actions .vball-btn:not(.vball-btn-ghost),
.vball-token-card .vball-btn,
.vball-token-card .vball-btn-volt,
.vball-btn-volt{
	background:#0a1628;
	color:#fff!important;
	border:0;
	border-radius:10px;
	min-height:48px;
	font-weight:800;
}
.vball-family .vball-btn-ghost,
.vball-bill-actions .vball-btn-ghost,
.vball-matches-board .vball-btn-ghost{
	background:#fff;
	color:#0a1628!important;
	border:2px solid #0a1628;
	border-radius:10px;
}
.vball-family-photo img{width:96px;height:128px;object-fit:cover;object-position:center top;border-radius:12px;background:#0a1628}
.vball-family-card input,.vball-family-card select,.vball-family-card textarea,
.vball-family-lookup input,
.vball-family-video input,.vball-family-video textarea,
.scheme-dark .vball-family input,
.scheme-dark .vball-family select,
.scheme-dark .vball-family textarea,
.scheme-dark .vball-token-card input,
.scheme-dark .vball-token-card select,
.scheme-dark .vball-token-card textarea{
	background:#fff;color:#1d2327;border:1px solid #dcdcde;border-radius:10px
}
.scheme-dark .vball-family input:focus,
.scheme-dark .vball-family select:focus,
.scheme-dark .vball-family textarea:focus,
.scheme-dark .vball-token-card input:focus,
.scheme-dark .vball-token-card select:focus,
.scheme-dark .vball-token-card textarea:focus{
	border-color:#0a1628;
	outline:2px solid #0a1628;
	outline-offset:1px;
}
.vball-family-card label,.vball-family-card h2,.vball-family-card h3{color:#0a1628}
.vball-family-card .vball-note{color:#646970}
.vball-family-card p{color:#1d2327}
.vball-family-form,.vball-family-stats,.vball-family-lookup,.vball-family-payall,.vball-billing-board{
	background:#fff;color:#1d2327;border:1px solid #dcdcde;border-radius:16px
}
.vball-family-form.is-signed{background:#f3faf6}
.vball-recruit-needed{
	background:#fff;
	border:1px solid #dcdcde;
	border-radius:16px;
	padding:1rem 1.05rem;
	margin:0 0 1rem;
	color:#1d2327;
}
.vball-recruit-needed p{margin:.3rem 0;color:#1d2327}
.vball-recruit-needed strong{color:#0a1628;display:block;font-size:1.02rem}
.vball-recruit-needed .vball-note{color:#646970}
.vball-recruit-dash{background:#fff;border:1px solid #dcdcde;border-radius:16px;padding:1rem 1.05rem;color:#1d2327}
.vball-recruit-dash h2,.vball-recruit-dash h3{color:#0a1628;margin:.2rem 0 .55rem}
.vball-recruit-dash h3{font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:#646970}
.vball-recruit-totals{margin:.65rem 0 1rem}
.vball-recruit-zero{color:#0a1628;font-size:1.05rem;margin:.2rem 0}
.vball-recruit-nudge li,.vball-interest-list li,.vball-gear-line,.vball-bill-line{
	border-bottom-color:#dcdcde;color:#1d2327
}
.vball-gear-board,.vball-teams-board{background:#fff;border:1px solid #dcdcde;border-radius:16px;padding:1rem 1.05rem;color:#1d2327}
.vball-gear-year{color:#646970}
.vball-gear-line em.is-ordered{color:#7a4e00}
.vball-gear-line em.is-assigned,.vball-gear-line em.is-received{color:#1e6b3c}
.vball-bill-kicker,.vball-bill-amt{color:#0a1628}
.vball-player-bill{background:#fff;border:1px solid #dcdcde;border-radius:16px;padding:.9rem 1rem;margin:0 0 .85rem}
.vball-unsigned-card:not(:has(img)){display:none}

/* Club family video fields — light desk. */
.vball-family-video{
	margin: 1rem 0 1.15rem;
	padding: 1rem 1.05rem 1.1rem;
	background: #fff;
	border: 1px solid #dcdcde;
	border-top: 3px solid #0a1628;
	border-radius: 16px;
}
.vball-family-video__kicker{
	margin: 0 0 .65rem;
	color: #646970;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .12em;
	text-transform: uppercase;
}
.vball-family-video input[type="url"],
.vball-family-video textarea{
	width: 100%;
	min-height: 48px;
	display: block;
	font-size: 1rem;
	background: #fff;
	color: #1d2327;
	border: 1px solid #dcdcde;
	border-radius: 10px;
}
.vball-family-video textarea{ min-height: 7rem; }
.vball-family-video .vball-note{ margin: .55rem 0 0; }

/* Token cards (email stats/results) — match family light desk. */
.vball-matches-board{background:#fff;color:#1d2327;border:1px solid #dcdcde;border-radius:16px}
.vball-matches-board h2{color:#0a1628}
.vball-match-tile{background:#fff;border:1px solid #dcdcde;color:#1d2327}
.vball-match-tile h3,.vball-match-opp{color:#0a1628}
.vball-match-meta{color:#646970}
.vball-token-card.vball-stats-card,.vball-token-card.vball-results-card{background:#fff;color:#1d2327;border:1px solid #dcdcde;border-radius:16px}
.vball-token-card.vball-stats-card h1,.vball-token-card.vball-results-card h1{color:#0a1628}
.vball-token-card .vball-token-kicker{color:#646970}
.vball-token-card .vball-token-meta,.vball-token-card .vball-note{color:#646970}
.vball-token-card .vball-count-field input,.vball-token-card input[name=opponent],.vball-token-card .vball-set-row input{background:#fff;color:#1d2327;border-color:#dcdcde}
.vball-token-card .vball-calc-rates{background:#f6f7f7;color:#1d2327}
.vball-token-card .vball-calc-rates strong{color:#0a1628}
.vball-token-card .vball-wl-opt{color:#0a1628;border-color:#dcdcde;background:#fff}
.vball-wl-opt.is-on{background:#0a1628;color:#fff}
.vball-chip.is-win{background:#e7f7ee;color:#1e6b3c}
.vball-chip.is-need{background:#fff4e0;color:#7a4e00}
.vball-chip.is-soon{background:#e8eef8;color:#0a1628}
.vball-chip.is-done{background:#f0f0f1;color:#646970}
.vball-board-label{color:#646970}
.vball-family-match-stats,.vball-match-stats-form{background:#f6f7f7;border:1px solid #dcdcde}

/* ------------------------------------------------------------------
   Family / token light desk — LAST layer. Beats scheme-dark canvas.
   Same paper + navy tokens as public. Header stays paper (not volt).
   ------------------------------------------------------------------ */
html:has(body.is-family-app) {
	--vball-bg:#f6f7f7; --vball-card:#fff; --vball-text:#1d2327; --vball-ink:#1d2327;
	--vball-muted:#646970; --vball-accent:#0a1628; --bg:#f6f7f7; --card:#fff;
	--text:#1d2327; --ink:#1d2327; --accent:#0a1628;
	background:#f6f7f7 !important;
	color:#1d2327;
}
body.is-family-app,
body.is-family-app.scheme-dark {
	--vball-bg:#f6f7f7; --vball-card:#fff; --vball-text:#1d2327; --vball-ink:#1d2327;
	--vball-muted:#646970; --vball-accent:#0a1628; --bg:#f6f7f7; --card:#fff;
	--text:#1d2327; --ink:#1d2327; --accent:#0a1628;
	background:#f6f7f7 !important;
	color:#1d2327 !important;
}

/* Header / announce / drawer stay paper+navy. Footer stays cinematic navy. */
body.is-family-app .site-header,
body.is-family-app.scheme-dark .site-header,
body.is-family-app .announce,
body.is-family-app .mobile-drawer {
	--vball-accent:#0a1628;
	--accent:#0a1628;
	--vball-bg:#f6f7f7;
	--vball-card:#fff;
	--vball-text:#1d2327;
	--vball-ink:#1d2327;
	--bg:#f6f7f7;
	--card:#fff;
	--text:#1d2327;
	--ink:#1d2327;
}
body.is-family-app .site-footer {
	--vball-accent:#fff;
	--accent:#fff;
	--vball-text:#d7dee8;
	--vball-ink:#fff;
}

/* Canvas + wrap. Body class is is-family-app; main is family-app. */
body.is-family-app .site-main,
body.is-family-app .app-stack,
body.is-family-app .family-app,
.family-app,
.family-app .app-card,
.family-app .app-card:has(.vball-family),
.family-app .app-card:has(.vball-token-card) {
	background:#f6f7f7;
	color:#1d2327;
}
body.is-family-app .app-card,
body.is-family-app .vball-family,
.family-app .app-card,
.vball-family {
	background:#f6f7f7;
	color:#1d2327;
	border-color:#dcdcde;
	overflow:visible;
	overflow-x:visible;
}
body.is-family-app .vball-family-card,
body.is-family-app .vball-token-card,
.vball-family-card,
.vball-token-card,
.vball-token-card.vball-stats-card,
.vball-token-card.vball-results-card {
	background:#fff;
	color:#1d2327;
	border-color:#dcdcde;
	overflow:visible;
}

/* Sticky swipe tabs. Ancestors must stay overflow:visible. */
body.is-family-app .vball-family-tabs,
.vball-family .vball-family-tabs,
.vball-family-tabs {
	position:sticky;
	top:8px;
	z-index:5;
	display:flex;
	flex-wrap:nowrap;
	overflow-x:auto;
	overscroll-behavior-x:contain;
	-webkit-overflow-scrolling:touch;
	background:#fff;
	border:1px solid #dcdcde;
}
body.is-family-app .vball-family-tabs button.is-on,
.vball-family-tabs button.is-on {
	background:#0a1628;
	color:#fff;
}

/* scheme-dark input/select/textarea — hardcoded #0c1524 + volt border. */
body.is-family-app.scheme-dark input,
body.is-family-app.scheme-dark select,
body.is-family-app.scheme-dark textarea,
body.scheme-dark.is-family-app input:not([type="radio"]):not([type="checkbox"]),
body.scheme-dark.is-family-app select,
body.scheme-dark.is-family-app textarea,
body.is-family-app.scheme-dark .tonight-tool input,
body.is-family-app.scheme-dark .tonight-tool select,
body.is-family-app.scheme-dark .age-finder input:not([type="radio"]):not([type="checkbox"]),
body.is-family-app.scheme-dark .signup-wizard input:not([type="radio"]):not([type="checkbox"]),
body.is-family-app.scheme-dark .search-form input,
body.is-family-app.scheme-dark .vball-signup-form input,
body.is-family-app.scheme-dark .vball-signup-form select,
body.is-family-app.scheme-dark .vball-family input,
body.is-family-app.scheme-dark .vball-family select,
body.is-family-app.scheme-dark .vball-family textarea,
body.is-family-app.scheme-dark .vball-token-card input,
body.is-family-app.scheme-dark .vball-token-card select,
body.is-family-app.scheme-dark .vball-token-card textarea,
body.is-family-app.scheme-dark .vball-family-card input,
body.is-family-app.scheme-dark .vball-family-card select,
body.is-family-app.scheme-dark .vball-family-card textarea {
	background:#fff;
	color:#1d2327;
	border:1px solid #dcdcde;
	border-radius:10px;
}
body.is-family-app.scheme-dark input:focus,
body.is-family-app.scheme-dark select:focus,
body.is-family-app.scheme-dark textarea:focus {
	border-color:#0a1628;
	outline:2px solid #0a1628;
	outline-offset:1px;
}
body.is-family-app.scheme-dark input::placeholder,
body.is-family-app.scheme-dark textarea::placeholder {
	color:#646970;
}

/* Links / heads in the family canvas. Do not touch header a. */
body.is-family-app .site-main a,
body.is-family-app.scheme-dark .site-main a,
body.is-family-app .vball-family a,
body.is-family-app .vball-token-card a,
.family-app a,
.vball-family a,
.vball-token-card a {
	color:#0a1628;
}
body.is-family-app .site-main a:hover,
body.is-family-app.scheme-dark .site-main a:hover,
.vball-family a:hover,
.vball-token-card a:hover {
	color:#1a2c4a;
}
body.is-family-app .site-main h1,
body.is-family-app .site-main h2,
body.is-family-app .site-main h3,
body.is-family-app.scheme-dark .site-main h1,
body.is-family-app.scheme-dark .site-main h2,
body.is-family-app.scheme-dark .site-main h3 {
	color:#0a1628;
}

/* Buttons inside family: navy fill, white text, 10px radius. */
body.is-family-app .site-main .vball-btn,
body.is-family-app .site-main .vball-btn-volt,
body.is-family-app .site-main .vball-btn-tap,
body.is-family-app .vball-family .vball-btn,
body.is-family-app .vball-family .vball-btn-volt,
body.is-family-app .vball-token-card .vball-btn,
body.is-family-app .vball-token-card .vball-btn-volt,
.vball-family .vball-btn,
.vball-family .vball-btn-volt,
.vball-family .vball-btn-tap,
.vball-token-card .vball-btn,
.vball-token-card .vball-btn-volt {
	background:#0a1628;
	color:#fff !important;
	border:0;
	border-radius:10px;
}
body.is-family-app .site-main .vball-btn-ghost,
.vball-family .vball-btn-ghost,
.vball-bill-actions .vball-btn-ghost,
.vball-matches-board .vball-btn-ghost {
	background:#fff;
	color:#0a1628 !important;
	border:2px solid #0a1628;
	border-radius:10px;
}

/* Family product nav in main — navy selected, no volt CTA. */
body.is-family-app .site-main .family-nav,
body.is-family-app.scheme-dark .site-main .family-nav,
body.is-family-app.scheme-dark .family-nav {
	background:#fff;
}
body.is-family-app .site-main .family-nav__item,
body.is-family-app.scheme-dark .site-main .family-nav__item,
body.is-family-app.scheme-dark .family-nav__item {
	color:#0a1628;
	background:transparent;
}
body.is-family-app .site-main .family-nav__item.is-on,
body.is-family-app .site-main .family-nav__item:hover,
body.is-family-app .site-main .family-nav__item[href*="register"],
body.is-family-app.scheme-dark .site-main .family-nav__item.is-on,
body.is-family-app.scheme-dark .site-main .family-nav__item:hover,
body.is-family-app.scheme-dark .family-nav__item.is-on,
body.is-family-app.scheme-dark .family-nav__item:hover {
	background:#0a1628;
	color:#fff;
}

/* No #e8ff3d in family / token. */
body.is-family-app .vball-family .vball-video-out,
body.is-family-app .vball-family .vball-lazy-video,
.vball-family .vball-video-out,
.vball-family .vball-lazy-video {
	background:#0a1628;
	color:#fff !important;
	border-color:#0a1628;
}
body.is-family-app .recruit-video {
	border-top-color:#0a1628;
}

/* Tables / calendar / signup plates under family. */
body.is-family-app.scheme-dark .vball-table,
body.is-family-app.scheme-dark .vball-table th,
body.is-family-app.scheme-dark .vball-table td,
body.is-family-app.scheme-dark .vball-cal-month td,
body.is-family-app.scheme-dark .vball-cal-week td,
body.is-family-app.scheme-dark .vball-cal-views button,
body.is-family-app.scheme-dark .vball-cal-sheet__close,
body.is-family-app.scheme-dark .vball-cal-sheet__panel {
	background:#fff;
	color:#1d2327;
	border-color:#dcdcde;
}
body.is-family-app.scheme-dark .vball-program-card,
body.is-family-app.scheme-dark .signup-choice {
	background:#fff;
	color:#1d2327;
	border-color:#dcdcde;
}

/* Page hero stays a navy band with white type. */
body.is-family-app .page-hero,
body.is-family-app .page-hero h1,
body.is-family-app .page-hero h2,
body.is-family-app .page-hero h3,
body.is-family-app .page-hero .eyebrow,
body.is-family-app .page-hero .lead,
body.is-family-app .page-hero a,
body.is-family-app.scheme-dark .page-hero h1,
body.is-family-app.scheme-dark .page-hero h2,
body.is-family-app.scheme-dark .page-hero h3,
body.is-family-app.scheme-dark .page-hero a {
	color:#fff;
}

/* Recruit video / footage chips on family-classed pages: navy, no volt. */
body.is-family-app .recruit-video,
.vball-family .recruit-video {
	border-top-color:#0a1628;
}
body.is-family-app .recruit-video .vball-lazy-video::before,
body.is-family-app .recruit-video__tap,
body.is-family-app .recruit-footage__chip:hover,
body.is-family-app .recruit-footage__chip:focus,
body.is-family-app .vball-lazy-video,
body.is-family-app .vball-video-out,
.vball-family .vball-lazy-video,
.vball-family .vball-video-out,
.vball-token-card .vball-lazy-video,
.vball-token-card .vball-video-out {
	background:#0a1628;
	color:#fff !important;
	border-color:#0a1628;
	box-shadow:none;
}

/* Check-in kiosk is also is-family-app — keep the dark full-screen. */
body.is-family-app.is-kiosk,
body.is-family-app.is-kiosk.scheme-dark {
	--vball-bg:#0a1628; --vball-card:#101a2c; --vball-text:#fff; --vball-ink:#fff;
	--vball-accent:#0a1628; --bg:#0a1628; --card:#101a2c; --text:#fff; --accent:#fff;
	background:#0a1628 !important;
	color:#fff !important;
}
html:has(body.is-family-app.is-kiosk) {
	background:#0a1628 !important;
	--vball-bg:#0a1628; --vball-accent:#0a1628; --bg:#0a1628; --accent:#fff;
}

/* Hero CTAs: white Register on the cinematic navy photo. */
.hero .btn-accent, .hero .btn-navy { background: #fff; color: var(--vball-navy); }
.hero .btn-accent:hover, .hero .btn-navy:hover { background: #f6f7f7; color: var(--vball-navy); }
.hero .btn-ghost { color: #fff; border-color: rgba(255,255,255,.7); }
.hero .btn-ghost:hover { background: rgba(255,255,255,.12); color: #fff; }

/* Over-hero header: white type, white Register that cannot be missed. */
.has-transparent-header.is-club-home:not(.is-scrolled) .nav-menu > li > a,
.has-transparent-header.is-club-home:not(.is-scrolled) .header-login,
.has-transparent-header.is-club-home:not(.is-scrolled) .header-phone,
.has-transparent-header.is-club-home:not(.is-scrolled) .site-wordmark { color: #fff; }
.has-transparent-header.is-club-home:not(.is-scrolled) .header-register,
.has-transparent-header.is-club-home:not(.is-scrolled) .nav-menu .menu-cta a {
	background: #fff !important; color: var(--vball-navy) !important;
}
.has-transparent-header.is-club-home:not(.is-scrolled) .nav-toggle { background: #fff; color: var(--vball-navy); }
.has-transparent-header.is-club-home:not(.is-scrolled) .nav-toggle__bar,
.has-transparent-header.is-club-home:not(.is-scrolled) .nav-toggle__bar::before,
.has-transparent-header.is-club-home:not(.is-scrolled) .nav-toggle__bar::after { background: var(--vball-navy); }
.has-transparent-header.is-club-home:not(.is-scrolled) .site-wordmark__mark { background: #fff; color: var(--vball-navy); }
.has-transparent-header.is-club-home:not(.is-scrolled) .affiliation-marks--header img { filter: brightness(0) invert(1); }
.has-transparent-header.is-club-home:not(.is-scrolled) .affiliation-marks--header .affiliation-mark--aau,
.has-transparent-header.is-club-home:not(.is-scrolled) .affiliation-marks--header .affiliation-mark--usav { filter: none; }

.tourney-times th, .tourney-times td { border-bottom: 1px solid var(--vball-line); }
.standings th, .standings td { border-bottom: 1px solid var(--vball-line); }
.standings { background: #fff; }
.empty-state, .vball-empty {
	background: #fff; border: 1px dashed var(--vball-line); border-radius: 12px;
	padding: 1.5rem 1.25rem; color: var(--vball-muted); text-align: center;
}


/* 1.0.2 layout lock: overlays, affiliations, program photos, recruit name. */
.coach-card__hud {
	position: absolute;
	left: 0; right: 0; bottom: 0;
	z-index: 2;
	padding: 2.6rem 0.85rem 0.75rem;
	background: linear-gradient(180deg, transparent 0%, rgba(7,11,20,.92) 70%);
	pointer-events: none;
}
.coach-card__hud h3,
.coach-card__hud a,
.coach-card__hud .kicker { pointer-events: auto; color: #fff; }
.coach-card__hud .kicker { color: #5ad4ff; }
.coach-card__shot .coach-card__contact,
.coach-card > .coach-card__contact {
	position: absolute;
	top: 10px; right: 10px;
	z-index: 3;
	margin: 0;
	padding: 0;
	background: none;
}
.coach-card__bio { margin: 0.7rem 0.9rem 0; }

/* Plugin-rendered coach cards (no .coach-card__shot wrapper). */
.coach-card:not(:has(.coach-card__shot)),
.vball-coach-card:not(:has(.coach-card__shot)) {
	display: grid;
	grid-template-columns: 1fr;
}
.coach-card:not(:has(.coach-card__shot)) > .coach-card__media,
.vball-coach-card:not(:has(.coach-card__shot)) > .coach-card__media,
.coach-card:not(:has(.coach-card__shot)) > img,
.vball-coach-card:not(:has(.coach-card__shot)) > img {
	grid-column: 1;
	grid-row: 1;
	position: relative;
	display: block;
}
.coach-card:not(:has(.coach-card__shot)) > .coach-card__media::after,
.vball-coach-card:not(:has(.coach-card__shot)) > .coach-card__media::after {
	content: "";
	position: absolute;
	left: 0; right: 0; bottom: 0;
	height: 46%;
	background: linear-gradient(180deg, transparent, rgba(7,11,20,.94));
	pointer-events: none;
	z-index: 1;
}
.coach-card:not(:has(.coach-card__shot)) > h3,
.vball-coach-card:not(:has(.coach-card__shot)) > h3 {
	grid-column: 1;
	grid-row: 1;
	align-self: end;
	z-index: 2;
	margin: 0 12px 1.55rem;
	color: #fff;
	text-shadow: 0 1px 8px rgba(0,0,0,.65);
}
.coach-card:not(:has(.coach-card__shot)) > .kicker,
.vball-coach-card:not(:has(.coach-card__shot)) > .kicker {
	grid-column: 1;
	grid-row: 1;
	align-self: end;
	z-index: 2;
	margin: 0 12px 0.7rem;
	color: #5ad4ff;
}
.coach-card:not(:has(.coach-card__shot)) > .coach-card__bio,
.vball-coach-card:not(:has(.coach-card__shot)) > .coach-card__bio {
	grid-column: 1;
	grid-row: 2;
}
.coach-card:not(:has(.coach-card__shot)) > .coach-card__contact,
.vball-coach-card:not(:has(.coach-card__shot)) > .coach-card__contact {
	grid-column: 1;
	grid-row: 1;
	align-self: start;
	justify-self: end;
	z-index: 3;
	margin: 10px;
}

body:not(.is-hud) .program-card__photo,
body:not(.is-hud) .program-card::before {
	border-radius: 12px;
	width: 100%;
	max-width: 100%;
	margin-left: 0;
	margin-right: 0;
}

.site-header__inner { align-items: center; }
.header-actions { flex: 0 0 auto; gap: 0.75rem; }
