:root {
	--ymc-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M2 8h10M8.5 4l4 4-4 4' fill='none' stroke='%23262262' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	--ymc-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M10 3 5 8l5 5' fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	--ymc-icon-mail: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M2 4h16v12H2z' fill='none' stroke='%23000' stroke-width='1.6'/%3E%3Cpath d='m2.6 4.8 7.4 5.6 7.4-5.6' fill='none' stroke='%23000' stroke-width='1.6'/%3E%3C/svg%3E");
	--ymc-icon-phone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 2.5 7.5 6 6 7.8a10 10 0 0 0 6.2 6.2L14 12.5 17.5 15v2A2.5 2.5 0 0 1 15 19.5 15 15 0 0 1 .5 5 2.5 2.5 0 0 1 3 2.5z' fill='%23000'/%3E%3C/svg%3E");
	--ymc-icon-map: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M10 1a6 6 0 0 0-6 6c0 4.5 6 12 6 12s6-7.5 6-12a6 6 0 0 0-6-6zm0 8.2A2.2 2.2 0 1 1 10 4.8a2.2 2.2 0 0 1 0 4.4z' fill='%23000'/%3E%3C/svg%3E");
	--ymc-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m2.5 8.5 3.5 3.5 7.5-8' fill='none' stroke='%23000' stroke-width='2.1' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	--ymc-arrow-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M2 8h10M8.5 4l4 4-4 4' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

/* YMC header, campaign bar and navigation. */

/* The template-part wrapper is only as tall as the bar, and a sticky
   element cannot travel outside its parent. Dissolving it lets the bar
   stick against the page instead. */
.wp-site-blocks > header.wp-block-template-part {
	display: contents;
}

.ymc-headerbar {
	position: sticky;
	top: 0;
	z-index: 40;
	transition: transform 260ms ease;
}

/* Slides out of the way while scrolling down, returns on the way up. */
.ymc-headerbar.is-hidden {
	transform: translateY(-100%);
}

@media (prefers-reduced-motion: reduce) {
	.ymc-headerbar {
		transition: none;
	}

	.ymc-headerbar.is-hidden {
		transform: none;
	}
}

.ymc-header {
	background: rgba(255, 255, 255, 0.94);
	backdrop-filter: blur(14px);
	border-bottom: 1px solid var(--wp--preset--color--hairline);
}

.ymc-header__inner {
	gap: 18px;
	min-height: 68px;
	padding: 0 18px;
}

.ymc-brand {
	gap: 12px;
	flex-shrink: 0;
}

.ymc-brand__logo img {
	display: block;
	height: 44px;
	width: auto;
}

.ymc-brand__name {
	display: none;
	margin: 0;
	font-size: 16px;
	font-weight: 600;
	line-height: 1.15;
	color: var(--wp--preset--color--purple);
}

/* Navigation. */

.ymc-nav .wp-block-navigation__container {
	gap: 4px;
}

.ymc-nav .wp-block-navigation-item__content {
	padding: 9px;
	border-bottom: 2px solid transparent;
	color: var(--wp--preset--color--purple);
	font-weight: 500;
	white-space: nowrap;
}

.ymc-nav .wp-block-navigation-item__content:hover,
.ymc-nav .wp-block-navigation-item__content:focus-visible {
	color: var(--wp--preset--color--gold);
}

.ymc-nav .current-menu-item > .wp-block-navigation-item__content {
	border-bottom-color: var(--wp--preset--color--gold);
}

/* Dropdown panels. */

.ymc-nav .wp-block-navigation__submenu-container {
	min-width: 220px;
	margin-top: 10px;
	padding: 8px;
	background: #fff;
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: 12px;
	box-shadow: 0 12px 30px rgba(38, 34, 98, 0.16);
}

/* Bridges the gap so the panel stays open as the pointer moves down. */
.ymc-nav .wp-block-navigation__submenu-container::before {
	position: absolute;
	inset: -12px 0 auto;
	height: 12px;
	content: "";
}

.ymc-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	padding: 9px 12px;
	border: 0;
	border-radius: 8px;
	font-size: 14px;
	color: var(--wp--preset--color--muted);
}

.ymc-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover {
	background: var(--wp--preset--color--gold-tint);
	color: var(--wp--preset--color--purple);
}

/* Student Life has ten links, so its panel runs in two columns.
   The extra class selectors outrank the core width rule. */
.ymc-nav .wp-block-navigation-submenu.ymc-nav__wide > .wp-block-navigation__submenu-container {
	display: grid;
	grid-template-columns: repeat(2, minmax(190px, 1fr));
	align-content: start;
	gap: 2px;
	width: min(460px, calc(100vw - 40px));
	min-width: min(460px, calc(100vw - 40px));
}

.ymc-nav .wp-block-navigation-submenu.ymc-nav__wide > .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	white-space: normal;
}

/* Buttons. */

.ymc-header__buttons {
	gap: 10px;
	flex-wrap: nowrap;
}

.ymc-give .wp-block-button__link {
	display: flex;
	align-items: center;
	min-height: 50px;
	padding: 12px 20px;
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: 8px;
	background: #fff;
	color: var(--wp--preset--color--purple);
	font-size: 14px;
	font-weight: 600;
	line-height: 1;
	white-space: nowrap;
	transition: border-color 200ms ease;
}

.ymc-give .wp-block-button__link:hover {
	border-color: var(--wp--preset--color--purple);
	background: #fff;
	color: var(--wp--preset--color--purple);
}

.ymc-contact .wp-block-button__link {
	display: flex;
	align-items: center;
	min-height: 50px;
	padding: 12px 20px;
	border-radius: 8px;
	background: var(--wp--preset--color--purple);
	color: #fff;
	font-size: 14px;
	font-weight: 600;
	line-height: 1;
	white-space: nowrap;
	transition: transform 200ms ease, filter 200ms ease;
}

.ymc-contact .wp-block-button__link:hover {
	filter: brightness(1.14);
	transform: translateY(-1px);
}

.ymc-contact .wp-block-button__link:active {
	transform: scale(0.98);
}

/* Campaign bar. */

.ymc-campaign {
	position: relative;
	z-index: 30;
	background: var(--wp--preset--gradient--campaign);
	box-shadow: 0 6px 18px rgba(38, 34, 98, 0.18);
}

.ymc-campaign__inner {
	margin: 0;
}

.ymc-campaign__inner a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
	padding: 14px 18px;
	color: #fff;
	text-decoration: none;
	transition: transform 200ms ease;
}

.ymc-campaign__inner a:hover {
	transform: translateY(-1px);
}

