/**
 * CUS Roma Archery — Main frontend styles
 *
 * @package Cusroma_Archery
 */

/* --------------------------------------------------------------------------
   Custom properties
   -------------------------------------------------------------------------- */

:root {
	--cusroma-blue-dark: #102a56;
	--cusroma-blue: #184780;
	--cusroma-yellow: #f4c300;
	--cusroma-yellow-light: #ffe58a;
	--cusroma-white: #ffffff;
	--cusroma-surface: #f6f8fc;
	--cusroma-text: #172033;
	--cusroma-text-muted: #526074;
	--cusroma-success: #19764a;
	--cusroma-error: #b42318;
	--cusroma-radius: 0.5rem;
	--cusroma-radius-sm: 0.375rem;
	--cusroma-shadow: 0 4px 24px rgba(16, 42, 86, 0.08);
	--cusroma-shadow-lg: 0 12px 40px rgba(16, 42, 86, 0.12);
	--cusroma-header-height: 4.5rem;
	--cusroma-touch-min: 44px;
	--cusroma-transition: 180ms ease;
	--cusroma-font: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

/* --------------------------------------------------------------------------
   Base
   -------------------------------------------------------------------------- */

body {
	font-family: var(--cusroma-font);
	color: var(--cusroma-text);
	background-color: var(--cusroma-white);
	line-height: 1.6;
}

.cusroma-main {
	position: relative;
}

/* Subtle target ring decoration */
.cusroma-target-decor {
	position: relative;
	overflow: hidden;
}

.cusroma-target-decor::before {
	content: "";
	position: absolute;
	top: 50%;
	right: -10%;
	width: min(280px, 50vw);
	height: min(280px, 50vw);
	border-radius: 50%;
	border: 2px solid rgba(244, 195, 0, 0.15);
	box-shadow:
		0 0 0 24px rgba(244, 195, 0, 0.08),
		0 0 0 48px rgba(244, 195, 0, 0.04),
		0 0 0 72px rgba(255, 255, 255, 0.03);
	transform: translateY(-50%);
	pointer-events: none;
}

.cusroma-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	background:
		linear-gradient(105deg, rgba(16, 42, 86, 0.82) 0%, rgba(16, 42, 86, 0.55) 42%, rgba(16, 42, 86, 0.25) 100%),
		radial-gradient(circle at 78% 55%, rgba(244, 195, 0, 0.12) 0%, transparent 40%);
	pointer-events: none;
	z-index: 1;
}

.cusroma-hero {
	position: relative;
	overflow: hidden;
}

.cusroma-hero .wp-block-cover__image-background {
	transform: scale(1.04);
	transition: transform 8s ease-out;
}

.cusroma-hero.is-inview .wp-block-cover__image-background {
	transform: scale(1);
}

.cusroma-hero .wp-block-cover__inner-container {
	position: relative;
	z-index: 2;
}

.cusroma-hero__kicker {
	letter-spacing: 0.08em;
	text-transform: uppercase;
	font-weight: 600;
	margin-bottom: 0.75rem !important;
}

.cusroma-hero__title {
	text-wrap: balance;
	line-height: 1.1 !important;
	margin-bottom: 1rem !important;
	text-shadow: 0 2px 24px rgba(0, 0, 0, 0.25);
	color: #ffffff !important;
}

.cusroma-hero__lead {
	max-width: 34rem;
	opacity: 0.95;
	text-shadow: 0 1px 12px rgba(0, 0, 0, 0.35);
	color: #ffffff !important;
}

.cusroma-hero__actions {
	margin-top: 1.75rem !important;
	gap: 0.75rem !important;
}

.cusroma-btn-outline-light .wp-block-button__link {
	border-color: rgba(255, 255, 255, 0.85) !important;
	color: #fff !important;
	background: transparent !important;
}

.cusroma-btn-outline-light .wp-block-button__link:hover,
.cusroma-btn-outline-light .wp-block-button__link:focus-visible {
	background: rgba(255, 255, 255, 0.12) !important;
	border-color: var(--cusroma-yellow) !important;
	color: var(--cusroma-yellow-light) !important;
}

/* Reveal on scroll */
/* Reveal only when JS is active — content stays visible without JS. */
html.cusroma-js .cusroma-reveal {
	opacity: 0;
	transform: translateY(1.5rem);
	transition: opacity 0.75s cubic-bezier(0.22, 1, 0.36, 1), transform 0.75s cubic-bezier(0.22, 1, 0.36, 1);
}

html.cusroma-js .cusroma-reveal.is-inview {
	opacity: 1;
	transform: none;
}

html.cusroma-js .cusroma-hero.cusroma-reveal {
	opacity: 1;
	transform: none;
}

html.cusroma-js .cusroma-hero.cusroma-reveal .cusroma-hero__content > * {
	opacity: 0;
	transform: translateY(1.25rem);
	transition: opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1), transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}

html.cusroma-js .cusroma-hero.is-inview .cusroma-hero__content > *:nth-child(1) { transition-delay: 0.08s; opacity: 1; transform: none; }
html.cusroma-js .cusroma-hero.is-inview .cusroma-hero__content > *:nth-child(2) { transition-delay: 0.22s; opacity: 1; transform: none; }
html.cusroma-js .cusroma-hero.is-inview .cusroma-hero__content > *:nth-child(3) { transition-delay: 0.36s; opacity: 1; transform: none; }
html.cusroma-js .cusroma-hero.is-inview .cusroma-hero__content > *:nth-child(4) { transition-delay: 0.5s; opacity: 1; transform: none; }

