/*
Theme Name: Jessup Central Asia
Theme URI: https://jessupcentralasia.com
Author: Jessup Central Asia
Description: Block theme for the Jessup Central Asia public portal.
Version: 0.1.0
Requires at least: 6.6
Requires PHP: 7.4
Text Domain: jessup-central-asia
*/

/* Placeholder tiles for photos not yet uploaded — remove once real images are in place. */
.jca-photo-placeholder {
	background-image: repeating-linear-gradient(135deg, #E4E0D7 0 9px, #EFEBE4 9px 18px);
	display: flex;
	align-items: flex-end;
	position: relative;
	overflow: hidden;
}

.jca-photo-placeholder.is-dark {
	background-image: repeating-linear-gradient(135deg, #4E5869 0 9px, #5A6474 9px 18px);
}

.jca-photo-placeholder span,
.jca-photo-placeholder p {
	font-family: "IBM Plex Mono", monospace;
	font-size: 10px;
	color: #8A8578;
	padding: 8px;
	position: relative;
	z-index: 1;
	margin: 0;
}

.jca-photo-placeholder.is-dark span,
.jca-photo-placeholder.is-dark p {
	color: rgba(255, 255, 255, 0.6);
}

/* Once a real photo is dropped into the placeholder group, make it fill the box
   instead of sitting at its natural (small) size in the corner. */
.jca-photo-placeholder img,
.jca-photo-placeholder .wp-block-image {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	margin: 0;
}

.wp-block-button__link {
	border-radius: 0;
}

/* I'm New page tab switcher */
.jca-tabs-nav {
	display: flex;
	gap: 0;
	border-bottom: 1px solid #E4E0D8;
	flex-wrap: wrap;
}

.jca-tabs-nav button {
	cursor: pointer;
	padding: 16px 22px;
	font-family: "Source Sans 3", system-ui, sans-serif;
	font-size: 15.5px;
	white-space: nowrap;
	color: #6B6E75;
	font-weight: 400;
	background: none;
	border: none;
	border-bottom: 3px solid transparent;
	margin-bottom: -1px;
}

.jca-tabs-nav button.is-active {
	color: #1B3A6B;
	font-weight: 600;
	border-bottom-color: #1E90C8;
}

.jca-qa-photo {
	background-image: repeating-linear-gradient(135deg, #2B4C82 0 9px, #31548D 9px 18px);
	display: flex;
	align-items: flex-end;
	min-height: 300px;
}

/* Main site nav: highlight the current page (block Navigation has no built-in active-state). */
.wp-block-navigation-item.current-menu-item > .wp-block-navigation-item__content {
	font-weight: 600;
	border-bottom: 2px solid #1E90C8;
	padding-bottom: 4px;
}

.jca-qa-photo span {
	font-family: "IBM Plex Mono", monospace;
	font-size: 10px;
	color: #8FC7E8;
	padding: 12px;
}

/* Sponsor / partner logo tiles — shared by the Sponsors page's current-season
   grid, past-hosts grid and supporting-organisations grid (jca-content plugin
   blocks: sponsors-current, sponsors-past-hosts, sponsors-supporting). */
.jca-partner-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 24px;
	align-items: start;
}

.jca-partner-tile {
	display: flex;
	flex-direction: column;
}

.jca-partner-logobox {
	background: #FFFFFF;
	border: 1px solid var(--wp--preset--color--hairline);
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	padding: 16px;
	font-family: var(--wp--preset--font-family--mono);
	font-size: 14px;
	font-weight: 500;
	color: var(--wp--preset--color--body-text);
}

.jca-partner-logobox--host {
	border: 2px solid var(--wp--preset--color--navy);
	font-size: 16px;
}

.jca-partner-logobox--placeholder {
	border-style: dashed;
	font-style: italic;
	color: var(--wp--preset--color--label-text);
	font-weight: 400;
}

.jca-partner-caption {
	text-align: center;
	padding: 10px 8px;
	font-family: var(--wp--preset--font-family--mono);
	font-size: 11px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	background: var(--wp--preset--color--tinted);
	color: var(--wp--preset--color--navy);
}

.jca-partner-caption--host {
	background: var(--wp--preset--color--navy);
	color: #FFFFFF;
}

.jca-partner-note {
	margin: 10px 0 0;
	font-size: 15px;
	line-height: 1.55;
	color: var(--wp--preset--color--muted-text);
}

.jca-host-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
}

.jca-host-caption {
	margin: 10px 0 0;
	font-size: 15px;
	color: var(--wp--preset--color--muted-text);
	text-align: center;
}

.jca-supporter-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 20px;
}