.ymc-campaign__label {
	padding: 5px 12px;
	margin-right: 14px;
	border-radius: 20px;
	background: rgba(255, 186, 0, 0.18);
	color: var(--wp--preset--color--gold);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.ymc-campaign__text {
	flex: 1;
	font-size: 14.5px;
	color: rgba(255, 255, 255, 0.92);
}

.ymc-campaign__action {
	color: var(--wp--preset--color--gold);
	font-size: 13px;
	font-weight: 600;
	white-space: nowrap;
}


/* Gold circle arrow inside the Contact Us button. */

.ymc-contact .wp-block-button__link {
	gap: 10px;
	padding-right: 12px;
}

.ymc-contact .wp-block-button__link::after {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 26px;
	flex-shrink: 0;
	border-radius: 999px;
	background: var(--wp--preset--color--gold) var(--ymc-arrow) center / 11px no-repeat;
	content: "";
}

/* Arrow after Learn more on the campaign bar. */

.ymc-campaign__action::after {
	display: inline-block;
	width: 11px;
	height: 11px;
	margin-left: 8px;
	background-color: currentColor;
	-webkit-mask: var(--ymc-arrow-mask) center / contain no-repeat;
	mask: var(--ymc-arrow-mask) center / contain no-repeat;
	content: "";
}

@media (min-width: 1250px) {
	.ymc-header__inner {
		gap: 24px;
		min-height: 78px;
		padding: 0 30px;
	}

	.ymc-brand__logo img {
		height: 52px;
	}

	.ymc-brand__name {
		display: block;
	}

	.ymc-campaign__inner a {
		padding: 14px 30px;
	}
}

/* --- Footer --- */

.ymc-footer {
	background: var(--wp--preset--color--purple);
	color: #fff;
	font-size: 13px;
	line-height: 1.6;
}

.ymc-footer p {
	margin: 0;
}

.ymc-footer a {
	color: #fff;
	text-decoration: none;
}

.ymc-footer a:hover {
	color: var(--wp--preset--color--gold);
}

.ymc-footer__grid {
	gap: clamp(22px, 2.4vw, 32px);
	padding: clamp(40px, 5vw, 60px) clamp(18px, 3vw, 30px) 30px;
	align-items: flex-start;
}

.ymc-footer__col {
	gap: 18px;
}

.ymc-footer__col--about {
	flex: 1 1 190px;
	min-width: min(100%, 180px);
}

.ymc-footer__col--visit {
	flex: 0 1 165px;
	min-width: min(100%, 160px);
}

.ymc-footer__col--links {
	flex: 0 1 175px;
	min-width: min(100%, 165px);
}

.ymc-footer__col--campaign {
	flex: 0 1 150px;
	min-width: min(100%, 145px);
}

.ymc-footer__col--signup {
	flex: 1 1 250px;
	min-width: min(100%, 230px);
}

.ymc-footer__label {
	color: var(--wp--preset--color--gold);
	font-size: 13px;
	line-height: 1;
}

/* The mark is dark purple, so it is inverted to read on the purple band. */
.ymc-footer__logo img {
	width: 100px;
	height: auto;
	filter: brightness(0) invert(1);
	opacity: 0.9;
}

.ymc-footer__list {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin: 0;
	padding: 0;
	list-style: none;
}

/* Core spaces list items apart; the column gap handles that here. */
.ymc-footer__list li {
	margin: 0;
	line-height: 1.5;
}

/* Contact icons. */

.ymc-footer__icons {
	display: flex;
	gap: 12px;
}

.ymc-footer a.ymc-footer__icon {
	display: flex;
	width: 40px;
	height: 40px;
	border-radius: 999px;
	background-color: rgba(255, 255, 255, 0.1);
	color: var(--wp--preset--color--gold);
	transition: background-color 200ms ease, color 200ms ease;
}

.ymc-footer a.ymc-footer__icon:hover {
	background-color: var(--wp--preset--color--gold);
	color: var(--wp--preset--color--purple);
}

/* Drawn as masks so the glyph follows the text colour on hover. */
.ymc-footer__icon::before {
	width: 16px;
	height: 16px;
	margin: auto;
	background-color: currentColor;
	content: "";
}

.ymc-footer__icon--mail::before {
	-webkit-mask: var(--ymc-icon-mail) center / contain no-repeat;
	mask: var(--ymc-icon-mail) center / contain no-repeat;
}

.ymc-footer__icon--phone::before {
	-webkit-mask: var(--ymc-icon-phone) center / contain no-repeat;
	mask: var(--ymc-icon-phone) center / contain no-repeat;
}

.ymc-footer__icon--map::before {
	-webkit-mask: var(--ymc-icon-map) center / contain no-repeat;
	mask: var(--ymc-icon-map) center / contain no-repeat;
}

/* Give Now. */

.ymc-footer__give .wp-block-button__link {
	padding: 12px 20px;
	border-radius: 8px;
	background: var(--wp--preset--color--gold);
	color: var(--wp--preset--color--purple);
	font-size: 14px;
	font-weight: 700;
}

.ymc-footer__give .wp-block-button__link:hover {
	filter: brightness(0.94);
	color: var(--wp--preset--color--purple);
}

/* Weekly highlights signup. */

.ymc-signup {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.ymc-signup__label {
	font-size: 12px;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--wp--preset--color--lilac);
}

.ymc-signup__input {
	box-sizing: border-box;
	width: 100%;
	padding: 12px 14px;
	border: 1px solid rgba(255, 255, 255, 0.24);
	border-radius: 10px;
	background: rgba(255, 255, 255, 0.06);
	color: #fff;
	font: inherit;
	font-size: 14px;
	opacity: 0.6;
	cursor: not-allowed;
}

.ymc-signup__button {
	box-sizing: border-box;
	align-self: flex-start;
	padding: 12px 20px;
	border: 1px solid rgba(255, 255, 255, 0.3);
	border-radius: 8px;
	background: transparent;
	color: rgba(255, 255, 255, 0.4);
	font: inherit;
	font-size: 14px;
	font-weight: 600;
	cursor: not-allowed;
}

/* Legal line. */

.ymc-footer__legal {
	max-width: 1140px;
	margin: 0 auto;
	padding: 18px clamp(18px, 3vw, 30px) 40px;
	border-top: 1px solid rgba(255, 255, 255, 0.12);
	color: var(--wp--preset--color--lilac);
	font-size: 11px;
	letter-spacing: 0.8px;
}

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

.ymc-hero-wrap {
	padding: clamp(14px, 2vw, 24px) clamp(18px, 3vw, 30px);
}

.ymc-hero.wp-block-cover {
	min-height: clamp(440px, 52vw, 620px);
	padding: 0;
	border-radius: 20px;
	overflow: hidden;
	background: var(--wp--preset--color--purple);
	align-items: center;
}

/* Purple wash across the photograph, heaviest on the left. */
.ymc-hero.wp-block-cover::before {
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(
		100deg,
		rgba(38, 34, 98, 0.94) 0%,
		rgba(38, 34, 98, 0.74) 42%,
		rgba(38, 34, 98, 0.32) 75%,
		rgba(38, 34, 98, 0.18) 100%
	);
	content: "";
}

/* Warm gold lift on the right edge. */
.ymc-hero.wp-block-cover::after {
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(
		to right,
		rgba(255, 186, 0, 0) 52%,
		rgba(255, 186, 0, 0.14) 80%,
		rgba(255, 186, 0, 0.26) 100%
	);
	mix-blend-mode: screen;
	content: "";
}

.ymc-hero .wp-block-cover__inner-container {
	position: relative;
	z-index: 2;
	display: flex;
	justify-content: flex-start;
	width: 100%;
	max-width: none;
	padding: 0;
}

/* Beats the constrained-layout auto centring that Cover applies. */
.ymc-hero .wp-block-cover__inner-container > .ymc-hero__copy,
.ymc-hero__copy {
	width: 100%;
	max-width: clamp(320px, 52%, 700px);
	margin-inline: 0 auto;
	padding: clamp(30px, 4.4vw, 72px);
	text-align: left;
}

.ymc-hero__eyebrow {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0;
	color: var(--wp--preset--color--gold);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	white-space: nowrap;
}

.ymc-hero__eyebrow::after {
	flex: 0 1 60px;
	height: 1px;
	background: linear-gradient(to right, var(--wp--preset--color--gold), transparent);
	content: "";
}

.ymc-hero__title {
	margin: 22px 0 0;
	color: #fff;
	font-size: clamp(32px, 4.8vw, 52px);
	font-weight: 400;
	line-height: 1.04;
	letter-spacing: -0.01em;
	text-wrap: pretty;
}

.ymc-hero__title em {
	font-style: italic;
	line-height: 1.15;
}

.ymc-hero__text {
	max-width: 46ch;
	margin: 22px 0 0;
	color: rgba(255, 255, 255, 0.86);
	font-size: 17px;
	line-height: 1.6;
}

.ymc-hero__actions {
	gap: 10px;
	margin-top: 34px;
}

.ymc-hero__primary .wp-block-button__link {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 15px 26px;
	border-radius: 8px;
	background: #fff;
	color: var(--wp--preset--color--purple);
	font-size: 15px;
	font-weight: 600;
	line-height: 1;
	transition: filter 200ms ease, transform 200ms ease;
}

.ymc-hero__primary .wp-block-button__link::after {
	width: 11px;
	height: 11px;
	background-color: var(--wp--preset--color--gold);
	-webkit-mask: var(--ymc-arrow-mask) center / contain no-repeat;
	mask: var(--ymc-arrow-mask) center / contain no-repeat;
	content: "";
}

.ymc-hero__primary .wp-block-button__link:hover {
	filter: brightness(0.95);
	transform: translateY(-1px);
	background: #fff;
	color: var(--wp--preset--color--purple);
}

.ymc-hero__secondary .wp-block-button__link {
	display: flex;
	align-items: center;
	padding: 15px 26px;
	border: 1px solid rgba(255, 255, 255, 0.34);
	border-radius: 8px;
	background: transparent;
	color: #fff;
	font-size: 15px;
	font-weight: 600;
	line-height: 1;
	transition: border-color 200ms ease, color 200ms ease;
}

.ymc-hero__secondary .wp-block-button__link:hover {
	border-color: var(--wp--preset--color--gold);
	background: transparent;
	color: var(--wp--preset--color--gold);
}

/* --- Sticky footer ---
   Keeps the footer at the bottom of the viewport on short pages
   without pinning it over the content on long ones. */

.wp-site-blocks {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
}

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

.wp-site-blocks > .ymc-headerbar {
	flex: 0 0 auto;
}

.wp-site-blocks > footer {
	flex-shrink: 0;
	margin-top: auto;
}

/* --- What YMC is built on --- */

.ymc-built {
	padding: clamp(12px, 1.6vw, 22px) clamp(18px, 3vw, 30px) clamp(44px, 6vw, 76px);
	background: #fff;
}

.ymc-built__intro {
	margin-bottom: clamp(26px, 3.2vw, 40px);
}

.ymc-built__title {
	margin: 0 0 14px;
	color: var(--wp--preset--color--purple);
	font-size: clamp(26px, 3.4vw, 40px);
	font-weight: 400;
	line-height: 1.1;
}

.ymc-built__lede {
	margin: 0;
	color: var(--wp--preset--color--muted);
	font-size: 17px;
	line-height: 1.5;
	text-wrap: pretty;
}

.ymc-built__grid {
	gap: clamp(14px, 1.6vw, 20px);
	align-items: stretch;
}

.ymc-built__stack {
	gap: clamp(14px, 1.6vw, 20px);
	flex: 1 1 280px;
	min-width: min(100%, 240px);
	align-self: stretch;
}

/* Tiles. */

.ymc-tile {
	position: relative;
	overflow: hidden;
	border-radius: 20px;
	align-self: stretch;
}

.ymc-tile.wp-block-cover {
	padding: 0;
}

/* Core makes this container position:relative, which would anchor the
   caption to the text rather than to the whole tile. */
.ymc-tile .wp-block-cover__inner-container {
	position: static;
	width: 100%;
}

.ymc-tile--lead {
	flex: 2 1 420px;
	min-width: min(100%, 280px);
	min-height: clamp(300px, 34vw, 440px);
}

.ymc-tile--short {
	flex: 1 1 0;
	min-height: clamp(150px, 15vw, 200px);
}

.ymc-tile--tall {
	flex: 1 1 240px;
	min-width: min(100%, 220px);
	min-height: clamp(230px, 22vw, 280px);
}

/* Caption, revealed on hover and on keyboard focus. */

.ymc-tile__caption {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	padding: clamp(18px, 2.2vw, 26px);
	background: linear-gradient(to top, rgba(38, 34, 98, 0.92) 0%, rgba(38, 34, 98, 0.4) 70%);
	opacity: 0;
	transition: opacity 200ms ease;
}

.ymc-tile:hover .ymc-tile__caption,
.ymc-tile:focus-within .ymc-tile__caption {
	opacity: 1;
}

.ymc-tile__eyebrow {
	margin: 0;
	color: var(--wp--preset--color--gold);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.ymc-tile__title {
	max-width: 24ch;
	margin: 10px 0 0;
	color: #fff;
	font-size: clamp(20px, 2.2vw, 26px);
	font-weight: 400;
	line-height: 1.12;
	text-wrap: pretty;
}

.ymc-tile--lead .ymc-tile__title {
	font-size: clamp(24px, 2.8vw, 34px);
	line-height: 1.1;
}

.ymc-tile__text {
	max-width: 34ch;
	margin: 8px 0 0;
	color: rgba(255, 255, 255, 0.86);
	font-size: 14px;
	line-height: 1.5;
}

/* Final tile, a solid card that links to the About page. */

.ymc-tile--link {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	padding: clamp(18px, 2.2vw, 26px);
	background: var(--wp--preset--color--purple);
	transition: filter 200ms ease, transform 200ms ease;
}

.ymc-tile--link:hover {
	filter: brightness(1.12);
	transform: translateY(-1px);
}

.ymc-tile__icon {
	margin: 0;
}

.ymc-tile__icon img {
	display: block;
	width: 40px;
	height: 40px;
	object-fit: contain;
	filter: brightness(0) invert(1);
	opacity: 0.9;
}

.ymc-tile__linkcopy {
	margin: 0;
}

.ymc-tile__cta {
	margin: 12px 0 0;
}

.ymc-tile__cta a {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	color: var(--wp--preset--color--gold);
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
}

.ymc-tile__cta a::after {
	width: 11px;
	height: 11px;
	background-color: currentColor;
	-webkit-mask: var(--ymc-arrow-mask) center / contain no-repeat;
	mask: var(--ymc-arrow-mask) center / contain no-repeat;
	content: "";
}

/* --- A day here has two halves --- */

.ymc-halves {
	padding: clamp(44px, 6vw, 76px) clamp(18px, 3vw, 30px);
	border-top: 1px solid var(--wp--preset--color--hairline);
	background: var(--wp--preset--color--surface);
}

.ymc-halves__intro {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap: clamp(20px, 3vw, 56px);
	align-items: start;
	padding-bottom: clamp(24px, 3vw, 36px);
}

.ymc-halves__title {
	margin: 0;
	color: var(--wp--preset--color--purple);
	font-size: clamp(28px, 4vw, 52px);
	font-weight: 400;
	line-height: 1.05;
	text-wrap: pretty;
}

.ymc-halves__aside {
	display: flex;
	flex-direction: column;
	gap: 18px;
	align-items: flex-end;
	text-align: right;
}

.ymc-halves__lede {
	max-width: 38ch;
	margin: 0;
	color: var(--wp--preset--color--ink-soft);
	font-size: 15px;
	line-height: 1.6;
	text-wrap: pretty;
}

.ymc-halves__cta .wp-block-button__link {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 13px 22px;
	border-radius: 8px;
	background: var(--wp--preset--color--purple);
	color: #fff;
	font-size: 14px;
	font-weight: 600;
	line-height: 1;
	transition: filter 200ms ease, transform 200ms ease;
}

.ymc-halves__cta .wp-block-button__link::after {
	width: 11px;
	height: 11px;
	background-color: var(--wp--preset--color--gold);
	-webkit-mask: var(--ymc-arrow-mask) center / contain no-repeat;
	mask: var(--ymc-arrow-mask) center / contain no-repeat;
	content: "";
}

.ymc-halves__cta .wp-block-button__link:hover {
	filter: brightness(1.14);
	transform: translateY(-1px);
	color: #fff;
}

/* Split panel. */

.ymc-halves__panel {
	display: grid;
	grid-template-columns: minmax(320px, 1fr) minmax(320px, 1fr);
	align-items: stretch;
}

/* Core adds a block gap between siblings, which left grey strips
   between the rows and their dividers. */
.ymc-halves__panel > *,
.ymc-halves__rows > *,
.ymc-halves__strip > * {
	margin-block: 0;
}

/* Both columns split into four equal parts, so the photographs are the
   same height as each other and line up with the rows beside them. */
.ymc-halves__strip {
	position: relative;
	display: grid;
	grid-template-rows: repeat(4, 1fr);
	min-height: clamp(300px, 34vw, 470px);
	overflow: hidden;
}

.ymc-halves__rows {
	display: grid;
	grid-template-rows: repeat(4, 1fr);
	border-left: 1px solid var(--wp--preset--color--hairline);
}

.ymc-halves__strip figure.ymc-halves__shot {
	position: relative;
	margin: 0;
	min-height: 0;
	overflow: hidden;
}

/* Absolute so the photograph's own height never stretches its row. */
.ymc-halves__strip figure.ymc-halves__shot img {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	object-position: 50% 30%;
}

.ymc-halves__strip figure.ymc-halves__shot:nth-of-type(2) img {
	object-position: 50% 35%;
}

.ymc-halves__stripcap {
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	padding: clamp(20px, 2.6vw, 30px);
	background: linear-gradient(
		to top,
		rgba(13, 10, 32, 0.92) 0%,
		rgba(13, 10, 32, 0.62) 45%,
		rgba(13, 10, 32, 0) 100%
	);
}

.ymc-halves__eyebrow {
	margin: 0;
	color: var(--wp--preset--color--gold);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	text-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);
}

.ymc-halves__stripttl {
	margin: 8px 0 0;
	color: #fff;
	font-size: clamp(22px, 2.6vw, 30px);
	font-weight: 400;
	line-height: 1.15;
	text-shadow: 0 2px 6px rgba(0, 0, 0, 0.5);
}

/* Programme rows. */

/* Core adds a block gap between siblings, which left grey strips
   between the rows and their dividers. */
.ymc-halves__panel > *,
.ymc-halves__rows > *,
.ymc-halves__strip > * {
	margin-block: 0;
}

.ymc-row {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: clamp(22px, 2.8vw, 34px) calc(clamp(20px, 2.6vw, 36px) + 34px) clamp(22px, 2.8vw, 34px) clamp(20px, 2.6vw, 36px);
	transition: background 200ms ease;
}

/* Rule above the first row, matching the dividers between them. */
.ymc-row:first-of-type::before {
	position: absolute;
	top: 0;
	right: 0;
	left: 0;
	height: 1px;
	background: var(--wp--preset--color--hairline);
	content: "";
}

/* Dividers drawn inside the box so the hover tint covers them. */
.ymc-row::after {
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	height: 1px;
	background: var(--wp--preset--color--hairline);
	content: "";
}

.ymc-row:last-child::after {
	display: none;
}

.ymc-row:hover {
	background: rgba(255, 186, 0, 0.07);
}

.ymc-row__label {
	margin: 0;
	font-size: clamp(20px, 2.3vw, 28px);
	font-weight: 400;
	line-height: 1.15;
}

.ymc-row__label a {
	color: var(--wp--preset--color--purple);
	text-decoration: none;
}

/* Makes the whole row clickable without nesting links. */
.ymc-row__label a::before {
	position: absolute;
	inset: 0;
	content: "";
}

.ymc-row__label a::after {
	position: absolute;
	top: 50%;
	right: clamp(20px, 2.6vw, 36px);
	transform: translateY(-50%);
	width: 13px;
	height: 13px;
	background-color: var(--wp--preset--color--gold);
	-webkit-mask: var(--ymc-arrow-mask) center / contain no-repeat;
	mask: var(--ymc-arrow-mask) center / contain no-repeat;
	content: "";
}

.ymc-row__body {
	max-width: 46ch;
	margin: 9px 0 0;
	color: var(--wp--preset--color--ink-soft);
	font-size: 15px;
	line-height: 1.55;
	text-wrap: pretty;
}

.ymc-row__meta {
	margin: 10px 0 0;
	color: var(--wp--preset--color--ink-faint);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}


/* --- YMC weekly highlights --- */

.ymc-highlights {
	padding: clamp(44px, 6vw, 76px) clamp(18px, 3vw, 30px);
	background: #fff;
}

.ymc-highlights__head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 14px;
	flex-wrap: wrap;
	margin-bottom: clamp(22px, 2.6vw, 32px);
}