/* Staggered children inside revealed sections */
html.cusroma-js .cusroma-reveal .cusroma-pathway,
html.cusroma-js .cusroma-reveal .cusroma-division,
html.cusroma-js .cusroma-reveal .cr-course-card,
html.cusroma-js .cusroma-reveal .cr-location-card,
html.cusroma-js .cusroma-reveal .cusroma-media-frame,
html.cusroma-js .cusroma-reveal .cusroma-youth-pill {
	opacity: 0;
	transform: translateY(1.4rem) scale(0.98);
	transition: opacity 0.55s cubic-bezier(0.22, 1, 0.36, 1), transform 0.55s cubic-bezier(0.22, 1, 0.36, 1);
}

html.cusroma-js .cusroma-reveal.is-inview .cusroma-pathway,
html.cusroma-js .cusroma-reveal.is-inview .cusroma-division,
html.cusroma-js .cusroma-reveal.is-inview .cr-course-card,
html.cusroma-js .cusroma-reveal.is-inview .cr-location-card,
html.cusroma-js .cusroma-reveal.is-inview .cusroma-media-frame,
html.cusroma-js .cusroma-reveal.is-inview .cusroma-youth-pill {
	opacity: 1;
	transform: none;
}

html.cusroma-js .cusroma-reveal.is-inview .cusroma-pathway:nth-child(1),
html.cusroma-js .cusroma-reveal.is-inview .wp-block-column:nth-child(1) .cusroma-pathway,
html.cusroma-js .cusroma-reveal.is-inview .wp-block-column:nth-child(1) .cusroma-division,
html.cusroma-js .cusroma-reveal.is-inview .cr-course-card:nth-child(1),
html.cusroma-js .cusroma-reveal.is-inview .cr-location-card:nth-child(1) { transition-delay: 0.08s; }

html.cusroma-js .cusroma-reveal.is-inview .cusroma-pathway:nth-child(2),
html.cusroma-js .cusroma-reveal.is-inview .wp-block-column:nth-child(2) .cusroma-pathway,
html.cusroma-js .cusroma-reveal.is-inview .wp-block-column:nth-child(2) .cusroma-division,
html.cusroma-js .cusroma-reveal.is-inview .cr-course-card:nth-child(2),
html.cusroma-js .cusroma-reveal.is-inview .cr-location-card:nth-child(2) { transition-delay: 0.18s; }

html.cusroma-js .cusroma-reveal.is-inview .cusroma-pathway:nth-child(3),
html.cusroma-js .cusroma-reveal.is-inview .wp-block-column:nth-child(3) .cusroma-pathway,
html.cusroma-js .cusroma-reveal.is-inview .wp-block-column:nth-child(3) .cusroma-division,
html.cusroma-js .cusroma-reveal.is-inview .cr-course-card:nth-child(3),
html.cusroma-js .cusroma-reveal.is-inview .cr-location-card:nth-child(3) { transition-delay: 0.28s; }

html.cusroma-js .cusroma-reveal.is-inview .cusroma-youth-pill:nth-child(1),
html.cusroma-js .cusroma-reveal.is-inview .wp-block-column:nth-child(1) .cusroma-youth-pill { transition-delay: 0.12s; }
html.cusroma-js .cusroma-reveal.is-inview .cusroma-youth-pill:nth-child(2),
html.cusroma-js .cusroma-reveal.is-inview .wp-block-column:nth-child(2) .cusroma-youth-pill { transition-delay: 0.22s; }

/* Hero CTA pulse */
@keyframes cusroma-cta-glow {
	0%, 100% { box-shadow: 0 0 0 0 rgba(244, 195, 0, 0.45); }
	50% { box-shadow: 0 0 0 10px rgba(244, 195, 0, 0); }
}

.cusroma-hero .cusroma-btn-cta .wp-block-button__link {
	animation: cusroma-cta-glow 2.4s ease-in-out infinite;
}

/* Target ring pulse on divisions */
@keyframes cusroma-ring-pulse {
	0%, 100% {
		box-shadow:
			inset 0 0 0 6px rgba(16, 42, 86, 0.4),
			0 0 0 8px rgba(244, 195, 0, 0.15);
	}
	50% {
		box-shadow:
			inset 0 0 0 6px rgba(16, 42, 86, 0.4),
			0 0 0 12px rgba(244, 195, 0, 0.28);
	}
}

.cusroma-division::before {
	animation: cusroma-ring-pulse 2.8s ease-in-out infinite;
}

/* Pathway step soft bounce when section enters */
@keyframes cusroma-step-pop {
	0% { transform: scale(0.7); opacity: 0; }
	60% { transform: scale(1.08); opacity: 1; }
	100% { transform: scale(1); opacity: 1; }
}

html.cusroma-js .cusroma-reveal .cusroma-pathway__step {
	display: inline-block;
	opacity: 0;
}

