/*!
 * BloomSports Brand Stylesheet — v2.0.0
 * Clean rebuild. Single source of truth for the whole site.
 *
 * PRINCIPLE: Pages carry NO inline styling. Page markup says only
 * WHAT a thing is (section, hero, card). This file decides how it
 * looks. Any new page built from these classes is automatically
 * correct — fonts, colors, width, spacing, alternating bands.
 */

/* ===== 1. TOKENS ===== */
:root {
	--bs-gold:#E69930; --bs-gold-hover:#D08820; --bs-navy:#0F2340; --bs-white:#FFFFFF;
	--bs-cream:#FBF7EE; --bs-stone:#DCD3BE; --bs-slate:#3E5C76; --bs-ink:#1A1A1A;
	--bs-forest:#1F4E3D; --bs-brick:#C8474E;
	--bs-line:rgba(15,35,64,0.15); --bs-line-soft:rgba(15,35,64,0.10);
	--bs-font-display:'Poppins','Helvetica Neue',Arial,sans-serif;
	--bs-font-body:'Inter','Helvetica Neue',Arial,sans-serif;
	--bs-fs-hero:clamp(40px,5vw,68px);
	--bs-fs-h1:clamp(30px,4vw,46px);
	--bs-fs-h2:clamp(24px,3vw,34px);
	--bs-fs-h3:20px; --bs-fs-h4:17px; --bs-fs-body:17px; --bs-fs-small:15px;
	--bs-fs-caption:13px; --bs-fs-eyebrow:12px; --bs-fs-display:30px;
	--bs-section-y:64px; --bs-gutter:24px;
	--bs-content-width:1180px; --bs-radius:8px;
}

/* ===== 2. BASE & TYPOGRAPHY ===== */
body.bloomsports {
	font-family:var(--bs-font-body); font-size:var(--bs-fs-body); line-height:1.6;
	color:var(--bs-ink); background-color:var(--bs-cream); -webkit-font-smoothing:antialiased;
}
.bloomsports h1,.bloomsports h2,.bloomsports h3,.bloomsports h4,.bloomsports h5,.bloomsports h6 {
	font-family:var(--bs-font-display); color:var(--bs-navy); font-weight:700;
	margin:0 0 0.4em; line-height:1.12;
}
.bloomsports h1 { font-size:var(--bs-fs-h1); letter-spacing:-0.5px; }
.bloomsports h2 { font-size:var(--bs-fs-h2); }
.bloomsports h3 { font-size:var(--bs-fs-h3); font-family:var(--bs-font-body); }
.bloomsports h4 { font-size:var(--bs-fs-h4); font-family:var(--bs-font-body); }
.bloomsports p { margin:0 0 1em; color:var(--bs-slate); }
.bloomsports p:last-child { margin-bottom:0; }
.bloomsports a { color:var(--bs-navy); text-decoration-color:var(--bs-gold); text-underline-offset:3px; transition:color 150ms ease; }
.bloomsports a:hover { color:var(--bs-gold); }

/* ===== 3. PAGE WIDTH SYSTEM ===== */
.bloomsports .bs-section > .wp-block-group__inner-container,
.bloomsports .bs-inner {
	max-width:var(--bs-content-width); margin-left:auto; margin-right:auto;
}
.bloomsports .bs-section .wp-block-group__inner-container {
	max-width:var(--bs-content-width); margin-left:auto; margin-right:auto;
}