.ymc-highlights__title {
	margin: 0;
	color: var(--wp--preset--color--purple);
	font-size: clamp(26px, 3.4vw, 40px);
	font-weight: 400;
	line-height: 1.1;
}

.ymc-highlights__tools {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0;
}

.ymc-highlights__viewall {
	padding-bottom: 2px;
	border-bottom: 2px solid var(--wp--preset--color--gold);
	color: var(--wp--preset--color--purple);
	font-size: 15px;
	font-weight: 600;
	text-decoration: none;
}

.ymc-highlights__viewall:hover {
	color: var(--wp--preset--color--gold);
}

.ymc-highlights__nav {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: 999px;
	background: #fff;
	color: var(--wp--preset--color--purple);
	cursor: pointer;
	transition: border-color 200ms ease;
}

.ymc-highlights__nav::before {
	width: 13px;
	height: 13px;
	background-color: currentColor;
	-webkit-mask: var(--ymc-chevron) center / contain no-repeat;
	mask: var(--ymc-chevron) center / contain no-repeat;
	content: "";
}

.ymc-highlights__nav--next::before {
	transform: rotate(180deg);
}

.ymc-highlights__nav:hover {
	border-color: var(--wp--preset--color--purple);
}

/* Track. */

.ymc-highlights__track {
	display: flex;
	align-items: stretch;
	gap: 30px;
	flex-wrap: nowrap;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	padding-bottom: 4px;
}