html.cusroma-js .cusroma-reveal.is-inview .cusroma-pathway__step {
	animation: cusroma-step-pop 0.55s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

html.cusroma-js .cusroma-reveal.is-inview .wp-block-column:nth-child(1) .cusroma-pathway__step { animation-delay: 0.15s; }
html.cusroma-js .cusroma-reveal.is-inview .wp-block-column:nth-child(2) .cusroma-pathway__step { animation-delay: 0.28s; }
html.cusroma-js .cusroma-reveal.is-inview .wp-block-column:nth-child(3) .cusroma-pathway__step { animation-delay: 0.4s; }

/* Gallery media slide-in */
html.cusroma-js .cusroma-section--gallery.cusroma-reveal .wp-block-media-text__media {
	opacity: 0;
	transform: translateX(2rem);
	transition: opacity 0.8s ease, transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
}

html.cusroma-js .cusroma-section--gallery.cusroma-reveal.is-inview .wp-block-media-text__media {
	opacity: 1;
	transform: none;
	transition-delay: 0.15s;
}

html.cusroma-js .cusroma-section--gallery.cusroma-reveal .wp-block-media-text__content > * {
	opacity: 0;
	transform: translateX(-1rem);
	transition: opacity 0.6s ease, transform 0.6s ease;
}

html.cusroma-js .cusroma-section--gallery.cusroma-reveal.is-inview .wp-block-media-text__content > *:nth-child(1) { opacity: 1; transform: none; transition-delay: 0.1s; }
html.cusroma-js .cusroma-section--gallery.cusroma-reveal.is-inview .wp-block-media-text__content > *:nth-child(2) { opacity: 1; transform: none; transition-delay: 0.22s; }
html.cusroma-js .cusroma-section--gallery.cusroma-reveal.is-inview .wp-block-media-text__content > *:nth-child(3) { opacity: 1; transform: none; transition-delay: 0.34s; }

/* Media frames */
.cusroma-media-frame {
	margin: 0 !important;
	overflow: hidden;
	border-radius: 0.75rem;
	box-shadow: var(--cusroma-shadow-lg);
}

.cusroma-media-frame img {
	display: block;
	width: 100%;
	height: auto;
	transition: transform 0.6s ease;
}

.cusroma-media-frame:hover img {
	transform: scale(1.03);
}

.cusroma-media-frame--tilt {
	transform: rotate(1.2deg);
}

.cusroma-media-frame figcaption {
	padding: 0.5rem 0.75rem;
	font-size: 0.8125rem;
	color: var(--cusroma-text-muted);
	background: var(--cusroma-surface);
}

.cusroma-section--gallery {
	background: var(--cusroma-blue-dark);
	color: #fff;
	min-height: 420px;
}

.cusroma-section--gallery .wp-block-media-text__content {
	padding: clamp(2rem, 5vw, 4rem) !important;
}

.cusroma-section--gallery h2,
.cusroma-section--gallery p {
	color: #fff !important;
}

.cusroma-section--gallery .has-text-secondary-color {
	color: var(--cusroma-yellow-light) !important;
}

.cusroma-section--gallery .wp-block-media-text__media {
	min-height: 360px;
}

/* Pathways */
.cusroma-pathway {
	height: 100%;
	padding: 1.75rem 1.5rem;
	background: #fff;
	border-left: 4px solid var(--cusroma-yellow);
	border-radius: 0 0.75rem 0.75rem 0;
	box-shadow: var(--cusroma-shadow);
	transition: transform var(--cusroma-transition), box-shadow var(--cusroma-transition);
}

.cusroma-pathway:hover,
.cusroma-pathway:focus-within {
	transform: translateY(-4px);
	box-shadow: var(--cusroma-shadow-lg);
}

.cusroma-pathway__step {
	font-size: 0.875rem !important;
	font-weight: 700;
	letter-spacing: 0.12em;
	color: var(--cusroma-yellow) !important;
	margin: 0 0 0.5rem !important;
}

.cusroma-pathway__link a {
	font-weight: 600;
	color: var(--cusroma-blue);
	text-decoration: none;
	border-bottom: 2px solid var(--cusroma-yellow);
}

.cusroma-pathway__link a:hover,
.cusroma-pathway__link a:focus-visible {
	color: var(--cusroma-blue-dark);
}

/* Divisions */
.cusroma-division {
	height: 100%;
	padding: 1.75rem 1.5rem 1.75rem 1.5rem;
	background: rgba(24, 71, 128, 0.55);
	border: 1px solid rgba(244, 195, 0, 0.35);
	border-radius: 0.75rem;
	position: relative;
	overflow: hidden;
	transition: transform var(--cusroma-transition), border-color var(--cusroma-transition), background var(--cusroma-transition);
}

.cusroma-division::before {
	content: "";
	display: block;
	width: 3rem;
	height: 3rem;
	margin-bottom: 1rem;
	border-radius: 50%;
	border: 3px solid var(--cusroma-yellow);
	box-shadow:
		inset 0 0 0 6px rgba(16, 42, 86, 0.4),
		0 0 0 8px rgba(244, 195, 0, 0.15);
	background: radial-gradient(circle, var(--cusroma-yellow) 0 18%, transparent 19%);
}

.cusroma-division:hover,
.cusroma-division:focus-within {
	transform: translateY(-3px);
	border-color: var(--cusroma-yellow);
	background: rgba(24, 71, 128, 0.8);
}

.cusroma-youth-pill {
	padding: 1rem 1.1rem;
	background: var(--cusroma-surface);
	border-radius: 0.75rem;
	border-top: 3px solid var(--cusroma-yellow);
	height: 100%;
}

/* Course & location cards (plugin output) */
.cr-courses,
.cr-locations {
	display: grid;
	gap: 1.25rem;
	grid-template-columns: 1fr;
	margin: 1.5rem 0 2rem;
	padding: 0;
	list-style: none;
}

@media (min-width: 768px) {
	.cr-courses,
	.cr-locations {
		grid-template-columns: repeat(2, 1fr);
	}
}

.cr-course-card,
.cr-location-card {
	background: #fff;
	border-radius: 0.75rem;
	padding: 1.5rem;
	box-shadow: var(--cusroma-shadow);
	border: 1px solid rgba(16, 42, 86, 0.06);
	transition: transform var(--cusroma-transition), box-shadow var(--cusroma-transition);
	height: 100%;
}

.cr-course-card:hover,
.cr-location-card:hover {
	transform: translateY(-3px);
	box-shadow: var(--cusroma-shadow-lg);
}

.cr-course-card__title a,
.cr-location-card__title {
	color: var(--cusroma-blue-dark);
	text-decoration: none;
}

.cr-badge {
	display: inline-block;
	padding: 0.2rem 0.55rem;
	border-radius: 0.25rem;
	font-size: 0.75rem;
	font-weight: 600;
	background: var(--cusroma-yellow-light);
	color: var(--cusroma-blue-dark);
}

.cr-badge--open {
	background: rgba(25, 118, 74, 0.12);
	color: var(--cusroma-success);
}

.cr-link,
.cr-btn {
	display: inline-flex;
	align-items: center;
	min-height: var(--cusroma-touch-min);
	font-weight: 600;
	color: var(--cusroma-blue);
	text-decoration: none;
}

.cr-btn--secondary {
	margin-right: 0.75rem;
	border-bottom: 2px solid var(--cusroma-yellow);
}

.cr-location-card__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1rem;
	margin-top: 1rem;
}

