/*
Theme Name: FCSSL
Theme URI:
Description: Child theme for the Florida Coast Summer Swim League
Author:
Author URI:
Template: twentytwentyfour
Version: 1.0.0
Text Domain: fcssl
*/

/* =========================================
   FCSSL – Global Styles
   Navy palette: #1B3A6B / #0F2548 / #2B5EA7
   ========================================= */

/* Google Fonts are enqueued via functions.php */

/* --- Reset / Base --- */
body {
	font-family: 'Open Sans', sans-serif;
	background-color: #EEF2F8;
	color: #1A1A2E;
}

/* --- Links --- */
a {
	color: #2B5EA7;
	text-decoration: none;
}
a:hover {
	color: #1B3A6B;
	text-decoration: underline;
}

/* --- Headings --- */
h1, h2, h3, h4, h5, h6 {
	font-family: 'Montserrat', sans-serif;
	font-weight: 700;
}

/* --- Sticky footer: fills short pages so footer sits at the bottom --- */
.wp-site-blocks {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
}

.wp-site-blocks > main {
	flex: 1 0 auto;
}

/* --- Header --- */
.fcssl-header {
	background-color: #1B3A6B;
	position: sticky;
	top: 0;
	z-index: 100;
}

/* --- Navigation (centered) --- */
.fcssl-header .wp-block-navigation,
.fcssl-header .wp-block-navigation__container {
	justify-content: center;
}

.fcssl-header .wp-block-navigation a,
.fcssl-header .wp-block-navigation__container .wp-block-navigation-item__content {
	color: #ffffff !important;
	font-family: 'Montserrat', sans-serif;
	font-weight: 600;
	font-size: 0.92rem;
	letter-spacing: 0.04em;
	padding: 6px 4px;
	transition: color 0.15s ease, border-color 0.15s ease;
}

.fcssl-header .wp-block-navigation a:hover {
	color: #5B8FD4 !important;
	text-decoration: none;
}

.fcssl-header .wp-block-navigation .wp-block-navigation-item.current-menu-item > a {
	color: #5B8FD4 !important;
	border-bottom: 2px solid #5B8FD4;
	padding-bottom: 4px;
}

/* Mobile hamburger */
.fcssl-header .wp-block-navigation__responsive-container-open svg,
.fcssl-header .wp-block-navigation__responsive-container-close svg {
	fill: #ffffff;
}

/* Mobile menu overlay */
.fcssl-header .wp-block-navigation__responsive-container.is-menu-open {
	background-color: #0F2548;
}

.fcssl-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	color: #ffffff !important;
	font-size: 1.1rem;
	padding: 10px 0;
}

/* --- Page title banner --- */
.fcssl-page-banner {
	background-color: #1B3A6B;
	padding: 36px 20px;
	text-align: center;
}

.fcssl-page-banner h1 {
	color: #ffffff;
	margin: 0;
	font-size: clamp(1.5rem, 4vw, 2.5rem);
}

/* --- Hero section --- */
.fcssl-hero {
	background-color: #1B3A6B;
	padding: 60px 20px;
	text-align: center;
}

.fcssl-hero h1 {
	color: #ffffff;
	font-size: clamp(1.8rem, 5vw, 3rem);
	margin-top: 20px;
}

/* --- Content area --- */
.fcssl-content {
	max-width: 860px;
	margin: 0 auto;
	padding: 40px 20px;
}

.fcssl-content p {
	font-size: 1.05rem;
	line-height: 1.75;
	margin-bottom: 1.25rem;
}

/* --- Officers table --- */
.fcssl-officers h2 {
	color: #1B3A6B;
	border-bottom: 3px solid #2B5EA7;
	padding-bottom: 8px;
	margin-bottom: 16px;
}

.fcssl-officers ul {
	list-style: none;
	padding: 0;
}

