/*
Theme Name: Cornelius Jiu Jitsu Academy
Theme URI: https://corneliusjiujitsu.com
Author: CJJA
Description: Custom single-page block theme for Cornelius Jiu Jitsu Academy — clean, light design with the black, gold, and red brand palette, Oswald headings, and Inter body text.
Version: 1.0.0
Requires at least: 6.6
Tested up to: 6.8
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: cjja
*/

/* ---------------------------------- base ---------------------------------- */

html {
	scroll-behavior: smooth;
	scroll-padding-top: 5.5rem;
}

body {
	-webkit-font-smoothing: antialiased;
}

img {
	max-width: 100%;
	height: auto;
}

/* no gap between root-level template parts and main */
.wp-site-blocks > * {
	margin-block-start: 0 !important;
}

/* sticky site header */
.wp-site-blocks > header.wp-block-template-part {
	position: sticky;
	top: 0;
	z-index: 999;
}

/* NOTE: no backdrop-filter here — it creates a containing block that would trap
   the navigation block's fixed-position mobile overlay inside the header bar. */
.cjja-header {
	background: rgba(12, 12, 16, 0.97);
	border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.cjja-header .wp-block-navigation a {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 0.95rem;
	font-weight: 500;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #fff;
}

.cjja-header .wp-block-navigation a:hover {
	color: var(--wp--preset--color--accent);
	text-decoration: none;
}

.cjja-logo img,
.cjja-header .cjja-logo img {
	height: 42px;
	width: auto;
	display: block;
}

@media (max-width: 600px) {
	.cjja-header .cjja-logo img {
		height: 34px;
	}
}

.cjja-footer-mark img {
	width: 132px;
	height: auto;
}

/* mobile overlay menu: left-aligned, larger tap targets */
.cjja-header .wp-block-navigation__responsive-container.is-menu-open {
	padding: 5rem 2rem 2rem;
}

.cjja-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	align-items: flex-start;
}

.cjja-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
	align-items: flex-start;
	justify-content: flex-start;
}

.cjja-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item a {
	font-size: 1.35rem;
	padding: 0.35rem 0;
}

/* header CTA button — slightly smaller, never wraps to two lines */
.cjja-header .wp-block-button .wp-block-button__link {
	padding: 0.6rem 1.4rem;
	font-size: 0.85rem;
	white-space: nowrap;
}

/* The navigation block collapses to its overlay at 600px, but seven items need
   more room than that — keep the hamburger until the bar genuinely fits. */
@media (max-width: 1119px) {
	.cjja-header .wp-block-navigation__responsive-container-open:not(.always-shown) {
		display: flex;
	}

	.cjja-header .wp-block-navigation__responsive-container:not(.is-menu-open) {
		display: none;
	}
}

@media (min-width: 1120px) and (max-width: 1260px) {
	.cjja-header .wp-block-navigation a {
		font-size: 0.85rem;
		letter-spacing: 0.05em;
	}

	.cjja-header .wp-block-navigation {
		--wp--style--block-gap: 1rem;
	}
}

/* ------------------------------- utilities -------------------------------- */

.cjja-overline {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 0.85rem;
	font-weight: 600;
	letter-spacing: 0.35em;
	text-transform: uppercase;
	/* brand red carries the small-caps labels on light sections (AA on white);
	   gold takes over on the dark surfaces, where red would be too low-contrast */
	color: var(--wp--preset--color--accent-deep);
}

.cjja-on-dark .cjja-overline,
.cjja-hero .cjja-overline,
.cjja-band .cjja-overline,
.cjja-contact-card .cjja-contact-label,
.cjja-footer .cjja-overline {
	color: var(--wp--preset--color--accent);
}

.cjja-lead {
	color: var(--wp--preset--color--slate);
	font-size: 1.1rem;
}

.cjja-on-dark,
.cjja-on-dark h1,
.cjja-on-dark h2,
.cjja-on-dark h3,
.cjja-on-dark p {
	color: #fff;
}

.cjja-on-dark .cjja-lead {
	color: rgba(255, 255, 255, 0.75);
}

/* ---------------------------------- hero ---------------------------------- */

.cjja-hero {
	padding: clamp(5rem, 13vh, 9rem) 1.25rem;
	position: relative;
	overflow: hidden;
	isolation: isolate;
}

.cjja-hero-video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	z-index: 0;
	opacity: 0.85;
}

.cjja-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(12, 12, 16, 0.58);
	z-index: 0;
}

.cjja-hero > *:not(.cjja-hero-video) {
	position: relative;
	z-index: 1;
}

.cjja-hero-logo {
	margin: 2rem auto 2.5rem;
}

.cjja-hero-logo img {
	width: min(340px, 74vw);
	height: auto;
}

.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

.cjja-hero-sub {
	font-size: 1.2rem;
	color: rgba(255, 255, 255, 0.85);
	max-width: 560px;
	margin-left: auto;
	margin-right: auto;
}

.cjja-hero-meta {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 0.9rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.65);
}

.cjja-hero-meta a {
	color: rgba(255, 255, 255, 0.85);
}

@media (prefers-reduced-motion: reduce) {
	.cjja-hero-video {
		display: none;
	}
}

/* ghost (outline) button variant */
.cjja-btn-ghost .wp-block-button__link {
	background: transparent;
	border: 2px solid rgba(255, 255, 255, 0.6);
	color: #fff;
}

.cjja-btn-ghost .wp-block-button__link:hover {
	background: #fff;
	border-color: #fff;
	color: var(--wp--preset--color--ink);
}

/* ---------------------------------- cards --------------------------------- */

.cjja-card {
	position: relative;
	background: var(--wp--preset--color--paper);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 18px;
	overflow: hidden;
	box-shadow: 0 1px 2px rgba(12, 12, 16, 0.06);
	transition: transform 0.25s ease, box-shadow 0.25s ease;
	height: 100%;
}

/* whole-card click target: the heading link stretches over the card */
.cjja-card h3 a {
	color: inherit;
	text-decoration: none;
}

.cjja-card h3 a::after {
	content: "";
	position: absolute;
	inset: 0;
}

.cjja-card-more {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 0.8rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-deep) !important;
	margin-top: 1rem;
}

.cjja-card:hover {
	transform: translateY(-5px);
	box-shadow: 0 18px 40px -18px rgba(12, 12, 16, 0.26);
}

.cjja-card figure {
	margin: 0;
}

.cjja-card img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

.cjja-card-body {
	padding: 1.5rem 1.6rem 1.75rem;
}

.cjja-card-body h3 {
	margin: 0 0 0.5rem;
}

.cjja-card-tag {
	font-family: var(--wp--preset--font-family--heading);
	display: inline-block;
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-deep);
	background: rgba(212, 165, 72, 0.16);
	border-radius: 999px;
	padding: 0.3rem 0.85rem;
	margin-bottom: 0.9rem;
}

.cjja-card p {
	color: var(--wp--preset--color--slate);
	font-size: 0.98rem;
}

/* ...but the pill and the CTA cue keep their own scale/colour */
.cjja-card p.cjja-card-tag {
	color: var(--wp--preset--color--accent-deep);
	font-size: 0.72rem;
}

.cjja-card p.cjja-card-more {
	font-size: 0.8rem;
}

/* -------------------------------- schedule -------------------------------- */

.cjja-sched {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 1.1rem;
}

.cjja-sched-day {
	background: var(--wp--preset--color--paper);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 16px;
	padding: 1.4rem 1.5rem 1.15rem;
}