.ymc-highlights__track::-webkit-scrollbar {
	display: none;
}

.ymc-card {
	position: relative;
	display: flex;
	flex-direction: column;
	flex: 0 0 300px;
	scroll-snap-align: start;
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: 10px;
	overflow: hidden;
	background: #fff;
	transition: box-shadow 200ms ease, transform 200ms ease;
}

.ymc-card:hover {
	box-shadow: 0 4px 18px rgba(38, 34, 98, 0.16);
	transform: translateY(-1px);
}

.ymc-card figure.ymc-card__media {
	height: 196px;
	flex-shrink: 0;
	margin: 0;
	background: var(--wp--preset--color--hairline);
}

.ymc-card figure.ymc-card__media img {
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	object-position: 50% 35%;
}

.ymc-card__body {
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding: 24px;
}

.ymc-card__body > * {
	margin-block: 0;
}

.ymc-card__eyebrow {
	color: var(--wp--preset--color--gold);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.ymc-card__title {
	font-size: 20px;
	font-weight: 400;
	line-height: 1.2;
	text-wrap: pretty;
}

.ymc-card__title a {
	color: var(--wp--preset--color--purple);
	text-decoration: none;
}

/* Makes the whole card clickable without nesting links. */
.ymc-card__title a::before {
	position: absolute;
	inset: 0;
	content: "";
}

.ymc-card__text {
	color: var(--wp--preset--color--ink-soft);
	font-size: 14px;
	line-height: 1.55;
}

.ymc-card__cta {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	color: var(--wp--preset--color--purple);
	font-size: 14px;
	font-weight: 600;
}

.ymc-card__cta::after {
	width: 11px;
	height: 11px;
	background-color: var(--wp--preset--color--gold);
	-webkit-mask: var(--ymc-arrow-mask) center / contain no-repeat;
	mask: var(--ymc-arrow-mask) center / contain no-repeat;
	content: "";
}


/* Carousel pagination. */

.ymc-highlights__dots {
	display: flex;
	gap: 8px;
	justify-content: center;
	margin: 28px 0 0;
}

.ymc-highlights__dots:empty {
	display: none;
}

.ymc-highlights__dot {
	width: 9px;
	height: 9px;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: #c9c9c9;
	cursor: pointer;
	transition: background 200ms ease;
}

.ymc-highlights__dot[aria-current="true"] {
	background: var(--wp--preset--color--purple);
}

/* --- Narrow screens ---
   The prototype switches layout at 760px, so these follow the same line. */

@media (max-width: 760px) {

	/* Hero: copy takes the full width and the wash goes vertical. */

	.ymc-hero .ymc-hero__copy {
		max-width: none;
	}

	.ymc-hero::before {
		background: linear-gradient(
			to top,
			rgba(38, 34, 98, 0.95) 0%,
			rgba(38, 34, 98, 0.82) 55%,
			rgba(38, 34, 98, 0.5) 100%
		);
	}

	/* Buttons hug their labels and stack to the left. */
	.ymc-hero__actions {
		flex-direction: column;
		align-items: flex-start;
	}

	.ymc-hero__actions .wp-block-button {
		flex: 0 0 auto;
		width: auto;
	}

	.ymc-hero {
		min-height: 0;
	}

	.ymc-hero .ymc-hero__copy {
		padding: 26px 22px 30px;
	}

	.ymc-hero__title {
		font-size: clamp(30px, 7.6vw, 40px);
	}

	.ymc-hero__text {
		max-width: none;
		font-size: 16px;
	}

	.ymc-hero__actions {
		margin-top: 26px;
	}

	/* Built on: the mosaic becomes a swipeable row of cards. */

	.ymc-built__grid {
		display: flex;
		flex-wrap: nowrap;
		gap: 14px;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		scrollbar-width: none;
		padding-bottom: 4px;
	}

	.ymc-built__grid::-webkit-scrollbar {
		display: none;
	}

	/* Flatten the stacked pair so every tile is its own card. */
	.ymc-built .ymc-built__stack {
		display: contents;
	}

	.ymc-built .ymc-tile,
	.ymc-built .ymc-tile--lead,
	.ymc-built .ymc-tile--short,
	.ymc-built .ymc-tile--tall {
		flex: 0 0 84%;
		width: 84%;
		min-width: 0;
		max-width: 84%;
		height: 300px;
		min-height: 0;
		scroll-snap-align: center;
	}

	/* Captions stay visible, since there is no hover on touch. */
	.ymc-tile__caption {
		padding: 22px;
		opacity: 1;
	}

	.ymc-tile--lead .ymc-tile__title,
	.ymc-tile__title {
		font-size: 24px;
	}

	/* Two halves: one column, photographs above the rows. */

	.ymc-halves__intro {
		grid-template-columns: 1fr;
	}

	.ymc-halves__aside {
		align-items: flex-start;
		text-align: left;
	}



	/* Highlights: wider cards, shorter images. */

	.ymc-card {
		scroll-snap-align: center;
	}

	.ymc-highlights__nav {
		display: none;
	}

	.ymc-highlights__head {
		align-items: flex-start;
	}

	/* Both calls to action run the full width, one above the other. */
	.ymc-gap .ymc-gap__actions {
		flex-direction: column;
		align-items: stretch;
		gap: 12px;
	}

	.ymc-gap .ymc-gap__actions .wp-block-button {
		width: 100%;
	}

	.ymc-gap .ymc-gap__actions .wp-block-button__link {
		display: block;
		width: 100%;
		text-align: center;
	}

	/* The two figures stack, each one full width. */
	.ymc-gap .ymc-gap__stats {
		flex-direction: column;
		gap: 34px;
	}

	.ymc-gap .ymc-stat {
		width: 100%;
	}

	/* Footer runs two columns, with About and the signup full width. */

	.ymc-footer .ymc-footer__grid.wp-block-group {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 28px 20px;
	}

	.ymc-footer .ymc-footer__col--visit,
	.ymc-footer .ymc-footer__col--links,
	.ymc-footer .ymc-footer__col--campaign {
		min-width: 0;
	}

	.ymc-footer .ymc-footer__col--about,
	.ymc-footer .ymc-footer__col--signup {
		grid-column: 1 / -1;
		min-width: 0;
	}

	/* Signup input and button run the full width. */
	.ymc-signup {
		width: 100%;
	}

	.ymc-signup__input,
	.ymc-signup__button {
		box-sizing: border-box;
		width: 100%;
		max-width: 100%;
		align-self: stretch;
		text-align: center;
	}

	/* Consistent gutters down the whole footer. */
	.ymc-footer .ymc-footer__grid.wp-block-group {
		padding: 40px 18px 26px;
	}

	.ymc-footer__legal {
		padding: 18px 18px 32px;
	}

	/* Campaign bar: label above the message. */

	.ymc-campaign__message {
		gap: 10px;
	}
}

/* --- Section gutters ---
   These sections set their own side padding, so WordPress's global padding
   is replaced rather than added to. Sections whose inner element carries the
   padding get none here. */

.ymc-header.has-global-padding,
.ymc-campaign.has-global-padding,
.ymc-footer.has-global-padding {
	padding-right: 0;
	padding-left: 0;
}

.ymc-hero-wrap.has-global-padding,
.ymc-built.has-global-padding,
.ymc-halves.has-global-padding,
.ymc-highlights.has-global-padding,
.ymc-gap.has-global-padding,
.ymc-quote.has-global-padding,
.ymc-visit.has-global-padding {
	padding-right: clamp(18px, 3vw, 30px);
	padding-left: clamp(18px, 3vw, 30px);
}

/* --- Mobile header and menu ---
   The navigation renders as a plain list; the panel below is ours. */

.ymc-menu-toggle {
	display: none;
	align-items: center;
	gap: 8px;
	min-height: 48px;
	margin-left: auto;
	padding: 0 14px;
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: 8px;
	background: #fff;
	color: var(--wp--preset--color--purple);
	font-family: inherit;
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
}

.ymc-menu-toggle__icon,
.ymc-menu-toggle__icon::before,
.ymc-menu-toggle__icon::after {
	display: block;
	width: 15px;
	height: 1.8px;
	background: currentColor;
	content: "";
}

.ymc-menu-toggle__icon::before {
	transform: translateY(-5px);
}

.ymc-menu-toggle__icon::after {
	transform: translateY(3.2px);
}

@media (min-width: 1250px) {

	/* Desktop keeps the inline menu and the bar buttons. */
	.ymc-nav .ymc-nav__give,
	.ymc-nav .ymc-nav__contact {
		display: none;
	}
}

@media (max-width: 1249px) {

	.ymc-menu-toggle {
		display: inline-flex;
	}

	.ymc-header .ymc-header__actions {
		display: none;
	}

	/* Panel drops under the header bar. */
	.ymc-header nav.ymc-nav {
		position: absolute;
		top: 100%;
		right: 0;
		left: 0;
		z-index: 60;
		display: none;
		max-height: calc(100vh - 68px);
		padding: 8px 18px 22px;
		overflow-y: auto;
		background: #fff;
		border-top: 1px solid var(--wp--preset--color--hairline);
		box-shadow: 0 12px 24px rgba(38, 34, 98, 0.1);
	}

	.ymc-header.is-menu-open .ymc-nav {
		display: block;
	}

	.ymc-header nav.ymc-nav,
	.ymc-header nav.ymc-nav * {
		box-sizing: border-box;
	}

	.ymc-header nav.ymc-nav .wp-block-navigation__container {
		display: block;
		width: 100%;
		max-width: 100%;
		gap: 0;
	}

	/* Row: link on the left, chevron button on the right, submenu below. */
	.ymc-header nav.ymc-nav .wp-block-navigation-item {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		width: 100%;
		box-sizing: border-box;
	}

	.ymc-header nav.ymc-nav .wp-block-navigation-item__content {
		flex: 1 1 auto;
		min-width: 0;
	}

	.ymc-header nav.ymc-nav .wp-block-navigation__submenu-container {
		flex: 0 0 100%;
	}

	/* Rows: label left, chevron right, divider below. */
	.ymc-header nav.ymc-nav > ul > .wp-block-navigation-item {
		border-bottom: 1px solid var(--wp--preset--color--hairline);
	}

	.ymc-header nav.ymc-nav .wp-block-navigation-item__content {
		display: flex;
		align-items: center;
		min-height: 44px;
		padding: 11px 2px;
		color: var(--wp--preset--color--purple);
		font-size: 15px;
		font-weight: 600;
	}

	.ymc-header nav.ymc-nav .wp-block-navigation__submenu-icon {
		display: flex;
		align-items: center;
		justify-content: flex-end;
		width: 28px;
		height: 44px;
		flex: 0 0 auto;
		margin: 0;
		padding: 0;
		border: 0;
		background: transparent;
		color: inherit;
		cursor: pointer;
	}

	/* Core's caret is a filled triangle; the design uses a thin chevron. */
	.ymc-header nav.ymc-nav .wp-block-navigation__submenu-icon svg {
		display: none;
	}

	.ymc-header nav.ymc-nav .wp-block-navigation__submenu-icon::after {
		width: 12px;
		height: 12px;
		background-color: currentColor;
		opacity: 0.55;
		-webkit-mask: var(--ymc-chevron) center / contain no-repeat;
		mask: var(--ymc-chevron) center / contain no-repeat;
		transform: rotate(-90deg);
		transition: transform 200ms ease;
		content: "";
	}

	/* Submenus stay closed until their row is tapped. */
	.ymc-header nav.ymc-nav .wp-block-navigation__submenu-container {
		position: static;
		display: none;
		width: 100%;
		min-width: 0;
		margin: 0;
		padding: 0 0 6px 18px;
		border: 0;
		border-radius: 0;
		box-shadow: none;
		opacity: 1;
		visibility: visible;
	}

	.ymc-header nav.ymc-nav .wp-block-navigation-item.is-open > .wp-block-navigation__submenu-container {
		display: block;
	}

	.ymc-header nav.ymc-nav .wp-block-navigation-item.is-open > .wp-block-navigation__submenu-icon::after {
		transform: rotate(90deg);
	}

	.ymc-header nav.ymc-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
		min-height: 44px;
		padding: 12px 2px;
		color: var(--wp--preset--color--muted);
		font-size: 14px;
		font-weight: 500;
	}

	/* Give and Contact Us as stacked buttons at the foot of the panel. */
	.ymc-header nav.ymc-nav > ul > .ymc-nav__give,
	.ymc-header nav.ymc-nav > ul > .ymc-nav__contact {
		border-bottom: 0;
	}

	.ymc-header nav.ymc-nav .ymc-nav__give .wp-block-navigation-item__content,
	.ymc-header nav.ymc-nav .ymc-nav__contact .wp-block-navigation-item__content {
		display: block;
		width: 100%;
		min-height: 0;
		padding: 14px 16px;
		border-radius: 8px;
		font-size: 15px;
		font-weight: 700;
		text-align: center;
	}

	.ymc-header nav.ymc-nav .ymc-nav__give .wp-block-navigation-item__content {
		margin-top: 14px;
		background: var(--wp--preset--color--purple);
		color: #fff;
	}

	.ymc-header nav.ymc-nav .ymc-nav__contact .wp-block-navigation-item__content {
		margin-top: 10px;
		border: 1px solid var(--wp--preset--color--hairline);
		color: var(--wp--preset--color--purple);
	}
}