.fcssl-officers ul li {
	padding: 10px 0;
	border-bottom: 1px solid #dde4f0;
	font-size: 1rem;
}

/* --- Footer --- */
.fcssl-footer {
	background-color: #0F2548;
	color: #ffffff;
	padding: 24px 20px;
	text-align: center;
}

.fcssl-footer p {
	color: #ffffff;
	margin: 0 0 12px;
	font-size: 0.9rem;
}

.fcssl-footer .wp-block-navigation a {
	color: #9bbfe8 !important;
	font-size: 0.85rem;
}

.fcssl-footer .wp-block-navigation a:hover {
	color: #ffffff !important;
}

/* --- Buttons --- */
.wp-block-button__link,
.wp-element-button {
	background-color: #2B5EA7;
	color: #ffffff;
	border-radius: 4px;
	font-family: 'Montserrat', sans-serif;
	font-weight: 600;
}

.wp-block-button__link:hover,
.wp-element-button:hover {
	background-color: #1B3A6B;
	color: #ffffff;
}

/* ─── PDF Viewer ─────────────────────────────────────────────────────────── */

.fcssl-pdf-viewer {
	width: 100%;
	margin: 0 auto;
}

.fcssl-pdf-toolbar {
	display: flex;
	justify-content: flex-end;
	margin-bottom: 10px;
}

.fcssl-pdf-download {
	display: inline-block;
	background-color: #2B5EA7;
	color: #ffffff !important;
	font-family: 'Montserrat', sans-serif;
	font-weight: 600;
	font-size: 0.82rem;
	letter-spacing: 0.04em;
	padding: 7px 18px;
	border-radius: 4px;
	text-decoration: none !important;
	transition: background-color 0.2s ease;
}

.fcssl-pdf-download:hover {
	background-color: #1B3A6B;
	color: #ffffff !important;
}

.fcssl-pdf-iframe {
	display: block;
	width: 100%;
	height: 85vh;
	min-height: 620px;
	border: none;
	border-radius: 6px;
	box-shadow: 0 2px 16px rgba(15, 37, 72, 0.15);
}

/* League Meets link list */
.fcssl-meets-list {
	list-style: none;
	padding: 0;
}

.fcssl-meets-list li {
	border-left: 4px solid #2B5EA7;
	margin-bottom: 12px;
	padding-left: 16px;
}

.fcssl-meets-list li a {
	font-family: 'Montserrat', sans-serif;
	font-weight: 600;
	font-size: 1.05rem;
	color: #1B3A6B;
	text-decoration: none;
}

.fcssl-meets-list li a:hover {
	color: #2B5EA7;
	text-decoration: underline;
}

@media (max-width: 599px) {
	.fcssl-pdf-iframe {
		height: 70vh;
		min-height: 400px;
	}
}

/* ─── Teams Page ──────────────────────────────────────────────────────────── */

.fcssl-teams-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
	padding: 0;
	list-style: none;
}