.cr-notice {
	margin-top: 1rem;
	font-size: 0.875rem;
	color: var(--cusroma-text-muted);
}

.cusroma-intro-split {
	align-items: center !important;
	gap: 2rem !important;
}

/* --------------------------------------------------------------------------
   Modern site header
   -------------------------------------------------------------------------- */

.cusroma-site-header {
	position: sticky;
	top: 0;
	z-index: 1000;
}

.cusroma-header-bar {
	background: #102A56 !important;
	backdrop-filter: blur(14px);
	-webkit-backdrop-filter: blur(14px);
	border-bottom: 3px solid var(--cusroma-yellow);
	box-shadow: 0 10px 30px rgba(16, 42, 86, 0.18);
	transition: background 0.35s ease, box-shadow 0.35s ease;
}

.admin-bar .cusroma-site-header {
	top: 32px;
}

.cusroma-header-bar__inner {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 0.65rem 1rem;
	max-width: 1200px;
	margin: 0 auto;
	min-height: 4.25rem;
}

.cusroma-brand {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	min-width: 0;
}

.cusroma-site-logo {
	flex-shrink: 0;
}

.cusroma-site-logo img,
.cusroma-site-logo .custom-logo {
	display: block;
	width: auto !important;
	height: 44px !important;
	max-width: 150px;
	object-fit: contain;
	background: rgba(255, 255, 255, 0.96);
	border-radius: 0.65rem;
	padding: 0.25rem 0.45rem;
	box-shadow: 0 4px 14px rgba(0, 0, 0, 0.18);
}

.cusroma-brand__text {
	min-width: 0;
}

.cusroma-site-title {
	margin: 0 !important;
	line-height: 1.15 !important;
}

.cusroma-site-title a {
	color: #fff !important;
	text-decoration: none;
	font-weight: 800;
	font-size: clamp(0.95rem, 1.4vw, 1.15rem);
	letter-spacing: 0.01em;
}

.cusroma-site-title a:hover,
.cusroma-site-title a:focus-visible {
	color: var(--cusroma-yellow);
}

.cusroma-brand__mark {
	margin: 0.15rem 0 0 !important;
	color: var(--cusroma-yellow) !important;
	font-size: 0.72rem !important;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	line-height: 1.2 !important;
}

.cusroma-site-tagline {
	display: none !important;
}

.cusroma-header-nav {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}

.cusroma-primary-nav {
	display: none;
}

.cusroma-primary-nav .wp-block-navigation__container {
	gap: 0.15rem;
}

.cusroma-primary-nav .wp-block-navigation-item {
	position: relative;
}

.cusroma-primary-nav .wp-block-navigation-item__content {
	color: #ffffff !important;
	min-height: 2.5rem;
	display: inline-flex;
	align-items: center;
	padding: 0.4rem 0.85rem;
	border-radius: 999px;
	font-weight: 700 !important;
	font-size: 0.95rem;
	letter-spacing: 0.01em;
	text-decoration: none;
	text-shadow: 0 1px 3px rgba(0, 0, 0, 0.55);
	background: transparent;
	border: 1px solid transparent;
	transition: color 0.2s ease, background 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

/* Top-level items: frosted chip for readable contrast on dark header */
.cusroma-primary-nav > .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content {
	background: rgba(255, 255, 255, 0.14) !important;
	border-color: rgba(255, 255, 255, 0.28);
}

.cusroma-primary-nav .wp-block-navigation-item.has-child > .wp-block-navigation-item__content {
	cursor: pointer;
}

.cusroma-primary-nav .wp-block-navigation-item__content:hover,
.cusroma-primary-nav .wp-block-navigation-item__content:focus-visible,
.cusroma-primary-nav .current-menu-item > .wp-block-navigation-item__content,
.cusroma-primary-nav .wp-block-navigation-item.has-child:hover > .wp-block-navigation-item__content {
	color: #102A56 !important;
	background: #F4C300 !important;
	border-color: #F4C300;
	text-shadow: none;
	transform: translateY(-1px);
}

.cusroma-primary-nav .wp-block-navigation__submenu-container {
	background: #fff;
	border: 1px solid rgba(16, 42, 86, 0.1);
	border-radius: 0.85rem;
	box-shadow: 0 18px 40px rgba(16, 42, 86, 0.22);
	padding: 0.55rem;
	min-width: 15rem;
	top: calc(100% + 0.35rem);
}

.cusroma-primary-nav .wp-block-navigation__submenu-container:not(.is-visible) {
	display: none;
}

.cusroma-primary-nav .wp-block-navigation-item.has-child:hover > .wp-block-navigation__submenu-container,
.cusroma-primary-nav .wp-block-navigation__submenu-container.is-visible {
	display: block;
}

.cusroma-primary-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	color: #102A56 !important;
	text-shadow: none;
	border-radius: 0.55rem;
	width: 100%;
	padding: 0.65rem 0.8rem;
	font-weight: 600 !important;
}