/* --- Campaign bar on narrow screens ---
   Label, message and link stack, all aligned left. */

@media (max-width: 760px) {

	.ymc-campaign__inner a {
		flex-direction: column;
		align-items: flex-start;
		gap: 12px;
		padding: 16px 18px;
	}

	.ymc-campaign__label {
		margin-right: 0;
	}

	.ymc-campaign__text {
		flex: 0 1 auto;
	}
}

/* --- Hero on tablets ---
   Below the desktop layout the copy fills the card rather than sitting in
   the left half, and the wash runs bottom to top. */

@media (max-width: 1024px) {

	.ymc-hero .ymc-hero__copy {
		max-width: none;
		padding: 26px 22px 30px;
	}

	.ymc-hero::before {
		background: linear-gradient(
			to top,
			rgba(38, 34, 98, 0.95) 0%,
			rgba(38, 34, 98, 0.82) 55%,
			rgba(38, 34, 98, 0.5) 100%
		);
	}

	.ymc-hero__title {
		font-size: clamp(30px, 5.2vw, 40px);
	}

	.ymc-hero__text {
		max-width: none;
		font-size: 16px;
	}

	.ymc-hero__actions {
		flex-direction: column;
		align-items: flex-start;
		margin-top: 26px;
	}

	.ymc-hero__actions .wp-block-button {
		flex: 0 0 auto;
		width: auto;
	}

	.ymc-hero {
		min-height: 0;
	}
}

