/*
Theme Name: APIA Tigers
Theme URI: https://leichhardttigers.org.au/
Author: Paul Maher
Description: Custom block theme for APIA Leichhardt Tigers Juniors Football Club. Colours, type and spacing live in theme.json (Appearance > Editor > Styles). Page layouts are available as patterns under the "APIA Tigers" category.
Requires at least: 6.6
Tested up to: 6.9
Requires PHP: 7.4
Version: 1.19.3
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: apia-tigers
*/

/* Small extras theme.json can't express. Keep this file short. */

/* Keyboard focus, clearly visible on light and dark sections */
:where(a, button, input, select, textarea, summary, .wp-element-button):focus-visible {
	outline: 3px solid var(--wp--preset--color--sky);
	outline-offset: 2px;
}

/* Sticky header on larger screens only (on phones it would take up too much of the screen) */
@media (min-width: 783px) {
	.apia-header {
		position: sticky;
		top: 0;
		z-index: 50;
	}
	.admin-bar .apia-header { top: 32px; }
}

/* Utility bar links */
.apia-topbar a { text-decoration: none; }
.apia-topbar a:hover { text-decoration: underline; }

/* Navigation: condensed uppercase labels */
.apia-header .wp-block-navigation {
	font-family: var(--wp--preset--font-family--heading);
	text-transform: uppercase;
	letter-spacing: 0.04em;
}
.apia-header .wp-block-navigation-item__content { text-decoration: none; }
.apia-header .wp-block-navigation-item__content:hover { color: var(--wp--preset--color--maroon); }
.apia-header .wp-block-navigation__submenu-container {
	border: 1px solid var(--wp--preset--color--line) !important;
	border-radius: 6px;
	padding: 0.5rem 0;
	box-shadow: 0 10px 30px rgb(26 20 22 / 0.12);
	text-transform: none;
	letter-spacing: 0;
	font-family: var(--wp--preset--font-family--body);
}

/* Cards: whole card lifts slightly on hover */
.is-style-apia-card {
	transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.is-style-apia-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 14px 30px rgb(26 20 22 / 0.12);
}
.is-style-apia-card .wp-block-image img { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; }

/* Tick list for "what's included" */
.is-style-apia-ticks { list-style: none; padding-left: 0; }
.is-style-apia-ticks li {
	position: relative;
	padding-left: 2rem;
	margin-bottom: 0.6rem;
}
.is-style-apia-ticks li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.2em;
	width: 1.25rem;
	height: 1.25rem;
	border-radius: 50%;
	background: var(--wp--preset--color--sky) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 10.5l3 3 7-7' fill='none' stroke='%233F0F18' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 70% no-repeat;
}

/* Pathway steps */
.apia-pathway .wp-block-group.is-style-apia-step { position: relative; }

/* FAQ accordion (core Details block) */
.wp-block-details {
	border-bottom: 1px solid var(--wp--preset--color--line);
	padding: 1rem 0;
}
.wp-block-details summary {
	cursor: pointer;
	font-weight: 600;
	list-style-position: outside;
}
.wp-block-details[open] summary { margin-bottom: 0.75rem; color: var(--wp--preset--color--maroon); }

/* Sponsor logos: calm greyscale until hover */
.apia-sponsors img {
	max-height: 70px;
	width: auto;
	object-fit: contain;
	filter: grayscale(1);
	opacity: 0.75;
	transition: filter 0.2s, opacity 0.2s;
}
.apia-sponsors a:hover img, .apia-sponsors img:hover { filter: none; opacity: 1; }

/* Fee tables */
.wp-block-table.is-style-apia-table table { border-collapse: collapse; width: 100%; }
.wp-block-table.is-style-apia-table th,
.wp-block-table.is-style-apia-table td {
	border: 0;
	border-bottom: 1px solid var(--wp--preset--color--line);
	padding: 0.75rem 0.5rem;
	text-align: left;
}
.wp-block-table.is-style-apia-table thead th {
	font-family: var(--wp--preset--font-family--heading);
	text-transform: uppercase;
	letter-spacing: 0.04em;
	border-bottom: 2px solid var(--wp--preset--color--maroon);
}

/* Footer links */
.apia-footer a { text-decoration: none; }
.apia-footer a:hover { text-decoration: underline; }

/* Stripe accent used on dark sections */
.apia-stripe {
	background-image: repeating-linear-gradient(135deg, transparent 0 22px, rgb(124 196 238 / 0.07) 22px 44px);
}

/* Visually hidden text for screen readers */
.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	word-wrap: normal !important;
}

/* Small screens: keep the header to one tidy row */
.apia-header-cta .wp-block-button__link { white-space: nowrap; }
@media (max-width: 600px) {
	.apia-header .apia-tagline { display: none; }
	.apia-header .wp-block-site-title { font-size: 1.125rem; }
}

.apia-plain-list { list-style: none; }