.cusroma-primary-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover,
.cusroma-primary-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:focus-visible {
	background: #F6F8FC !important;
	color: #102A56 !important;
}

/* Year archive submenu: scrollable list */
.cusroma-primary-nav .cusroma-nav-years > .wp-block-navigation__submenu-container {
	max-height: min(70vh, 28rem);
	overflow-y: auto;
	min-width: 13.5rem;
}

/* Transparent header over homepage hero — keep readable contrast */
body.cusroma-front-page:not(.cusroma-header-solid) .cusroma-header-bar {
	background: rgba(10, 28, 58, 0.9) !important;
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	box-shadow: none;
	border-bottom-color: #F4C300;
}

body.cusroma-front-page .cusroma-site-header {
	position: absolute;
	left: 0;
	right: 0;
	width: 100%;
}

body.cusroma-front-page.cusroma-header-solid .cusroma-site-header {
	position: sticky;
}

body.cusroma-front-page .cusroma-hero--home {
	padding-top: 5.5rem;
}

/* CTA button — never yellow on white in header */
.cusroma-btn-cta .wp-block-button__link {
	background-color: var(--cusroma-yellow) !important;
	color: var(--cusroma-blue-dark) !important;
	border: 2px solid var(--cusroma-yellow) !important;
	font-weight: 700;
	min-height: var(--cusroma-touch-min);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 999px !important;
	padding-inline: 1.15rem !important;
	transition: transform 0.2s ease, background-color var(--cusroma-transition), border-color var(--cusroma-transition);
}

.cusroma-btn-cta .wp-block-button__link:hover,
.cusroma-btn-cta .wp-block-button__link:focus-visible {
	background-color: var(--cusroma-yellow-light) !important;
	border-color: var(--cusroma-yellow-light) !important;
	color: var(--cusroma-blue-dark) !important;
	transform: translateY(-1px);
}

.cusroma-header-cta {
	display: none;
}

.cusroma-btn-outline-light .wp-block-button__link {
	background: transparent !important;
	color: var(--cusroma-white) !important;
	border: 2px solid var(--cusroma-white) !important;
	min-height: var(--cusroma-touch-min);
	border-radius: 999px !important;
}

.cusroma-btn-outline-light .wp-block-button__link:hover,
.cusroma-btn-outline-light .wp-block-button__link:focus-visible {
	background: rgba(255, 255, 255, 0.12) !important;
	color: var(--cusroma-white) !important;
}

/* Menu toggle */
.cusroma-menu-toggle {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 5px;
	width: var(--cusroma-touch-min);
	height: var(--cusroma-touch-min);
	padding: 0.5rem;
	background: rgba(255, 255, 255, 0.08);
	border: 1px solid rgba(244, 195, 0, 0.7);
	border-radius: 0.75rem;
	cursor: pointer;
	color: var(--cusroma-white);
	position: relative;
}

.cusroma-menu-toggle__bar {
	display: block;
	width: 1.25rem;
	height: 2px;
	background: var(--cusroma-yellow);
	border-radius: 1px;
	transition: transform var(--cusroma-transition), opacity var(--cusroma-transition);
}

.cusroma-menu-toggle__label {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	border: 0;
}

.cusroma-menu-toggle[aria-expanded="true"] .cusroma-menu-toggle__bar:nth-child(1) {
	transform: translateY(7px) rotate(45deg);
}

.cusroma-menu-toggle[aria-expanded="true"] .cusroma-menu-toggle__bar:nth-child(2) {
	opacity: 0;
}

.cusroma-menu-toggle[aria-expanded="true"] .cusroma-menu-toggle__bar:nth-child(3) {
	transform: translateY(-7px) rotate(-45deg);
}

/* Legacy top-bar (if still present in cached markup) */
.cusroma-top-bar {
	display: none;
}

.cusroma-header-main {
	display: none;
}

/* --------------------------------------------------------------------------
   Mobile navigation
   -------------------------------------------------------------------------- */

.cusroma-mobile-nav-wrapper {
	position: relative;
}

.cusroma-mobile-nav {
	position: fixed;
	inset: 0;
	z-index: 1001;
	background: rgba(16, 42, 86, 0.6);
	backdrop-filter: blur(2px);
}

.cusroma-mobile-nav[hidden] {
	display: none !important;
}

.cusroma-mobile-nav.is-open {
	display: block;
}

.cusroma-mobile-nav__panel {
	position: absolute;
	top: 0;
	right: 0;
	width: min(100%, 22rem);
	height: 100%;
	overflow-y: auto;
	padding: 1rem;
	box-shadow: var(--cusroma-shadow-lg);
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
}

.cusroma-mobile-nav__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding-bottom: 0.75rem;
	border-bottom: 2px solid var(--cusroma-surface);
}

.cusroma-menu-close {
	width: var(--cusroma-touch-min);
	height: var(--cusroma-touch-min);
	font-size: 1.75rem;
	line-height: 1;
	background: var(--cusroma-surface);
	border: none;
	border-radius: var(--cusroma-radius-sm);
	cursor: pointer;
	color: var(--cusroma-blue-dark);
}

.cusroma-mobile-nav__menu .wp-block-navigation-item__content {
	min-height: var(--cusroma-touch-min);
	display: flex;
	align-items: center;
	padding: 0.5rem 0;
	color: var(--cusroma-text);
	font-weight: 500;
	border-bottom: 1px solid var(--cusroma-surface);
}

.cusroma-mobile-nav__menu .wp-block-navigation__submenu-container {
	position: static;
	opacity: 1;
	visibility: visible;
	background: transparent;
	border: none;
	box-shadow: none;
	padding-left: 1rem;
}