.cjja-sched-day h3 {
	font-size: 1.05rem;
	letter-spacing: 0.14em;
	margin: 0 0 0.9rem;
	padding-bottom: 0.7rem;
	border-bottom: 2px solid var(--wp--preset--color--accent);
}

.cjja-sched-day ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.cjja-sched-day li {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 1rem;
	padding: 0.55rem 0;
	border-bottom: 1px dashed var(--wp--preset--color--line);
	font-size: 0.95rem;
}

.cjja-sched-day li:last-child {
	border-bottom: none;
}

.cjja-sched-day li .cls {
	font-weight: 600;
}

.cjja-sched-day li .time {
	color: var(--wp--preset--color--slate);
	font-size: 0.85rem;
	white-space: nowrap;
	font-variant-numeric: tabular-nums;
}

/* class-type dots */
.cjja-sched-day li .cls::before {
	content: "";
	display: inline-block;
	width: 0.55em;
	height: 0.55em;
	border-radius: 50%;
	margin-right: 0.55em;
	background: var(--wp--preset--color--accent);
	vertical-align: 0.05em;
}

.cjja-sched-day li.t-kids .cls::before { background: #2F6FB5; }
.cjja-sched-day li.t-open .cls::before { background: #3F7D46; }
.cjja-sched-day li.t-judo .cls::before { background: #9b7cd4; }

.cjja-sched-legend {
	display: flex;
	flex-wrap: wrap;
	gap: 1.4rem;
	justify-content: center;
	font-size: 0.85rem;
	color: var(--wp--preset--color--slate);
}

.cjja-sched-legend span::before {
	content: "";
	display: inline-block;
	width: 0.6em;
	height: 0.6em;
	border-radius: 50%;
	margin-right: 0.5em;
	background: var(--wp--preset--color--accent);
}

.cjja-sched-legend span.t-kids::before { background: #2F6FB5; }
.cjja-sched-legend span.t-open::before { background: #3F7D46; }
.cjja-sched-legend span.t-judo::before { background: #9b7cd4; }

/* -------------------------------- pricing --------------------------------- */

.cjja-price-card {
	background: var(--wp--preset--color--paper);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 18px;
	padding: 2rem 1.9rem 1.9rem;
	height: 100%;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.cjja-price-card:hover {
	transform: translateY(-5px);
	box-shadow: 0 18px 40px -18px rgba(12, 12, 16, 0.26);
}

.cjja-price-card.is-featured {
	border: 2px solid var(--wp--preset--color--accent);
	box-shadow: 0 12px 34px -16px rgba(212, 165, 72, 0.30);
}

.cjja-price-card h3 {
	font-size: 1.15rem;
	letter-spacing: 0.1em;
	margin: 0 0 0.25rem;
}

.cjja-price {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 2.6rem;
	font-weight: 600;
	line-height: 1.1;
	margin: 0.4rem 0 0.2rem;
}

.cjja-price small {
	font-size: 1rem;
	font-weight: 500;
	color: var(--wp--preset--color--slate);
}

.cjja-price-card p:not(.cjja-price) {
	color: var(--wp--preset--color--slate);
	font-size: 0.95rem;
	margin-top: 0.4rem;
}

.cjja-price-card .wp-block-buttons {
	margin-top: auto;
	padding-top: 1.2rem;
}

.cjja-price-card .wp-block-button__link {
	font-size: 0.85rem;
	padding: 0.7rem 1.5rem;
}

.cjja-price-group-title {
	font-size: 0.95rem;
	letter-spacing: 0.22em;
	color: var(--wp--preset--color--slate);
	margin: 0 0 1.4rem;
}

.cjja-price-card {
	position: relative;
}

/* .cjja-price-card p:not(.cjja-price) also matches this pill — beat it */
.cjja-price-card .cjja-price-badge {
	color: #fff !important;
}

.cjja-price-badge {
	position: absolute;
	top: -0.75rem;
	left: 50%;
	transform: translateX(-50%);
	background: var(--wp--preset--color--accent-deep);
	color: #fff;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 0.7rem !important;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	border-radius: 999px;
	padding: 0.25rem 0.9rem;
	margin: 0 !important;
	white-space: nowrap;
}

/* ------------------------------- instructors ------------------------------ */

.cjja-coach-card img {
	aspect-ratio: 1 / 1;
	object-fit: cover;
	object-position: top center;
}


.cjja-coach-role {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 0.8rem;
	font-weight: 600;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-deep);
	margin: 0 0 0.6rem;
}

/* ------------------------------ testimonials ------------------------------ */

.cjja-quote {
	background: var(--wp--preset--color--paper);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 18px;
	padding: 2rem 2rem 1.6rem;
	height: 100%;
	position: relative;
}

.cjja-quote::before {
	content: "\201C";
	font-family: Georgia, serif;
	font-size: 4.5rem;
	line-height: 1;
	color: var(--wp--preset--color--accent);
	display: block;
	height: 2.4rem;
}

.cjja-quote p {
	font-size: 1rem;
	color: var(--wp--preset--color--ink);
}

.cjja-quote cite {
	font-family: var(--wp--preset--font-family--heading);
	font-style: normal;
	font-size: 0.85rem;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--wp--preset--color--slate);
}

/* ----------------------------------- faq ---------------------------------- */

.cjja-faq details {
	background: var(--wp--preset--color--paper);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 14px;
	padding: 0;
	margin-bottom: 0.9rem;
	overflow: hidden;
}

.cjja-faq summary {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.02rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	padding: 1.15rem 3.2rem 1.15rem 1.5rem;
	cursor: pointer;
	position: relative;
	list-style: none;
}

.cjja-faq summary::-webkit-details-marker {
	display: none;
}

.cjja-faq summary::after {
	content: "+";
	font-family: var(--wp--preset--font-family--heading);
	position: absolute;
	right: 1.4rem;
	top: 50%;
	transform: translateY(-50%);
	font-size: 1.6rem;
	font-weight: 400;
	color: var(--wp--preset--color--accent-deep);
	transition: transform 0.2s ease;
}

.cjja-faq details[open] summary::after {
	transform: translateY(-50%) rotate(45deg);
}

.cjja-faq details > :not(summary) {
	padding: 0 1.5rem;
	color: var(--wp--preset--color--slate);
}

.cjja-faq details > :last-child {
	padding-bottom: 1.3rem;
}

.cjja-faq details[open] summary {
	border-bottom: 1px solid var(--wp--preset--color--line);
	margin-bottom: 0.9rem;
}

/* --------------------------------- contact -------------------------------- */

.cjja-contact-card {
	background: var(--wp--preset--color--ink);
	color: #fff;
	border-radius: 18px;
	padding: 2.25rem 2.25rem 2rem;
	height: 100%;
}

.cjja-contact-card p {
	color: rgba(255, 255, 255, 0.9);
	margin: 0 0 0.35rem;
}

.cjja-contact-card a {
	color: #fff;
	font-weight: 600;
}

.cjja-contact-card a:hover {
	color: var(--wp--preset--color--accent);
	text-decoration: none;
}

.cjja-contact-label {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.24em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent) !important;
	margin-top: 1.8rem !important;
}

.cjja-contact-card .cjja-contact-label:first-child {
	margin-top: 0 !important;
}

.cjja-contact-note {
	margin-top: 2rem !important;
	padding-top: 1.4rem;
	border-top: 1px solid rgba(255, 255, 255, 0.15);
	font-size: 0.92rem;
	color: rgba(255, 255, 255, 0.65) !important;
}

.cjja-hours {
	list-style: none;
	margin: 0.4rem 0 0;
	padding: 0;
	font-size: 0.92rem;
	color: var(--wp--preset--color--slate);
}

.cjja-hours li {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	padding: 0.3rem 0;
	border-bottom: 1px dashed var(--wp--preset--color--line);
}

.cjja-hours li span:first-child {
	font-weight: 600;
	color: var(--wp--preset--color--ink);
	font-variant-numeric: tabular-nums;
	flex-shrink: 0;
}

.cjja-hours li span:last-child {
	text-align: right;
}

/* contact form (Contact Form 7) */
.cjja-form {
	background: var(--wp--preset--color--paper);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 18px;
	padding: 2rem;
}

.cjja-form-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0 1rem;
}

@media (max-width: 600px) {
	.cjja-form-grid {
		grid-template-columns: 1fr;
	}
}

.cjja-form .wpcf7-form p {
	margin: 0 0 1rem;
}

.cjja-form-grid > * {
	min-width: 0;
}

.cjja-form input[type="text"],
.cjja-form input[type="email"],
.cjja-form input[type="tel"],
.cjja-form select,
.cjja-form textarea {
	box-sizing: border-box;
	width: 100%;
	min-width: 0;
	font: inherit;
	font-size: 0.98rem;
	color: var(--wp--preset--color--ink);
	background: var(--wp--preset--color--mist);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 10px;
	padding: 0.8rem 1rem;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.cjja-form textarea {
	min-height: 120px;
	resize: vertical;
}

.cjja-form input:focus,
.cjja-form select:focus,
.cjja-form textarea:focus {
	outline: none;
	border-color: var(--wp--preset--color--accent);
	box-shadow: 0 0 0 3px rgba(212, 165, 72, 0.28);
}

.cjja-form input[type="submit"] {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 0.95rem;
	font-weight: 600;
	letter-spacing: 0.09em;
	text-transform: uppercase;
	color: var(--wp--preset--color--ink);
	background: var(--wp--preset--color--accent);
	border: none;
	border-radius: 999px;
	padding: 0.9rem 2.2rem;
	cursor: pointer;
	transition: background 0.2s ease, color 0.2s ease;
}

.cjja-form input[type="submit"]:hover {
	background: var(--wp--preset--color--ink);
	color: #fff;
}

.cjja-form .wpcf7-not-valid-tip {
	font-size: 0.8rem;
	color: #c0392b;
	margin-top: 0.25rem;
	display: block;
}

.cjja-form .wpcf7-response-output {
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 10px;
	padding: 0.8rem 1rem;
	margin: 1rem 0 0;
	font-size: 0.9rem;
}

/* ------------------------ live Wodify calendar skin ------------------------ */
/* Overrides for the WP WDFY plugin calendar so it matches the theme.
   Scoped via .wp-site-blocks for specificity over the plugin stylesheet. */

.wp-site-blocks .wdfy-week-calendar {
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 18px;
	overflow: hidden;
	background: var(--wp--preset--color--paper);
}

.wp-site-blocks .wdfy-cal-nav {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1rem 1.25rem;
	background: var(--wp--preset--color--ink);
}

.wp-site-blocks .wdfy-cal-label {
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 600;
	font-size: 1rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: #fff;
}

.wp-site-blocks .wdfy-cal-btn {
	background: rgba(255, 255, 255, 0.12);
	border: none;
	color: #fff;
	width: 2.2rem;
	height: 2.2rem;
	border-radius: 50%;
	font-size: 1.2rem;
	line-height: 1;
	cursor: pointer;
	transition: background 0.2s ease;
}

.wp-site-blocks .wdfy-cal-btn:hover {
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--ink);
}

.wp-site-blocks .wdfy-cal-th-day,
.wp-site-blocks .wdfy-cal-th-time {
	background: var(--wp--preset--color--ink-soft);
	color: #fff;
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 500;
	font-size: 0.85rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	border: none;
	padding: 0.7rem 0.5rem;
}

.wp-site-blocks .wdfy-cal-th-day.wdfy-today {
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--ink);
}

.wp-site-blocks .wdfy-cal-table {
	border-collapse: collapse;
	width: 100%;
}

.wp-site-blocks .wdfy-cal-td-cell,
.wp-site-blocks .wdfy-cal-td-time {
	border: 1px dashed var(--wp--preset--color--line);
	vertical-align: top;
	padding: 0.4rem;
}

.wp-site-blocks .wdfy-cal-td-time {
	color: var(--wp--preset--color--slate);
	font-size: 0.8rem;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

/* Wodify sets a per-program colour inline (pastel pink/blue by default);
   override to brand-aligned stripes so the calendar matches the site. */
.wp-site-blocks .wdfy-class-card[data-prog] {
	border-left-color: var(--wp--preset--color--accent) !important;
}

.wp-site-blocks .wdfy-class-card[data-prog*="jiu-jitsu"] {
	border-left-color: var(--wp--preset--color--accent-deep) !important;
}

.wp-site-blocks .wdfy-class-card[data-prog*="kids"] {
	border-left-color: #2F6FB5 !important;
}

.wp-site-blocks .wdfy-class-card {
	background: var(--wp--preset--color--mist);
	border-radius: 10px;
	border-left: 4px solid var(--wdfy-prog-color, var(--wp--preset--color--accent));
	padding: 0.55rem 0.7rem;
	margin-bottom: 0.4rem;
	font-size: 0.82rem;
	line-height: 1.35;
}

.wp-site-blocks .wdfy-class-time {
	display: block;
	color: var(--wp--preset--color--slate);
	font-size: 0.75rem;
	font-variant-numeric: tabular-nums;
}

/* program label is redundant (color-coding + class name carry it) */
.wp-site-blocks .wdfy-class-name {
	display: none;
}

.wp-site-blocks .wdfy-class-classname {
	display: block;
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 600;
	font-size: 0.88rem;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--wp--preset--color--ink);
}

.wp-site-blocks .wdfy-class-coach {
	display: block;
	color: var(--wp--preset--color--slate);
	font-size: 0.75rem;
	margin-top: 0.15rem;
}

/* stacked mobile layout */
.wp-site-blocks .wdfy-cal-day-header {
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	background: var(--wp--preset--color--ink-soft);
	color: #fff;
	padding: 0.6rem 1rem;
}

/* map embed */
.cjja-map {
	margin-top: 1.4rem;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 18px;
	overflow: hidden;
	box-shadow: 0 1px 2px rgba(12, 12, 16, 0.06);
}

.cjja-map iframe {
	display: block;
	width: 100%;
	height: clamp(280px, 38vw, 420px);
	border: 0;
}

/* --------------------------------- footer --------------------------------- */

.cjja-footer {
	background: var(--wp--preset--color--ink);
	color: rgba(255, 255, 255, 0.7);
}

.cjja-footer a {
	color: rgba(255, 255, 255, 0.85);
	overflow-wrap: break-word;
}

.cjja-footer a:hover {
	color: var(--wp--preset--color--accent);
	text-decoration: none;
}

.cjja-footer h3,
.cjja-footer p {
	color: inherit;
}

.cjja-footer h3 {
	color: #fff;
	font-size: 0.95rem;
	letter-spacing: 0.22em;
}

.cjja-footer .cjja-hours,
.cjja-footer .cjja-hours li span:first-child {
	color: rgba(255, 255, 255, 0.85);
}

.cjja-footer .cjja-hours li {
	border-color: rgba(255, 255, 255, 0.12);
	color: rgba(255, 255, 255, 0.6);
}

.cjja-footer .wp-block-social-links .wp-social-link {
	background: rgba(255, 255, 255, 0.1);
}

.cjja-footer-fine {
	font-size: 0.82rem;
	color: rgba(255, 255, 255, 0.6);
}

/* interior pages (page.html / index.html templates) */
.cjja-page {
	padding-left: 1.25rem;
	padding-right: 1.25rem;
}

.cjja-page h1 {
	margin-bottom: 1.5rem;
}

/* ------------------------------ letter page ------------------------------- */

.cjja-letter-page .cjja-page > * {
	max-width: 42rem;
	margin-left: auto;
	margin-right: auto;
}

.cjja-letter-page .cjja-page > h1 {
	max-width: 20ch;
	font-size: clamp(2.1rem, 5vw, 3.2rem);
	text-transform: none;
	letter-spacing: 0.005em;
	margin-bottom: 0.6rem;
}

.cjja-letter-page .cjja-page p {
	font-size: 1.09rem;
	line-height: 1.72;
}

.cjja-draft-flag {
	max-width: 42rem;
	background: rgba(212, 165, 72, 0.16);
	border: 1px solid var(--wp--preset--color--accent);
	border-radius: 12px;
	padding: 0.85rem 1.1rem;
	font-size: 0.92rem !important;
	line-height: 1.5 !important;
	color: var(--wp--preset--color--ink);
}

.cjja-byline {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem 1rem;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 0.82rem !important;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--wp--preset--color--slate);
	margin-bottom: 2rem;
}

.cjja-byline-who {
	color: var(--wp--preset--color--accent-deep);
}

/* the three facts, before the first paragraph */
.cjja-tldr {
	list-style: none;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
	gap: 1rem;
	margin: 0 auto 2.75rem;
	padding: 0;
}

.cjja-tldr li {
	background: var(--wp--preset--color--mist);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 14px;
	padding: 1rem 1.1rem;
}

.cjja-tldr b {
	display: block;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1rem;
	text-transform: uppercase;
	letter-spacing: 0.06em;
}

.cjja-tldr span {
	display: block;
	margin-top: 0.25rem;
	font-size: 0.9rem;
	color: var(--wp--preset--color--slate);
}

.cjja-salutation {
	font-size: 1.2rem !important;
	font-weight: 600;
	margin-bottom: 1.5rem;
}

.cjja-passage {
	margin-bottom: 2.5rem;
}

.cjja-passage h2 {
	font-size: 1.35rem;
	letter-spacing: 0.1em;
	margin: 0 0 0.75rem;
}

.cjja-opener {
	font-size: 1.18rem !important;
}

/* margin note sits beside its passage on wide screens, below it on narrow */
.cjja-letter-page .cjja-page > .cjja-passage--noted {
	max-width: 42rem;
}

@media (min-width: 1080px) {
	.cjja-letter-page .cjja-page > .cjja-passage--noted {
		max-width: 56rem;
		display: grid;
		grid-template-columns: 42rem minmax(0, 1fr);
		gap: 2.25rem;
		align-items: start;
	}
}

.cjja-note {
	border-left: 3px solid var(--wp--preset--color--accent);
	background: var(--wp--preset--color--mist);
	border-radius: 0 12px 12px 0;
	padding: 1rem 1.1rem;
	font-size: 0.93rem;
	line-height: 1.55;
	color: var(--wp--preset--color--slate);
	margin-top: 1.25rem;
}

@media (min-width: 1080px) {
	.cjja-note {
		margin-top: 2.4rem;
		background: none;
	}
}

.cjja-note strong {
	display: block;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 0.78rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-deep);
	margin-bottom: 0.4rem;
}

