/**
 * YMC theme styles.
 *
 * One stylesheet for the whole site, loaded on the front end and in the
 * editor. Ordered so tokens come first, then site furniture, then the
 * page sections, then responsive rules.
 *
 * 1.  Design tokens
 * 2.  Base
 * 3.  Header, campaign bar and navigation
 * 4.  Footer
 * 5.  Home hero
 * 6.  What YMC is built on
 * 7.  A day here has two halves
 * 8.  Weekly highlights
 * 9.  The tuition gap
 * 10. Hanhalla quote
 * 11. Schedule a visit
 * 12. Inner page hero
 * 13. Campaign popup
 * 14. Layout guards and section spacing
 * 15. Responsive
 */

: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 {
	border-bottom-color: var(--wp--preset--color--purple);
	color: var(--wp--preset--color--purple);
}

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

/* 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--surface);
	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(5, 1fr);
	min-height: clamp(360px, 40vw, 560px);
	overflow: hidden;
}

.ymc-halves__rows {
	display: grid;
	grid-template-rows: repeat(5, 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(4) img {
	object-position: 50% 42%;
}

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

.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,
.ymc-pagehero-wrap.has-global-padding,
.ymc-pagelede.has-global-padding,
.ymc-values.has-global-padding,
.ymc-tracks.has-global-padding,
.ymc-curriculum-intro.has-global-padding,
.ymc-years.has-global-padding,
.ymc-credits.has-global-padding,
.ymc-calendar.has-global-padding,
.ymc-dates.has-global-padding,
.ymc-apply.has-global-padding,
.ymc-admissions.has-global-padding,
.ymc-schedule.has-global-padding,
.ymc-askband.has-global-padding,
.ymc-contactband.has-global-padding,
.ymc-post.has-global-padding,
.ymc-archive.has-global-padding,
.ymc-visionintro.has-global-padding,
.ymc-points.has-global-padding,
.ymc-leaders.has-global-padding,
.ymc-faculty.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(10, 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 figure.ymc-halves__shot:nth-of-type(5) {
		grid-row: 9;
	}

	.ymc-halves .ymc-halves__panel .ymc-row:nth-of-type(5) {
		grid-row: 10;
	}
	.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,
.ymc-pagehero-wrap,
.ymc-pagelede,
.ymc-values,
.ymc-contactband,
.ymc-post,
.ymc-archive,
.ymc-visionintro,
.ymc-points,
.ymc-leaders,
.ymc-faculty {
	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;
}

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

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

.ymc-values .ymc-values__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
	gap: 20px;
	align-items: stretch;
}

.ymc-values .ymc-value {
	margin-block: 0;
	padding: 24px;
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: 20px;
	background: #fff;
}

.ymc-value__name {
	margin: 0 0 10px;
	color: var(--wp--preset--color--purple);
	font-size: 17px;
	font-weight: 600;
}

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

/* --- Vision introduction --- */

.ymc-visionintro {
	padding: clamp(44px, 5vw, 72px) clamp(18px, 3vw, 30px);
	background: #fff;
}

.ymc-visionintro .ymc-visionintro__grid {
	display: grid;
	grid-template-columns: 1.15fr 1fr;
	gap: clamp(30px, 4vw, 56px);
	align-items: start;
	margin-block: 0;
}

.ymc-visionintro__title {
	margin: 0 0 22px;
	color: var(--wp--preset--color--purple);
	font-size: clamp(24px, 3vw, 32px);
	font-weight: 400;
	line-height: 1.2;
	text-wrap: pretty;
}

.ymc-visionintro__copy p {
	margin: 0 0 16px;
	color: var(--wp--preset--color--ink-soft);
	font-size: 16px;
	line-height: 1.6;
}

.ymc-visionintro__copy p:last-child {
	margin-bottom: 0;
}

.ymc-visionintro figure.ymc-visionintro__media {
	margin: 0;
}

.ymc-visionintro figure.ymc-visionintro__media img {
	display: block;
	width: 100%;
	height: clamp(360px, 42vw, 560px);
	max-width: none;
	object-fit: cover;
	border-radius: 20px;
}

.ymc-visionintro .ymc-visionintro__figures {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(24px, 4vw, 48px);
	margin-top: 24px;
	padding-top: 24px;
	border-top: 1px solid var(--wp--preset--color--hairline);
}

.ymc-figure {
	margin-block: 0;
}

.ymc-figure__value {
	margin: 0 0 4px;
	color: var(--wp--preset--color--purple);
	font-size: clamp(28px, 3.4vw, 38px);
	font-weight: 700;
	line-height: 1;
}

.ymc-figure__value--muted {
	color: var(--wp--preset--color--ink-faint);
}

.ymc-figure__note {
	margin: 0;
	color: var(--wp--preset--color--ink-faint);
	font-size: 13px;
	line-height: 1.4;
}

/* Font Awesome 5 Free, solid. Self-hosted, only the icons this theme uses. */

@font-face {
	font-family: "Font Awesome 5 Free";
	font-style: normal;
	font-weight: 900;
	font-display: block;
	src: url("../fonts/fontawesome/fa-solid-900.woff2") format("woff2");
}

/* --- Vision points --- */

.ymc-points {
	padding: clamp(44px, 5vw, 72px) clamp(18px, 3vw, 30px);
	background: #fff;
	border-top: 1px solid var(--wp--preset--color--hairline);
}

.ymc-points__eyebrow {
	margin: 0 0 8px;
	color: var(--wp--preset--color--gold);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.ymc-points__title {
	margin: 0 0 clamp(36px, 4.6vw, 52px);
	color: var(--wp--preset--color--purple);
	font-size: clamp(22px, 2.8vw, 28px);
	font-weight: 400;
}

.ymc-points .ymc-points__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(18px, 2.2vw, 24px);
	margin-block: 0;
}