@media (max-width: 1000px) {
	.jca-partner-grid,
	.jca-host-grid,
	.jca-supporter-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 640px) {
	.jca-partner-grid,
	.jca-host-grid,
	.jca-supporter-grid {
		grid-template-columns: 1fr;
	}
}

/* "Why the Rounds matter" style heading+row list (Sponsors page §6). */
.jca-row-list .jca-row {
	display: grid;
	grid-template-columns: 270px 1fr;
	gap: 32px;
	padding: 20px 0;
	border-bottom: 1px solid var(--wp--preset--color--hairline);
}

.jca-row-list .jca-row--last {
	border-bottom: none;
}

.jca-row-h {
	font-family: "Libre Baskerville", Georgia, serif;
	font-size: 19px;
	color: var(--wp--preset--color--navy);
	line-height: 1.3;
}

.jca-row-p {
	margin: 0;
	font-size: 17px;
	line-height: 1.7;
	color: var(--wp--preset--color--body-text);
}

@media (max-width: 900px) {
	.jca-row-list .jca-row {
		grid-template-columns: 1fr;
		gap: 6px;
	}
}

/* Partnership-level benefit lists — em-dash marker instead of a bullet disc. */
.jca-tier-list {
	list-style: none;
	margin: 12px 0 0;
	padding: 0;
	display: grid;
	gap: 9px;
}

.jca-tier-list li {
	display: grid;
	grid-template-columns: 14px 1fr;
	gap: 8px;
	font-size: 15.5px;
	line-height: 1.55;
	color: var(--wp--preset--color--body-text);
}

.jca-tier-list li::before {
	content: "—";
	color: var(--wp--preset--color--cyan);
}

.jca-tier-list--navy li {
	color: var(--wp--preset--color--pale-blue);
}

.jca-tier-list--navy li::before {
	color: var(--wp--preset--color--light-cyan);
}

/* Hosting page (/hosting/) — Rounds/Summer School two-event comparison.
   A CSS grid with named areas keeps rows pixel-aligned across the two
   columns on desktop, and lets the two events restack as complete blocks
   (Rounds first, Summer School second) on mobile instead of interleaving
   row by row. */