.fcssl-team-card {
	position: relative;
	background: #ffffff;
	border-radius: 8px;
	overflow: hidden;
	box-shadow: 0 2px 14px rgba(15, 37, 72, 0.12);
	display: flex;
	flex-direction: column;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.fcssl-team-card:has(.fcssl-team-link):hover {
	transform: translateY(-3px);
	box-shadow: 0 6px 24px rgba(15, 37, 72, 0.22);
}

/* Stretched link – makes entire card clickable */
.fcssl-team-link {
	color: #ffffff !important;
	text-decoration: none !important;
}

.fcssl-team-link::after {
	content: '';
	position: absolute;
	inset: 0;
	z-index: 1;
}

/* Keep inner links (mailto, phone) clickable above the overlay */
.fcssl-team-card-body a {
	position: relative;
	z-index: 2;
}

/* Card header – navy */
.fcssl-team-card-header {
	background-color: #1B3A6B;
	padding: 20px 24px 16px;
}

.fcssl-team-name {
	color: #ffffff !important;
	font-size: 1.3rem !important;
	font-weight: 700;
	margin: 0 0 4px !important;
	border: none !important;
}

.fcssl-team-subtitle {
	color: #9bbfe8;
	font-size: 0.88rem;
	font-style: italic;
	margin: 0 0 10px;
}

.fcssl-team-address {
	color: #b8d0ef;
	font-size: 0.93rem;
	line-height: 1.5;
	margin: 0 0 12px;
}

.fcssl-pool-badge {
	display: inline-block;
	background: rgba(91, 143, 212, 0.25);
	color: #d0e4f7;
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	font-family: 'Montserrat', sans-serif;
	padding: 3px 10px;
	border-radius: 20px;
	border: 1px solid rgba(91, 143, 212, 0.4);
}

/* Card body */
.fcssl-team-card-body {
	padding: 20px 24px;
	display: flex;
	flex-direction: column;
	gap: 14px;
	flex: 1;
}

/* Individual contact block */
.fcssl-contact-group {
	border-left: 3px solid #2B5EA7;
	padding-left: 12px;
}

.fcssl-contact-label {
	font-family: 'Montserrat', sans-serif;
	font-weight: 700;
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.09em;
	color: #2B5EA7;
	margin: 0 0 3px;
}

.fcssl-contact-name {
	font-weight: 600;
	font-size: 1.05rem;
	color: #1A1A2E;
	margin: 0 0 3px;
}

.fcssl-contact-detail {
	font-size: 0.9rem;
	color: #555;
	margin: 1px 0;
}

.fcssl-contact-detail a {
	color: #2B5EA7;
	text-decoration: none;
}

.fcssl-contact-detail a:hover {
	color: #1B3A6B;
	text-decoration: underline;
}

/* Teams page – expand content area and constrain card body padding */
.page-slug-teams .wp-block-post-content,
.page-slug-teams .wp-block-group.fcssl-content {
	max-width: 1100px !important;
	width: 100%;
	margin-left: auto;
	margin-right: auto;
}

.page-slug-teams main .is-layout-constrained > * {
	max-width: 1100px !important;
}

.fcssl-team-card-body {
	padding: 16px 18px;
}

.fcssl-team-card-header {
	padding: 16px 18px 14px;
}

/* ─── Championships Page – two-column layout ─────────────────────────────── */

.fcssl-champ-layout {
	display: flex;
	align-items: center;
	gap: 48px;
}

.fcssl-champ-lists {
	flex: 1 1 auto;
}

.fcssl-champ-lists h2 {
	color: #1B3A6B;
	border-bottom: 3px solid #2B5EA7;
	padding-bottom: 8px;
	margin-bottom: 16px;
}

.fcssl-champ-lists h2:not(:first-child) {
	margin-top: 32px;
}

.fcssl-champ-logo {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	justify-content: center;
}

.fcssl-champ-logo img {
	width: 260px;
	height: auto;
}

/* Widen content area on Championships, Documents & Files, and Officers pages */
.page-slug-championships .wp-block-post-content,
.page-slug-championships .wp-block-group.fcssl-content,
.page-slug-documents-files .wp-block-post-content,
.page-slug-documents-files .wp-block-group.fcssl-content,
.page-slug-officers .wp-block-post-content,
.page-slug-officers .wp-block-group.fcssl-content {
	max-width: 1000px !important;
	width: 100%;
	margin-left: auto;
	margin-right: auto;
}

.page-slug-championships main .is-layout-constrained > *,
.page-slug-documents-files main .is-layout-constrained > *,
.page-slug-officers main .is-layout-constrained > * {
	max-width: 1000px !important;
}

/* ─── Meet Schedule Table ────────────────────────────────────────────────── */

.fcssl-schedule-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.95rem;
	margin-top: 28px;
	margin-bottom: 12px;
	box-shadow: 0 2px 14px rgba(15, 37, 72, 0.10);
	border-radius: 8px;
	overflow: hidden;
}