.cusroma-mobile-nav__contacts a {
	color: var(--cusroma-blue);
	min-height: var(--cusroma-touch-min);
	display: inline-flex;
	align-items: center;
}

body.cusroma-nav-open {
	overflow: hidden;
}

/* --------------------------------------------------------------------------
   Hero & badges
   -------------------------------------------------------------------------- */

.cusroma-badge {
	display: inline-block;
	padding: 0.35rem 0.85rem;
	border-radius: 999px;
	font-size: 0.8125rem;
	letter-spacing: 0.02em;
	margin-bottom: 1rem;
}

.cusroma-hero__title {
	max-width: 18ch;
	text-wrap: balance;
}

.cusroma-hero__lead {
	max-width: 42ch;
}

.cusroma-hero__actions {
	margin-top: 1.5rem;
	gap: 0.75rem;
}

/* --------------------------------------------------------------------------
   Sections & cards
   -------------------------------------------------------------------------- */

.cusroma-section__header {
	margin-bottom: 2rem;
}

.cusroma-section__header--inline {
	align-items: baseline;
}

.cusroma-card {
	box-shadow: var(--cusroma-shadow);
	transition: box-shadow var(--cusroma-transition), transform var(--cusroma-transition);
}

.cusroma-card:hover {
	box-shadow: var(--cusroma-shadow-lg);
}

.cusroma-pathways-grid,
.cusroma-divisions-grid,
.cusroma-updates-grid {
	gap: 1.5rem;
}

.cusroma-pathways-grid .wp-block-column,
.cusroma-divisions-grid .wp-block-column {
	display: flex;
}

.cusroma-pathways-grid .cusroma-card,
.cusroma-divisions-grid .cusroma-card {
	flex: 1;
	width: 100%;
}

/* Contact strip — yellow bg with dark text (NOT yellow on white) */
.cusroma-contact-strip-section {
	border-top: 4px solid var(--cusroma-blue-dark);
	border-bottom: 4px solid var(--cusroma-blue-dark);
}

.cusroma-contact-strip-section a {
	color: var(--cusroma-blue-dark);
	font-weight: 600;
}

.cusroma-contact-strip-section .wp-block-button__link {
	min-height: var(--cusroma-touch-min);
}

/* CTA banner */
.cusroma-cta-banner {
	text-align: center;
}

/* --------------------------------------------------------------------------
   Footer
   -------------------------------------------------------------------------- */

.cusroma-site-footer {
	margin-top: auto;
}

.cusroma-footer-columns {
	gap: 2rem;
}

.cusroma-footer-list {
	list-style: none;
	padding: 0;
	margin: 0;
}

.cusroma-footer-list li {
	margin-bottom: 0.5rem;
}

.cusroma-footer-note {
	display: block;
	font-size: 0.85em;
	opacity: 0.85;
	margin-top: 0.15rem;
}

.cusroma-breadcrumbs {
	margin: 0 0 0.75rem !important;
}

.cusroma-breadcrumbs a {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.cusroma-page-nav {
	margin-top: 2.5rem !important;
	padding-top: 1.5rem;
	border-top: 1px solid rgba(16, 42, 86, 0.12);
	gap: 0.75rem;
}

.cusroma-footer-list a,
.cusroma-footer-nav a {
	color: var(--cusroma-yellow-light);
	text-decoration: underline;
	text-underline-offset: 2px;
	min-height: var(--cusroma-touch-min);
	display: inline-flex;
	align-items: center;
}

.cusroma-footer-list a:hover,
.cusroma-footer-nav a:hover,
.cusroma-footer-list a:focus-visible,
.cusroma-footer-nav a:focus-visible {
	color: var(--cusroma-yellow);
}

.cusroma-footer-main {
	padding: 3rem 1rem 2rem;
}

.cusroma-footer-meta {
	padding: 1.5rem 1rem 2rem;
}

.cusroma-footer-meta a {
	color: var(--cusroma-yellow-light);
}

.cusroma-footer-separator {
	opacity: 0.5;
	margin: 1rem 0;
}

.cusroma-footer-social .wp-block-social-link-anchor {
	min-width: var(--cusroma-touch-min);
	min-height: var(--cusroma-touch-min);
}

/* --------------------------------------------------------------------------
   Content & forms
   -------------------------------------------------------------------------- */

.cusroma-main--page .wp-block-post-content,
.cusroma-main--single-post .wp-block-post-content {
	font-size: 1.0625rem;
}

.cusroma-main--page .wp-block-post-content h2,
.cusroma-main--single-post .wp-block-post-content h2 {
	margin-top: 2rem;
}

.cusroma-search-form .wp-block-search__input,
.cusroma-search-form .wp-block-search__button {
	min-height: var(--cusroma-touch-min);
}

.cusroma-search-form .wp-block-search__button {
	background: var(--cusroma-blue-dark);
	color: var(--cusroma-white);
	border: none;
	font-weight: 600;
}

.cusroma-404-content {
	text-align: center;
}

/* Plugin shortcode output baseline */
.cusroma-contact-strip,
[class*="cusroma-"] table {
	width: 100%;
}

[class*="cusroma-"] table {
	border-collapse: collapse;
	margin: 1rem 0;
}

[class*="cusroma-"] th,
[class*="cusroma-"] td {
	padding: 0.75rem 1rem;
	text-align: left;
	border-bottom: 1px solid var(--cusroma-surface);
}

[class*="cusroma-"] th {
	background: var(--cusroma-surface);
	font-weight: 600;
}

/* Hide duplicate fallback when plugin renders */
.cusroma-section--locations:has(.cusroma-locations) .cusroma-locations-fallback,
.cusroma-section--courses:has(.cusroma-courses) .cusroma-courses-fallback,
.cusroma-results-fallback:has(+ .cusroma-results) {
	/* handled via plugin presence */
}

.cusroma-section--locations .cusroma-locations:not(:empty) ~ .cusroma-locations-fallback,
.cusroma-section--courses .cusroma-courses:not(:empty) ~ .cusroma-courses-fallback {
	display: none;
}

/* --------------------------------------------------------------------------
   Focus & accessibility
   -------------------------------------------------------------------------- */

:focus-visible {
	outline: 3px solid var(--cusroma-yellow);
	outline-offset: 2px;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
	outline: 3px solid var(--cusroma-yellow);
	outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}

	.cusroma-card:hover,
	.cusroma-pathway:hover,
	.cusroma-division:hover,
	.cr-course-card:hover,
	.cr-location-card:hover,
	.cusroma-media-frame:hover img {
		transform: none;
	}

	.cusroma-reveal,
	html.cusroma-js .cusroma-reveal,
	html.cusroma-js .cusroma-hero.cusroma-reveal .cusroma-hero__content > *,
	html.cusroma-js .cusroma-reveal .cusroma-pathway,
	html.cusroma-js .cusroma-reveal .cusroma-division,
	html.cusroma-js .cusroma-reveal .cr-course-card,
	html.cusroma-js .cusroma-reveal .cr-location-card,
	html.cusroma-js .cusroma-reveal .cusroma-media-frame,
	html.cusroma-js .cusroma-reveal .cusroma-youth-pill,
	html.cusroma-js .cusroma-reveal .cusroma-pathway__step,
	html.cusroma-js .cusroma-section--gallery.cusroma-reveal .wp-block-media-text__media,
	html.cusroma-js .cusroma-section--gallery.cusroma-reveal .wp-block-media-text__content > * {
		opacity: 1 !important;
		transform: none !important;
		transition: none !important;
		animation: none !important;
	}

	.cusroma-hero .cusroma-btn-cta .wp-block-button__link,
	.cusroma-division::before {
		animation: none !important;
	}

	.cusroma-hero .wp-block-cover__image-background {
		transform: none !important;
		transition: none !important;
	}
}