.ymc-points .ymc-point {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 18px;
	margin-block: 0;
	padding: clamp(28px, 3vw, 34px) clamp(18px, 2vw, 22px);
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: 16px;
	background: var(--wp--preset--color--surface);
	text-align: center;
	transition: box-shadow 200ms ease, transform 200ms ease;
}

.ymc-points .ymc-point:hover {
	box-shadow: 0 4px 18px rgba(38, 34, 98, 0.14);
	transform: translateY(-2px);
}

/* Circle with the Font Awesome glyph inside it. */
.ymc-point::before {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	flex-shrink: 0;
	border-radius: 999px;
	background-color: rgba(38, 34, 98, 0.08);
	content: "";
}

.ymc-point::after {
	position: absolute;
	top: clamp(28px, 3vw, 34px);
	margin-top: 17px;
	color: var(--wp--preset--color--purple);
	font-family: "Font Awesome 5 Free";
	font-size: 20px;
	font-weight: 900;
	line-height: 1;
	-webkit-font-smoothing: antialiased;
}

.ymc-point--rebbi::after     { content: "\f508"; }
.ymc-point--middos::after    { content: "\f684"; }
.ymc-point--idea::after      { content: "\f0eb"; }
.ymc-point--award::after     { content: "\f0a3"; }
.ymc-point--scroll::after    { content: "\f70e"; }
.ymc-point--map::after       { content: "\f5a0"; }
.ymc-point--family::after    { content: "\f500"; }
.ymc-point--ball::after      { content: "\f434"; }
.ymc-point--handshake::after { content: "\f2b5"; }


.ymc-point__text {
	margin: 0;
	color: var(--wp--preset--color--purple);
	font-size: 14.5px;
	font-weight: 600;
	line-height: 1.45;
}

@media (max-width: 860px) {

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

	.ymc-points .ymc-points__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 560px) {

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

/* --- Leadership --- */

.ymc-leaders {
	padding: clamp(44px, 5vw, 72px) clamp(18px, 3vw, 30px);
	background: #fff;
}

.ymc-leaders .ymc-leaders__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
	gap: clamp(24px, 3vw, 36px);
	margin-block: 0;
}

.ymc-leaders .ymc-leader {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 20px;
	margin-block: 0;
	padding: clamp(28px, 3.4vw, 40px);
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: 20px;
	background: var(--wp--preset--color--surface);
	text-align: center;
}

.ymc-leaders figure.ymc-leader__photo {
	width: 220px;
	margin: 0;
}

.ymc-leaders figure.ymc-leader__photo img {
	display: block;
	width: 220px;
	height: 220px;
	max-width: none;
	object-fit: cover;
	object-position: 50% 20%;
	border-radius: 14px;
}

.ymc-leader__name {
	margin: 0 0 4px;
	color: var(--wp--preset--color--purple);
	font-size: 26px;
	font-weight: 400;
}

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

.ymc-leaders .ymc-leader__bio {
	max-width: 56ch;
	margin-block: 0;
	text-align: left;
}

.ymc-leaders .ymc-leader__bio p {
	margin: 0 0 14px;
	color: var(--wp--preset--color--ink-soft);
	font-size: 15px;
	line-height: 1.6;
}

.ymc-leaders .ymc-leader__bio p:last-child {
	margin-bottom: 0;
}

/* --- Contact band --- */

.ymc-contactband {
	padding: clamp(40px, 5vw, 64px) clamp(18px, 3vw, 30px);
	background: var(--wp--preset--color--purple);
}

.ymc-contactband .ymc-contactband__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 30px;
	flex-wrap: wrap;
	margin-block: 0;
}

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

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

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

@media (max-width: 760px) {

	.ymc-contactband .ymc-contactband__inner {
		gap: 22px;
	}

	.ymc-contactband__cta,
	.ymc-contactband__cta .wp-block-button__link {
		width: 100%;
		text-align: center;
	}
}

/* --- 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;
	overflow: hidden;
}

.ymc-popup__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: right center;
	transform: scale(1.06);
	transform-origin: right top;
}

.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: 0;
		height: auto;
		aspect-ratio: 43 / 53;
	}

	.ymc-popup__media img {
		position: absolute;
		inset: 0;
	}

	.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;
	}
}

/* --- Inner page hero --- */

.ymc-pagehero-wrap {
	padding: clamp(16px, 2vw, 26px) clamp(16px, 3vw, 30px) clamp(24px, 3vw, 40px);
	background: #fff;
}

.ymc-pagehero {
	position: relative;
	display: flex;
	align-items: flex-end;
	min-height: clamp(260px, 26vw, 380px);
	overflow: hidden;
	border-radius: 20px;
	background: var(--wp--preset--color--purple);
}

.ymc-pagehero figure.ymc-pagehero__media {
	position: absolute;
	inset: 0;
	z-index: 0;
	margin: 0;
	opacity: 0.5;
}

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

/* Purple on the left fading to a warm edge, as in the design. */
.ymc-pagehero::before {
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(
		90deg,
		rgba(38, 34, 98, 0.92) 0%,
		rgba(38, 34, 98, 0.62) 55%,
		rgba(255, 186, 0, 0.35) 100%
	);
	content: "";
}

.ymc-pagehero__copy {
	position: relative;
	z-index: 2;
	width: 100%;
	max-width: clamp(320px, 64%, 820px);
	padding: clamp(26px, 4vw, 56px);
}

.ymc-pagehero__label {
	display: inline-flex;
	align-items: center;
	margin: 0;
	padding: 7px 14px;
	border-radius: 20px;
	background: rgba(255, 255, 255, 0.16);
	color: #fff;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.ymc-pagehero__title {
	margin: 18px 0 0;
	color: #fff;
	font-size: clamp(28px, 4.4vw, 46px);
	font-weight: 400;
	line-height: 1.05;
	text-wrap: pretty;
}

/* Standfirst under the hero. */