/* Mosaic pagination, shown only where the tiles scroll. */

.ymc-built__dots {
	display: none;
	gap: 8px;
	justify-content: center;
	margin: 16px 0 0;
}

.ymc-built__dot {
	width: 8px;
	height: 8px;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: #c9c9c9;
	cursor: pointer;
	transition: background 200ms ease;
}

.ymc-built__dot[aria-current="true"] {
	background: var(--wp--preset--color--gold);
}

@media (max-width: 760px) {

	.ymc-built__dots:not(:empty) {
		display: flex;
	}
}

/* --- Two halves on narrow screens ---
   Photo, then its text, then the next photo. Kept last in the file so
   nothing later can outrank it. */

@media (max-width: 760px) {

	.ymc-halves .ymc-halves__panel.wp-block-group {
		display: grid;
		grid-template-columns: 100%;
		grid-template-rows: repeat(8, auto);
	}

	.ymc-halves .ymc-halves__strip.wp-block-group,
	.ymc-halves .ymc-halves__rows.wp-block-group {
		display: contents;
	}

	.ymc-halves .ymc-halves__panel figure.ymc-halves__shot {
		position: relative;
		grid-column: 1;
		height: 220px;
		min-height: 0;
	}

	.ymc-halves .ymc-halves__panel figure.ymc-halves__shot:nth-of-type(1) {
		grid-row: 1;
	}

	.ymc-halves .ymc-halves__panel figure.ymc-halves__shot:nth-of-type(2) {
		grid-row: 3;
	}

	.ymc-halves .ymc-halves__panel figure.ymc-halves__shot:nth-of-type(3) {
		grid-row: 5;
	}

	.ymc-halves .ymc-halves__panel figure.ymc-halves__shot:nth-of-type(4) {
		grid-row: 7;
	}

	.ymc-halves .ymc-halves__panel .ymc-row {
		grid-column: 1;
		border-left: 0;
	}

	.ymc-halves .ymc-halves__panel .ymc-row:nth-of-type(1) {
		grid-row: 2;
	}

	.ymc-halves .ymc-halves__panel .ymc-row:nth-of-type(2) {
		grid-row: 4;
	}

	.ymc-halves .ymc-halves__panel .ymc-row:nth-of-type(3) {
		grid-row: 6;
	}

	.ymc-halves .ymc-halves__panel .ymc-row:nth-of-type(4) {
		grid-row: 8;
	}

	/* The caption shares the last photograph's cell and sits at its foot. */
	.ymc-halves .ymc-halves__panel .ymc-halves__stripcap {
		position: relative;
		grid-column: 1;
		grid-row: 7;
		align-self: end;
		z-index: 2;
		margin: 0;
	}
}