/* Tables: no browser figure indent, readable first column */
.wp-block-table { margin-left: 0; margin-right: 0; }
.wp-block-table.is-style-apia-table td:first-child { min-width: 7.5rem; overflow-wrap: normal; word-break: normal; }

/* Photos */
.apia-photo-strip .wp-block-image { margin: 0; }
.is-style-apia-card .wp-block-image img { background: var(--wp--preset--color--maroon); }
.is-style-apia-card > .wp-block-image { margin: 0; }

/* Full-width photo banners: line their content up with the rest of the page */
.wp-block-cover.alignfull > .wp-block-cover__inner-container {
	width: 100% !important;
	max-width: 1240px;
	margin-inline: auto !important;
}

/* Top bar: location with map pin, links to Google Maps */
.apia-location a {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
}
.apia-location a::before {
	content: "";
	width: 1rem;
	height: 1rem;
	flex: none;
	background: var(--wp--preset--color--sky);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a7 7 0 0 0-7 7c0 5.25 7 13 7 13s7-7.75 7-13a7 7 0 0 0-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a7 7 0 0 0-7 7c0 5.25 7 13 7 13s7-7.75 7-13a7 7 0 0 0-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* Social icons at 24px */
.apia-topbar .wp-block-social-links .wp-social-link svg { width: 24px; height: 24px; }



/* No gap between page content and footer */
.wp-site-blocks > * { margin-block-start: 0; }

/* Logo */
.apia-header .wp-block-site-logo img { height: auto; }
@media (max-width: 600px) {
	.apia-header .wp-block-site-logo img { width: 48px; }
	.apia-header .wp-block-site-logo { flex-shrink: 0; }
}

/* Buttons: hover and press states for every style */
.wp-block-button__link {
	transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease, transform 0.15s ease, box-shadow 0.15s ease;
}
.wp-block-button__link:hover { transform: translateY(-2px); box-shadow: 0 6px 16px rgb(26 20 22 / 0.18); }
.wp-block-button__link:active { transform: translateY(0); box-shadow: none; }
/* Filled, default maroon */
.wp-block-button:not(.is-style-outline) .wp-block-button__link:not(.has-background):hover {
	background-color: var(--wp--preset--color--maroon-dark);
	color: var(--wp--preset--color--base);
}
/* Filled, sky blue (on dark banners) */
.wp-block-button .wp-block-button__link.has-sky-background-color:hover {
	background-color: var(--wp--preset--color--base) !important;
	color: var(--wp--preset--color--maroon-dark) !important;
}
/* Outline, white (on dark banners) */
.wp-block-button.is-style-outline .wp-block-button__link.has-base-color:hover {
	background-color: var(--wp--preset--color--base) !important;
	color: var(--wp--preset--color--maroon-dark) !important;
	border-color: var(--wp--preset--color--base);
}
/* Outline, dark (on the sky blue band) */
.wp-block-button.is-style-outline .wp-block-button__link.has-maroon-dark-color:hover {
	background-color: var(--wp--preset--color--maroon-dark) !important;
	color: var(--wp--preset--color--base) !important;
	border-color: var(--wp--preset--color--maroon-dark);
}
/* Outline, default (on light backgrounds) */
.wp-block-button.is-style-outline .wp-block-button__link:not(.has-text-color):hover {
	background-color: var(--wp--preset--color--maroon);
	color: var(--wp--preset--color--base);
	border-color: var(--wp--preset--color--maroon);
}
@media (prefers-reduced-motion: reduce) {
	.wp-block-button__link, .is-style-apia-card { transition: none; }
	.wp-block-button__link:hover, .is-style-apia-card:hover { transform: none; }
}

/* Whole card is clickable: the title link stretches over the card */
.apia-link-cards .is-style-apia-card,
.wp-block-post-template .is-style-apia-card { position: relative; cursor: pointer; }
.apia-link-cards .is-style-apia-card h3 a::after,
.wp-block-post-template .is-style-apia-card .wp-block-post-title a::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	border-radius: 6px;
}
.apia-link-cards .is-style-apia-card h3 a,
.wp-block-post-template .is-style-apia-card .wp-block-post-title a { text-decoration: none; }
.apia-link-cards .is-style-apia-card:hover h3 a,
.wp-block-post-template .is-style-apia-card:hover .wp-block-post-title a { text-decoration: underline; color: var(--wp--preset--color--maroon); }
.apia-link-cards .is-style-apia-card h3 a:focus-visible,
.wp-block-post-template .is-style-apia-card .wp-block-post-title a:focus-visible { outline: none; }
.apia-link-cards .is-style-apia-card:has(a:focus-visible),
.wp-block-post-template .is-style-apia-card:has(a:focus-visible) {
	outline: 3px solid var(--wp--preset--color--sky-dark);
	outline-offset: 3px;
}
/* The news card image link sits under the stretched title link */
.wp-block-post-template .is-style-apia-card .wp-block-post-featured-image a { position: static; }