.fcssl-schedule-table thead th {
	background-color: #0F2548;
	color: #ffffff;
	font-family: 'Montserrat', sans-serif;
	font-weight: 700;
	font-size: 0.82rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	padding: 12px 16px;
	text-align: left;
	border-bottom: 2px solid #2B5EA7;
}

.fcssl-schedule-table thead th:nth-child(2),
.fcssl-schedule-table thead th:nth-child(3) {
	text-align: center;
	width: 120px;
}

.fcssl-schedule-table .fcssl-schedule-week td {
	background-color: #1B3A6B;
	color: #ffffff;
	font-family: 'Montserrat', sans-serif;
	font-weight: 700;
	font-size: 0.95rem;
	padding: 10px 16px;
	border-bottom: none;
}

.fcssl-schedule-table tbody tr:not(.fcssl-schedule-week) td {
	background-color: #ffffff;
	padding: 10px 16px;
	border-bottom: 1px solid #e2e8f0;
}

.fcssl-schedule-table tbody tr:not(.fcssl-schedule-week):nth-child(even) td {
	background-color: #f7f9fc;
}

.fcssl-schedule-table tbody tr:not(.fcssl-schedule-week):hover td {
	background-color: #edf2fa;
}

.fcssl-schedule-table td:nth-child(2),
.fcssl-schedule-table td:nth-child(3) {
	text-align: center;
}

.fcssl-schedule-table .fcssl-meet-canceled td:first-child {
	text-decoration: line-through;
	color: #999;
}

.fcssl-schedule-table .fcssl-meet-canceled td:nth-child(2) {
	color: #c0392b;
	font-weight: 600;
	font-style: italic;
}

.fcssl-schedule-table .fcssl-schedule-special td {
	background-color: #1B3A6B;
	color: #ffffff;
	font-family: 'Montserrat', sans-serif;
	font-weight: 700;
	font-size: 0.95rem;
	padding: 10px 16px;
}

.fcssl-schedule-table .fcssl-schedule-special-detail td {
	background-color: #f0f4fa;
	font-size: 0.9rem;
	color: #1A1A2E;
}

.fcssl-schedule-table .fcssl-schedule-special-detail td:first-child {
	padding-left: 24px;
}

.fcssl-schedule-note {
	font-size: 0.85rem;
	color: #555;
	margin-top: 8px;
}

.fcssl-schedule-note-inline {
	font-size: 0.8rem;
	color: #c0392b;
	font-weight: 600;
	display: block;
	margin-top: 2px;
}

/* Widen League Meets page */
.page-slug-league-meets .wp-block-post-content,
.page-slug-league-meets .wp-block-group.fcssl-content {
	max-width: 1000px !important;
	width: 100%;
	margin-left: auto;
	margin-right: auto;
}

.page-slug-league-meets main .is-layout-constrained > * {
	max-width: 1000px !important;
}

/* --- Responsive --- */
@media (max-width: 599px) {
	.fcssl-hero {
		padding: 40px 16px;
	}
	.fcssl-content {
		padding: 28px 16px;
	}
	.fcssl-teams-grid {
		grid-template-columns: 1fr;
	}
	.fcssl-champ-layout {
		flex-direction: column;
		gap: 32px;
	}
	.fcssl-champ-logo img {
		width: 200px;
	}
	.fcssl-schedule-table {
		font-size: 0.85rem;
	}
	.fcssl-schedule-table thead th,
	.fcssl-schedule-table tbody td {
		padding: 8px 10px;
	}
	.fcssl-schedule-table thead th:nth-child(2),
	.fcssl-schedule-table thead th:nth-child(3) {
		width: 80px;
	}
}

@media (min-width: 600px) and (max-width: 899px) {
	.fcssl-teams-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* 3 columns: 900px+ (default, already set above) */