/* --------------------------------------------------------------------------
   Responsive — tablet+
   -------------------------------------------------------------------------- */

@media (min-width: 768px) {
	.cusroma-menu-toggle {
		display: none;
	}

	.cusroma-primary-nav {
		display: flex;
	}

	.cusroma-header-cta {
		display: flex;
	}

	.cusroma-updates-grid {
		flex-wrap: nowrap !important;
	}

	.cusroma-news-query .wp-block-post-template {
		grid-template-columns: repeat(3, 1fr);
	}
}

@media (min-width: 1024px) {
	.cusroma-header-bar__inner,
	.cusroma-footer-main,
	.cusroma-footer-meta {
		padding-left: 1.5rem;
		padding-right: 1.5rem;
	}
}

@media (max-width: 767px) {
	.cusroma-pathways-grid,
	.cusroma-divisions-grid,
	.cusroma-youth-block,
	.cusroma-footer-columns,
	.cusroma-contact-strip__cols,
	.cusroma-intro-split {
		flex-direction: column;
	}

	.cusroma-media-frame--tilt {
		transform: none;
	}

	.cusroma-section--gallery .wp-block-media-text__media {
		min-height: 220px;
	}

	.cusroma-hero__title {
		font-size: clamp(1.75rem, 6vw, 2.5rem);
	}

	.cusroma-brand__mark {
		display: none;
	}

	.cusroma-news-query .wp-block-post-template,
	.cusroma-news-grid {
		grid-template-columns: 1fr !important;
	}

	.admin-bar .cusroma-site-header {
		top: 46px;
	}
}

/* --------------------------------------------------------------------------
   Blog / year archives
   -------------------------------------------------------------------------- */