/* Cards that aren't links don't lift on hover */
.apia-static-cards .is-style-apia-card:hover { transform: none; box-shadow: none; }
.apia-static-cards .is-style-apia-card > .wp-block-group:first-child { border-width: 0 0 1px 0 !important; border-radius: 6px 6px 0 0 !important; }

/* Club life: five photos edge to edge */
.apia-photo-strip-section { padding-bottom: 0 !important; }
.apia-photo-strip.alignfull {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 6px;
	margin-top: 0;
}
.apia-photo-strip img {
	display: block;
	width: 100%;
	aspect-ratio: 1;
	object-fit: cover;
	border-radius: 0 !important;
	background: var(--wp--preset--color--maroon);
}
@media (max-width: 781px) {
	/* On phones, swipe through the photos */
	.apia-photo-strip.alignfull {
		grid-template-columns: none;
		grid-auto-flow: column;
		grid-auto-columns: 42vw;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		-webkit-overflow-scrolling: touch;
	}
	.apia-photo-strip .wp-block-image { scroll-snap-align: start; }
}

/* Instagram button icon */
.apia-btn-instagram .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
}
.apia-btn-instagram .wp-block-button__link::before {
	content: "";
	width: 1.1em;
	height: 1.1em;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.2c3.2 0 3.6 0 4.8.1 3.3.1 4.8 1.7 4.9 4.9.1 1.3.1 1.6.1 4.8s0 3.6-.1 4.8c-.1 3.2-1.7 4.8-4.9 4.9-1.3.1-1.6.1-4.8.1s-3.6 0-4.8-.1c-3.3-.1-4.8-1.7-4.9-4.9C2.2 15.6 2.2 15.2 2.2 12s0-3.6.1-4.8C2.4 3.9 3.9 2.4 7.2 2.3 8.4 2.2 8.8 2.2 12 2.2zM12 0C8.7 0 8.3 0 7.1.1 2.7.3.3 2.7.1 7.1 0 8.3 0 8.7 0 12s0 3.7.1 4.9c.2 4.4 2.6 6.8 7 7 1.2.1 1.6.1 4.9.1s3.7 0 4.9-.1c4.4-.2 6.8-2.6 7-7 .1-1.2.1-1.6.1-4.9s0-3.7-.1-4.9c-.2-4.4-2.6-6.8-7-7C15.7 0 15.3 0 12 0zm0 5.8a6.2 6.2 0 1 0 0 12.4 6.2 6.2 0 0 0 0-12.4zM12 16a4 4 0 1 1 0-8 4 4 0 0 1 0 8zm6.4-11.8a1.4 1.4 0 1 0 0 2.9 1.4 1.4 0 0 0 0-2.9z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.2c3.2 0 3.6 0 4.8.1 3.3.1 4.8 1.7 4.9 4.9.1 1.3.1 1.6.1 4.8s0 3.6-.1 4.8c-.1 3.2-1.7 4.8-4.9 4.9-1.3.1-1.6.1-4.8.1s-3.6 0-4.8-.1c-3.3-.1-4.8-1.7-4.9-4.9C2.2 15.6 2.2 15.2 2.2 12s0-3.6.1-4.8C2.4 3.9 3.9 2.4 7.2 2.3 8.4 2.2 8.8 2.2 12 2.2zM12 0C8.7 0 8.3 0 7.1.1 2.7.3.3 2.7.1 7.1 0 8.3 0 8.7 0 12s0 3.7.1 4.9c.2 4.4 2.6 6.8 7 7 1.2.1 1.6.1 4.9.1s3.7 0 4.9-.1c4.4-.2 6.8-2.6 7-7 .1-1.2.1-1.6.1-4.9s0-3.7-.1-4.9c-.2-4.4-2.6-6.8-7-7C15.7 0 15.3 0 12 0zm0 5.8a6.2 6.2 0 1 0 0 12.4 6.2 6.2 0 0 0 0-12.4zM12 16a4 4 0 1 1 0-8 4 4 0 0 1 0 8zm6.4-11.8a1.4 1.4 0 1 0 0 2.9 1.4 1.4 0 0 0 0-2.9z'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* Canada Bay Club logo */
.apia-cbc-logo { margin: 0 !important; }
.apia-cbc-logo img { max-width: 100%; height: auto; display: block; }
.apia-partner-logo { border: 1px solid var(--wp--preset--color--line); }
.apia-alliance-strip .apia-partner-logo,
.apia-footer-partner .apia-partner-logo { border: 0; }
.apia-logo-placeholder { color: var(--wp--preset--color--maroon-dark); letter-spacing: 0.04em; }
.apia-partner-logo .wp-block-image img { max-height: 140px; width: auto; object-fit: contain; }
.apia-alliance-strip .apia-partner-logo .wp-block-image img,
.apia-footer-partner .apia-partner-logo .wp-block-image img { max-height: 70px; }
.apia-featured-partner .wp-block-columns { margin: 0; }
.apia-alliance-strip .wp-block-button__link { white-space: nowrap; }
@media (max-width: 781px) {
	.apia-alliance-strip .wp-block-buttons { justify-content: flex-start; }
	.apia-alliance-strip .apia-partner-logo { max-width: 260px; }
}

/* Three-column card grids: 3 across on desktop, 2 on tablets, 1 on phones */
.apia-grid-3.is-layout-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
@media (max-width: 960px) { .apia-grid-3.is-layout-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
@media (max-width: 600px) { .apia-grid-3.is-layout-grid { grid-template-columns: minmax(0, 1fr) !important; } }

/* Contact form */
.apia-form { display: grid; gap: 1.25rem; }
.apia-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; }
@media (max-width: 600px) { .apia-form__row { grid-template-columns: 1fr; } }
.apia-form__field { display: grid; gap: 0.4rem; }
.apia-form label { font-weight: 600; }
.apia-form input[type="text"],
.apia-form input[type="email"],
.apia-form input[type="tel"],
.apia-form select,
.apia-form textarea {
	width: 100%;
	box-sizing: border-box;
	font: inherit;
	padding: 0.75rem 0.9rem;
	border: 1px solid #B9AEA9;
	border-radius: 4px;
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--ink);
}
.apia-form input:focus,
.apia-form select:focus,
.apia-form textarea:focus {
	outline: 3px solid var(--wp--preset--color--sky);
	outline-offset: 1px;
	border-color: var(--wp--preset--color--maroon);
}
.apia-form__note { font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--muted); margin: 0; }
.apia-form button.wp-block-button__link { border: 0; cursor: pointer; }
.apia-form__hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.apia-form-message { border-radius: 6px; padding: 1rem 1.25rem; margin-bottom: 1.25rem; border-left: 4px solid; }
.apia-form-message p { margin: 0; }
.apia-form-message.is-success { background: #EAF5EC; border-color: #2E7D3E; }
.apia-form-message.is-error { background: #FBECEC; border-color: var(--wp--preset--color--maroon); }

/* FAQ accordion: chevron on the right */
.wp-block-details summary {
	list-style: none;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
}
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after {
	content: "";
	flex: none;
	width: 0.6rem;
	height: 0.6rem;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: rotate(45deg) translateY(-25%);
	transition: transform 0.15s ease;
}
.wp-block-details[open] summary::after { transform: rotate(-135deg); }
.wp-block-details summary:hover { color: var(--wp--preset--color--maroon); }
.wp-block-details .wp-block-table { font-size: 0.95em; }

/* Featured images in news cards: always fill the card width, never overflow */
.is-style-apia-card > .wp-block-post-featured-image {
	align-self: stretch;
	width: 100%;
	margin: 0;
	overflow: hidden;
	border-radius: 6px 6px 0 0;
}
.is-style-apia-card > .wp-block-post-featured-image a,
.is-style-apia-card > .wp-block-post-featured-image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
/* Featured image at the top of a single news post */
.single .wp-block-post-featured-image img { width: 100%; height: 100%; object-fit: cover; }

/* What's included: compact two-column tick list */
.apia-ticks-2col { columns: 2; column-gap: 2rem; margin: 0; }
.apia-ticks-2col li { break-inside: avoid; }
@media (max-width: 600px) { .apia-ticks-2col { columns: 1; } }

/* Registration status badges */
.apia-badge {
	display: inline-block;
	align-self: flex-start;
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	padding: 0.3rem 0.65rem;
	border-radius: 999px;
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--muted);
	margin: 0;
}
.apia-badge.is-open { background: #E3F2E6; color: #1F6B32; }

/* Know our team */
.apia-team-card { text-align: center; align-items: center; }
.apia-team-card h3, .apia-team-card p { text-align: center; margin: 0; }
.apia-avatar {
	width: 112px;
	height: 112px;
	border-radius: 50%;
	display: flex !important;
	align-items: center;
	justify-content: center;
	background: var(--wp--preset--color--maroon);
	color: var(--wp--preset--color--base);
	font-family: var(--wp--preset--font-family--heading);
	font-size: 2.25rem;
	font-weight: 700;
	margin: 0 auto 0.5rem !important;
	box-shadow: 0 0 0 4px var(--wp--preset--color--base), 0 0 0 6px var(--wp--preset--color--sky);
}
.apia-team-card .wp-block-image img { width: 112px; height: 112px; border-radius: 50%; object-fit: cover; }

/* History teaser honours list */
.apia-honours-list { list-style: none; padding-left: 0; margin: 0.5rem 0; }
.apia-honours-list li { padding: 0.5rem 0; border-bottom: 1px solid #ffffff26; }

/* ------------------------------------------------------------------
   "Play football" mega menu (desktop)
   ------------------------------------------------------------------ */
@media (min-width: 600px) {
	.apia-header .wp-block-navigation .apia-mega > .wp-block-navigation__submenu-container {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 0.25rem;
		width: 600px !important;
		min-width: 0 !important;
		padding: 0.75rem !important;
		border: 0 !important;
		border-radius: 12px !important;
		background: var(--wp--preset--color--base);
		box-shadow: 0 24px 48px -12px rgb(26 20 22 / 0.28), 0 0 0 1px rgb(26 20 22 / 0.06);
		top: calc(100% + 0.75rem) !important;
		left: -1rem !important;
		transform: translateY(6px);
		transition: opacity 0.18s ease, transform 0.18s ease, visibility 0s linear 0.18s !important;
		text-transform: none;
		letter-spacing: 0;
		font-family: var(--wp--preset--font-family--body);
	}
	/* hover bridge so the panel doesn't close crossing the gap */
	.apia-header .wp-block-navigation .apia-mega > .wp-block-navigation__submenu-container::before {
		content: "";
		position: absolute;
		left: 0;
		right: 0;
		top: -0.75rem;
		height: 0.75rem;
	}
	.apia-header .wp-block-navigation .apia-mega:hover > .wp-block-navigation__submenu-container,
	.apia-header .wp-block-navigation .apia-mega:focus-within > .wp-block-navigation__submenu-container,
	.apia-header .wp-block-navigation .apia-mega > .wp-block-navigation__submenu-container.is-open {
		transform: translateY(0);
		transition: opacity 0.18s ease, transform 0.18s ease !important;
	}
	.apia-mega-item > .wp-block-navigation-item__content {
		display: grid !important;
		gap: 0.15rem;
		padding: 0.8rem 1rem 0.8rem 1.25rem !important;
		border-radius: 8px;
		border-left: 3px solid transparent;
		white-space: normal;
		transition: background-color 0.15s ease, border-color 0.15s ease;
	}
	.apia-mega-item > .wp-block-navigation-item__content:hover,
	.apia-mega-item > .wp-block-navigation-item__content:focus-visible {
		background: var(--wp--preset--color--surface);
		border-left-color: var(--wp--preset--color--maroon);
		outline: none;
	}
	.apia-mega-all {
		grid-column: 1 / -1;
		border-top: 1px solid var(--wp--preset--color--line);
		margin-top: 0.4rem;
		padding-top: 0.4rem;
	}
	.apia-mega-all > .wp-block-navigation-item__content {
		padding: 0.7rem 1.25rem !important;
		border-radius: 8px;
		font-weight: 700;
		color: var(--wp--preset--color--maroon) !important;
	}
	.apia-mega-all > .wp-block-navigation-item__content::after { content: "\00a0→"; }
	.apia-mega-all > .wp-block-navigation-item__content:hover { background: var(--wp--preset--color--surface); }
}

/* Item text (desktop and the mobile menu) */
.apia-mega-item .wp-block-navigation-item__label {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.25rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.02em;
	color: var(--wp--preset--color--maroon-dark);
	line-height: 1.1;
}
.apia-mega-item .wp-block-navigation-item__description {
	display: block;
	font-family: var(--wp--preset--font-family--body);
	font-size: 0.875rem;
	font-weight: 400;
	text-transform: none;
	letter-spacing: 0;
	color: var(--wp--preset--color--muted);
	line-height: 1.35;
}
/* v1.16: "Registrations open" pill removed from the menu */

@media (prefers-reduced-motion: reduce) {
	.apia-header .wp-block-navigation .apia-mega > .wp-block-navigation__submenu-container { transform: none !important; transition: none !important; }
}

/* ------------------------------------------------------------------
   Mobile menu (full-screen overlay)
   Layout: logo row / "Play football" program tiles / page links /
   Register button / directions / social icons
   ------------------------------------------------------------------ */

/* Items that only exist for the phone menu */
.apia-nav-mobile-only { display: none !important; }
.is-menu-open .apia-nav-mobile-only { display: flex !important; }
.is-menu-open .wp-block-navigation-item:has(> .apia-nav-mobile-only) { display: flex !important; }
.wp-block-navigation-item:has(> .apia-nav-mobile-only) { display: none; }

.wp-block-navigation__responsive-container.is-menu-open {
	padding: 0 !important;
	animation: apia-menu-in 0.2s ease-out;
}
@keyframes apia-menu-in { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .wp-block-navigation__responsive-container.is-menu-open { animation: none; } }

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-close {
	max-width: none;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
	top: 1.1rem !important;
	right: 1rem !important;
	width: 44px;
	height: 44px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: var(--wp--preset--color--surface);
	z-index: 2;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	padding: 1rem 1rem 2rem !important;
	align-items: stretch !important;
	gap: 0 !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
	display: flex !important;
	flex-direction: column;
	align-items: stretch !important;
	gap: 0 !important;
	width: 100%;
}

/* Logo row */
.is-menu-open .wp-block-navigation-item:has(> .apia-nav-logo) {
	padding: 0 0 1rem;
	margin-bottom: 0.5rem;
	border-bottom: 1px solid var(--wp--preset--color--line);
}
.is-menu-open .apia-nav-logo img { width: 52px !important; height: auto; }

/* Plain page links */
.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item:not(.apia-mega):not(.apia-nav-mobile-only):not(:has(> .apia-nav-mobile-only)) {
	border-bottom: 1px solid var(--wp--preset--color--line);
}
.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item:not(.apia-mega):not(.apia-nav-mobile-only) > .wp-block-navigation-item__content {
	display: flex !important;
	justify-content: space-between;
	align-items: center;
	width: 100%;
	padding: 0.8rem 0.25rem !important;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.3rem;
	font-weight: 700;
	text-transform: uppercase;
	color: var(--wp--preset--color--maroon-dark);
}
.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item:not(.apia-mega):not(.apia-nav-mobile-only) > .wp-block-navigation-item__content::after {
	content: "";
	width: 0.55rem;
	height: 0.55rem;
	border-top: 2px solid var(--wp--preset--color--maroon);
	border-right: 2px solid var(--wp--preset--color--maroon);
	transform: rotate(45deg);
	flex: none;
	margin-right: 0.35rem;
}

/* "Play football": eyebrow label + 2-column program tiles */
.is-menu-open .apia-mega { display: block !important; padding: 0.75rem 0 1.25rem; border-bottom: 1px solid var(--wp--preset--color--line); }
.is-menu-open .apia-mega > .wp-block-navigation-item__content {
	display: block !important;
	padding: 0 0.25rem 0.75rem !important;
	font-family: var(--wp--preset--font-family--body);
	font-size: 0.8125rem !important;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--sky-dark) !important;
}
.is-menu-open .apia-mega > .wp-block-navigation__submenu-icon { display: none !important; }
.is-menu-open .apia-mega > .wp-block-navigation__submenu-container {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.5rem !important;
	padding: 0 !important;
	border: 0 !important;
	box-shadow: none !important;
	width: 100% !important;
	position: static !important;
	opacity: 1 !important;
	visibility: visible !important;
	height: auto !important;
}
.is-menu-open .apia-mega-item {
	display: block !important;
	margin: 0 !important;
}
.is-menu-open .apia-mega-item > .wp-block-navigation-item__content {
	display: flex !important;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.2rem;
	height: 100%;
	box-sizing: border-box;
	padding: 0.85rem 0.85rem 0.9rem !important;
	margin: 0 !important;
	border: 0 !important;
	border-radius: 10px;
	background: var(--wp--preset--color--surface);
	text-align: left;
}
.is-menu-open .apia-mega-item > .wp-block-navigation-item__content:active { background: #EDE6E0; }
.is-menu-open .apia-mega-item .wp-block-navigation-item__label { font-size: 1.125rem; }
.is-menu-open .apia-mega-item .wp-block-navigation-item__description { font-size: 0.8125rem; }
.is-menu-open .apia-mega-all {
	grid-column: 1 / -1;
	display: block !important;
	border: 0 !important;
	margin: 0.25rem 0 0 !important;
	padding: 0 !important;
}
.is-menu-open .apia-mega-all > .wp-block-navigation-item__content {
	display: block !important;
	padding: 0.5rem 0.25rem !important;
	font-weight: 700;
	color: var(--wp--preset--color--maroon) !important;
}

/* Register button */
.is-menu-open .apia-nav-register { margin-top: 1.5rem !important; }
.is-menu-open .apia-nav-register > .wp-block-navigation-item__content {
	display: flex !important;
	justify-content: center;
	width: 100%;
	padding: 1rem !important;
	border-radius: 6px;
	background: var(--wp--preset--color--maroon);
	color: var(--wp--preset--color--base) !important;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.25rem;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
}

/* Directions */
.is-menu-open .apia-nav-location { margin-top: 1rem !important; }
.is-menu-open .apia-nav-location > .wp-block-navigation-item__content {
	display: grid !important;
	grid-template-columns: auto 1fr;
	column-gap: 0.6rem;
	align-items: center;
	padding: 0.25rem !important;
	font-weight: 600;
	color: var(--wp--preset--color--ink);
}
.is-menu-open .apia-nav-location > .wp-block-navigation-item__content::before {
	content: "";
	grid-row: span 2;
	width: 1.25rem;
	height: 1.25rem;
	background: var(--wp--preset--color--maroon);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a7 7 0 0 0-7 7c0 5.25 7 13 7 13s7-7.75 7-13a7 7 0 0 0-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a7 7 0 0 0-7 7c0 5.25 7 13 7 13s7-7.75 7-13a7 7 0 0 0-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.is-menu-open .apia-nav-location .wp-block-navigation-item__description {
	display: block;
	font-size: 0.875rem;
	font-weight: 400;
	color: var(--wp--preset--color--sky-dark);
	text-decoration: underline;
}

/* Social icons */
.is-menu-open .wp-block-navigation-item:has(> .apia-nav-social) { margin-top: 1rem; padding-left: 0.25rem; }
.is-menu-open .apia-nav-social { gap: 0.75rem !important; }

/* Phone menu: keep everything left-aligned (the desktop menu is right-aligned) */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item {
	justify-content: flex-start !important;
	align-items: stretch !important;
	width: 100%;
}
.wp-block-navigation__responsive-container.is-menu-open .apia-nav-logo { margin: 0 !important; }
.wp-block-navigation__responsive-container.is-menu-open .apia-nav-location > .wp-block-navigation-item__content,
.wp-block-navigation__responsive-container.is-menu-open .apia-nav-location .wp-block-navigation-item__label {
	font-family: var(--wp--preset--font-family--body);
	font-size: 1rem;
	text-transform: none;
	letter-spacing: 0;
	text-align: left;
}
.wp-block-navigation__responsive-container.is-menu-open .apia-nav-location .wp-block-navigation-item__description { text-transform: none; letter-spacing: 0; }
.wp-block-navigation__responsive-container.is-menu-open .apia-nav-social { justify-content: flex-start !important; }
.wp-block-navigation__responsive-container.is-menu-open .apia-nav-register > .wp-block-navigation-item__content { box-sizing: border-box; }
.is-menu-open .apia-mega-all > .wp-block-navigation-item__content::after { content: "\00a0→"; }

/* Program cards: Register button sits at the bottom and above the card link */
.apia-link-cards .is-style-apia-card > .wp-block-group { flex: 1; }
.apia-card-actions { margin-top: auto !important; padding-top: 0.5rem; position: relative; z-index: 2; }
.apia-link-cards .apia-badge { position: relative; z-index: 2; }

/* What's included (slim): small text, tight spacing, ticks flow in columns */
.apia-incl .apia-incl-title {
	margin: 0 0 0.5rem;
	font-size: 0.875rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--maroon-dark);
}
.apia-incl .apia-incl-list {
	columns: 4 12rem;
	column-gap: 1.5rem;
	margin: 0;
	font-size: 0.9375rem;
	line-height: 1.4;
}
.apia-incl .apia-incl-list li { margin-bottom: 0.35rem; padding-left: 1.6rem; break-inside: avoid; }
.apia-incl .apia-incl-list li::before { width: 1rem; height: 1rem; top: 0.15em; }

/* Our team (with photos) */
.apia-team-grid.is-layout-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
@media (max-width: 781px) { .apia-team-grid.is-layout-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
.apia-team-photo { margin: 0 auto 0.5rem !important; }
.apia-team-photo img {
	width: 140px !important;
	height: 140px !important;
	border-radius: 50%;
	object-fit: cover;
	box-shadow: 0 0 0 4px var(--wp--preset--color--base), 0 0 0 6px var(--wp--preset--color--sky);
}
@media (max-width: 600px) { .apia-team-photo img { width: 110px !important; height: 110px !important; } }

/* ------------------------------------------------------------------
   News cards: photo runs edge to edge across the top of the card and
   every photo is the same size (16:9), whatever its original shape.
   ------------------------------------------------------------------ */
.wp-block-post-template .is-style-apia-card {
	overflow: hidden;
	padding-top: 0 !important;
}
.wp-block-post-template .is-style-apia-card .wp-block-post-featured-image {
	align-self: stretch !important;
	flex: none;
	width: 100% !important;
	max-width: none !important;
	height: auto !important;
	aspect-ratio: 16 / 9 !important;
	margin: 0 !important;
	padding: 0 !important;
	border-radius: 0 !important;
	overflow: hidden;
}
.wp-block-post-template .is-style-apia-card .wp-block-post-featured-image a,
.wp-block-post-template .is-style-apia-card .wp-block-post-featured-image img {
	display: block;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	object-fit: cover !important;
	border-radius: 0 !important;
	margin: 0 !important;
}

/* Posts without a featured image: club crest on maroon, same size */
.apia-featured-fallback {
	background: var(--wp--preset--color--maroon-dark) url("assets/images/apia-tigers-logo.png") center / auto 55% no-repeat;
}
.apia-featured-fallback a { min-height: 100%; }

/* News cards: no side padding on the card itself, whatever layout or
   spacing the card has been given in the editor, so the photo always
   touches both edges. The text keeps its own padding. */
.wp-block-post-template .is-style-apia-card,
.wp-block-post-template .is-style-apia-card.has-global-padding {
	padding-left: 0 !important;
	padding-right: 0 !important;
	padding-top: 0 !important;
	border-width: 0 !important;
	box-shadow: 0 0 0 1px var(--wp--preset--color--line);
}
.wp-block-post-template .is-style-apia-card:hover { box-shadow: 0 0 0 1px var(--wp--preset--color--line), 0 14px 30px rgb(26 20 22 / 0.12); }
.wp-block-post-template .is-style-apia-card > .wp-block-post-featured-image {
	margin-left: 0 !important;
	margin-right: 0 !important;
}
/* Text placed straight into the card (not inside the inner group) still gets breathing room */
.wp-block-post-template .is-style-apia-card > :not(.wp-block-post-featured-image):not(.wp-block-group) {
	padding-left: var(--wp--preset--spacing--30);
	padding-right: var(--wp--preset--spacing--30);
}

/* Any other list of news posts (a Query Loop without the card style, or a
   Latest Posts block): photos fill the column and are all the same size */
.wp-block-post-template > li > .wp-block-post-featured-image,
.wp-block-post-template > li > .wp-block-group > .wp-block-post-featured-image,
.wp-block-latest-posts .wp-block-latest-posts__featured-image {
	display: block;
	width: 100% !important;
	max-width: none !important;
	aspect-ratio: 16 / 9;
	height: auto !important;
	overflow: hidden;
	border-radius: 6px;
	margin-left: 0 !important;
	margin-right: 0 !important;
}
.wp-block-post-template > li > .wp-block-post-featured-image img,
.wp-block-post-template > li > .wp-block-group > .wp-block-post-featured-image img,
.wp-block-latest-posts .wp-block-latest-posts__featured-image img,
.wp-block-post-template > li > .wp-block-post-featured-image a,
.wp-block-latest-posts .wp-block-latest-posts__featured-image a {
	display: block;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	object-fit: cover;
}
.wp-block-latest-posts .wp-block-latest-posts__featured-image { margin-bottom: 0.75rem; }
.wp-block-latest-posts.is-grid { padding-left: 0; }

/* Sponsor logos: always show the whole logo at its own shape, never
   stretched or cropped, whatever box or card it's placed in */
.apia-static-cards .wp-block-image,
.apia-sponsors .wp-block-image,
.apia-partner-logo .wp-block-image {
	margin: 0 auto !important;
	width: auto !important;
	max-width: 100%;
	text-align: center;
}
.apia-static-cards .wp-block-image img,
.apia-sponsors .wp-block-image img,
.apia-partner-logo .wp-block-image img {
	aspect-ratio: auto !important;
	object-fit: contain !important;
	width: auto !important;
	height: auto !important;
	max-width: 100% !important;
	max-height: 120px !important;
	margin: 0 auto;
	border-radius: 0 !important;
}
.apia-sponsors .wp-block-image img { max-height: 70px !important; }
.apia-static-cards .wp-block-image img { max-width: 85% !important; max-height: 90px !important; }

/* Sponsor logos: no placeholder colour behind the logo itself, so the box colour you choose shows through */
.apia-static-cards .wp-block-image img,
.apia-sponsors .wp-block-image img,
.apia-partner-logo .wp-block-image img { background: transparent !important; }

/* v1.17 Gallery page */
.apia-gallery.wp-block-gallery.has-nested-images figure.wp-block-image img {
	aspect-ratio: 4 / 3;
	object-fit: cover;
	width: 100%;
	height: 100%;
	border-radius: 6px;
	background: var(--wp--preset--color--line);
}
.apia-gallery.wp-block-gallery.has-nested-images figure.wp-block-image { border-radius: 6px; overflow: hidden; }
.apia-gallery-section { scroll-margin-top: 110px; }
.apia-gallery-nav { border-bottom: 1px solid var(--wp--preset--color--line); }
.apia-gallery-jump { gap: 0.5rem !important; }
.apia-gallery-jump .wp-block-button__link { padding: 0.45rem 0.9rem !important; font-size: 0.95rem !important; }
/* v1.17.1: a fixed grid, so every photo is the same size however many there are */
.apia-gallery.wp-block-gallery.has-nested-images {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: var(--wp--style--unstable-gallery-gap, 1rem);
	align-items: start;
}
.apia-gallery.wp-block-gallery.has-nested-images figure.wp-block-image,
.apia-gallery.wp-block-gallery.has-nested-images figure.wp-block-image:not(#individual-image) {
	width: auto !important;
	max-width: none !important;
	flex: none !important;
	margin: 0 !important;
}
.apia-gallery.wp-block-gallery.has-nested-images > figcaption { grid-column: 1 / -1; }
@media (max-width: 900px) {
	.apia-gallery.wp-block-gallery.has-nested-images { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
	.apia-gallery.wp-block-gallery.has-nested-images { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}


/* v1.18: program galleries sit flush with the page margins */
.apia-gallery.wp-block-gallery.has-nested-images { margin-left: 0 !important; margin-right: 0 !important; }

/* v1.18: on tablets the All programs panel is a single column, so it doesn't run off the right of the screen */
@media (min-width: 600px) and (max-width: 1000px) {
	.apia-header .wp-block-navigation .apia-mega > .wp-block-navigation__submenu-container {
		grid-template-columns: minmax(0, 1fr);
		width: 320px !important;
	}
}
