/* ===== Stars Volleyball utilities ===== */

/* Header */
.sv-header { position: sticky; top: 0; z-index: 50; border-bottom: 1px solid rgba(18,42,64,.08); backdrop-filter: blur(8px); }
.sv-brand { display: flex; align-items: center; gap: .6rem; text-decoration: none; color: var(--wp--preset--color--navy); font-family: var(--wp--preset--font-family--display); font-size: 1.15rem; }
.sv-brand img { height: 56px; width: auto; } /* logo source is 234x145 — never force square */
.sv-brand strong { color: var(--wp--preset--color--orange); }
.sv-nav { display: flex; align-items: center; gap: 1.5rem; flex-wrap: wrap; }
.sv-nav a { text-decoration: none; color: var(--wp--preset--color--slate); font-weight: 600; font-size: .95rem; }
.sv-nav a:hover { color: #B04E15; } /* AA: 4.94:1 on cream */
.sv-nav .sv-nav-cta { background: #B04E15; color: #fff; padding: .5rem 1rem; border-radius: 8px; } /* AA: white on #B04E15 = 5.32:1 */
.sv-nav .sv-nav-cta:hover { background: #9C440E; color: #fff; } /* AA: white on #9C440E = 6.47:1 */

/* Buttons */
.sv-btn-primary, .sv-btn-secondary { display: inline-block; padding: .85rem 1.7rem; border-radius: 8px; font-weight: 700; text-decoration: none; font-size: 1.2rem; transition: transform .15s ease, box-shadow .15s ease; } /* AA: 1.2rem bold qualifies as large text (3:1 threshold) */
.sv-btn-primary { background: var(--wp--preset--gradient--dusk); color: #fff !important; box-shadow: 0 4px 14px rgba(232,114,42,.35); }
.sv-btn-secondary { background: rgba(255,255,255,.12); color: #fff !important; border: 1px solid rgba(255,255,255,.45); }
.sv-btn-primary:hover, .sv-btn-secondary:hover { transform: translateY(-2px); }

/* Label / eyebrow */
.sv-label { text-transform: uppercase; letter-spacing: .14em; font-weight: 700; font-size: .8rem; color: #9C440E; } /* AA on cream + sand */

/* Hero */
.sv-hero { position: relative; min-height: 86vh; display: flex; align-items: center; overflow: hidden;
	background: linear-gradient(rgba(12,29,46,.62), rgba(18,42,64,.78)), url('/wp-content/uploads/2026/03/IMG_2025-scaled.jpg') center 30%/cover no-repeat; }
.sv-hero .sv-particles-canvas { position: absolute; inset: 0; pointer-events: none; }
.sv-hero-inner { position: relative; z-index: 2; }
.sv-hero h1 { color: #fff; }
.sv-hero p { color: var(--wp--preset--color--sand); }

/* Cards (mission strip) */
.sv-card { background: #fff; border: 1px solid rgba(18,42,64,.08); border-radius: 14px; padding: 2rem;
	box-shadow: 0 2px 10px rgba(18,42,64,.06); transition: transform .2s ease, box-shadow .2s ease; will-change: transform; }
.sv-card:hover { box-shadow: 0 14px 34px rgba(18,42,64,.14); }
.sv-card h3 { margin-top: 0; }
.sv-card .sv-card-icon { font-size: 1.9rem; line-height: 1; }

/* Full-width photo band (courts project) */
.sv-band-photo { position: relative; background: linear-gradient(rgba(12,29,46,.6), rgba(12,29,46,.72)), url('/wp-content/uploads/2018/11/stars-volleyball-board-in-the-sand-resampled.jpg') center/cover no-repeat; }
.sv-band-photo h2, .sv-band-photo p { color: #fff; }

/* Photo mosaic */
.sv-mosaic img { border-radius: 12px; width: 100%; height: 100%; object-fit: cover; display: block; }

/* Scroll reveal */
.sv-js .sv-reveal { opacity: 0; transform: translateY(24px); transition: opacity .6s ease, transform .6s ease; }
.sv-js .sv-reveal.sv-in { opacity: 1; transform: none; }
.sv-js .sv-reveal.sv-done { transition: transform .2s ease, box-shadow .2s ease; }
@media (prefers-reduced-motion: reduce) {
	.sv-js .sv-reveal { opacity: 1; transform: none; transition: none; }
	.sv-btn-primary, .sv-btn-secondary, .sv-card { transition: none; }
}

/* Footer */
.sv-footer a { color: var(--wp--preset--color--sand); }
.sv-footer a:hover { color: #fff; }
.sv-footer-links { list-style: none; padding: 0; margin: 0; }
.sv-footer-links li { margin-bottom: .5rem; }
.sv-footer input[type="email"], .sv-footer input[type="text"] { border-radius: 8px; border: none; padding: .7rem 1rem; width: 100%; max-width: 340px; }
.sv-footer input[type="submit"], .sv-footer button { background: #B04E15; color: #fff; border: none; border-radius: 8px; padding: .7rem 1.4rem; font-weight: 700; cursor: pointer; margin-top: .5rem; } /* AA: white on #B04E15 = 5.32:1 */

/* Page header band */
.sv-page-header { padding: 4.5rem var(--wp--preset--spacing--40) 2.5rem; }
.sv-page-header h1 { margin: 0; }

@media (max-width: 768px) {
	.sv-hero { min-height: 72vh; }
	.sv-nav { gap: .9rem; }
}