.cjja-note-cta {
	display: block;
	margin-top: 0.6rem;
	font-weight: 600;
}

/* the "ways in" list */
.cjja-doors {
	list-style: none;
	margin: 0.25rem 0 0;
	padding: 0;
}

.cjja-doors li {
	padding: 0.7rem 0;
	border-bottom: 1px dashed var(--wp--preset--color--line);
}

.cjja-doors li:last-child {
	border-bottom: none;
}

.cjja-doors li > a {
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	margin-right: 0.5rem;
}

.cjja-doors li span {
	color: var(--wp--preset--color--slate);
	font-size: 0.97rem;
}

/* enclosed photographs */
.cjja-letter-page .cjja-page > .cjja-plate,
.cjja-letter-page .cjja-page > .cjja-plate-pair {
	max-width: 52rem;
	margin-top: 2.5rem;
	margin-bottom: 2.5rem;
}

.cjja-plate {
	margin: 0;
}

.cjja-plate img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 16px;
}

.cjja-plate figcaption {
	margin-top: 0.6rem;
	font-size: 0.9rem;
	color: var(--wp--preset--color--slate);
}

.cjja-plate-pair {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 1.25rem;
}

.cjja-member {
	border-left: 3px solid var(--wp--preset--color--accent-deep);
	margin: 1.25rem 0 0;
	padding: 0.25rem 0 0.25rem 1.2rem;
}