.ymc-pagelede {
	padding: clamp(24px, 2.6vw, 36px) clamp(18px, 3vw, 30px);
	background: #fff;
}

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

/* --- Faculty --- */

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

.ymc-faculty .ymc-faculty__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
	gap: clamp(20px, 2.4vw, 26px);
	align-items: stretch;
	margin-block: 0;
}

.ymc-faculty .ymc-person {
	display: flex;
	flex-direction: column;
	height: 100%;
	margin-block: 0;
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: 14px;
	overflow: hidden;
	background: #fff;
	transition: box-shadow 200ms ease;
}

.ymc-faculty .ymc-person:hover {
	box-shadow: 0 4px 18px rgba(38, 34, 98, 0.14);
}

.ymc-faculty figure.ymc-person__photo {
	height: 280px;
	flex-shrink: 0;
	margin: 0;
	background: var(--wp--preset--color--hairline);
}

.ymc-faculty figure.ymc-person__photo img {
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	object-position: center top;
}

.ymc-faculty .ymc-person__copy {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 8px;
	margin-block: 0;
	padding: 20px;
}

.ymc-person__name {
	margin: 0;
	color: var(--wp--preset--color--purple);
	font-size: 18px;
	font-weight: 600;
	line-height: 1.25;
}

/* Names, roles and emails run to one or two lines. Reserving the space
   keeps the More divider at the same level across a row of cards. */
.ymc-person__name {
	min-height: 2.5em;
}

.ymc-person__title {
	margin: 0;
	min-height: 2.9em;
	color: var(--wp--preset--color--ink-faint);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

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

.ymc-person__email {
	margin: 0;
	min-height: 3.1em;
	font-size: 13px;
	font-weight: 600;
	word-break: break-word;
}

/* Biography sits behind a More toggle, as in the design.
   Closed, it rests at the foot of the card. Open, it moves up to sit
   directly under the email so the expanded cards line up. */

.ymc-faculty .ymc-person__more {
	margin: auto 0 0;
	padding-top: 14px;
	border-top: 1px solid var(--wp--preset--color--hairline);
}

.ymc-faculty .ymc-person__more[open] {
	margin-top: 0;
}

.ymc-faculty .ymc-person__more summary {
	display: flex;
	align-items: center;
	gap: 8px;
	color: var(--wp--preset--color--purple);
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
	list-style: none;
}

.ymc-faculty .ymc-person__more summary::-webkit-details-marker {
	display: none;
}

.ymc-faculty .ymc-person__more summary::before {
	width: 11px;
	height: 11px;
	background-color: currentColor;
	-webkit-mask: var(--ymc-chevron) center / contain no-repeat;
	mask: var(--ymc-chevron) center / contain no-repeat;
	transform: rotate(180deg);
	transition: transform 200ms ease;
	content: "";
}

/* 270deg is the same angle as -90deg, but keeps the sweep to a quarter turn. */
.ymc-faculty .ymc-person__more[open] summary::before {
	transform: rotate(270deg);
}

.ymc-faculty .ymc-person__more .ymc-person__bio {
	margin-top: 12px;
}

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

.ymc-person__email a:hover {
	text-decoration: underline;
}

/* --- Faculty on narrow screens --- */

@media (max-width: 760px) {

	/* Cards become a swipeable row rather than a long stack. */
	.ymc-faculty .ymc-faculty__grid {
		display: flex;
		flex-wrap: nowrap;
		gap: 14px;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		scrollbar-width: none;
		padding-bottom: 4px;
	}

	.ymc-faculty .ymc-faculty__grid::-webkit-scrollbar {
		display: none;
	}

	.ymc-faculty .ymc-person {
		flex: 0 0 84%;
		scroll-snap-align: center;
	}

	.ymc-faculty figure.ymc-person__photo {
		height: auto;
	}

	.ymc-faculty figure.ymc-person__photo img {
		height: auto;
		aspect-ratio: 1;
	}
}

/* --- Weekly Highlights issues --- */

.ymc-highlights .ymc-issues {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(20px, 2.6vw, 30px);
	margin-block: 0;
}

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

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

.ymc-highlights figure.ymc-issue__media {
	height: 220px;
	flex-shrink: 0;
	margin: 0;
	background: var(--wp--preset--color--hairline);
}

.ymc-highlights figure.ymc-issue__media img {
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	object-position: 50% 40%;
}

.ymc-highlights .ymc-issue__body {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin-block: 0;
	padding: 24px;
}

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

.ymc-issue__title {
	margin: 0;
	font-size: 20px;
	font-weight: 400;
	line-height: 1.2;
}

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

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

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

.ymc-issue__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: "";
}

@media (max-width: 760px) {

	/* The issues swipe sideways rather than stacking, as the faculty cards do. */
	.ymc-highlights .ymc-issues {
		display: flex;
		flex-wrap: nowrap;
		gap: 14px;
		overflow-x: auto;
		padding-bottom: 4px;
		scroll-snap-type: x mandatory;
		scrollbar-width: none;
	}

	.ymc-highlights .ymc-issues::-webkit-scrollbar {
		display: none;
	}

	.ymc-highlights .ymc-issue {
		flex: 0 0 84%;
		scroll-snap-align: center;
	}

	.ymc-highlights figure.ymc-issue__media {
		height: 190px;
	}
}

/* --- Academics --- */

/* Anchored sections stop below the header rather than under it. */
html {
	scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {

	html {
		scroll-behavior: auto;
	}
}

[id="curriculum"],
[id="highlights"] {
	scroll-margin-top: 96px;
}

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

.ymc-tracks .ymc-tracks__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap: clamp(28px, 4vw, 50px);
	margin-block: 0;
}

.ymc-tracks .ymc-track {
	margin-block: 0;
	padding: clamp(24px, 3vw, 36px);
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: 20px;
	background: #fff;
}