/* ===== 4. SECTION BANDS ===== */
.bloomsports .bs-section {
	padding-top:var(--bs-section-y); padding-bottom:var(--bs-section-y);
	padding-left:var(--bs-gutter); padding-right:var(--bs-gutter);
}
.bloomsports .bs-band-cream { background-color:var(--bs-cream); }
.bloomsports .bs-band-stone { background-color:var(--bs-stone); }
.bloomsports .bs-band-navy { background-color:var(--bs-navy); color:var(--bs-white); }
.bloomsports .bs-band-white { background-color:var(--bs-white); }
.bloomsports .bs-band-forest { background-color:var(--bs-forest); color:var(--bs-white); }
.bloomsports .bs-band-navy h1,.bloomsports .bs-band-navy h2,
.bloomsports .bs-band-navy h3,.bloomsports .bs-band-navy h4 { color:var(--bs-white); }
.bloomsports .bs-band-navy p { color:rgba(255,255,255,0.85); }
.bloomsports .bs-band-forest h1,.bloomsports .bs-band-forest h2,
.bloomsports .bs-band-forest h3,.bloomsports .bs-band-forest h4 { color:var(--bs-white); }
.bloomsports .bs-band-forest p { color:rgba(255,255,255,0.92); }
.bloomsports .bs-banner {
	background-color:var(--bs-brick); color:var(--bs-white); text-align:center;
	padding:11px var(--bs-gutter); font-size:var(--bs-fs-caption);
	font-weight:700; letter-spacing:0.5px;
}
.bloomsports .bs-banner p,
.bloomsports .bs-banner .bs-banner-text { color:var(--bs-white); margin:0; }
.bloomsports .bs-banner a { color:var(--bs-white); text-decoration:underline; text-underline-offset:3px; }

/* ===== 5. BUTTONS ===== */
.bloomsports .wp-block-button.bs-btn { border:none !important; background:none !important; padding:0 !important; }
.bloomsports .wp-block-button__link,.bloomsports a.bs-btn-link {
	display:inline-flex; align-items:center; justify-content:center; gap:8px;
	padding:14px 26px; border-radius:6px; font-family:var(--bs-font-body);
	font-size:14px; font-weight:700; letter-spacing:0.5px; text-transform:uppercase;
	text-decoration:none; line-height:1; border:1.5px solid transparent;
	transition:background-color 150ms ease,color 150ms ease,border-color 150ms ease;
}
.bloomsports .bs-btn--primary .wp-block-button__link,.bloomsports a.bs-btn-link.bs-btn--primary {
	background-color:var(--bs-gold); color:var(--bs-navy); border-color:var(--bs-gold);
}
.bloomsports .bs-btn--primary .wp-block-button__link:hover,.bloomsports a.bs-btn-link.bs-btn--primary:hover {
	background-color:var(--bs-gold-hover); border-color:var(--bs-gold-hover); color:var(--bs-navy);
}
.bloomsports .bs-btn--secondary .wp-block-button__link,.bloomsports a.bs-btn-link.bs-btn--secondary {
	background-color:transparent; color:var(--bs-navy); border-color:var(--bs-navy);
}
.bloomsports .bs-btn--secondary .wp-block-button__link:hover { background-color:var(--bs-navy); color:var(--bs-white); }
.bloomsports .bs-band-navy .bs-btn--secondary .wp-block-button__link { color:var(--bs-white); border-color:var(--bs-white); }
.bloomsports .bs-band-navy .bs-btn--secondary .wp-block-button__link:hover { background-color:var(--bs-white); color:var(--bs-navy); }
.bloomsports .bs-btn--forest .wp-block-button__link,.bloomsports a.bs-btn-link.bs-btn--forest {
	background-color:var(--bs-forest); color:var(--bs-white); border-color:var(--bs-forest);
}
.bloomsports .bs-btn--forest .wp-block-button__link:hover,.bloomsports a.bs-btn-link.bs-btn--forest:hover {
	background-color:#163A2D; color:var(--bs-white); border-color:#163A2D;
}
.bloomsports .header-navigation .menu-item.bs-btn--primary > a {
	padding:8px 16px; font-size:12px; background-color:var(--bs-gold); color:var(--bs-navy);
	border-radius:6px; font-weight:700; letter-spacing:0.5px; text-transform:uppercase; text-decoration:none;
}
.bloomsports .header-navigation .menu-item.bs-btn--primary > a:hover { background-color:var(--bs-gold-hover); color:var(--bs-navy); }