.jca-hosting-accent-bar {
	width: 32px;
	height: 4px;
	margin-bottom: 10px;
}
.jca-hosting-accent-bar--rounds { background: #1E90C8; }
.jca-hosting-accent-bar--summer { background: #B5603A; }

.jca-hosting-eyebrow {
	font-family: var(--wp--preset--font-family--mono);
	font-size: 11px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	margin: 0 0 6px;
}
.jca-hosting-eyebrow--rounds { color: #15638C; }
.jca-hosting-eyebrow--summer { color: #8F4526; }

.jca-hosting-event-name {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 25px;
	font-weight: 400;
	color: var(--wp--preset--color--navy);
	margin: 0;
}

.jca-hosting-hero-panel > div { padding: 16px 0; }
.jca-hosting-hero-panel > div:first-child { padding-top: 0; }
.jca-hosting-hero-panel > div:not(:last-child) { border-bottom: 1px solid var(--wp--preset--color--hairline); }

.jca-hosting-rowgrid {
	display: grid;
	column-gap: 40px;
	row-gap: 0;
}
.jca-hosting-rowgrid--years {
	grid-template-columns: 1fr 1fr;
	grid-template-areas: "r-head s-head" "r-list s-list";
}
.jca-hosting-rowgrid--detail {
	grid-template-columns: 1fr 1fr;
	grid-template-areas: "r-head s-head" "req req" "r-people s-people" "r-link s-link";
}
.jca-hosting-a-r-head { grid-area: r-head; }
.jca-hosting-a-s-head { grid-area: s-head; }
.jca-hosting-a-r-list { grid-area: r-list; }
.jca-hosting-a-s-list { grid-area: s-list; }
.jca-hosting-a-req { grid-area: req; padding-bottom: 10px; }
.jca-hosting-a-r-people { grid-area: r-people; }
.jca-hosting-a-s-people { grid-area: s-people; }
.jca-hosting-a-r-link { grid-area: r-link; }
.jca-hosting-a-s-link { grid-area: s-link; }

.jca-hosting-cell { padding: 10px 0; }
.jca-hosting-cell--r { border-right: 1px solid var(--wp--preset--color--hairline); padding-right: 40px; }
.jca-hosting-cell--s { padding-left: 40px; }
.jca-hosting-cell--top { padding-top: 0; padding-bottom: 0; }

/* Requirements comparison (section 5): ONE shared grid (not two independent
   lists) so a taller item — e.g. Rounds' 4-line "Rooms" bullet vs Summer's
   5-line one — stretches both columns' row together and every bullet below
   it still lines up, instead of drifting once the two lists' content differs. */
.jca-hosting-req-detail-list {
	display: grid;
	grid-template-columns: 1fr 1fr;
	column-gap: 0;
	row-gap: 0;
	grid-template-areas: "rq1-r rq1-s" "rq2-r rq2-s" "rq3-r rq3-s" "rq4-r rq4-s" "rq5-r rq5-s";
	list-style: none;
	margin: 0;
	padding: 0;
}
.jca-hosting-req-detail-list > li:nth-child(1) { grid-area: rq1-r; }
.jca-hosting-req-detail-list > li:nth-child(2) { grid-area: rq1-s; }
.jca-hosting-req-detail-list > li:nth-child(3) { grid-area: rq2-r; }
.jca-hosting-req-detail-list > li:nth-child(4) { grid-area: rq2-s; }
.jca-hosting-req-detail-list > li:nth-child(5) { grid-area: rq3-r; }
.jca-hosting-req-detail-list > li:nth-child(6) { grid-area: rq3-s; }
.jca-hosting-req-detail-list > li:nth-child(7) { grid-area: rq4-r; }
.jca-hosting-req-detail-list > li:nth-child(8) { grid-area: rq4-s; }
.jca-hosting-req-detail-list > li:nth-child(9) { grid-area: rq5-r; }
.jca-hosting-req-detail-list > li:nth-child(10) { grid-area: rq5-s; }
.jca-hosting-req-detail-list > li {
	display: grid;
	grid-template-columns: 14px 1fr;
	gap: 10px;
	padding: 11px 0;
	border-bottom: 1px solid var(--wp--preset--color--hairline);
	font-size: 17px;
	line-height: 1.7;
	color: var(--wp--preset--color--body-text);
}
.jca-hosting-req-detail-list > li:nth-last-child(-n+2) { border-bottom: none; }
.jca-hosting-req-detail-list > li::before {
	content: "";
	width: 9px;
	height: 9px;
	margin-top: 5px;
}
.jca-hosting-req-detail-list > li:nth-child(odd) {
	padding-right: 40px;
	border-right: 1px solid var(--wp--preset--color--hairline);
}
.jca-hosting-req-detail-list > li:nth-child(odd)::before { background: #1E90C8; }
.jca-hosting-req-detail-list > li:nth-child(even) {
	padding-left: 40px;
}
.jca-hosting-req-detail-list > li:nth-child(even)::before { background: #B5603A; }
.jca-hosting-sublist {
	list-style: none;
	margin: 6px 0 0;
	padding: 0;
	display: grid;
	gap: 4px;
}
.jca-hosting-sublist li {
	font-size: 17px;
	line-height: 1.7;
	color: var(--wp--preset--color--muted-text);
	padding: 0;
	border: none;
	display: block;
}

.jca-hosting-provide-list {
	display: grid;
	grid-template-columns: 1fr 1fr;
	column-gap: 48px;
	row-gap: 0;
	grid-template-areas: "i1 i5" "i2 i6" "i3 i7" "i4 i8";
	list-style: none;
	margin: 18px 0 0;
	padding-top: 4px;
	border-top: 2px solid var(--wp--preset--color--navy);
}
.jca-hosting-provide-list li:nth-child(1) { grid-area: i1; }
.jca-hosting-provide-list li:nth-child(2) { grid-area: i2; }
.jca-hosting-provide-list li:nth-child(3) { grid-area: i3; }
.jca-hosting-provide-list li:nth-child(4) { grid-area: i4; }
.jca-hosting-provide-list li:nth-child(5) { grid-area: i5; }
.jca-hosting-provide-list li:nth-child(6) { grid-area: i6; }
.jca-hosting-provide-list li:nth-child(7) { grid-area: i7; }
.jca-hosting-provide-list li:nth-child(8) { grid-area: i8; }
.jca-hosting-provide-list li {
	display: grid;
	grid-template-columns: 12px 1fr;
	gap: 10px;
	padding: 13px 0;
	border-bottom: 1px solid var(--wp--preset--color--hairline);
	font-size: 17px;
	line-height: 1.7;
	color: var(--wp--preset--color--body-text);
}
.jca-hosting-provide-list li::before {
	content: "";
	width: 8px;
	height: 8px;
	margin-top: 6px;
	background: var(--wp--preset--color--navy);
}

.jca-hosting-admin-list {
	list-style: none;
	margin: 0;
	padding: 0;
}
.jca-hosting-admin-list li {
	display: grid;
	grid-template-columns: 12px 1fr;
	gap: 10px;
	padding: 13px 0;
	border-bottom: 1px solid #2B4C82;
	font-size: 17px;
	line-height: 1.7;
	color: #FFFFFF;
}
.jca-hosting-admin-list li:last-child { border-bottom: none; }
.jca-hosting-admin-list li::before {
	content: "";
	width: 8px;
	height: 8px;
	margin-top: 6px;
	background: var(--wp--preset--color--cyan);
}

.jca-hosting-faq-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	column-gap: 48px;
	row-gap: 0;
}
.jca-hosting-faq-item {
	padding: 22px 0;
	border-top: 1px solid var(--wp--preset--color--hairline);
}
.jca-hosting-faq-item h4 {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 19px;
	font-weight: 400;
	color: var(--wp--preset--color--navy);
	margin: 0 0 8px;
}
.jca-hosting-faq-item p {
	font-size: 17px;
	line-height: 1.7;
	color: var(--wp--preset--color--muted-text);
	margin: 0;
}

.jca-hosting-ruled-heading {
	border-top: 4px solid var(--wp--preset--color--navy);
	padding-top: 16px;
}

@media (max-width: 900px) {
	.jca-hosting-rowgrid--years {
		grid-template-columns: 1fr;
		grid-template-areas: "r-head" "r-list" "s-head" "s-list";
	}
	/* Stacked: the requirement bullets join the outer grid so each event's
	   bullets sit under its own heading (Rounds first, then Summer School). */
	.jca-hosting-rowgrid--detail {
		grid-template-columns: 1fr;
		grid-template-areas: "r-head" "rq1-r" "rq2-r" "rq3-r" "rq4-r" "rq5-r" "r-people" "r-link"
			"s-head" "rq1-s" "rq2-s" "rq3-s" "rq4-s" "rq5-s" "s-people" "s-link";
	}
	.jca-hosting-a-req,
	.jca-hosting-req-detail-list {
		display: contents;
	}
	.jca-hosting-req-detail-list > li:nth-child(odd) { border-right: none; padding-right: 0; }
	.jca-hosting-req-detail-list > li:nth-child(even) { padding-left: 0; }
	.jca-hosting-cell--r { border-right: none; padding-right: 0; }
	.jca-hosting-cell--s { padding-left: 0; }
	.jca-hosting-mobile-break {
		border-top: 1px solid var(--wp--preset--color--hairline);
		padding-top: 24px;
		margin-top: 10px;
	}
	.jca-hosting-provide-list {
		grid-template-columns: 1fr;
		grid-template-areas: "i1" "i2" "i3" "i4" "i5" "i6" "i7" "i8";
	}
	.jca-hosting-faq-grid {
		grid-template-columns: 1fr;
	}
}

/* Season pages on phones: title block uses the same side gutter as the sections below it. */
@media (max-width: 900px) {
	.single-jca_season main > .wp-block-group {
		padding-left: 20px !important;
		padding-right: 20px !important;
	}
}

/* ---- Phone sizing (site-wide) ----
   Headings carry fixed desktop sizes inline; scale the large ones down on phones. */
@media (max-width: 781px) {
	main :is(h1,h2,h3,h4,p)[style*="font-size:36px"] {
		font-size: clamp(28px, 8.6vw, 36px) !important;
		overflow-wrap: break-word;
	}
	main :is(h1,h2,h3,h4,p)[style*="font-size:38px"] {
		font-size: clamp(28px, 8.6vw, 38px) !important;
		overflow-wrap: break-word;
	}
	main :is(h1,h2,h3,h4,p)[style*="font-size:39px"] {
		font-size: clamp(28px, 8.6vw, 39px) !important;
		overflow-wrap: break-word;
	}
	main :is(h1,h2,h3,h4,p)[style*="font-size:40px"] {
		font-size: clamp(28px, 8.6vw, 40px) !important;
		overflow-wrap: break-word;
	}
	main :is(h1,h2,h3,h4,p)[style*="font-size:41px"] {
		font-size: clamp(28px, 8.6vw, 41px) !important;
		overflow-wrap: break-word;
	}
	main :is(h1,h2,h3,h4,p)[style*="font-size:42px"] {
		font-size: clamp(28px, 8.6vw, 42px) !important;
		overflow-wrap: break-word;
	}
	main :is(h1,h2,h3,h4,p)[style*="font-size:43px"] {
		font-size: clamp(28px, 8.6vw, 43px) !important;
		overflow-wrap: break-word;
	}
	main :is(h1,h2,h3,h4,p)[style*="font-size:44px"] {
		font-size: clamp(28px, 8.6vw, 44px) !important;
		overflow-wrap: break-word;
	}
	main :is(h1,h2,h3,h4,p)[style*="font-size:45px"] {
		font-size: clamp(28px, 8.6vw, 45px) !important;
		overflow-wrap: break-word;
	}
	main :is(h1,h2,h3,h4,p)[style*="font-size:46px"] {
		font-size: clamp(28px, 8.6vw, 46px) !important;
		overflow-wrap: break-word;
	}
	main :is(h1,h2,h3,h4,p)[style*="font-size:47px"] {
		font-size: clamp(28px, 8.6vw, 47px) !important;
		overflow-wrap: break-word;
	}
	main :is(h1,h2,h3,h4,p)[style*="font-size:48px"] {
		font-size: clamp(28px, 8.6vw, 48px) !important;
		overflow-wrap: break-word;
	}
	main :is(h1,h2,h3,h4,p)[style*="font-size:49px"] {
		font-size: clamp(28px, 8.6vw, 49px) !important;
		overflow-wrap: break-word;
	}
	main :is(h1,h2,h3,h4,p)[style*="font-size:50px"] {
		font-size: clamp(28px, 8.6vw, 50px) !important;
		overflow-wrap: break-word;
	}
	main :is(h1,h2,h3,h4,p)[style*="font-size:51px"] {
		font-size: clamp(28px, 8.6vw, 51px) !important;
		overflow-wrap: break-word;
	}
	main :is(h1,h2,h3,h4,p)[style*="font-size:52px"] {
		font-size: clamp(28px, 8.6vw, 52px) !important;
		overflow-wrap: break-word;
	}
	main :is(h1,h2,h3,h4,p)[style*="font-size:53px"] {
		font-size: clamp(28px, 8.6vw, 53px) !important;
		overflow-wrap: break-word;
	}
	main :is(h1,h2,h3,h4,p)[style*="font-size:54px"] {
		font-size: clamp(28px, 8.6vw, 54px) !important;
		overflow-wrap: break-word;
	}
	main :is(h1,h2,h3,h4,p)[style*="font-size:55px"] {
		font-size: clamp(28px, 8.6vw, 55px) !important;
		overflow-wrap: break-word;
	}
	main :is(h1,h2,h3,h4,p)[style*="font-size:56px"] {
		font-size: clamp(28px, 8.6vw, 56px) !important;
		overflow-wrap: break-word;
	}
	main :is(h1,h2,h3,h4,p)[style*="font-size:57px"] {
		font-size: clamp(28px, 8.6vw, 57px) !important;
		overflow-wrap: break-word;
	}
	main :is(h1,h2,h3,h4,p)[style*="font-size:58px"] {
		font-size: clamp(28px, 8.6vw, 58px) !important;
		overflow-wrap: break-word;
	}
	main :is(h1,h2,h3,h4,p)[style*="font-size:59px"] {
		font-size: clamp(28px, 8.6vw, 59px) !important;
		overflow-wrap: break-word;
	}
	main :is(h1,h2,h3,h4,p)[style*="font-size:60px"] {
		font-size: clamp(28px, 8.6vw, 60px) !important;
		overflow-wrap: break-word;
	}
	main :is(h1,h2,h3,h4,p)[style*="font-size:62px"] {
		font-size: clamp(28px, 8.6vw, 62px) !important;
		overflow-wrap: break-word;
	}
	main :is(h1,h2,h3,h4,p)[style*="font-size:64px"] {
		font-size: clamp(28px, 8.6vw, 64px) !important;
		overflow-wrap: break-word;
	}
	main :is(h1,h2,h3).wp-block-post-title,
	main :is(h1,h2,h3) {
		overflow-wrap: break-word;
		hyphens: auto;
	}
	/* Horizontal "no wrap" rows (e.g. When / Where / Host cards) wrap into stacked cells. */
	main .wp-block-group.is-nowrap {
		flex-wrap: wrap !important;
	}
	main .wp-block-group.is-nowrap > * {
		flex: 1 1 100% !important;
		min-width: 0;
	}
}

/* Phone layout for the plugin's inline-styled cards and rows. */
@media (max-width: 781px) {
	.jca-cells {
		grid-template-columns: minmax(0, 1fr) !important;
	}
	.jca-cells > div {
		padding: 18px 26px 20px !important;
	}
	.jca-cells__title {
		font-size: clamp(28px, 8.6vw, 36px) !important;
	}
	.jca-dl-row {
		flex-direction: column;
		gap: 4px !important;
	}
	.jca-dl-row > * {
		white-space: normal !important;
	}
}

@media (max-width: 781px) {
	/* Footer: brand block on top, link columns in two across. */
	footer .wp-block-group.has-navy-dark-background-color {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 32px 24px !important;
		padding: 36px 20px !important;
	}
	footer .wp-block-group.has-navy-dark-background-color > :first-child {
		grid-column: 1 / -1;
	}
	footer .wp-block-group.has-navy-dark-background-color > * {
		min-width: 0;
		width: auto !important;
		max-width: none !important;
	}

	/* Wide tables scroll inside their own box instead of widening the page. */
	main .wp-block-table {
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}

	/* Administration: two-person cards stack, portraits keep a sensible width. */
	main div[style*="width:448px"] {
		width: 100% !important;
		flex-direction: column;
	}
	main div[style*="width:212px"][style*="flex:none"] {
		width: 100% !important;
		max-width: 260px;
	}
}

/* Timeline list cells */
.jca-tl-year,
.jca-tl-champ,
.jca-tl-more {
	margin: 0;
}
.jca-tl-year {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 24px;
	line-height: 1.2;
	color: var(--wp--preset--color--navy);
}
.jca-tl-year a {
	color: inherit;
	text-decoration: none;
}
.jca-tl-champ {
	font-size: 16px;
	line-height: 1.5;
}
.jca-tl-more {
	font-size: 15px;
	font-weight: 600;
}

/* Timeline list: stacked rows on tablets and phones (6 columns do not fit below ~1000px). */
.jca-tl-champ__label {
	display: none;
}
@media (max-width: 1000px) {
	.jca-tl-head {
		display: none !important;
	}
	.wp-block-columns.jca-tl-row {
		display: grid !important;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		grid-template-areas: "year year more" "place place place" "kz kg uz";
		gap: 8px 24px !important;
		padding-top: 22px !important;
		padding-bottom: 22px !important;
	}
	.jca-tl-row > .wp-block-column {
		flex-basis: auto !important;
		width: auto !important;
		min-width: 0;
		margin: 0 !important;
	}
	.jca-tl-row > :nth-child(1) { grid-area: year; }
	.jca-tl-row > :nth-child(2) { grid-area: place; }
	.jca-tl-row > :nth-child(3) { grid-area: kz; }
	.jca-tl-row > :nth-child(4) { grid-area: kg; }
	.jca-tl-row > :nth-child(5) { grid-area: uz; }
	.jca-tl-row > :nth-child(6) { grid-area: more; justify-self: end; align-self: center; }
	.jca-tl-row > :nth-child(n+3):nth-child(-n+5):not(:has(.jca-tl-champ)),
	.jca-tl-row > :nth-child(6):not(:has(.jca-tl-more)) {
		display: none;
	}
	.jca-tl-row > :nth-child(2) p {
		margin: 0;
	}
	.jca-tl-row > :nth-child(2) p + p {
		margin-top: 2px;
	}
	.jca-tl-year {
		font-size: 28px;
	}
	.jca-tl-champ {
		margin-top: 12px;
	}
	.jca-tl-champ__label {
		display: block;
		margin-bottom: 4px;
		font-family: var(--wp--preset--font-family--mono);
		font-size: 11px;
		letter-spacing: 0.14em;
		text-transform: uppercase;
		color: #6B6E75;
	}
}
@media (max-width: 640px) {
	.wp-block-columns.jca-tl-row {
		grid-template-columns: minmax(0, 1fr) auto;
		grid-template-areas: "year more" "place place" "kz kz" "kg kg" "uz uz";
	}
}

/* Tablet portrait (up to 900px): same stacking WordPress applies on phones, so
   multi-column rows do not squeeze into 100px slivers. Deadline rows wrap
   instead of squashing their label. */
.jca-dl-row {
	flex-wrap: wrap;
}
.jca-dl-row > :first-child {
	flex: 1 1 220px;
}
@media (max-width: 900px) {
	main .wp-block-columns:not(.is-not-stacked-on-mobile):not(.jca-tl-row):not(.jca-tl-head) {
		flex-wrap: wrap !important;
	}
	main .wp-block-columns:not(.is-not-stacked-on-mobile):not(.jca-tl-row):not(.jca-tl-head) > .wp-block-column {
		flex-basis: 100% !important;
		flex-grow: 1;
	}
}