.ymc-tracks .ymc-track__title {
	margin: 0 0 14px;
	color: var(--wp--preset--color--purple);
	font-size: 22px;
	font-weight: 600;
	line-height: 1.25;
}

.ymc-tracks .ymc-track__lede {
	margin: 0 0 20px;
	color: var(--wp--preset--color--ink-soft);
	font-size: 16px;
	line-height: 1.55;
}

.ymc-tracks .ymc-track__points {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ymc-tracks .ymc-track__points li {
	position: relative;
	padding-left: 26px;
	color: var(--wp--preset--color--ink-soft);
	font-size: 15px;
	line-height: 1.5;
}

/* Gold tick, drawn rather than loaded, so no icon font is needed. */
.ymc-tracks .ymc-track__points li::before {
	position: absolute;
	top: 4px;
	left: 2px;
	width: 6px;
	height: 11px;
	border-right: 2px solid var(--wp--preset--color--gold);
	border-bottom: 2px solid var(--wp--preset--color--gold);
	content: "";
	transform: rotate(45deg);
}

.ymc-curriculum-intro {
	padding: clamp(44px, 5vw, 72px) clamp(18px, 3vw, 30px) 0;
	background: #fff;
	text-align: center;
}

.ymc-curriculum-intro > * {
	max-width: 660px;
	margin-inline: auto;
}

.ymc-curriculum__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-curriculum__lede {
	margin: 0;
	color: var(--wp--preset--color--ink-soft);
	font-size: 17px;
	line-height: 1.5;
	text-wrap: pretty;
}

.ymc-years {
	margin-top: clamp(36px, 4vw, 56px);
	padding: clamp(40px, 5vw, 64px) clamp(16px, 3vw, 30px);
	background: var(--wp--preset--color--gold-tint);
}

.ymc-years .ymc-years__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
	gap: 22px;
	margin-block: 0;
}

.ymc-years .ymc-year {
	margin-block: 0;
	padding: 24px 22px;
	border: 1px solid var(--wp--preset--color--gold-soft);
	border-radius: 20px;
	background: #fff;
}

.ymc-years .ymc-year__name {
	margin: 0 0 4px;
	padding-bottom: 14px;
	border-bottom: 2px solid var(--wp--preset--color--gold);
	color: var(--wp--preset--color--purple);
	font-size: 19px;
	font-weight: 600;
	text-align: center;
}

.ymc-years .ymc-course {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	margin: 0;
	padding: 9px 0;
	border-bottom: 1px solid var(--wp--preset--color--hairline);
}

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

.ymc-years .ymc-course__credit {
	color: var(--wp--preset--color--ink-faint);
	font-size: 13px;
	font-weight: 600;
	white-space: nowrap;
}

.ymc-credits {
	padding: clamp(40px, 5vw, 64px) clamp(18px, 3vw, 30px) clamp(40px, 5vw, 64px);
	background: #fff;
}

.ymc-credits__note {
	max-width: 70ch;
	margin: 0 0 26px;
	color: var(--wp--preset--color--ink-soft);
	font-size: 16px;
	line-height: 1.6;
}

.ymc-credits__soon {
	margin: 0;
}

.ymc-credits__soon a {
	display: inline-block;
	padding: 15px 28px;
	border-radius: 8px;
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--purple);
	font-size: 16px;
	font-weight: 700;
	text-decoration: none;
}

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

.ymc-askband {
	padding: clamp(40px, 5vw, 64px) clamp(18px, 3vw, 30px);
	background: var(--wp--preset--color--purple);
}

.ymc-askband .ymc-askband__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 30px;
	margin-block: 0;
}

.ymc-askband .ymc-askband__title {
	max-width: 34ch;
	margin: 0;
	color: #fff;
	font-size: clamp(22px, 2.6vw, 28px);
	font-weight: 400;
	line-height: 1.2;
}

.ymc-askband .ymc-askband__buttons {
	gap: 14px;
}

.ymc-askband .ymc-askband__cta a.wp-block-button__link {
	padding: 16px 28px;
	border-radius: 8px;
	background: #fff;
	color: var(--wp--preset--color--purple);
	font-size: 16px;
	font-weight: 700;
}

.ymc-askband .ymc-askband__cta--gold a.wp-block-button__link {
	background: var(--wp--preset--color--gold);
}

.ymc-askband .ymc-askband__cta a.wp-block-button__link:hover {
	filter: brightness(0.94);
}

@media (max-width: 760px) {

	.ymc-askband .ymc-askband__inner {
		gap: 20px;
	}

	.ymc-askband .ymc-askband__cta a.wp-block-button__link {
		display: block;
		text-align: center;
	}
}

/* --- Admissions --- */

.ymc-apply {
	padding: clamp(24px, 2.6vw, 36px) clamp(18px, 3vw, 30px) 0;
	background: #fff;
}

.ymc-apply .ymc-apply__title {
	margin: 0 0 8px;
	color: var(--wp--preset--color--purple);
	font-size: clamp(24px, 3vw, 32px);
	font-weight: 400;
	line-height: 1.15;
}

.ymc-apply .ymc-apply__opens {
	margin: 0 0 30px;
	color: #8a6400;
	font-size: 16px;
	font-weight: 600;
}

/* Six steps sit shoulder to shoulder, each under its own purple rule. */
.ymc-apply .ymc-apply__steps {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 0;
	margin-block: 0;
}

.ymc-apply .ymc-step {
	margin-block: 0;
	padding: 24px 26px;
	border-top: 2px solid var(--wp--preset--color--purple);
	background: #fff;
}

.ymc-apply .ymc-step--tinted {
	background: var(--wp--preset--color--gold-tint);
}

.ymc-apply .ymc-step__title {
	margin: 0 0 10px;
	color: var(--wp--preset--color--purple);
	font-size: 19px;
	font-weight: 700;
}