.cjja-member p {
	font-size: 1.05rem !important;
	font-style: italic;
}

.cjja-member footer {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 0.8rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--slate);
}

/* sign-off */
.cjja-signoff {
	margin-top: 3rem;
	padding-top: 2rem;
	border-top: 1px solid var(--wp--preset--color--line);
}

.cjja-valediction {
	margin: 0;
}

.cjja-signature {
	font-family: Georgia, "Times New Roman", serif;
	font-style: italic;
	font-size: 2.6rem !important;
	line-height: 1.1;
	margin: 0.35rem 0 0.2rem;
	color: var(--wp--preset--color--ink);
}

.cjja-signature-print {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 0.82rem !important;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--slate);
	margin: 0;
}

.cjja-postscript {
	margin-top: 1.5rem;
	font-size: 1rem !important;
	color: var(--wp--preset--color--slate);
}

.cjja-postscript span {
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 600;
	letter-spacing: 0.1em;
	color: var(--wp--preset--color--accent-deep);
	margin-right: 0.35rem;
}

/* pass it on */
.cjja-share {
	margin-top: 3.5rem;
	background: var(--wp--preset--color--mist);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 18px;
	padding: 2rem;
}

.cjja-share h2 {
	font-size: 1.5rem;
	margin: 0.4rem 0 0.75rem;
}

.cjja-share-acts {
	display: flex;
	flex-wrap: wrap;
	gap: 0.7rem;
	margin-top: 1.25rem !important;
}

.cjja-share-btn {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 0.85rem;
	font-weight: 600;
	letter-spacing: 0.09em;
	text-transform: uppercase;
	color: var(--wp--preset--color--ink);
	background: transparent;
	border: 2px solid var(--wp--preset--color--ink);
	border-radius: 999px;
	padding: 0.6rem 1.3rem;
	cursor: pointer;
	text-decoration: none;
	transition: background 0.2s ease, color 0.2s ease;
}

.cjja-share-btn:hover {
	background: var(--wp--preset--color--ink);
	color: #fff;
	text-decoration: none;
}

.cjja-share-status {
	min-height: 1.4em;
	margin-top: 0.9rem !important;
	font-size: 0.9rem !important;
	color: var(--wp--preset--color--accent-deep);
}