.cusroma-blog-hero,
.cusroma-post-hero {
	background:
		radial-gradient(circle at 12% 20%, rgba(244, 195, 0, 0.22), transparent 42%),
		linear-gradient(135deg, #102A56 0%, #184780 55%, #0d2247 100%);
	color: #fff;
}

.cusroma-blog-hero h1,
.cusroma-post-hero .wp-block-post-title {
	margin-top: 0.35rem !important;
	margin-bottom: 0.5rem !important;
}

.cusroma-post-cats {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
	margin-bottom: 0.75rem !important;
}

.cusroma-post-cats a {
	display: inline-flex;
	align-items: center;
	padding: 0.2rem 0.65rem;
	border-radius: 999px;
	background: rgba(244, 195, 0, 0.18);
	color: var(--cusroma-yellow) !important;
	text-decoration: none;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.cusroma-card--post {
	height: 100%;
	overflow: hidden;
	background: #fff;
	border: 1px solid rgba(16, 42, 86, 0.08);
	border-radius: 1rem;
	box-shadow: 0 10px 28px rgba(16, 42, 86, 0.08);
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.cusroma-card--post:hover {
	transform: translateY(-4px);
	box-shadow: 0 18px 36px rgba(16, 42, 86, 0.14);
}

.cusroma-card--post .cusroma-card__body {
	padding: 1.1rem 1.15rem 1.25rem;
}

.cusroma-card--post .wp-block-post-title {
	font-size: 1.2rem !important;
	margin: 0.35rem 0 0.5rem !important;
	line-height: 1.25 !important;
}

.cusroma-card--post .wp-block-post-title a {
	color: var(--cusroma-blue-dark);
	text-decoration: none;
}

.cusroma-card--post .wp-block-post-title a:hover {
	color: var(--cusroma-blue);
}

.cusroma-card--post .wp-block-post-excerpt {
	color: var(--cusroma-text-muted, #526074);
	font-size: 0.92rem;
}

.cusroma-card--post .wp-block-post-excerpt__more-link {
	display: inline-flex;
	margin-top: 0.65rem;
	font-weight: 700;
	color: var(--cusroma-blue);
	text-decoration: none;
	border-bottom: 2px solid var(--cusroma-yellow);
}

/* Year badge from title Anno YYYY */
.cusroma-card--post .wp-block-post-title a[href*="/anno-"] {
	display: inline-flex;
	align-items: center;
	gap: 0.55rem;
}

.cusroma-card--post:has(.wp-block-post-title a[href*="/anno-"]) .cusroma-card__body {
	position: relative;
	padding-top: 1.5rem;
}

.cusroma-year-banner {
	margin-bottom: 1.75rem !important;
	padding: 1.25rem 1.35rem;
	border-radius: 1rem;
	background: linear-gradient(135deg, rgba(16, 42, 86, 0.06), rgba(244, 195, 0, 0.14));
	border-left: 4px solid var(--cusroma-yellow);
}

.cusroma-year-banner__kicker {
	margin: 0 0 0.35rem !important;
	font-size: 0.75rem !important;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--cusroma-blue) !important;
}

.cusroma-year-banner__lead {
	margin: 0 !important;
	color: var(--cusroma-text-muted, #526074) !important;
	font-size: 1.05rem !important;
}

.cusroma-year-body {
	display: grid;
	gap: 1.15rem;
}

.cusroma-year-event {
	padding: 1.15rem 1.25rem 1.2rem;
	background: #fff;
	border: 1px solid rgba(16, 42, 86, 0.08);
	border-radius: 0.9rem;
	box-shadow: 0 8px 22px rgba(16, 42, 86, 0.06);
	border-top: 3px solid var(--cusroma-yellow);
}

.cusroma-year-event__title {
	margin: 0 0 0.75rem !important;
	color: var(--cusroma-blue-dark) !important;
	font-size: 1.2rem !important;
	line-height: 1.3 !important;
}

.cusroma-year-results {
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
	display: grid;
	gap: 0.45rem;
}

.cusroma-year-results li {
	position: relative;
	padding: 0.55rem 0.75rem 0.55rem 2rem;
	background: var(--cusroma-surface, #F6F8FC);
	border-radius: 0.55rem;
	color: var(--cusroma-text, #172033);
}

.cusroma-year-results li::before {
	content: "";
	position: absolute;
	left: 0.7rem;
	top: 50%;
	width: 0.55rem;
	height: 0.55rem;
	border-radius: 50%;
	transform: translateY(-50%);
	background: radial-gradient(circle at center, #F4C300 0 35%, #184780 36% 70%, #fff 71% 100%);
	box-shadow: 0 0 0 1px rgba(16, 42, 86, 0.2);
}

.cusroma-year-event p,
.cusroma-year-intro p {
	margin-top: 0.35rem !important;
}

.cusroma-post-body {
	width: min(100%, 1080px) !important;
	max-width: 1080px !important;
	margin-left: auto !important;
	margin-right: auto !important;
	box-sizing: border-box;
}

.cusroma-post-body > .wp-block-post-content {
	width: 100% !important;
	max-width: 100% !important;
	margin-left: auto !important;
	margin-right: auto !important;
}

.cusroma-post-hero.alignfull {
	width: 100% !important;
	max-width: none !important;
}

.cusroma-post-hero.is-layout-constrained > :where(:not(.alignfull)):not(.alignwide) {
	max-width: 900px !important;
	margin-left: auto !important;
	margin-right: auto !important;
	text-align: center;
}

.cusroma-post-hero {
	text-align: center;
}

.cusroma-post-hero .cusroma-breadcrumbs,
.cusroma-post-hero .wp-block-post-title {
	text-align: center !important;
	margin-left: auto !important;
	margin-right: auto !important;
}

.cusroma-page-nav {
	justify-content: center !important;
}

.cusroma-main--page .wp-block-post-content > p {
	max-width: 46rem;
	margin-left: auto !important;
	margin-right: auto !important;
	text-align: center;
}

.cusroma-main--page .cr-component,
.cusroma-main--page .cr-guide,
.cusroma-main--page .cr-courses {
	width: 100%;
	max-width: 100%;
	margin-left: auto !important;
	margin-right: auto !important;
}

.cusroma-main--page .cr-guide__header,
.cusroma-main--page .cr-guide__lead {
	text-align: center;
	margin-left: auto;
	margin-right: auto;
}

.cusroma-main--page .cr-guide__header {
	border-bottom: 3px solid var(--cusroma-yellow, #f4c300);
}

.cusroma-post-featured img,
.cusroma-main--page .wp-block-post-featured-image img {
	width: 100%;
	height: 100%;
	max-height: min(42vh, 320px);
	object-fit: cover;
}

.cusroma-post-footer {
	padding-top: 1.25rem;
	border-top: 1px solid rgba(16, 42, 86, 0.1);
}

.cusroma-post-nav a {
	font-weight: 600;
	text-decoration: none;
}

.cusroma-pagination {
	margin-top: 2rem;
}

/* Strip leftover Elementor inline link colors inside year content */
.cusroma-year-body a,
.cusroma-main--single-post .entry-content a {
	color: var(--cusroma-blue);
}

.cusroma-main--single-post .entry-content h2:not(.cusroma-year-event__title) {
	color: var(--cusroma-blue-dark);
	border-left: 4px solid var(--cusroma-yellow);
	padding-left: 0.75rem;
}

/* High contrast support */
@media (prefers-contrast: more) {
	.cusroma-btn-cta .wp-block-button__link {
		border: 3px solid var(--cusroma-blue-dark) !important;
	}

	.cusroma-card {
		border: 2px solid var(--cusroma-text);
	}
}