.ymc-apply .ymc-step__title a {
	color: inherit;
	text-decoration: none;
	border-bottom: 2px solid var(--wp--preset--color--gold);
}

.ymc-apply .ymc-step__title a:hover {
	color: var(--wp--preset--color--violet);
}

.ymc-apply .ymc-step__body {
	margin: 0;
	color: var(--wp--preset--color--ink-soft);
	font-size: 15px;
	line-height: 1.55;
}

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

.ymc-admissions .ymc-admissions__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	align-items: start;
	gap: clamp(30px, 4vw, 56px);
	margin-block: 0;
}

.ymc-admissions .ymc-calcard {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 16px;
	margin-block: 0;
	padding: clamp(28px, 3.4vw, 40px);
	border-radius: 20px;
	background: var(--wp--preset--color--purple);
}

.ymc-admissions .ymc-calcard__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	margin: 0;
	border-radius: 12px;
	background: rgba(255, 255, 255, 0.14);
}

/* Font Awesome's calendar-alt, the glyph the design calls for. */
.ymc-admissions .ymc-calcard__icon::before {
	color: var(--wp--preset--color--gold);
	content: "\f073";
	font-family: "Font Awesome 5 Free";
	font-size: 19px;
	font-weight: 900;
	line-height: 1;
	-webkit-font-smoothing: antialiased;
}

.ymc-admissions .ymc-calcard__title {
	margin: 0;
	color: #fff;
	font-size: clamp(24px, 3vw, 30px);
	font-weight: 400;
	line-height: 1.15;
}

.ymc-admissions .ymc-calcard__body {
	margin: 0;
	color: var(--wp--preset--color--lilac);
	font-size: 15px;
	line-height: 1.6;
}

.ymc-admissions .ymc-calcard__cta {
	margin: 0;
}

.ymc-admissions .ymc-calcard__cta a {
	display: inline-block;
	padding: 14px 26px;
	border-radius: 8px;
	background: #fff;
	color: var(--wp--preset--color--purple);
	font-size: 15px;
	font-weight: 700;
	text-decoration: none;
}

.ymc-admissions .ymc-calcard__cta a:hover {
	filter: brightness(0.95);
}

.ymc-admissions .ymc-faqs__title {
	margin: 0 0 20px;
	color: var(--wp--preset--color--purple);
	font-size: clamp(24px, 3vw, 32px);
	font-weight: 400;
	line-height: 1.15;
}

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

.ymc-admissions .ymc-faq {
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: 20px;
	background: #fff;
}

.ymc-admissions .ymc-faq__q {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	min-height: 56px;
	padding: 16px 20px;
	color: var(--wp--preset--color--purple);
	font-size: 16px;
	font-weight: 600;
	list-style: none;
	cursor: pointer;
}

.ymc-admissions .ymc-faq__q::-webkit-details-marker {
	display: none;
}

/* A plus that becomes a minus once the answer is open. */
.ymc-admissions .ymc-faq__q::after {
	position: relative;
	flex: none;
	width: 13px;
	height: 13px;
	background:
		linear-gradient(var(--wp--preset--color--gold), var(--wp--preset--color--gold)) center / 13px 2px no-repeat,
		linear-gradient(var(--wp--preset--color--gold), var(--wp--preset--color--gold)) center / 2px 13px no-repeat;
	content: "";
	transition: transform 0.2s ease;
}

.ymc-admissions .ymc-faq[open] .ymc-faq__q::after {
	background:
		linear-gradient(var(--wp--preset--color--gold), var(--wp--preset--color--gold)) center / 13px 2px no-repeat;
	transform: rotate(180deg);
}

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

.ymc-admissions .ymc-faq__a {
	margin: 0;
	padding: 0 20px 20px;
	color: var(--wp--preset--color--ink-soft);
	font-size: 15px;
	line-height: 1.6;
}

@media (max-width: 600px) {

	.ymc-apply .ymc-step {
		padding: 20px;
	}
}

/* --- School calendar --- */

.ymc-calendar {
	padding: clamp(24px, 2.6vw, 36px) clamp(18px, 3vw, 30px) clamp(48px, 6vw, 80px);
	background: #fff;
}

/* The school day, which is the question most parents arrive with. */
.ymc-calendar .ymc-schooldays {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 4px 30px;
	margin: 0 0 clamp(30px, 4vw, 44px);
	padding: clamp(22px, 2.6vw, 30px);
	border-radius: 20px;
	background: var(--wp--preset--color--purple);
}