/* printing the letter gives you the letter — no chrome, no buttons */
@media print {
	.cjja-letter-page .cjja-header,
	.cjja-letter-page header.wp-block-template-part,
	.cjja-letter-page footer.wp-block-template-part,
	.cjja-letter-page .cjja-share,
	.cjja-letter-page .wp-block-buttons,
	.cjja-letter-page .cjja-note-cta,
	.cjja-letter-page .cjja-tldr {
		display: none !important;
	}

	.cjja-letter-page .cjja-page > * {
		max-width: none;
	}

	.cjja-letter-page,
	.cjja-letter-page .cjja-page p,
	.cjja-letter-page .cjja-page h1,
	.cjja-letter-page .cjja-page h2 {
		color: #000 !important;
	}

	.cjja-passage,
	.cjja-plate,
	.cjja-signoff {
		break-inside: avoid;
	}

	.cjja-note {
		border-left-color: #888;
	}
}

/* --------------------------- section conveniences -------------------------- */

.cjja-section {
	padding: clamp(4rem, 7vw, 6.25rem) 1.25rem;
}

.cjja-coach-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(270px, 1fr));
	gap: 1.4rem;
}

.cjja-quote-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap: 1.4rem;
}

.cjja-section-head {
	max-width: 720px;
	margin-left: auto;
	margin-right: auto;
}

/* dark band CTA */
.cjja-band .wp-block-cover__inner-container {
	max-width: 780px;
}

/* reduce motion */
@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}
	.cjja-card,
	.cjja-price-card {
		transition: none;
	}
}