/* --- The tuition gap --- */

.ymc-gap {
	padding: clamp(56px, 7vw, 96px) clamp(18px, 3vw, 30px);
	background: #14122e;
	text-align: center;
}

.ymc-gap > *,
.ymc-gap__stats > * {
	margin-block: 0;
}

.ymc-gap__eyebrow {
	color: var(--wp--preset--color--gold);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

.ymc-gap__title {
	margin: 16px 0 18px;
	color: #fff;
	font-size: clamp(26px, 3.8vw, 40px);
	font-weight: 400;
	line-height: 1.15;
	text-wrap: pretty;
}

.ymc-gap__lede {
	max-width: 52ch;
	margin: 0 auto;
	color: var(--wp--preset--color--lilac);
	font-size: 16px;
	font-weight: 600;
	line-height: 1.5;
}

.ymc-gap__stats {
	display: flex;
	gap: clamp(30px, 6vw, 70px);
	justify-content: center;
	align-items: flex-start;
	flex-wrap: wrap;
	margin: 36px 0 34px;
}

.ymc-stat > * {
	margin-block: 0;
}

.ymc-stat__value {
	color: #fff;
	font-size: clamp(34px, 4.4vw, 46px);
	font-weight: 700;
	line-height: 1;
}

.ymc-stat--gold .ymc-stat__value {
	color: var(--wp--preset--color--gold);
}

.ymc-stat__label {
	margin-top: 8px;
	color: rgba(255, 255, 255, 0.78);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.ymc-stat--gold .ymc-stat__label {
	color: rgba(255, 255, 255, 0.78);
}

.ymc-stat__note {
	margin-top: 10px;
	color: rgba(255, 255, 255, 0.62);
	font-size: 14px;
}

.ymc-gap__actions {
	gap: 14px;
	justify-content: center;
}

.ymc-gap__primary .wp-block-button__link {
	padding: 16px 28px;
	border-radius: 8px;
	background: #fff;
	color: var(--wp--preset--color--purple);
	font-size: 16px;
	font-weight: 700;
	transition: filter 200ms ease, transform 200ms ease;
}

.ymc-gap__primary .wp-block-button__link:hover {
	filter: brightness(0.95);
	transform: translateY(-1px);
	background: #fff;
	color: var(--wp--preset--color--purple);
}

.ymc-gap__secondary .wp-block-button__link {
	padding: 16px 28px;
	border: 1px solid rgba(255, 255, 255, 0.55);
	border-radius: 8px;
	background: transparent;
	color: #fff;
	font-size: 16px;
	font-weight: 700;
	transition: border-color 200ms ease, color 200ms ease;
}

.ymc-gap__secondary .wp-block-button__link:hover {
	border-color: var(--wp--preset--color--gold);
	background: transparent;
	color: var(--wp--preset--color--gold);
}

/* --- Hanhalla quote --- */

.ymc-quote {
	padding: clamp(48px, 6vw, 84px) clamp(18px, 3vw, 30px);
	background: var(--wp--preset--color--surface);
	border-bottom: 1px solid var(--wp--preset--color--hairline);
	text-align: center;
}

.ymc-quote > * {
	margin-block: 0;
}

.ymc-quote__mark {
	margin: 0 auto 26px;
}

.ymc-quote__mark img {
	display: block;
	height: 58px;
	width: auto;
	margin: 0 auto;
}

.ymc-quote__text {
	max-width: 58ch;
	margin: 0 auto;
	color: var(--wp--preset--color--purple);
	font-size: clamp(19px, 2.4vw, 24px);
	font-weight: 600;
	line-height: 1.4;
	text-wrap: pretty;
}

.ymc-quote__who {
	margin-top: 24px;
	color: var(--wp--preset--color--ink-soft);
	font-size: 15px;
	font-weight: 600;
}

.ymc-quote__where {
	margin-top: 4px;
	color: var(--wp--preset--color--ink-faint);
	font-size: 13px;
}

/* --- Schedule a visit --- */

.ymc-visit {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 360px;
	overflow: hidden;
	background: var(--wp--preset--color--purple);
}

.ymc-visit figure.ymc-visit__media {
	position: absolute;
	inset: 0;
	z-index: 0;
	margin: 0;
}

.ymc-visit figure.ymc-visit__media img {
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	object-position: 50% 30%;
}

.ymc-visit::before {
	position: absolute;
	inset: 0;
	z-index: 1;
	background: rgba(38, 34, 98, 0.78);
	content: "";
}

.ymc-visit__copy {
	position: relative;
	z-index: 2;
	width: 100%;
	max-width: 1140px;
	margin: 0 auto;
	padding: clamp(48px, 6vw, 80px) clamp(18px, 3vw, 30px);
}

.ymc-visit__title {
	max-width: 34ch;
	margin: 0 0 22px;
	color: #fff;
	font-size: clamp(24px, 3vw, 32px);
	font-weight: 400;
	line-height: 1.2;
}

.ymc-visit__cta .wp-block-button__link {
	padding: 16px 30px;
	border-radius: 8px;
	background: #fff;
	color: var(--wp--preset--color--purple);
	font-size: 16px;
	font-weight: 700;
	transition: filter 200ms ease, transform 200ms ease;
}

.ymc-visit__cta .wp-block-button__link:hover {
	filter: brightness(0.95);
	transform: translateY(-1px);
	background: #fff;
	color: var(--wp--preset--color--purple);
}

/* --- Section spacing ---
   Each band carries its own vertical padding, so the default gap between
   top-level blocks would show the page background between them. */

.ymc-hero-wrap,
.ymc-built,
.ymc-halves,
.ymc-highlights,
.ymc-gap,
.ymc-quote,
.ymc-visit {
	margin-block: 0;
}

.wp-block-post-content > * {
	margin-block: 0;
}

/* The header and campaign bar sit flush inside the sticky wrapper. */

.ymc-headerbar > *,
.ymc-header,
.ymc-campaign {
	margin-block: 0;
}

/* Campaign links in the footer. */

.ymc-footer__campaignlinks {
	line-height: 2;
}

.ymc-footer__campaignlinks a {
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* --- Stacking inside the sticky bar ---
   The header must sit above the campaign bar so its dropdown panels can
   cover it, at every width. */

.ymc-headerbar .ymc-header {
	position: relative;
	z-index: 50;
}

.ymc-headerbar .ymc-campaign {
	position: relative;
	z-index: 1;
}

.ymc-nav .wp-block-navigation__submenu-container {
	z-index: 60;
}

/* --- Campaign popup --- */

.ymc-popup {
	position: fixed;
	inset: 0;
	z-index: 90;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 20px;
}

.ymc-popup[hidden] {
	display: none;
}

.ymc-popup__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(15, 10, 35, 0.65);
}

.ymc-popup__box {
	position: relative;
	display: grid;
	grid-template-columns: 1fr 1fr;
	width: 100%;
	max-width: 860px;
	max-height: calc(100vh - 40px);
	overflow: auto;
	border-radius: 16px;
	background: var(--wp--preset--color--purple-deep);
	box-shadow: 0 30px 70px rgba(0, 0, 0, 0.45);
}

.ymc-popup__close {
	position: absolute;
	top: 14px;
	right: 14px;
	z-index: 2;
	width: 34px;
	height: 34px;
	border: 0;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.14);
	color: #fff;
	cursor: pointer;
}

.ymc-popup__close::before,
.ymc-popup__close::after {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 13px;
	height: 1.6px;
	background: currentColor;
	content: "";
}

.ymc-popup__close::before {
	transform: translate(-50%, -50%) rotate(45deg);
}

.ymc-popup__close::after {
	transform: translate(-50%, -50%) rotate(-45deg);
}

.ymc-popup__close:hover {
	background: rgba(255, 255, 255, 0.24);
}

.ymc-popup__media {
	position: relative;
	min-height: 340px;
}

.ymc-popup__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 50% 32%;
}