.ymc-calendar .ymc-schooldays__title {
	grid-column: 1 / -1;
	margin: 0 0 8px;
	color: var(--wp--preset--color--gold);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.ymc-calendar .ymc-schooldays__row {
	margin: 0;
	padding: 8px 0;
}

.ymc-calendar .ymc-schooldays__when {
	display: block;
	color: var(--wp--preset--color--lilac);
	font-size: 13px;
}

.ymc-calendar .ymc-schooldays__hours {
	display: block;
	margin-top: 2px;
	color: #fff;
	font-size: 16px;
	font-weight: 600;
}

/* Months run in two columns on a wide screen, as the printed calendar does. */
.ymc-calendar .ymc-calendar__months {
	margin-block: 0;
	column-count: 2;
	column-gap: clamp(20px, 2.6vw, 30px);
}

.ymc-calendar .ymc-month {
	margin: 0 0 clamp(18px, 2.2vw, 24px);
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: 16px;
	overflow: hidden;
	break-inside: avoid;
}

.ymc-calendar .ymc-month__name {
	margin: 0;
	padding: 13px 20px;
	background: var(--wp--preset--color--purple);
	color: #fff;
	font-size: 15px;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.ymc-calendar .ymc-cal {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 4px 12px;
	margin: 0;
	padding: 12px 20px;
	border-top: 1px solid var(--wp--preset--color--hairline);
}

.ymc-calendar .ymc-month .ymc-cal:first-of-type {
	border-top: 0;
}

.ymc-calendar .ymc-cal__date {
	flex: 1 1 100%;
	color: var(--wp--preset--color--ink-faint);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.ymc-calendar .ymc-cal__what {
	color: var(--wp--preset--color--purple);
	font-size: 15px;
	font-weight: 500;
	line-height: 1.35;
}

.ymc-calendar .ymc-cal__time {
	color: var(--wp--preset--color--ink-soft);
	font-size: 13px;
}

.ymc-calendar .ymc-cal__tag {
	padding: 3px 10px;
	border-radius: 999px;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.04em;
	white-space: nowrap;
}

.ymc-calendar .ymc-cal--closed .ymc-cal__tag {
	background: rgba(38, 34, 98, 0.08);
	color: var(--wp--preset--color--purple);
}

.ymc-calendar .ymc-cal--early .ymc-cal__tag {
	background: var(--wp--preset--color--gold-tint);
	color: #8a6400;
}

.ymc-calendar .ymc-calendar__note {
	margin: clamp(26px, 3vw, 34px) 0 0;
	color: var(--wp--preset--color--ink-faint);
	font-size: 13px;
	line-height: 1.6;
}

@media (max-width: 860px) {

	.ymc-calendar .ymc-calendar__months {
		column-count: 1;
	}
}

/* --- Admissions calendar --- */

.ymc-dates {
	padding: clamp(24px, 2.6vw, 36px) clamp(18px, 3vw, 30px) clamp(48px, 6vw, 80px);
	background: #fff;
}

/* The cards keep a reading width but start at the page's left edge, so they
   line up with the standfirst above them. */
.ymc-dates .ymc-dates__list,
.ymc-dates .ymc-dates__notice {
	max-width: 840px;
	margin-inline: 0;
}

.ymc-dates .ymc-dates__list {
	display: flex;
	flex-direction: column;
	gap: 16px;
	margin-block: 0;
}

.ymc-dates .ymc-date {
	display: flex;
	align-items: center;
	gap: 20px;
	margin-block: 0;
	padding: 18px 22px;
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: 20px;
	background: #fff;
}

/* The date sits on its own purple tile, as on a calendar page. */
.ymc-dates .ymc-date__tile {
	display: flex;
	flex: none;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 76px;
	height: 76px;
	margin: 0;
	border-radius: 14px;
	background: var(--wp--preset--color--purple);
}

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

.ymc-dates .ymc-date__day {
	margin-top: 2px;
	color: #fff;
	font-size: 18px;
	font-weight: 700;
	line-height: 1.1;
	text-align: center;
}

.ymc-dates .ymc-date__copy {
	margin-block: 0;
}

.ymc-dates .ymc-date__what {
	margin: 0 0 4px;
	color: var(--wp--preset--color--purple);
	font-size: 17px;
	font-weight: 600;
	line-height: 1.35;
}

.ymc-dates .ymc-date__when {
	margin: 0;
	color: var(--wp--preset--color--ink-faint);
	font-size: 14px;
}

/* Shown until the school confirms the cycle's dates. */
.ymc-dates .ymc-dates__notice {
	margin-block: 0;
	padding: clamp(28px, 3.6vw, 40px);
	border: 1px dashed var(--wp--preset--color--hairline);
	border-radius: 20px;
	background: var(--wp--preset--color--surface);
}

.ymc-dates .ymc-dates__noticetitle {
	margin: 0 0 10px;
	color: var(--wp--preset--color--purple);
	font-size: clamp(18px, 2.2vw, 21px);
	font-weight: 600;
	line-height: 1.35;
}

.ymc-dates .ymc-dates__noticebody {
	margin: 0;
	color: var(--wp--preset--color--ink-soft);
	font-size: 15px;
	line-height: 1.65;
}

.ymc-dates .ymc-dates__noticebody a {
	color: var(--wp--preset--color--purple);
	text-decoration: underline;
	text-underline-offset: 3px;
}

@media (max-width: 600px) {

	.ymc-dates .ymc-date {
		align-items: flex-start;
		gap: 16px;
		padding: 16px 18px;
	}
}

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

.ymc-schedule {
	padding: clamp(36px, 4.5vw, 60px) clamp(18px, 3vw, 30px) clamp(44px, 5vw, 72px);
	background: #fff;
}

.ymc-schedule .ymc-schedule__frame {
	margin-block: 0;
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: 18px;
	overflow: hidden;
	background: var(--wp--preset--color--surface);
}

.ymc-schedule .ymc-schedule__pdf {
	display: block;
	width: 100%;
	height: clamp(520px, 78vh, 900px);
	border: 0;
}

.ymc-schedule .ymc-schedule__fallback {
	margin: 0;
	padding: 40px 24px;
	color: var(--wp--preset--color--ink-soft);
	text-align: center;
}

.ymc-schedule figure.ymc-schedule__image {
	margin: 0;
}

.ymc-schedule figure.ymc-schedule__image img {
	display: block;
	width: 100%;
	height: auto;
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: 18px;
}

.ymc-schedule .ymc-schedule__empty {
	margin: 0;
	padding: clamp(40px, 6vw, 72px) 24px;
	border: 1px dashed var(--wp--preset--color--hairline);
	border-radius: 18px;
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--ink-faint);
	text-align: center;
}

.ymc-schedule .ymc-schedule__open {
	margin: 18px 0 0;
}

.ymc-schedule .ymc-schedule__open a {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	padding: 13px 24px;
	border-radius: 8px;
	background: var(--wp--preset--color--purple);
	color: #fff;
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
}

.ymc-schedule .ymc-schedule__open a:hover {
	background: var(--wp--preset--color--violet);
}

/* A phone cannot render an embedded PDF, so it gets a link card instead. */
.ymc-schedule .ymc-schedule__card {
	display: none;
	align-items: center;
	gap: 16px;
	padding: 20px;
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: 16px;
	background: var(--wp--preset--color--surface);
	text-decoration: none;
}

.ymc-schedule .ymc-schedule__cardicon {
	flex: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 54px;
	height: 54px;
	border-radius: 12px;
	background: var(--wp--preset--color--purple);
	color: #fff;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.06em;
}

.ymc-schedule .ymc-schedule__cardtitle {
	display: block;
	color: var(--wp--preset--color--purple);
	font-size: 17px;
	font-weight: 600;
	line-height: 1.3;
}

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

@media (max-width: 900px) {

	.ymc-schedule .ymc-schedule__frame {
		display: none;
	}

	.ymc-schedule .ymc-schedule__card {
		display: flex;
	}

	.ymc-schedule .ymc-schedule__open {
		display: none;
	}
}

.ymc-schedule .ymc-schedule__foot {
	max-width: 70ch;
	margin: 22px 0 0;
	color: var(--wp--preset--color--ink-faint);
	font-size: 14px;
	line-height: 1.6;
}

/* --- Posts and archives --- */

.ymc-pagehero__date {
	margin: 14px 0 0;
	color: var(--wp--preset--color--gold);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.ymc-post {
	padding: clamp(40px, 5vw, 64px) clamp(18px, 3vw, 30px) clamp(56px, 7vw, 96px);
	background: #fff;
}

/* Reading column by default, with the picture blocks breaking out wider. */
.ymc-post > .wp-block-post-content > * {
	max-width: 760px;
	margin-inline: auto;
}

.ymc-post > .wp-block-post-content > .ymc-wide {
	max-width: 1140px;
}

.ymc-post__lede {
	margin: 0 auto clamp(26px, 3.4vw, 40px);
	color: var(--wp--preset--color--ink-faint);
	font-size: clamp(17px, 2vw, 19px);
	font-style: italic;
	line-height: 1.5;
}

.ymc-post__banner {
	margin: 0 auto clamp(28px, 3.4vw, 40px);
}

.ymc-post figure.wp-block-image {
	margin: 0 auto;
}

.ymc-post figure.wp-block-image img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 12px;
}

.ymc-post h2.ymc-post__section {
	display: flex;
	align-items: center;
	gap: 14px;
	margin: clamp(48px, 6vw, 80px) auto clamp(18px, 2.4vw, 26px);
	color: var(--wp--preset--color--purple);
	font-size: clamp(13px, 1.5vw, 15px);
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.ymc-post h2.ymc-post__section::before {
	width: 22px;
	height: 2px;
	background: var(--wp--preset--color--gold);
	content: "";
}

.ymc-post h2.ymc-post__section::after {
	flex: 1;
	height: 1px;
	background: var(--wp--preset--color--hairline);
	content: "";
}

.ymc-post__intro {
	margin: 0 auto clamp(18px, 2.4vw, 26px);
	color: var(--wp--preset--color--ink-soft);
	font-size: 16px;
	line-height: 1.65;
}

.ymc-post .ymc-post__card {
	padding: clamp(14px, 1.8vw, 20px);
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: 16px;
	background: var(--wp--preset--color--surface);
}

.ymc-post .ymc-post__card figure {
	margin: 0;
}

.ymc-post .ymc-post__more {
	margin: 14px 0 4px;
	text-align: right;
}

.ymc-post .ymc-post__more a,
.ymc-post .ymc-video__link a {
	color: var(--wp--preset--color--purple);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-decoration: none;
	text-transform: uppercase;
}

.ymc-post .ymc-post__more a::after,
.ymc-post .ymc-video__link a::after {
	content: " \2192";
}

.ymc-post .ymc-post__more a:hover,
.ymc-post .ymc-video__link a:hover {
	color: var(--wp--preset--color--violet);
}

/* Video card: the thumbnail carries a play badge. */
.ymc-post .ymc-video {
	position: relative;
}

.ymc-post .ymc-video__thumb {
	position: relative;
}

.ymc-post .ymc-video__thumb a {
	display: block;
}

.ymc-post .ymc-video__thumb::after {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 74px;
	height: 74px;
	border-radius: 50%;
	background: rgba(38, 34, 98, 0.88);
	color: #fff;
	content: "\25B6";
	font-size: 24px;
	line-height: 74px;
	text-align: center;
	text-indent: 4px;
	transform: translate(-50%, -50%);
	pointer-events: none;
}

.ymc-post .ymc-video__link {
	margin: 12px 0 0;
	text-align: right;
}

/* PTA note. */
.ymc-post .ymc-note {
	display: grid;
	grid-template-columns: 1fr 170px;
	align-items: center;
	gap: clamp(18px, 2.6vw, 30px);
	margin-top: clamp(20px, 2.6vw, 28px);
	padding: clamp(22px, 3vw, 32px);
	border-left: 3px solid var(--wp--preset--color--gold);
	border-radius: 0 16px 16px 0;
	background: var(--wp--preset--color--gold-tint);
}

.ymc-post .ymc-note__lead {
	grid-column: 1;
	margin: 0 0 10px;
	color: var(--wp--preset--color--purple);
	font-size: 18px;
	line-height: 1.5;
}

.ymc-post .ymc-note__body {
	grid-column: 1;
	margin: 0;
	color: var(--wp--preset--color--ink-soft);
	font-size: 15px;
	line-height: 1.6;
}

.ymc-post .ymc-note a {
	color: var(--wp--preset--color--purple);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.ymc-post .ymc-note__flyer {
	grid-row: 1 / span 2;
	grid-column: 2;
}

/* Sponsorships. */
.ymc-post .ymc-sponsors {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
	gap: 12px;
}

.ymc-post .ymc-sponsor {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 16px 20px;
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: 14px;
	background: #fff;
	transition: border-color 0.2s ease, background 0.2s ease, transform 0.2s ease;
}

.ymc-post .ymc-sponsor:hover {
	border-color: var(--wp--preset--color--purple);
	background: var(--wp--preset--color--surface);
	transform: translateY(-2px);
}

.ymc-post .ymc-sponsor__name {
	margin: 0;
	color: var(--wp--preset--color--purple);
	font-size: 16px;
	font-weight: 500;
	line-height: 1.3;
}

.ymc-post .ymc-sponsor__link {
	flex: none;
	margin: 0;
}

.ymc-post .ymc-sponsor__link a {
	display: inline-block;
	padding: 9px 20px;
	border-radius: 999px;
	background: var(--wp--preset--color--purple);
	color: #fff;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-decoration: none;
	text-transform: uppercase;
}

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

/* Photographs and their captions. */
.ymc-post .ymc-moment + .ymc-moment {
	margin-top: clamp(30px, 4vw, 52px);
}

.ymc-post .ymc-moment__caption {
	margin: 0 0 16px;
	padding-left: 16px;
	border-left: 2px solid var(--wp--preset--color--gold);
	color: var(--wp--preset--color--ink-soft);
	font-size: 16px;
	line-height: 1.6;
}

.ymc-post .ymc-moment__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 16px;
}

.ymc-post .ymc-moment__grid figure.wp-block-image img {
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

/* A single photograph sits beside its caption, alternating sides. */
@media (min-width: 900px) {

	.ymc-post .ymc-moment--solo {
		display: grid;
		grid-template-columns: 1fr 1fr;
		align-items: center;
		gap: clamp(24px, 3vw, 44px);
	}

	.ymc-post .ymc-moment--solo .ymc-moment__caption {
		margin: 0;
		font-size: 18px;
		line-height: 1.55;
	}

	.ymc-post .ymc-moment--solo:nth-of-type(even) .ymc-moment__caption {
		order: 2;
	}

	.ymc-post .ymc-moment--solo .ymc-moment__grid figure.wp-block-image img {
		aspect-ratio: 5 / 4;
	}
}

/* Closing band. */
.ymc-post .ymc-stay {
	margin-top: clamp(48px, 6vw, 72px);
	padding: clamp(28px, 3.6vw, 44px);
	border-radius: 18px;
	background: var(--wp--preset--color--purple);
	color: #fff;
	text-align: center;
}

.ymc-post .ymc-stay__title {
	margin: 0 0 8px;
	color: var(--wp--preset--color--gold);
	font-size: clamp(20px, 2.4vw, 26px);
	font-weight: 400;
}

.ymc-post .ymc-stay__body {
	margin: 0;
	font-size: 16px;
	line-height: 1.6;
}

.ymc-post .ymc-stay a {
	color: #fff;
	text-decoration: underline;
	text-underline-offset: 3px;
}

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

@media (max-width: 760px) {

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

	.ymc-post .ymc-note__flyer {
		grid-row: auto;
		grid-column: 1;
		max-width: 220px;
	}

	.ymc-post .ymc-sponsor {
		flex-direction: column;
		align-items: flex-start;
	}
}

.ymc-archive {
	padding: clamp(48px, 6vw, 80px) clamp(18px, 3vw, 30px);
	background: var(--wp--preset--color--surface);
}

.ymc-archive .ymc-archive__list {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	align-items: stretch;
	gap: clamp(20px, 2.6vw, 30px);
	margin-block: 0;
	padding: 0;
	list-style: none;
}

/* Every card fills its row, so a short story sits level with a long one. */
.ymc-archive .ymc-archive__list > li {
	display: flex;
	margin: 0;
}

.ymc-archive .ymc-issue {
	position: relative;
	display: flex;
	flex: 1;
	flex-direction: column;
	margin-block: 0;
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: 12px;
	overflow: hidden;
	background: #fff;
	transition: box-shadow 200ms ease, transform 200ms ease;
}

.ymc-archive .ymc-issue:hover {
	box-shadow: 0 6px 22px rgba(38, 34, 98, 0.16);
	transform: translateY(-2px);
}

.ymc-archive figure.ymc-issue__media {
	height: 210px;
	min-height: 210px;
	max-height: 210px;
	flex-shrink: 0;
	margin: 0;
	background: var(--wp--preset--color--hairline);
}

.ymc-archive .ymc-issue figure.ymc-issue__media img {
	display: block;
	width: 100%;
	height: 210px;
	max-width: none;
	object-fit: cover;
	object-position: 50% 40%;
}

.ymc-archive .ymc-issue__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 10px;
	margin-block: 0;
	padding: 24px;
}

.ymc-archive .ymc-issue__title {
	display: -webkit-box;
	overflow: hidden;
	font-size: 19px;
	line-height: 1.25;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

.ymc-archive .ymc-issue__excerpt {
	display: flex;
	flex: 1;
	flex-direction: column;
	margin: 0;
	color: var(--wp--preset--color--ink-soft);
	font-size: 14px;
	line-height: 1.6;
}

/* Three lines of summary on every card, whatever the story's length. */
.ymc-archive .ymc-issue__excerpt p.wp-block-post-excerpt__excerpt {
	display: -webkit-box;
	overflow: hidden;
	margin: 0;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
}

.ymc-archive .ymc-issue__excerpt .wp-block-post-excerpt__more-text {
	margin: auto 0 0;
	padding-top: 16px;
}

.ymc-archive .ymc-issue__excerpt a {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	color: var(--wp--preset--color--purple);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-decoration: none;
	text-transform: uppercase;
}

.ymc-archive .ymc-issue__excerpt a::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-archive .ymc-archive__pagination {
	display: flex;
	gap: 14px;
	justify-content: center;
	margin-top: 40px;
	color: var(--wp--preset--color--purple);
	font-size: 14px;
}

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

.ymc-archive .ymc-archive__pagination a:hover {
	color: var(--wp--preset--color--violet);
	text-decoration: underline;
}

@media (max-width: 760px) {

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