/* Training directory cards and program landing pages. */
.cjja-program-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.75rem; }
.cjja-program-card { display:flex; flex-direction:column; background:#fff; color:#0C0C10; border:1px solid #E7E2DA; border-radius:12px; overflow:hidden; text-decoration:none; transition:box-shadow .2s ease; }
.cjja-program-card:hover { color:#0C0C10; text-decoration:none; box-shadow:0 12px 32px rgba(12,12,16,.12); }
.cjja-program-card:focus-visible { outline:3px solid #A5161B; outline-offset:5px; }
.cjja-program-photo { overflow:hidden; background:#191920; }
.cjja-program-photo img { display:block; width:100%; height:280px; object-fit:cover; object-position:center 38%; }
.cjja-program-copy { display:flex; flex-direction:column; flex:1; padding:1.7rem 2rem 2rem; }
.cjja-program-copy h3 { margin:.7rem 0; font-size:clamp(1.7rem,3vw,2.3rem); }
.cjja-program-copy > p:not(.cjja-program-facts) { margin:0 0 1.6rem; color:#5A5550; max-width:48ch; }
.cjja-program-facts { display:flex; flex-wrap:wrap; gap:.5rem 1rem; margin:0; font-size:.76rem; font-weight:600; color:#A5161B; }
.cjja-program-facts span + span { color:#5A5550; }
.cjja-program-link { margin-top:auto; border-top:1px solid #E7E2DA; padding-top:1rem; display:flex; justify-content:space-between; gap:1rem; font-weight:650; font-size:.9rem; }
.cjja-program-link > span { font-size:1.4rem; line-height:1; color:#A5161B; }
.cjja-visitor-strip { margin-top:1.75rem; display:flex; justify-content:space-between; align-items:center; gap:1.5rem; padding:1.75rem 2rem; border-left:4px solid #D4A548; background:#0C0C10; color:#fff; border-radius:0 10px 10px 0; }
.cjja-visitor-strip strong { font-family:var(--wp--preset--font-family--heading); font-size:1.5rem; }
.cjja-visitor-strip p { margin:.3rem 0 0; font-size:.95rem; color:#d5d3cf; }
.cjja-visitor-strip a { color:#D4A548; flex-shrink:0; font-weight:600; }
.cjja-training-shell { padding:0 1.25rem 4rem; }
.cjja-training-shell .entry-content { max-width:1160px; margin:0 auto; }
.cjja-training-shell .entry-content > * { margin-block-start:0; }
.cjja-training-hero { display:grid; grid-template-columns:1.1fr 1fr; background:#0C0C10; color:#fff; overflow:hidden; margin-top:2rem !important; border-radius:12px; }
.cjja-training-intro { padding:clamp(2rem,4vw,4rem); align-self:center; }
.cjja-training-back { display:block; color:#D4A548; font-size:.76rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase; margin-bottom:1.8rem; }
.cjja-training-hero h1 { color:#fff; font-size:clamp(2.8rem,5vw,4.6rem); line-height:1.02; margin:0 0 1.6rem; }
.cjja-training-intro > p { color:#dad7d2; max-width:42ch; margin:0 0 1.75rem; font-size:1.05rem; }
.cjja-training-hero > img { display:block; width:100%; height:100%; min-height:510px; object-fit:cover; object-position:center; }
.cjja-training-button { display:inline-flex; align-items:center; justify-content:center; gap:1rem; background:#D4A548; color:#0C0C10; padding:.95rem 1.35rem; font-family:var(--wp--preset--font-family--heading); font-size:1rem; font-weight:600; text-transform:uppercase; letter-spacing:.06em; border-radius:5px; text-decoration:none; min-height:44px; box-sizing:border-box; }
.cjja-training-button:hover { background:#ebc47a; color:#0C0C10; text-decoration:none; }
.cjja-training-button:focus-visible { outline:3px solid #A5161B; outline-offset:4px; }
.cjja-training-intro .cjja-training-note { font-size:.78rem; margin:1rem 0 0; color:#b8b5af; }
.cjja-training-facts { list-style:none; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); padding:1.6rem 0; border-bottom:1px solid #E7E2DA; margin:0; }
.cjja-training-facts li { text-align:center; padding:.3rem 1rem; font-size:.88rem; font-weight:600; }
.cjja-training-facts li + li { border-left:1px solid #E7E2DA; }
.cjja-training-body { display:grid; grid-template-columns:minmax(0,1.8fr) minmax(260px,1fr); gap:clamp(2rem,6vw,5rem); padding:4rem 0; align-items:start; }
.cjja-training-section + .cjja-training-section { margin-top:2.5rem; padding-top:2.5rem; border-top:1px solid #E7E2DA; }
.cjja-training-section h2 { font-size:clamp(1.65rem,2.7vw,2.15rem); margin:0 0 1rem; }
.cjja-training-section p { margin:0 0 1rem; color:#5A5550; }
.cjja-training-booking { background:#F7F5F2; padding:2rem; border-top:4px solid #A5161B; border-radius:0 0 10px 10px; }
.cjja-training-booking .cjja-overline { margin:0 0 1rem; letter-spacing:.18em; font-size:.72rem; }
.cjja-training-booking h2 { font-size:1.8rem; margin:0 0 1rem; }
.cjja-training-booking p, .cjja-training-booking ul { font-size:.94rem; }
.cjja-training-booking ul { padding-left:1.1rem; margin:1.5rem 0; }
.cjja-training-booking li { margin:.65rem 0; }
.cjja-training-booking .cjja-training-button { width:100%; }
.cjja-training-help { display:block; margin-top:1.2rem; text-align:center; font-size:.8rem; }
.cjja-training-calendar { padding:3rem 0; border-top:1px solid #E7E2DA; }
.cjja-training-calendar h2, .cjja-training-directory h2, .cjja-training-close h2 { font-size:clamp(2rem,4vw,3rem); margin:.6rem 0 1rem; }
.cjja-training-calendar > p { margin:0 0 1.5rem; }
.cjja-training-calendar iframe { margin-top:1.5rem; }
.cjja-training-directory { padding:4rem 0 2rem; max-width:660px; }
.cjja-training-directory p { margin:.5rem 0; }
.cjja-training-close { display:flex; align-items:center; justify-content:space-between; gap:2rem; padding:3rem 0; margin-top:2rem !important; border-top:1px solid #E7E2DA; }
.cjja-training-close > div { max-width:650px; }
.cjja-training-close > a { flex-shrink:0; }
.cjja-training-bottom { display:flex; flex-wrap:wrap; justify-content:space-between; gap:1rem; padding-top:2rem; border-top:1px solid #E7E2DA; font-size:.9rem; }
@media (max-width:800px) {
 .cjja-training-hero { grid-template-columns:1fr; }
 .cjja-training-hero > img { min-height:0; height:300px; object-position:center 35%; }
 .cjja-training-body { grid-template-columns:1fr; padding:2.5rem 0; }
 .cjja-training-booking { max-width:none; }
 .cjja-program-photo img { height:230px; }
 .cjja-program-copy { padding:1.5rem; }
 .cjja-visitor-strip, .cjja-training-close { align-items:flex-start; flex-direction:column; }
}
@media (max-width:600px) {
 .cjja-program-grid { grid-template-columns:1fr; gap:1.25rem; }
 .cjja-program-photo img { height:auto; aspect-ratio:16/10; }
 .cjja-training-shell { padding:0 1rem 3rem; }
 .cjja-training-hero { margin-top:1rem !important; }
 .cjja-training-intro { padding:2rem 1.5rem; }
 .cjja-training-hero > img { height:260px; }
 .cjja-training-facts { grid-template-columns:1fr; padding:.8rem 0; }
 .cjja-training-facts li { text-align:left; padding:.55rem .3rem; }
 .cjja-training-facts li + li { border-left:0; }
 .cjja-training-booking { padding:1.5rem; }
 .cjja-training-button { max-width:100%; }
}
@media (prefers-reduced-motion:reduce) { .cjja-program-card { transition:none; } }

/* Flat program overview: full descriptions and direct booking in one scroll. */
.cjja-program-jumps { display:flex; flex-wrap:wrap; align-items:center; gap:.6rem 1.5rem; padding:1.5rem 0; border-bottom:1px solid #E7E2DA; }
.cjja-program-jumps > span { font-family:var(--wp--preset--font-family--heading); text-transform:uppercase; letter-spacing:.1em; font-size:.85rem; color:#5A5550; }
.cjja-program-jumps a { display:inline-block; padding:.65rem 0; font-weight:600; font-size:.9rem; }
.cjja-program-section { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.15fr); gap:clamp(2rem,5vw,4.5rem); align-items:center; padding:4.5rem 0; border-bottom:1px solid #E7E2DA; }
.cjja-program-section:nth-of-type(even) > figure { order:2; }
.cjja-program-section figure { margin:0; min-width:0; }
.cjja-program-section img { display:block; width:100%; height:auto; border-radius:10px; }
.cjja-program-section-copy .cjja-overline { font-size:.75rem; letter-spacing:.14em; margin:0 0 1rem; }
.cjja-program-section-copy h2 { font-size:clamp(2rem,4vw,3rem); margin:0 0 1.4rem; }
.cjja-program-section-copy > p:not(.cjja-overline):not(.cjja-program-rate) { color:#5A5550; margin:0 0 1.2rem; }
.cjja-program-rate { border-left:3px solid #A5161B; padding-left:1rem; margin:1.5rem 0; font-weight:600; font-size:.9rem; }
.cjja-program-actions { display:flex; flex-wrap:wrap; align-items:center; gap:1rem 1.5rem; }
.cjja-program-actions > a:not(.cjja-training-button) { font-size:.9rem; }
@media (max-width:800px) {
	.cjja-program-section { grid-template-columns:1fr; gap:2rem; padding:3rem 0; }
	.cjja-program-section:nth-of-type(even) > figure { order:0; }
	.cjja-program-jumps { gap:.2rem 1.2rem; }
	.cjja-program-jumps > span { flex-basis:100%; }
}

/* Community photos retain their full composition and original color. */
.cjja-community { color:#fff; }
.cjja-community-intro { display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,5vw,5rem); align-items:start; margin-bottom:3rem; }
.cjja-community .cjja-overline { color:#D4A548; margin:0 0 1rem; }
.cjja-community h2 { color:#fff; font-size:clamp(2.4rem,4.5vw,4rem); margin:0; }
.cjja-community-copy p { color:#d5d3cf; margin:0 0 1.25rem; }
.cjja-community-copy .cjja-training-button { margin-top:.25rem; }
.cjja-community-gallery { display:grid; grid-template-columns:9fr 8fr; gap:1.5rem; }
.cjja-community-gallery figure { margin:0; min-width:0; }
.cjja-community-gallery img { display:block; width:100%; height:auto; border-radius:12px; }
.cjja-community-gallery figcaption { color:#b8b5af; font-size:.85rem; margin-top:.85rem; }
@media (max-width:760px) {
	.cjja-community-intro { grid-template-columns:1fr; gap:1.75rem; margin-bottom:2rem; }
	.cjja-community-gallery { grid-template-columns:1fr; gap:2rem; }
}

/* September 2026: a shorter path from learning about CJJA to training. */
.cjja-hero .cjja-hero-video { max-width:none; margin:0; width:100%; height:100%; }
.cjja-hero { padding:3.5rem 1.25rem; }
.cjja-hero-logo { margin:1.5rem auto; }
.cjja-hero-logo img { width:min(270px,65vw); }
.cjja-hero .cjja-video-toggle { position:absolute; bottom:1rem; right:1rem; background:#0c0c10d9; border:1px solid #ffffff80; border-radius:4px; color:#fff; font:inherit; font-size:.75rem; padding:.5rem .75rem; cursor:pointer; min-height:44px; }
.cjja-video-toggle[hidden] { display:none; }
.cjja-section { padding-top:clamp(3rem,5vw,5rem); padding-bottom:clamp(3rem,5vw,5rem); }
.cjja-about-grid { display:grid; grid-template-columns:1.3fr 1fr; gap:3rem; align-items:center; }
.cjja-about-grid h2 { font-size:clamp(2rem,3.5vw,3rem); line-height:1.15; margin:.7rem 0 1.25rem; }
.cjja-about-grid figure { margin:0; }
.cjja-about-grid img { display:block; width:100%; height:auto; border-radius:12px; }
.cjja-text-link { font-weight:600; text-underline-offset:.25em; }
.cjja-training-paths { display:grid; grid-template-columns:repeat(4,1fr); gap:1.5rem; border-top:1px solid #e7e2da; margin-top:2.25rem; padding-top:1.5rem; }
.cjja-training-paths a { text-decoration:none; padding:.25rem 0; }
.cjja-training-paths strong,.cjja-training-paths span { display:block; }
.cjja-training-paths strong { font-family:var(--wp--preset--font-family--heading); font-size:1.2rem; }
.cjja-training-paths span { color:#5a5550; font-size:.85rem; margin-top:.25rem; }
.cjja-membership-grid { margin-top:2rem; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.5rem; }
.cjja-membership-plan { background:#fff; border:1px solid #e7e2da; padding:1.5rem; border-radius:10px; display:flex; flex-direction:column; align-items:flex-start; }
.cjja-membership-plan h3 { margin:0 0 .5rem; font-size:1.25rem; }
.cjja-membership-plan p:not(.cjja-price) { margin:.5rem 0 1.25rem; }
.cjja-membership-plan .cjja-price { margin:0; font-size:2.4rem; }
.cjja-membership-plan .cjja-price small { font-size:.9rem; }
.cjja-membership-plan .cjja-training-button { margin-top:auto; font-size:.9rem; }
.cjja-visit-rates { display:grid; grid-template-columns:1fr 1fr; gap:2rem; margin-top:2rem; padding-top:2rem; border-top:1px solid #d9d2c8; }
.cjja-visit-rates h3 { margin:0; font-size:1.3rem; }
.cjja-membership-help { text-align:center; margin:2rem 0 0; }
.cjja-coach-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.cjja-coach-card { box-shadow:none; height:auto; box-sizing:border-box; }
.cjja-coach-card .cjja-card-body { padding:1.25rem; }
.cjja-coach-card .cjja-card-body > p:last-child { margin-bottom:0; }
.cjja-judo-team { display:grid; grid-template-columns:1fr 1.3fr; align-items:center; gap:2rem; margin-top:2rem; padding-top:2rem; border-top:1px solid #e7e2da; }
.cjja-judo-team h3 { margin:0; font-size:1.5rem; }
.cjja-judo-portraits { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.cjja-judo-portraits figure { margin:0; }
.cjja-judo-portraits img { display:block; width:100%; height:auto; aspect-ratio:1; object-fit:cover; object-position:top; border-radius:8px; }
.cjja-judo-portraits figcaption { font-size:.85rem; margin-top:.4rem; }
.cjja-community-gallery { grid-template-columns:1fr 1fr; }
.cjja-quote-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.cjja-quote { height:auto; box-sizing:border-box; }
.cjja-first-steps { list-style:none; padding:0; margin:0 0 2rem; display:grid; grid-template-columns:repeat(3,1fr); gap:1.25rem; counter-reset:steps; }
.cjja-first-steps li { counter-increment:steps; border-top:2px solid #d4a548; padding-top:1rem; }
.cjja-first-steps strong,.cjja-first-steps span { display:block; }
.cjja-first-steps strong::before { content:counter(steps) '. '; }
.cjja-first-steps span { font-size:.9rem; margin-top:.5rem; }
.cjja-form label { display:block; font-size:.9rem; font-weight:600; color:#252222; }
.cjja-form label .wpcf7-form-control-wrap { display:block; margin-top:.4rem; }
.cjja-form textarea { min-height:130px; height:150px; resize:vertical; }
.cjja-form .cjja-form-note { font-size:.8rem; color:#5a5550; }
.cjja-form select { text-overflow:ellipsis; }
.cjja-program-approach { max-width:850px; padding:2rem 0; }
.cjja-program-approach h2 { font-size:clamp(1.8rem,3vw,2.5rem); margin:.5rem 0 1rem; }
.cjja-program-divider { margin:2rem 0 0; border-top:2px solid #d4a548; padding-top:1rem; font-family:var(--wp--preset--font-family--heading); font-size:1.3rem; text-transform:uppercase; letter-spacing:.08em; }
.cjja-calendar-help { text-align:center; font-size:.9rem; margin-top:1rem; }
.cjja-training-calendar { scroll-margin-top:90px; }
@media (max-width:800px) {
 .cjja-about-grid { grid-template-columns:1fr; gap:1.5rem; }
 .cjja-about-grid figure { max-width:420px; }
 .cjja-training-paths { grid-template-columns:1fr 1fr; gap:1rem; }
 .cjja-judo-team { grid-template-columns:1fr; gap:1rem; }
 .cjja-coach-grid { grid-template-columns:1fr; }
 .cjja-coach-card { display:grid; grid-template-columns:130px 1fr; }
 .cjja-coach-card figure { margin:0; height:100%; }
 .cjja-coach-card figure img { height:100%; width:100%; object-fit:cover; }
 .cjja-coach-card h3 { font-size:1.2rem; }
 .cjja-community-intro { gap:1rem; }
}
@media (max-width:600px) {
 .cjja-hero { padding:2.25rem 1.25rem 4rem; }
 .cjja-hero-logo img { width:210px; }
 .cjja-hero-sub { font-size:1rem; }
 .cjja-hero .cjja-overline { font-size:.65rem; letter-spacing:.15em; }
 .cjja-about-grid figure { display:none; }
 .cjja-membership-grid,.cjja-visit-rates,.cjja-quote-grid,.cjja-first-steps { grid-template-columns:1fr; }
 .cjja-membership-plan { padding:1.25rem; }
 .cjja-coach-card { grid-template-columns:105px 1fr; }
 .cjja-coach-card .cjja-card-body { padding:1rem; }
 .cjja-coach-card .cjja-card-body p { font-size:.9rem; }
 .cjja-coach-role { letter-spacing:.1em; }
 .cjja-community-gallery { grid-template-columns:1fr 1fr; gap:.8rem; }
 .cjja-community-gallery figcaption { font-size:.8rem; }
 .cjja-community-gallery img { width:100%; height:auto; }
 .cjja-form { padding:1.25rem; }
 .cjja-training-intro { padding:2rem 1.25rem; }
 .cjja-program-section { padding:2.25rem 0; }
}
#membership .cjja-section-head { text-align:center; }
#membership .cjja-section-head h2 { font-size:clamp(2rem,3.5vw,3rem); line-height:1.15; }
.cjja-membership-breakdown { margin:.5rem 0 1rem; width:100%; font-size:.95rem; }
.cjja-membership-breakdown div { display:flex; justify-content:space-between; gap:1rem; padding:.25rem 0; }
.cjja-membership-breakdown dt,.cjja-membership-breakdown dd { margin:0; }
@media (max-width:800px) {
 .cjja-coach-card { padding:1rem; gap:0 1rem; grid-template-columns:105px 1fr; }
 .cjja-coach-card figure { grid-column:1; grid-row:1 / 3; width:105px; height:105px; }
 .cjja-coach-card figure img { width:105px; height:105px; border-radius:7px; object-position:top center; }
 .cjja-coach-card .cjja-card-body { display:contents; }
 .cjja-coach-card h3 { grid-column:2; align-self:end; margin:0; }
 .cjja-coach-card .cjja-coach-role { grid-column:2; align-self:start; margin:.4rem 0 0; }
 .cjja-coach-card .cjja-card-body > p:last-child { grid-column:1 / -1; margin:1rem 0 0; }
}
@media (max-width:375px) {
 .cjja-header > .wp-block-group { gap:.6rem; }
 .cjja-header > .wp-block-group > .wp-block-group { gap:.65rem !important; }
 .cjja-header .wp-block-site-logo { flex-shrink:0; }
 .cjja-header .cjja-logo img { height:28px; width:auto; max-width:none; }
 .cjja-header .wp-block-button .wp-block-button__link { font-size:.75rem; letter-spacing:.05em; padding:.65rem .85rem; }
}

/* Additional community photos open on request to keep the homepage concise. */
.cjja-community-more { margin-top:2rem; border-top:1px solid #444; padding-top:1.25rem; }
.cjja-community-more > summary { width:fit-content; color:#D4A548; font-weight:600; cursor:pointer; padding:.5rem 0; }
.cjja-community-more > summary:hover { color:#fff; }
.cjja-community-more > summary:focus-visible { outline:2px solid #D4A548; outline-offset:5px; }
.cjja-community-more-gallery { grid-template-columns:repeat(4,minmax(0,1fr)); margin-top:1.5rem; }
@media (max-width:760px) {
 .cjja-community-more-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

/* Display the group photo inside its original black letterboxing. */
.cjja-community-gallery .cjja-community-team-photo { aspect-ratio:4 / 3; height:auto; object-fit:cover; }

/* Fit the complete landscape frame; wide screens can leave dark side margins. */
@media (min-width:761px) {
 .cjja-hero .cjja-hero-video { object-fit:contain; object-position:center; }
}

/* Preserve the complete portrait video on narrow phones. */
@media (max-width:600px) {
 .cjja-hero .cjja-hero-video {
  top:50%; bottom:auto; height:auto; max-height:100%; transform:translateY(-50%);
  object-fit:contain; object-position:center;
  -webkit-mask-image:linear-gradient(to bottom,transparent,#000 12%,#000 88%,transparent);
  mask-image:linear-gradient(to bottom,transparent,#000 12%,#000 88%,transparent);
 }
}

/* Three simple membership choices; existing prices and Wodify billing stay intact. */
.cjja-membership-trial { display:flex; align-items:center; gap:2rem; padding:1.5rem 2rem; margin-top:2rem; background:#0c0c10; color:#fff; border-radius:10px; }
.cjja-membership-trial > div { flex:1; }
.cjja-membership-trial h3 { color:#fff; margin:0 0 .5rem; font-size:1.4rem; }
.cjja-membership-trial p { margin:0; font-size:.95rem; color:#dedad3; }
.cjja-membership-trial .cjja-training-button { flex-shrink:0; }
.cjja-membership-grid { grid-template-columns:repeat(3,minmax(0,1fr)); align-items:stretch; }
.cjja-membership-plan { min-width:0; padding:1.75rem; }
.cjja-membership-plan p.cjja-membership-eyebrow { color:#765313; font-size:.7rem; font-weight:700; text-transform:uppercase; letter-spacing:.12em; margin:0 0 .8rem; }
.cjja-membership-plan h3 { font-size:1.8rem; margin:0; }
.cjja-membership-plan p.cjja-membership-audience { font-size:.8rem; color:#625d55; margin:.25rem 0 1.5rem; }
.cjja-membership-total { width:100%; }
.cjja-membership-plan .cjja-price { font-size:2.65rem; line-height:1.15; font-variant-numeric:tabular-nums; }
.cjja-membership-plan .cjja-price small { display:block; font-size:.85rem; margin:.35rem 0 0; font-weight:400; letter-spacing:0; }
.cjja-membership-plan p.cjja-membership-caption { margin:.45rem 0 1.2rem; font-size:.85rem; color:#625d55; }
.cjja-membership-plan > p { font-size:.95rem; }
.cjja-membership-selector { width:100%; margin:.25rem 0 1rem; }
.cjja-membership-selector label { display:block; font-size:.9rem; font-weight:650; margin-bottom:.4rem; }
.cjja-membership-selector select { display:block; box-sizing:border-box; width:100%; max-width:100%; min-height:48px; border:1px solid #918577; border-radius:5px; background:#fff; color:#0c0c10; padding:.65rem; font:inherit; font-size:1rem; }
.cjja-membership-selector select:focus-visible,.cjja-membership-discount summary:focus-visible,.cjja-membership-questions summary:focus-visible { outline:3px solid #a5161b; outline-offset:4px; }
.cjja-membership-selector[hidden],.cjja-membership-fallback[hidden] { display:none; }
.cjja-membership-plan p.cjja-membership-setup { font-size:.85rem; color:#5a5550; }
.cjja-membership-action { width:100%; margin-top:auto; padding-top:.75rem; }
.cjja-membership-action .cjja-training-button { width:100%; text-align:center; font-size:.85rem; letter-spacing:.03em; padding:.9rem .6rem; }
.cjja-membership-discount { border-top:1px solid #e7e2da; margin-top:1rem; padding-top:1rem; font-size:.85rem; }
.cjja-membership-discount summary { cursor:pointer; font-weight:650; padding:.25rem 0; }
.cjja-membership-plan .cjja-membership-discount p { margin:.75rem 0; }
.cjja-membership-family-help { display:block; margin-top:1rem; text-align:center; font-size:.85rem; font-weight:600; }
.cjja-membership-fallback { width:100%; font-size:.85rem; }
.cjja-membership-fallback ul { padding-left:1.2rem; }
.cjja-membership-fallback li { margin:.5rem 0; }
.cjja-membership-checkout-note { max-width:850px; margin:1.5rem auto 0; text-align:center; color:#5a5550; font-size:.9rem; }
.cjja-membership-checkout-note p { margin:.75rem 0; }
.cjja-membership-questions { margin:2.5rem auto 0; max-width:850px; }
.cjja-membership-questions h3 { font-size:1.4rem; margin:0 0 1rem; }
.cjja-membership-questions details { border-bottom:1px solid #d9d2c8; padding:1rem 0; }
.cjja-membership-questions summary { cursor:pointer; font-weight:650; }
.cjja-membership-questions p { font-size:.95rem; margin:.8rem 0 .2rem; }
@media(max-width:1050px) {
 .cjja-membership-grid { grid-template-columns:1fr; max-width:650px; margin-left:auto; margin-right:auto; }
 .cjja-membership-trial { flex-direction:column; align-items:flex-start; gap:1rem; }
 .cjja-membership-plan { padding:1.5rem; }
 .cjja-membership-plan .cjja-price small { display:inline; margin-left:.4rem; }
}
@media(max-width:600px) {
 .cjja-membership-trial { padding:1.25rem; }
 .cjja-membership-trial .cjja-training-button { width:100%; }
 .cjja-membership-plan { padding:1.25rem; }
 .cjja-membership-plan .cjja-price { font-size:2.4rem; }
}

/* Supplied Cornelius Judo mark, kept intact on its original black background. */
.cjja-judo-brand { margin:0; overflow:hidden; border-radius:10px; background:#000; }
.cjja-judo-brand img { display:block; width:100%; height:auto; object-fit:contain; }
.cjja-judo-coaches { min-width:0; }
.cjja-judo-brand-small { width:min(300px,100%); margin:0 auto 1.5rem; }
.cjja-judo-brand-small img { aspect-ratio:3/2; }
@media(max-width:600px) {
 .cjja-judo-brand-small { width:240px; max-width:100%; }
}

/* Prose links stay recognizable without relying on color, including on hover. */
:is(main, .cjja-footer) :is(p, li, dd) a:not(.cjja-training-button):not(.wp-element-button),
.cjja-text-link {
 text-decoration:underline;
 text-decoration-thickness:.08em;
 text-underline-offset:.2em;
}
.cjja-not-found { padding:clamp(3rem,8vw,7rem) 1.25rem; }
.cjja-not-found h1 { font-size:clamp(2.25rem,5vw,3.75rem); line-height:1.15; }
.cjja-not-found-actions { display:flex; flex-wrap:wrap; align-items:center; gap:1.25rem 2rem; margin:2rem 0; }
@media (max-width:600px) {
 .cjja-section { padding-top:2.5rem; padding-bottom:2.5rem; }
 .cjja-section-head + .wp-block-spacer { height:1.5rem !important; }
 .cjja-membership-plan p.cjja-membership-audience { margin-bottom:1rem; }
 .cjja-membership-plan p.cjja-membership-setup { margin-bottom:.5rem; }
}