.ymc-popup__media::after {
	position: absolute;
	inset: 0;
	background: linear-gradient(115deg, rgba(36, 19, 85, 0.05) 0%, rgba(36, 19, 85, 0.55) 100%);
	content: "";
}

.ymc-popup__copy {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 36px 34px;
	color: #fff;
}

.ymc-popup__label {
	align-self: flex-start;
	padding: 6px 14px;
	border-radius: 20px;
	background: rgba(255, 186, 0, 0.16);
	color: var(--wp--preset--color--gold);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.ymc-popup__title {
	margin: 16px 0 0;
	font-size: clamp(22px, 2.6vw, 28px);
	font-weight: 400;
	line-height: 1.15;
}

.ymc-popup__text {
	margin: 12px 0 0;
	color: rgba(255, 255, 255, 0.82);
	font-size: 14.5px;
	line-height: 1.6;
}

.ymc-popup__goal {
	display: flex;
	align-items: baseline;
	gap: 8px;
	margin: 22px 0 0;
}

.ymc-popup__amount {
	color: var(--wp--preset--color--gold);
	font-size: 32px;
	font-weight: 700;
}

.ymc-popup__goallabel {
	color: rgba(255, 255, 255, 0.65);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.ymc-popup__points {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin: 20px 0 0;
	padding: 0;
	list-style: none;
}

.ymc-popup__points li {
	position: relative;
	padding-left: 20px;
	color: rgba(255, 255, 255, 0.85);
	font-size: 13.5px;
	line-height: 1.5;
}

.ymc-popup__points li::before {
	position: absolute;
	top: 4px;
	left: 0;
	width: 11px;
	height: 11px;
	background-color: var(--wp--preset--color--gold);
	-webkit-mask: var(--ymc-check) center / contain no-repeat;
	mask: var(--ymc-check) center / contain no-repeat;
	content: "";
}

.ymc-popup__actions {
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
	margin: 26px 0 0;
}

.ymc-popup__give {
	padding: 14px 26px;
	border-radius: 8px;
	background: var(--wp--preset--color--gold);
	color: var(--wp--preset--color--purple-deep);
	font-size: 14px;
	font-weight: 700;
	text-decoration: none;
}

.ymc-popup__later {
	padding: 14px 22px;
	border: 1px solid rgba(255, 255, 255, 0.35);
	border-radius: 8px;
	background: transparent;
	color: #fff;
	font-family: inherit;
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
}

.ymc-popup__later:hover {
	border-color: var(--wp--preset--color--gold);
	color: var(--wp--preset--color--gold);
}

@media (max-width: 760px) {

	.ymc-popup__box {
		grid-template-columns: 1fr;
	}

	.ymc-popup__media {
		min-height: 160px;
	}

	.ymc-popup__copy {
		padding: 24px 20px 28px;
	}

	.ymc-popup__actions .ymc-popup__give,
	.ymc-popup__actions .ymc-popup__later {
		flex: 1 1 100%;
		text-align: center;
	}
}