/* ===== 6. COMPONENTS ===== */
.bloomsports .bs-eyebrow {
	display:block; color:var(--bs-slate); font-family:var(--bs-font-body); font-weight:700;
	font-size:var(--bs-fs-eyebrow); letter-spacing:3px; text-transform:uppercase; margin-bottom:10px;
}
.bloomsports .bs-band-navy .bs-eyebrow { color:var(--bs-gold); }
.bloomsports .bs-pill {
	display:inline-flex; align-items:center; gap:8px; padding:6px 13px; border-radius:999px;
	font-family:var(--bs-font-body); font-size:var(--bs-fs-eyebrow); font-weight:700;
	letter-spacing:1.5px; text-transform:uppercase; margin:0 0 14px;
}
.bloomsports .bs-pill::before { content:""; width:7px; height:7px; border-radius:50%; background:currentColor; }
.bloomsports .bs-pill--forest { background:rgba(31,78,61,0.18); color:#5FD6A8; }
.bloomsports .bs-card {
	background-color:var(--bs-white); border:0.5px solid var(--bs-line);
	border-radius:var(--bs-radius); padding:26px; color:var(--bs-ink);
}
.bloomsports .bs-card h1,.bloomsports .bs-card h2,.bloomsports .bs-card h3,.bloomsports .bs-card h4 { color:var(--bs-navy); }
.bloomsports .bs-card p { color:var(--bs-slate); }
.bloomsports .bs-card .bs-eyebrow { color:var(--bs-slate); }
.bloomsports .bs-card--gold { border-top:5px solid var(--bs-gold); }
.bloomsports .bs-card--slate { border-top:5px solid var(--bs-slate); }
.bloomsports .bs-card--forest { border-top:5px solid var(--bs-forest); }
.bloomsports .bs-card--navy { border-left:5px solid var(--bs-navy); }
/* Solid navy card — full navy fill, light text (used for emphasis tiles) */
.bloomsports .bs-card.bs-card--navy-solid {
	background-color:var(--bs-navy) !important;
	border:0.5px solid var(--bs-navy);
	border-top:5px solid var(--bs-gold);
}
.bloomsports .bs-card.bs-card--navy-solid h1,
.bloomsports .bs-card.bs-card--navy-solid h2,
.bloomsports .bs-card.bs-card--navy-solid h3,
.bloomsports .bs-card.bs-card--navy-solid h4 { color:var(--bs-gold) !important; }
.bloomsports .bs-card.bs-card--navy-solid p,
.bloomsports .bs-card.bs-card--navy-solid .has-white-color { color:var(--bs-white) !important; }
.bloomsports .bs-card.bs-card--navy-solid .has-bloom-gold-color { color:var(--bs-gold) !important; }

/* --- Division card (Option B): navy header band + centered details --- */
.bloomsports .bs-divcard {
	background-color:var(--bs-white);
	border:0.5px solid var(--bs-line);
	border-radius:var(--bs-radius);
	overflow:hidden;
	padding:0 !important;
}
.bloomsports .bs-divcard__head {
	background-color:var(--bs-navy);
	padding:16px 12px;
	text-align:center;
}
.bloomsports .bs-divcard__head .bs-divcard__name {
	font-family:var(--bs-font-display);
	font-weight:800;
	font-size:18px;
	line-height:1.2;
	color:var(--bs-gold);
	margin:0;
}
/* High School card — slate header to read as the quieter option */
.bloomsports .bs-divcard--hs .bs-divcard__head { background-color:var(--bs-slate); }
.bloomsports .bs-divcard--hs .bs-divcard__head .bs-divcard__name { color:var(--bs-white); }

.bloomsports .bs-divcard__body {
	padding:20px 16px;
	text-align:center;
}
/* Grade-level band — sits above the price, branded as a soft pill */
.bloomsports .bs-divcard__grades {
	display:inline-block;
	background-color:var(--bs-cream);
	color:var(--bs-slate);
	font-family:var(--bs-font-body);
	font-weight:600;
	font-size:var(--bs-fs-caption);
	letter-spacing:0.3px;
	padding:5px 12px;
	border-radius:999px;
	margin:0 0 14px;
}
.bloomsports .bs-divcard__price {
	font-family:var(--bs-font-display);
	font-weight:800;
	font-size:28px;
	color:var(--bs-forest);
	margin:0;
	line-height:1;
}
.bloomsports .bs-divcard__sub {
	font-size:var(--bs-fs-caption);
	color:var(--bs-slate);
	margin:4px 0 0;
}
.bloomsports .bs-stat { font-family:var(--bs-font-display); font-weight:700; font-size:var(--bs-fs-display); line-height:1; }
.bloomsports .bs-stat--gold { color:var(--bs-gold); }
.bloomsports .bs-stat--forest { color:var(--bs-forest); }
.bloomsports .bs-stat--navy { color:var(--bs-navy); }
.bloomsports .bs-phase {
	background-color:var(--bs-white); border:0.5px solid var(--bs-line);
	border-top:4px solid var(--bs-gold); border-radius:0 0 var(--bs-radius) var(--bs-radius);
	padding:20px 18px; color:var(--bs-ink);
}
.bloomsports .bs-phase h3,.bloomsports .bs-phase h4 { color:var(--bs-navy); }
.bloomsports .bs-phase p { color:var(--bs-slate); font-size:var(--bs-fs-caption); }
.bloomsports .bs-phase--final { background-color:var(--bs-forest); border-left:none; border-right:none; border-bottom:none; }
.bloomsports .bs-phase--final h3,.bloomsports .bs-phase--final h4 { color:var(--bs-white); }
.bloomsports .bs-phase--final p { color:rgba(255,255,255,0.9); }
.bloomsports .bs-phase__week {
	color:var(--bs-gold); font-weight:700; font-size:11px; letter-spacing:1.5px;
	text-transform:uppercase; margin-bottom:8px;
}
.bloomsports .bs-heading { text-align:center; margin-bottom:36px; }

/* --- FAQ category header --- */
.bloomsports .bs-faq-cat {
	font-family:var(--bs-font-display);
	font-size:var(--bs-fs-h3);
	color:var(--bs-slate);
	letter-spacing:1px;
	text-transform:uppercase;
	margin:0 0 16px;
	padding-bottom:8px;
	border-bottom:2px solid var(--bs-gold);
}
.bloomsports .bs-band-navy .bs-faq-cat { color:var(--bs-gold); }

/* --- FAQ accordion item (native Details block) --- */
.bloomsports .bs-faq {
	background-color:var(--bs-white);
	border:0.5px solid var(--bs-line);
	border-radius:var(--bs-radius);
	margin-bottom:8px;
	padding:0;
}
.bloomsports .bs-faq summary {
	font-family:var(--bs-font-body);
	font-weight:600;
	font-size:var(--bs-fs-small);
	color:var(--bs-navy);
	padding:16px 18px;
	cursor:pointer;
	list-style:none;
	display:flex;
	justify-content:space-between;
	align-items:center;
	gap:14px;
}
.bloomsports .bs-faq summary::-webkit-details-marker { display:none; }
.bloomsports .bs-faq summary::after {
	content:"+";
	color:var(--bs-gold);
	font-size:20px;
	font-weight:700;
	flex-shrink:0;
}
.bloomsports .bs-faq[open] summary::after { content:"\2212"; }
.bloomsports .bs-faq[open] summary { background-color:var(--bs-cream); }
.bloomsports .bs-faq p {
	padding:14px 18px 18px;
	margin:0;
	font-size:var(--bs-fs-caption);
	color:var(--bs-slate);
	line-height:1.6;
}

/* Compact headings — for long, sentence-style headlines that would
 * otherwise dominate at full hero/H1/H2 size. Short punchy headings
 * keep the default scale; only long ones get this. */
.bloomsports .bs-heading--compact h1,
.bloomsports h1.bs-heading--compact { font-size:clamp(26px,3vw,36px); line-height:1.2; }
.bloomsports .bs-heading--compact h2,
.bloomsports h2.bs-heading--compact { font-size:clamp(22px,2.4vw,28px); line-height:1.25; }

/* --- Comparison table --- */
.bloomsports .bs-table {
	width:100%;
	border-collapse:collapse;
	background-color:var(--bs-white);
	border:0.5px solid var(--bs-line);
	border-radius:var(--bs-radius);
	overflow:hidden;
	font-size:var(--bs-fs-caption);
}
.bloomsports .bs-table th {
	background-color:var(--bs-navy);
	color:var(--bs-white);
	font-family:var(--bs-font-display);
	font-weight:700;
	padding:14px 12px;
	text-align:center;
}
.bloomsports .bs-table th:first-child { text-align:left; }
.bloomsports .bs-table th.bs-table__bloom {
	background-color:var(--bs-gold);
	color:var(--bs-navy);
}
.bloomsports .bs-table td {
	padding:12px;
	text-align:center;
	color:var(--bs-slate);
	border-bottom:0.5px solid var(--bs-line-soft);
}
.bloomsports .bs-table td:first-child {
	text-align:left;
	font-weight:600;
	color:var(--bs-navy);
}
.bloomsports .bs-table td.bs-table__bloom {
	background-color:var(--bs-cream);
	color:var(--bs-forest);
	font-weight:600;
}
.bloomsports .bs-table tr:last-child td { border-bottom:none; }

/* Caption — small muted supporting text (prices sub-labels, fine print).
 * Was referenced in page markup but never defined — this is the fix. */
.bloomsports .bs-caption {
	font-size:var(--bs-fs-caption);
	color:var(--bs-slate);
	line-height:1.5;
	margin:0;
}
/* On a navy band, caption text lightens so it stays readable */
.bloomsports .bs-band-navy .bs-caption { color:rgba(255,255,255,0.7); }
/* Inside a white card, caption stays slate */
.bloomsports .bs-card .bs-caption { color:var(--bs-slate); }
/* Inside the solid navy card, caption lightens */
.bloomsports .bs-card--navy-solid .bs-caption { color:rgba(255,255,255,0.8); }

/* ===== 7. KADENCE HEADER / FOOTER ===== */
.bloomsports .site-header-row-container-inner,.bloomsports .site-main-header-inner-wrap {
	background-color:var(--bs-navy); padding-top:16px; padding-bottom:16px;
}
.bloomsports .site-branding img,.bloomsports .site-logo img { max-height:56px; width:auto; }
.bloomsports .header-navigation .menu > .menu-item > a {
	color:rgba(255,255,255,0.85); font-family:var(--bs-font-body); font-weight:500; font-size:14px;
}
.bloomsports .header-navigation .menu > .menu-item > a:hover,
.bloomsports .header-navigation .menu > .menu-item.current-menu-item > a { color:var(--bs-gold); }
.bloomsports .header-navigation .menu .sub-menu {
	background-color:var(--bs-white); border:0.5px solid var(--bs-line); border-radius:var(--bs-radius); padding:8px;
}
.bloomsports .header-navigation .menu .sub-menu a { color:var(--bs-navy); border-radius:6px; padding:10px 14px; }
.bloomsports .header-navigation .menu .sub-menu a:hover { background-color:var(--bs-cream); color:var(--bs-navy); }
/* ===== FOOTER - fully branded ===== */
.bloomsports .site-footer,
.bloomsports .site-footer-row-container-inner,
.bloomsports .site-footer-wrap {
	background-color:var(--bs-navy);
	color:rgba(255,255,255,0.80);
}
.bloomsports .site-footer-row-container-inner {
	padding-top:48px;
	padding-bottom:48px;
}
/* Footer body text */
.bloomsports .site-footer p,
.bloomsports .site-footer li,
.bloomsports .site-footer .footer-html {
	color:rgba(255,255,255,0.80);
	font-size:var(--bs-fs-caption);
	line-height:1.7;
}
/* Footer links - readable, gold on hover */
.bloomsports .site-footer a {
	color:rgba(255,255,255,0.80);
	text-decoration:none;
	transition:color 150ms ease;
}
.bloomsports .site-footer a:hover { color:var(--bs-gold); }

/* Footer nav menu - clear, spaced, readable */
.bloomsports .site-footer .footer-navigation .menu,
.bloomsports .site-footer .menu {
	display:flex;
	flex-wrap:wrap;
	gap:8px 22px;
	list-style:none;
	margin:0;
	padding:0;
}
.bloomsports .site-footer .footer-navigation .menu a,
.bloomsports .site-footer .menu a {
	color:rgba(255,255,255,0.85);
	font-family:var(--bs-font-body);
	font-weight:500;
	font-size:14px;
}
.bloomsports .site-footer .footer-navigation .menu a:hover { color:var(--bs-gold); }

/* Section headers / widget titles in footer */
.bloomsports .site-footer .widget-title,
.bloomsports .site-footer-row-container .widget-title,
.bloomsports .site-footer h2,
.bloomsports .site-footer h3,
.bloomsports .site-footer h4 {
	color:var(--bs-gold);
	font-family:var(--bs-font-body);
	font-size:var(--bs-fs-eyebrow);
	font-weight:700;
	letter-spacing:2px;
	text-transform:uppercase;
	margin:0 0 12px;
}
/* Footer logo sizing */
.bloomsports .site-footer img,
.bloomsports .footer-widget img { max-height:54px; width:auto; }
/* Tagline under the logo */
.bloomsports .site-footer .bs-footer-tagline {
	color:var(--bs-gold);
	font-family:var(--bs-font-display);
	font-weight:700;
	font-size:var(--bs-fs-small);
	letter-spacing:0.5px;
	margin-top:8px;
}
/* The bottom copyright bar - slightly darker, separated */
.bloomsports .site-footer-bottom,
.bloomsports .site-bottom-footer-inner-wrap,
.bloomsports .site-footer-bottom-wrap {
	background-color:var(--bs-navy);
	border-top:0.5px solid rgba(255,255,255,0.12);
	color:rgba(255,255,255,0.55);
	font-size:var(--bs-fs-caption);
	padding-top:18px;
	padding-bottom:18px;
}
.bloomsports .site-footer-bottom a { color:rgba(255,255,255,0.70); }
.bloomsports .site-footer-bottom a:hover { color:var(--bs-gold); }
/* Cities line treatment */
.bloomsports .site-footer .bs-footer-cities {
	color:rgba(255,255,255,0.65);
	font-size:var(--bs-fs-caption);
	letter-spacing:0.3px;
	line-height:1.3;
	margin:6px 0 0;
	padding:0;
}
/* Collapse the widget/block wrapper the cities line sits in,
 * so it doesn't add its own vertical space. */
.bloomsports .site-footer .widget:has(.bs-footer-cities),
.bloomsports .site-footer .footer-widget:has(.bs-footer-cities),
.bloomsports .site-footer .wp-block-html:has(.bs-footer-cities) {
	margin:0;
	padding:0;
}
.bloomsports .site-footer .bs-footer-cities + *,
.bloomsports .site-footer .bs-footer-cities { display:block; }
.bloomsports .entry-hero-container,.bloomsports .entry-hero,
.bloomsports header.entry-header,.bloomsports .page-title { display:none !important; }
.bloomsports .site-content,.bloomsports .content-area,
.bloomsports #main,.bloomsports .entry-content { margin-top:0 !important; padding-top:0 !important; }
.bloomsports .entry-content > *:first-child { margin-top:0 !important; }


/* Navy card variant — light text (overrides bs-card's dark-text default) */
.bloomsports .bs-card.bs-card--navy.has-court-navy-background-color h1,
.bloomsports .bs-card.bs-card--navy.has-court-navy-background-color h2,
.bloomsports .bs-card.bs-card--navy.has-court-navy-background-color h3,
.bloomsports .bs-card.bs-card--navy.has-court-navy-background-color h4 { color:var(--bs-white); }
.bloomsports .bs-card.bs-card--navy.has-court-navy-background-color p { color:rgba(255,255,255,0.9); }
.bloomsports .bs-card.bs-card--navy.has-court-navy-background-color .has-bloom-gold-color { color:var(--bs-gold) !important; }
.bloomsports .bs-card.bs-card--navy.has-court-navy-background-color .has-white-color { color:var(--bs-white) !important; }

/* Section bands sit flush — no default block margin showing the page bg through */
.bloomsports .entry-content > .bs-section,
.bloomsports .bs-section { margin-top:0 !important; margin-bottom:0 !important; }
.bloomsports .bs-banner { margin-top:0 !important; margin-bottom:0 !important; }
.bloomsports .entry-content > * { margin-top:0 !important; margin-bottom:0 !important; }

/* ===== 8. RESPONSIVE ===== */
@media (min-width:901px) {
	.bloomsports .bs-section { padding-left:48px; padding-right:48px; }
}
@media (max-width:900px) {
	:root { --bs-section-y:44px; }
	.bloomsports .wp-block-columns { gap:14px; }
}
@media (max-width:600px) {
	.bloomsports .wp-block-buttons { flex-direction:column; }
	.bloomsports .wp-block-button,.bloomsports .wp-block-button__link { width:100%; }
}
@media (prefers-reduced-motion:reduce) {
	.bloomsports *,.bloomsports *::before,.bloomsports *::after { transition-duration:0.01ms !important; }
}

/* ===== SOCIAL BARS (Option C - bold gradient) ===== */
.bloomsports .bs-social-row {
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:14px;
	margin-top:16px;
}
.bloomsports .bs-social {
	display:flex;
	align-items:center;
	gap:14px;
	padding:20px;
	border-radius:var(--bs-radius);
	text-decoration:none;
	transition:transform 150ms ease;
}
.bloomsports .bs-social:hover { transform:translateY(-2px); }
.bloomsports .bs-social--ig { background:linear-gradient(135deg,var(--bs-gold),var(--bs-brick)); }
.bloomsports .bs-social--fb { background:var(--bs-navy); }
.bloomsports .bs-social__txt { display:flex; flex-direction:column; line-height:1.3; }
.bloomsports .bs-social__txt strong {
	font-family:var(--bs-font-display);
	font-weight:800;
	font-size:15px;
	color:var(--bs-white);
}
.bloomsports .bs-social__txt em {
	font-style:normal;
	font-size:12px;
	color:rgba(255,255,255,0.85);
}
@media (max-width:600px){
	.bloomsports .bs-social-row { grid-template-columns:1fr; }
}

/* ===== FOUNDER QUOTE (About page) ===== */
.bloomsports .bs-quote {
	max-width:680px;
	margin:0 auto;
	text-align:center;
	border:0;
	padding:0;
}
.bloomsports .bs-quote p {
	font-family:var(--bs-font-display);
	font-weight:700;
	font-size:clamp(18px,2.2vw,23px);
	line-height:1.5;
	font-style:italic;
	color:var(--bs-white);
	margin:0 0 16px;
}
.bloomsports .bs-quote cite {
	display:block;
	font-family:var(--bs-font-body);
	font-style:normal;
	font-weight:700;
	font-size:var(--bs-fs-caption);
	letter-spacing:1px;
	text-transform:uppercase;
	color:var(--bs-gold);
}
.bloomsports .bs-quote .bs-quote-sub {
	font-family:var(--bs-font-body);
	font-weight:400;
	font-style:normal;
	font-size:var(--bs-fs-caption);
	color:rgba(255,255,255,0.7);
	margin:6px 0 0;
}

/* ===== COACH CARD + PHOTO (Coaches page) ===== */
.bloomsports .bs-card--coach {
	background-color:var(--bs-white);
	border:1px solid rgba(15,35,64,0.12);
	border-top:5px solid var(--bs-gold);
	border-radius:10px;
	padding:26px 28px;
	box-shadow:0 2px 12px rgba(15,35,64,0.06);
}
.bloomsports .bs-card--coach h2 { color:var(--bs-navy); }
.bloomsports .bs-card--coach p { color:var(--bs-slate); }
.bloomsports .bs-card--coach .bs-eyebrow { color:var(--bs-gold); }
.bloomsports .bs-card--coach .bs-caption { color:var(--bs-slate); font-weight:600; }
.bloomsports .bs-coach-photo {
	margin:0;
	border-radius:10px;
	overflow:hidden;
	background:var(--bs-ivory,#F0EAD8);
	border:1px solid rgba(15,35,64,0.10);
}
.bloomsports .bs-coach-photo img {
	display:block;
	width:100%;
	aspect-ratio:5 / 6;
	object-fit:cover;
	border-radius:10px;
}
.bloomsports .bs-coach-photo:not(:has(img[src])) {
	min-height:220px;
	display:flex;
	align-items:center;
	justify-content:center;
}
.bloomsports .bs-coach-photo:not(:has(img[src]))::after {
	content:"Photo coming soon";
	font-family:var(--bs-font-body);
	font-size:var(--bs-fs-caption);
	color:var(--bs-slate);
}

/* ===== SEASON STANDINGS (season pages) ===== */
.bloomsports .bs-standings {
	list-style:none;
	margin:0;
	padding:0;
}
.bloomsports .bs-standings li {
	display:flex;
	align-items:center;
	gap:12px;
	padding:9px 0;
	border-bottom:1px solid rgba(15,35,64,0.08);
	font-size:var(--bs-fs-body);
	color:var(--bs-navy);
	font-weight:600;
}
.bloomsports .bs-standings li:last-child { border-bottom:0; }
.bloomsports .bs-standings .bs-rank {
	flex-shrink:0;
	width:26px;
	height:26px;
	border-radius:50%;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	font-family:var(--bs-font-display);
	font-weight:800;
	font-size:12px;
	color:var(--bs-white);
}
.bloomsports .bs-medal--gold   .bs-rank { background-color:#E6B800; }
.bloomsports .bs-medal--silver .bs-rank { background-color:#A8AEB5; }
.bloomsports .bs-medal--bronze .bs-rank { background-color:#B07D4A; }
.bloomsports .bs-medal--bronze { color:var(--bs-slate); font-weight:500; }

/* ===== SUMMER LATE-REG CALLOUT (temporary - removable) ===== */
.bloomsports .bs-callout {
	background-color:var(--bs-gold);
	border-radius:12px;
	padding:28px 32px;
	text-align:center;
	max-width:760px;
	margin:0 auto;
}
.bloomsports .bs-callout h2,
.bloomsports .bs-callout h3 { color:var(--bs-navy); }
.bloomsports .bs-callout p { color:var(--bs-navy); }
.bloomsports .bs-callout .bs-eyebrow { color:#7A4E12; }
.bloomsports .bs-callout a { color:var(--bs-navy); font-weight:700; }

/* ===== MOBILE NAV - readable links on dark menu ===== */
@media (max-width:1024px) {
	/* all menu links light on the mobile (navy) menu background */
	.bloomsports .header-navigation .menu .menu-item a,
	.bloomsports .mobile-navigation .menu .menu-item a,
	.bloomsports .header-navigation .menu .sub-menu a,
	.bloomsports .mobile-navigation .menu .sub-menu a {
		color:rgba(255,255,255,0.92) !important;
	}
	/* sub-menu on mobile: no white box, transparent, slightly indented */
	.bloomsports .header-navigation .menu .sub-menu,
	.bloomsports .mobile-navigation .menu .sub-menu {
		background-color:transparent !important;
		border:0 !important;
		padding-left:14px !important;
	}
	.bloomsports .header-navigation .menu .sub-menu a:hover,
	.bloomsports .mobile-navigation .menu .sub-menu a:hover,
	.bloomsports .header-navigation .menu .menu-item a:hover {
		color:var(--bs-gold) !important;
		background-color:transparent !important;
	}
	/* keep the gold Register button readable on mobile */
	.bloomsports .header-navigation .menu-item.bs-btn--primary > a,
	.bloomsports .mobile-navigation .menu-item.bs-btn--primary > a {
		color:var(--bs-navy) !important;
	}
}
