/**
 * 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);
	/* The rule under the item is the border above; core's own underline is not wanted. */
	text-decoration: none;
}

/* The page being viewed, and the section it sits in: gold, no rule. */
.ymc-nav .current-menu-item > .wp-block-navigation-item__content,
.ymc-nav .current-menu-ancestor > .wp-block-navigation-item__content,
.ymc-nav .wp-block-navigation-item__content.ymc-nav__here {
	border-bottom-color: transparent;
	color: var(--wp--preset--color--gold);
	font-weight: 600;
}

/* In the dropdown the current row looks like a hovered one: grey, purple text. */
.ymc-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content.ymc-nav__here {
	border-bottom: 0;
	background: var(--wp--preset--color--surface);
	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);
	text-decoration: none;
}

/* 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. The washes sit
   above the buttons, so they must let clicks through. */
.ymc-hero.wp-block-cover::before {
	pointer-events: none;
	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 {
	pointer-events: none;
	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-policies.has-global-padding,
.ymc-parents.has-global-padding,
.ymc-parentsask.has-global-padding,
.ymc-gallery.has-global-padding,
.ymc-cal.has-global-padding,
.ymc-day.has-global-padding,
.ymc-israel.has-global-padding,
.ymc-israel-note.has-global-padding,
.ymc-israel-money.has-global-padding,
.ymc-torah.has-global-padding,
.ymc-events.has-global-padding,
.ymc-past.has-global-padding,
.ymc-college.has-global-padding,
.ymc-guidance.has-global-padding,
.ymc-speak.has-global-padding,
.ymc-athletics.has-global-padding,
.ymc-clubs.has-global-padding,
.ymc-life.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. */

/* The hero above already carries the top spacing; the bottom is the
   standfirst's own, so it does not sit against the next section. */
.ymc-pagelede {
	padding: 0 clamp(18px, 3vw, 30px) clamp(24px, 2.6vw, 36px);
	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;
	}
}

/* --- Album pages --- */

.ymc-albumgrid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 14px;
	margin: 0;
}

.ymc-albumgrid .ymc-albumgrid__item {
	display: block;
	border-radius: 12px;
	overflow: hidden;
	background: var(--wp--preset--color--surface);
	line-height: 0;
}

.ymc-albumgrid .ymc-albumgrid__img {
	display: block;
	width: 100%;
	height: 220px;
	max-width: none;
	object-fit: cover;
	transition: transform 300ms ease;
}

.ymc-albumgrid a.ymc-albumgrid__item:hover .ymc-albumgrid__img {
	transform: scale(1.04);
}

/* Every fifth photograph runs wide, so the grid does not read as a contact sheet. */
.ymc-albumgrid .ymc-albumgrid__item:nth-child(9n + 1) {
	grid-column: span 2;
}

.ymc-albumgrid .ymc-albumgrid__item:nth-child(9n + 1) .ymc-albumgrid__img {
	height: 320px;
}

@media (max-width: 600px) {

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

	.ymc-albumgrid .ymc-albumgrid__item:nth-child(9n + 1) {
		grid-column: auto;
	}

	.ymc-albumgrid .ymc-albumgrid__img,
	.ymc-albumgrid .ymc-albumgrid__item:nth-child(9n + 1) .ymc-albumgrid__img {
		height: 260px;
	}
}

/* A hero with no photograph: the copy fills the panel. */
.ymc-pagehero.ymc-pagehero--plain {
	grid-template-columns: 1fr;
	min-height: 0;
}

.ymc-pagehero--plain .ymc-pagehero__copy {
	padding-block: clamp(34px, 4.5vw, 60px);
}

/* --- Policies --- */

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

.ymc-policies .ymc-policies__list {
	display: flex;
	flex-direction: column;
	gap: clamp(16px, 2vw, 22px);
	margin-block: 0;
}

.ymc-policies .ymc-policy {
	margin-block: 0;
	padding: clamp(22px, 2.6vw, 30px);
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: 16px;
	background: #fff;
}

.ymc-policies .ymc-policy__title {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0 0 12px;
	color: var(--wp--preset--color--purple);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

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

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

.ymc-policies .ymc-policies__foot {
	margin: clamp(28px, 3.4vw, 40px) 0 0;
	padding: 20px 22px;
	border-left: 3px solid var(--wp--preset--color--gold);
	border-radius: 0 12px 12px 0;
	background: var(--wp--preset--color--gold-tint);
	color: var(--wp--preset--color--ink-soft);
	font-size: 15px;
	line-height: 1.6;
}

.ymc-policies .ymc-policies__foot a {
	color: var(--wp--preset--color--purple);
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* --- Parent resources --- */

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

.ymc-parents .ymc-parents__quick {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin: 0 0 clamp(28px, 3.4vw, 40px);
	padding-bottom: clamp(28px, 3.4vw, 40px);
	border-bottom: 1px solid var(--wp--preset--color--hairline);
}

.ymc-parents .ymc-parents__quicklink {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 13px 20px;
	border: 1px solid var(--wp--preset--color--purple);
	border-radius: 8px;
	color: var(--wp--preset--color--purple);
	font-size: 15px;
	font-weight: 600;
	text-decoration: none;
	transition: background 0.2s ease, color 0.2s ease;
}

.ymc-parents .ymc-parents__quicklink::before {
	font-family: "Font Awesome 5 Free";
	font-size: 14px;
	font-weight: 900;
	line-height: 1;
	-webkit-font-smoothing: antialiased;
}

.ymc-parents .ymc-parents__quicklink--book::before  { content: "\f02d"; }
.ymc-parents .ymc-parents__quicklink--scale::before { content: "\f24e"; }
.ymc-parents .ymc-parents__quicklink--login::before { content: "\f2f6"; }

.ymc-parents .ymc-parents__quicklink:hover {
	background: var(--wp--preset--color--purple);
	color: #fff;
}

.ymc-parents .ymc-parents__grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: clamp(20px, 2.6vw, 30px);
}

.ymc-parents .ymc-parentcard {
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding: clamp(22px, 2.6vw, 30px);
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: 8px;
	background: #fff;
	text-decoration: none;
	transition: box-shadow 200ms ease, transform 200ms ease;
}

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

.ymc-parents .ymc-parentcard__icon {
	display: flex;
	flex: none;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 20px;
	background: var(--wp--preset--color--gold-tint);
	color: var(--wp--preset--color--purple);
	font-family: "Font Awesome 5 Free";
	font-size: 16px;
	font-weight: 900;
	line-height: 1;
	-webkit-font-smoothing: antialiased;
}

.ymc-parents .ymc-parentcard__icon--forms::before    { content: "\f15c"; }
.ymc-parents .ymc-parentcard__icon--money::before    { content: "\f155"; }
.ymc-parents .ymc-parentcard__icon--calendar::before { content: "\f073"; }
.ymc-parents .ymc-parentcard__icon--photos::before   { content: "\f87c"; }

.ymc-parents .ymc-parentcard__label {
	color: var(--wp--preset--color--purple);
	font-size: 18px;
	font-weight: 600;
}

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

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

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

.ymc-parentsask {
	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-parentsask .ymc-parentsask__inner {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	align-items: center;
	gap: clamp(24px, 3vw, 40px);
	margin-block: 0;
}

.ymc-parentsask .ymc-parentsask__copy {
	margin-block: 0;
}

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

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

.ymc-parentsask .ymc-parentsask__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	justify-self: start;
	margin: 0;
}

.ymc-parentsask .ymc-parentsask__call {
	padding: 15px 26px;
	border-radius: 8px;
	background: var(--wp--preset--color--purple);
	color: #fff;
	font-size: 16px;
	font-weight: 600;
	text-decoration: none;
}

.ymc-parentsask .ymc-parentsask__call:hover {
	filter: brightness(1.14);
}

.ymc-parentsask .ymc-parentsask__mail {
	padding: 15px 26px;
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: 8px;
	color: var(--wp--preset--color--purple);
	font-size: 16px;
	font-weight: 600;
	text-decoration: none;
}

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

@media (max-width: 700px) {

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

/* --- Photo gallery --- */

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

.ymc-gallery .ymc-gallery__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	align-items: stretch;
	gap: clamp(20px, 2.6vw, 30px);
	margin-block: 0;
}

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

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

.ymc-gallery figure.ymc-album__media {
	margin: 0;
}

.ymc-gallery figure.ymc-album__media img {
	display: block;
	width: 100%;
	height: 210px;
	max-width: none;
	object-fit: cover;
	object-position: 50% 42%;
}

.ymc-gallery .ymc-album__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 8px;
	margin-block: 0;
	padding: 20px 22px 24px;
}

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

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

.ymc-gallery .ymc-album__title a {
	color: inherit;
	text-decoration: none;
}

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

.ymc-gallery .ymc-gallery__more {
	margin: 0 0 clamp(26px, 3.2vw, 36px);
}

.ymc-gallery .ymc-gallery__more a {
	display: inline-block;
	padding: 13px 24px;
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: 999px;
	color: var(--wp--preset--color--purple);
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
}

.ymc-gallery .ymc-gallery__more a:hover {
	border-color: var(--wp--preset--color--purple);
	background: var(--wp--preset--color--surface);
}

/* --- Calendar page --- */

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

.ymc-cal .ymc-cal__download {
	margin: 0 0 20px;
}

.ymc-cal .ymc-cal__download a {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 14px 26px;
	border-radius: 8px;
	background: var(--wp--preset--color--purple);
	color: #fff;
	font-size: 15px;
	font-weight: 600;
	text-decoration: none;
	box-shadow: 0 4px 18px rgba(38, 34, 98, 0.14);
}

/* Font Awesome's printer, the glyph the design calls for. */
.ymc-cal .ymc-cal__download a::before {
	color: var(--wp--preset--color--gold);
	content: "\f02f";
	font-family: "Font Awesome 5 Free";
	font-size: 14px;
	font-weight: 900;
	line-height: 1;
	-webkit-font-smoothing: antialiased;
}

.ymc-cal .ymc-cal__download a:hover {
	filter: brightness(1.12);
	transform: translateY(-1px);
}

.ymc-cal .ymc-cal__frame {
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: 8px;
	overflow: hidden;
	background: #f8f9fe;
}

.ymc-cal .ymc-cal__embed {
	display: block;
	width: 100%;
	height: clamp(520px, 74vh, 760px);
	border: 0;
}

.ymc-day {
	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-day .ymc-day__title {
	margin: 0 0 26px;
	color: var(--wp--preset--color--purple);
	font-size: clamp(24px, 3vw, 32px);
	font-weight: 400;
	line-height: 1.15;
}

.ymc-day .ymc-day__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 20px;
	margin-block: 0;
}

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

.ymc-day .ymc-day__time {
	margin: 0 0 8px;
	color: var(--wp--preset--color--purple);
	font-size: 26px;
	font-weight: 700;
	line-height: 1;
}

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

.ymc-day .ymc-day__note {
	margin: 26px 0 0;
}

.ymc-day .ymc-day__note a {
	color: var(--wp--preset--color--purple);
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
}

.ymc-day .ymc-day__note a::after {
	content: " \2192";
}

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

/* --- Israel --- */

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

.ymc-israel .ymc-israel__lede {
	color: var(--wp--preset--color--ink-soft);
	font-size: clamp(19px, 2.4vw, 24px);
	line-height: 1.25;
	text-wrap: pretty;
}

.ymc-israel-note {
	padding: clamp(24px, 2.6vw, 36px) clamp(18px, 3vw, 30px);
	background: var(--wp--preset--color--gold-tint);
}

.ymc-israel-note .ymc-israel-note__text {
	color: var(--wp--preset--color--ink-soft);
	font-size: 16px;
	line-height: 1.55;
}

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

.ymc-israel-money .ymc-israel__grid {
	display: grid;
	grid-template-columns: minmax(220px, 320px) 1fr;
	align-items: start;
	gap: clamp(30px, 4vw, 56px);
	margin-block: 0;
}

/* The explanation follows the reader down the list of scholarships. */
.ymc-israel-money .ymc-israel__card {
	position: sticky;
	top: 100px;
	margin-block: 0;
	padding: clamp(24px, 3vw, 32px);
	border-radius: 20px;
	background: var(--wp--preset--color--purple);
}

.ymc-israel-money .ymc-israel__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-israel-money .ymc-israel__cardtitle {
	margin: 0 0 14px;
	color: #fff;
	font-size: clamp(24px, 3vw, 32px);
	font-weight: 400;
	line-height: 1.3;
}

.ymc-israel-money .ymc-israel__cardbody {
	margin: 0;
	color: var(--wp--preset--color--lilac);
	font-size: 16px;
	line-height: 1.55;
}

.ymc-israel-money .ymc-israel__list {
	margin-block: 0;
}

.ymc-israel-money .ymc-israel__listtitle {
	margin: 0 0 16px;
	padding: 0;
	color: var(--wp--preset--color--ink-faint);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.ymc-israel-money .ymc-israel__scholarships {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.ymc-israel-money .ymc-scholarship {
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: 14px;
	overflow: hidden;
	background: #fff;
	transition: box-shadow 200ms ease;
}

.ymc-israel-money .ymc-scholarship:hover {
	box-shadow: 0 4px 18px rgba(38, 34, 98, 0.12);
}

.ymc-israel-money .ymc-scholarship__head {
	display: flex;
	align-items: flex-start;
	gap: 16px;
	padding: 20px 22px;
	list-style: none;
	cursor: pointer;
}

.ymc-israel-money .ymc-scholarship__head::-webkit-details-marker {
	display: none;
}

.ymc-israel-money .ymc-scholarship__copy {
	flex: 1;
	min-width: 0;
}

.ymc-israel-money .ymc-scholarship__name {
	display: flex;
	margin-bottom: 0;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	margin: 0 0 6px;
	color: var(--wp--preset--color--purple);
	font-size: 16px;
	font-weight: 600;
}

.ymc-israel-money .ymc-scholarship__amount {
	padding: 3px 10px;
	border-radius: 20px;
	background: var(--wp--preset--color--gold-tint);
	color: var(--wp--preset--color--purple);
	font-size: 12px;
	font-weight: 600;
}

.ymc-israel-money .ymc-israel__listtitle--second {
	margin-top: clamp(34px, 4vw, 48px);
}

.ymc-israel-money .ymc-scholarship__body {
	padding: 4px 22px 24px;
	border-top: 1px solid var(--wp--preset--color--hairline);
}

.ymc-israel-money .ymc-scholarship__row {
	display: grid;
	grid-template-columns: 130px 1fr;
	gap: 8px 20px;
	margin: 16px 0 0;
}

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

.ymc-israel-money .ymc-scholarship__value {
	color: var(--wp--preset--color--ink-soft);
	font-size: 15px;
	line-height: 1.6;
}

.ymc-israel-money .ymc-scholarship__extra {
	margin: 20px 0 0;
	padding-top: 18px;
	border-top: 1px solid var(--wp--preset--color--hairline);
	color: var(--wp--preset--color--ink-soft);
	font-size: 15px;
	line-height: 1.6;
}

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

.ymc-israel-money .ymc-scholarship__more {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 0;
}

.ymc-israel-money .ymc-scholarship__more a {
	padding: 9px 16px;
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: 999px;
	color: var(--wp--preset--color--purple);
	font-size: 13px;
	font-weight: 600;
	text-decoration: none;
}

.ymc-israel-money .ymc-scholarship__more a:hover {
	border-color: var(--wp--preset--color--purple);
	background: var(--wp--preset--color--surface);
}

.ymc-israel-money .ymc-scholarship__note {
	display: block;
	max-width: 70ch;
	color: var(--wp--preset--color--ink-faint);
	font-size: 14px;
	line-height: 1.5;
}

/* Chevron, turning as the entry opens. */
.ymc-israel-money .ymc-scholarship__head::after {
	flex: none;
	width: 9px;
	height: 9px;
	margin-top: 6px;
	border-right: 2px solid var(--wp--preset--color--gold);
	border-bottom: 2px solid var(--wp--preset--color--gold);
	content: "";
	transform: rotate(45deg);
	transition: transform 0.2s ease;
}

.ymc-israel-money .ymc-scholarship[open] .ymc-scholarship__head::after {
	transform: rotate(225deg);
}

.ymc-israel-money .ymc-scholarship__links {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.ymc-israel-money .ymc-scholarship__links a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 18px;
	border-radius: 8px;
	background: var(--wp--preset--color--purple);
	color: #fff;
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
}

.ymc-israel-money .ymc-scholarship__links a:hover {
	filter: brightness(1.14);
}

@media (max-width: 860px) {

	.ymc-israel-money .ymc-israel__grid {
		grid-template-columns: 1fr;
	}

	.ymc-israel-money .ymc-israel__card {
		position: static;
	}
}

/* --- Torah content --- */

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

.ymc-torah .ymc-torah__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
	align-items: stretch;
	gap: clamp(24px, 3vw, 30px);
	margin-block: 0;
}

.ymc-torah .ymc-torah__card {
	display: flex;
	flex-direction: column;
	margin-block: 0;
	padding: clamp(22px, 2.6vw, 28px);
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: 14px;
	background: #fff;
}

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

.ymc-torah .ymc-torah__title {
	margin: 0 0 16px;
	color: var(--wp--preset--color--purple);
	font-size: 19px;
	font-weight: 600;
	line-height: 1.3;
}

.ymc-torah .ymc-torah__title a {
	color: inherit;
	text-decoration: none;
}

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

.ymc-torah .ymc-torah__player {
	width: 100%;
	height: 44px;
	margin-top: auto;
}

.ymc-torah .ymc-torah__watch {
	margin: auto 0 0;
}

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

.ymc-torah .ymc-torah__date {
	margin: 16px 0 0;
	padding-top: 14px;
	border-top: 1px solid var(--wp--preset--color--hairline);
	color: var(--wp--preset--color--ink-faint);
	font-size: 13px;
}

.ymc-torah .ymc-torah__more {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin: 0 0 clamp(26px, 3.2vw, 36px);
}

.ymc-torah .ymc-torah__more a {
	padding: 11px 20px;
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: 999px;
	color: var(--wp--preset--color--purple);
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
}

.ymc-torah .ymc-torah__more a:hover {
	border-color: var(--wp--preset--color--purple);
	background: var(--wp--preset--color--surface);
}

/* --- Events --- */

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

.ymc-events .ymc-events__list {
	display: flex;
	flex-direction: column;
	max-width: 840px;
	gap: 16px;
	margin-block: 0;
	margin-inline: 0;
}

.ymc-events .ymc-event {
	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;
}

.ymc-events .ymc-event__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-events .ymc-event__weekday {
	color: var(--wp--preset--color--gold);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

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

.ymc-events .ymc-event__copy {
	margin-block: 0;
}

.ymc-events .ymc-event__what {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	margin: 0 0 4px;
	color: var(--wp--preset--color--purple);
	font-size: 17px;
	font-weight: 600;
	line-height: 1.35;
}

/* Marks a date the office has still to settle. */
.ymc-events .ymc-event__flag {
	padding: 3px 10px;
	border-radius: 999px;
	background: var(--wp--preset--color--gold-tint);
	color: #8a6400;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.03em;
}

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

.ymc-past {
	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-past .ymc-past__title {
	margin: 0 0 clamp(30px, 4vw, 44px);
	color: var(--wp--preset--color--purple);
	font-size: clamp(22px, 2.8vw, 28px);
	font-weight: 400;
	text-align: center;
}

.ymc-past .ymc-past__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	align-items: start;
	gap: clamp(22px, 2.6vw, 28px);
	margin-block: 0;
}

.ymc-past figure.ymc-past__flyer {
	margin: 0;
}

.ymc-past figure.ymc-past__flyer img {
	display: block;
	width: 100%;
	height: auto;
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: 14px;
	background: #fff;
}

@media (max-width: 600px) {

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

/* --- College --- */

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

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

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

.ymc-college .ymc-college__title {
	margin: 0 0 6px;
	color: var(--wp--preset--color--purple);
	font-size: clamp(22px, 2.6vw, 28px);
	font-weight: 400;
	line-height: 1.2;
	text-wrap: pretty;
}

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

.ymc-college figure.ymc-college__photo {
	margin: 0;
}

.ymc-college figure.ymc-college__photo img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 20px;
}

/* --- Guidance --- */

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

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

.ymc-guidance .ymc-guidance__lede {
	margin: 0;
	color: var(--wp--preset--color--purple);
	font-size: clamp(18px, 2.2vw, 22px);
	font-weight: 600;
	line-height: 1.4;
	text-wrap: pretty;
}

.ymc-guidance .ymc-guidance__items {
	display: flex;
	flex-direction: column;
	gap: 22px;
	margin-block: 0;
}

.ymc-guidance .ymc-guidance__item {
	margin-block: 0;
	padding: 2px 0 2px 16px;
	border-left: 2px solid var(--wp--preset--color--gold);
}

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

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

.ymc-speak {
	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-speak .ymc-speak__inner {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	align-items: center;
	gap: clamp(24px, 3vw, 40px);
	margin-block: 0;
}

.ymc-speak .ymc-speak__copy {
	margin-block: 0;
}

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

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

.ymc-speak .ymc-speak__buttons {
	justify-self: start;
}

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

.ymc-speak .ymc-speak__cta a.wp-block-button__link:hover {
	filter: brightness(1.14);
}

/* --- Photograph carousel --- */

.ymc-carousel {
	margin-top: clamp(36px, 4.5vw, 60px);
}

.ymc-carousel .ymc-carousel__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	margin: 0 0 18px;
}

.ymc-carousel .ymc-carousel__title {
	margin: 0;
	color: var(--wp--preset--color--purple);
	font-size: clamp(20px, 2.4vw, 26px);
	font-weight: 400;
}

.ymc-carousel .ymc-carousel__nav {
	display: flex;
	gap: 10px;
	margin: 0;
}

.ymc-carousel .ymc-carousel__arrow {
	position: relative;
	width: 42px;
	height: 42px;
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: 999px;
	background: #fff;
	cursor: pointer;
	transition: border-color 0.2s ease, opacity 0.2s ease;
}

.ymc-carousel .ymc-carousel__arrow::before {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 9px;
	height: 9px;
	border-top: 2px solid var(--wp--preset--color--purple);
	border-left: 2px solid var(--wp--preset--color--purple);
	content: "";
	transform: translate(-40%, -50%) rotate(-45deg);
}

.ymc-carousel .ymc-carousel__arrow--next::before {
	transform: translate(-60%, -50%) rotate(135deg);
}

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

.ymc-carousel .ymc-carousel__arrow[disabled] {
	opacity: 0.35;
	cursor: default;
}

/* The track scrolls natively, so swipe works with the script switched off. */
.ymc-carousel .ymc-carousel__track {
	display: flex;
	flex-wrap: nowrap;
	gap: 16px;
	margin-block: 0;
	overflow-x: auto;
	padding-bottom: 4px;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
}

.ymc-carousel .ymc-carousel__track::-webkit-scrollbar {
	display: none;
}

.ymc-carousel figure.ymc-carousel__slide {
	flex: 0 0 calc(50% - 8px);
	margin: 0;
	scroll-snap-align: start;
}

.ymc-carousel figure.ymc-carousel__slide img {
	display: block;
	width: 100%;
	height: clamp(240px, 26vw, 360px);
	max-width: none;
	object-fit: cover;
	object-position: 50% 40%;
	border-radius: 20px;
}

.ymc-carousel .ymc-carousel__dots {
	display: flex;
	justify-content: center;
	gap: 8px;
	margin: 18px 0 0;
}

.ymc-carousel .ymc-carousel__dot {
	width: 8px;
	height: 8px;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: var(--wp--preset--color--hairline);
	cursor: pointer;
	transition: background 0.2s ease, width 0.2s ease;
}

.ymc-carousel .ymc-carousel__dot[aria-current="true"] {
	width: 22px;
	background: var(--wp--preset--color--purple);
}

@media (max-width: 760px) {

	.ymc-carousel figure.ymc-carousel__slide {
		flex: 0 0 88%;
		scroll-snap-align: center;
	}

	.ymc-carousel .ymc-carousel__nav {
		display: none;
	}
}

/* --- Athletics --- */

.ymc-athletics {
	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-athletics .ymc-athletics__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
	align-items: center;
	gap: clamp(30px, 5vw, 64px);
	margin-block: 0;
}

.ymc-athletics figure.ymc-athletics__photo {
	margin: 0;
}

.ymc-athletics figure.ymc-athletics__photo img {
	display: block;
	width: 100%;
	height: clamp(300px, 32vw, 480px);
	max-width: none;
	object-fit: cover;
	border-radius: 20px;
}

.ymc-athletics .ymc-athletics__copy {
	margin-block: 0;
}

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

.ymc-athletics .ymc-athletics__head {
	display: flex;
	align-items: center;
	gap: 16px;
	margin: 0 0 20px;
}

.ymc-athletics figure.ymc-athletics__crest {
	flex: none;
	width: 60px;
	margin: 0;
}

.ymc-athletics .ymc-athletics__head {
	flex-wrap: wrap;
	gap: 12px;
}

.ymc-athletics figure.ymc-athletics__crest img {
	display: block;
	width: 60px;
	height: 60px;
	object-fit: contain;
}

.ymc-athletics .ymc-athletics__title {
	margin: 0;
	color: var(--wp--preset--color--purple);
	font-size: clamp(28px, 3.6vw, 40px);
	font-weight: 400;
}

.ymc-athletics .ymc-athletics__body {
	max-width: 52ch;
	margin: 0 0 28px;
	color: var(--wp--preset--color--ink-soft);
	font-size: 16px;
	line-height: 1.6;
}

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

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

/* --- Clubs --- */

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

.ymc-clubs .ymc-clubs__lede {
	max-width: 62ch;
	margin: 0 0 clamp(28px, 3.4vw, 40px);
	color: var(--wp--preset--color--purple);
	font-size: clamp(18px, 2.2vw, 22px);
	font-weight: 600;
	line-height: 1.4;
	text-wrap: pretty;
}

.ymc-clubs .ymc-clubs__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	align-items: stretch;
	gap: clamp(20px, 2.6vw, 30px);
	margin-block: 0;
}

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

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

.ymc-clubs figure.ymc-club__media {
	margin: 0;
}

.ymc-clubs figure.ymc-club__media img {
	display: block;
	width: 100%;
	height: 220px;
	max-width: none;
	object-fit: cover;
	object-position: 50% 45%;
}

.ymc-clubs .ymc-club__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 8px;
	margin-block: 0;
	padding: 22px;
}

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

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

/* --- Student life --- */

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

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

.ymc-life .ymc-life__lede {
	margin: 0;
	color: var(--wp--preset--color--purple);
	font-size: clamp(18px, 2.2vw, 22px);
	font-weight: 600;
	line-height: 1.4;
	text-wrap: pretty;
}

.ymc-life .ymc-life__programs {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 18px;
	margin-block: 0;
}

/* Each programme sits on its own gold rule; a linked one turns purple. */
.ymc-life .ymc-program {
	margin-block: 0;
	padding: 2px 0 2px 16px;
	border-left: 2px solid var(--wp--preset--color--gold);
	transition: border-color 0.2s ease;
}

.ymc-life .ymc-program--linked:hover {
	border-left-color: var(--wp--preset--color--purple);
}

.ymc-life .ymc-program__name {
	margin: 0 0 6px;
	color: var(--wp--preset--color--purple);
	font-size: 16px;
	font-weight: 600;
}

.ymc-life .ymc-program__name a {
	color: inherit;
	text-decoration: none;
}

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

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

.ymc-life .ymc-life__gallery {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 20px;
	margin: clamp(36px, 4.5vw, 60px) 0 0;
}

.ymc-life figure.ymc-life__shot {
	margin: 0;
}

.ymc-life figure.ymc-life__shot img {
	display: block;
	width: 100%;
	height: 280px;
	max-width: none;
	object-fit: cover;
	border-radius: 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-calendar__heading {
	margin: 0 0 clamp(18px, 2.4vw, 26px);
	color: var(--wp--preset--color--purple);
	font-size: clamp(22px, 2.8vw, 30px);
	font-weight: 400;
	line-height: 1.15;
}

.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));
	align-items: stretch;
	gap: 12px;
}

/*
 * Core gives every block after the first a top margin. Inside a grid that
 * pushes the later cards down and leaves the first one taller than the rest,
 * so the cards are spaced by the gap alone.
 */
.ymc-post .ymc-sponsors > * {
	margin-block: 0;
}

.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 > * {
	margin-block: 0;
}

.ymc-post .ymc-moment__grid figure.wp-block-image,
.ymc-post .ymc-moment__grid figure.wp-block-image img {
	width: 100%;
}

/* A lone photograph should not run the full width of the page. */
.ymc-post .ymc-moment__grid:has(> figure.wp-block-image:only-child) {
	max-width: 760px;
	margin-inline: auto;
}

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

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

/* --- Tuition and fees --- */

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

.ymc-tuition .ymc-tuition__headline {
	margin-block: 0;
	padding: clamp(28px, 3.4vw, 44px);
	border-radius: 16px;
	background: var(--wp--preset--color--purple);
	color: #fff;
	text-align: center;
}

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

.ymc-tuition .ymc-tuition__figure {
	margin: 10px 0 0;
	color: #fff;
	font-size: clamp(44px, 6vw, 68px);
	font-weight: 700;
	line-height: 1.05;
}

.ymc-tuition .ymc-tuition__note {
	margin: 6px 0 0;
	color: rgba(255, 255, 255, 0.82);
	font-size: 15px;
}

.ymc-tuition .ymc-tuition__gap {
	max-width: 46ch;
	margin: clamp(16px, 2vw, 22px) auto 0;
	padding-top: clamp(16px, 2vw, 22px);
	border-top: 1px solid rgba(255, 255, 255, 0.22);
	color: rgba(255, 255, 255, 0.82);
	font-size: 15px;
	line-height: 1.6;
}

.ymc-tuition .ymc-tuition__subtitle {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: clamp(36px, 4vw, 52px) 0 clamp(14px, 1.8vw, 20px);
	color: var(--wp--preset--color--purple);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

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

.ymc-tuition .ymc-tuition__fees {
	display: flex;
	flex-direction: column;
	gap: 0;
	margin-block: 0;
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: 16px;
	overflow: hidden;
}

.ymc-tuition .ymc-fee {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: baseline;
	gap: 4px clamp(16px, 3vw, 40px);
	margin-block: 0;
	padding: clamp(18px, 2.2vw, 24px) clamp(20px, 2.6vw, 30px);
	background: #fff;
}

.ymc-tuition .ymc-fee + .ymc-fee {
	border-top: 1px solid var(--wp--preset--color--hairline);
}

.ymc-tuition .ymc-fee__label {
	grid-column: 1;
	margin: 0;
	color: var(--wp--preset--color--purple);
	font-size: 17px;
	font-weight: 600;
}

.ymc-tuition .ymc-fee__note {
	grid-column: 1;
	grid-row: 2;
	margin: 0;
	color: var(--wp--preset--color--ink-soft);
	font-size: 14px;
	line-height: 1.5;
}

.ymc-tuition .ymc-fee__amount {
	grid-column: 2;
	grid-row: 1 / span 2;
	align-self: center;
	margin: 0;
	color: var(--wp--preset--color--purple);
	font-size: 18px;
	font-weight: 700;
	text-align: right;
	white-space: nowrap;
}

.ymc-tuition .ymc-tuition__next {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(16px, 2vw, 22px);
	margin-block: clamp(36px, 4vw, 52px) 0;
}

.ymc-tuition .ymc-tuitioncard {
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding: clamp(22px, 2.6vw, 30px);
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: 8px;
	background: #fff;
	text-decoration: none;
	transition: box-shadow 200ms ease, transform 200ms ease;
}

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

.ymc-tuition .ymc-tuitioncard__icon {
	display: flex;
	flex: none;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 20px;
	background: var(--wp--preset--color--gold-tint);
	color: var(--wp--preset--color--purple);
	font-family: "Font Awesome 5 Free";
	font-size: 16px;
	font-weight: 900;
}

.ymc-tuition .ymc-tuitioncard__icon--plan::before { content: "\f155"; }
.ymc-tuition .ymc-tuitioncard__icon--aid::before  { content: "\f19c"; }

.ymc-tuition .ymc-tuitioncard__label {
	color: var(--wp--preset--color--purple);
	font-size: 18px;
	font-weight: 600;
}

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

.ymc-tuition .ymc-tuitioncard__cta {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: auto;
	color: var(--wp--preset--color--purple);
	font-size: 14px;
	font-weight: 600;
}

.ymc-tuition .ymc-tuitioncard__cta::after {
	width: 16px;
	height: 16px;
	background: var(--ymc-arrow) center / contain no-repeat;
	content: "";
}

.ymc-tuition .ymc-tuition__foot {
	margin: clamp(28px, 3.4vw, 40px) 0 0;
	padding: 20px 22px;
	border-left: 3px solid var(--wp--preset--color--gold);
	border-radius: 0 12px 12px 0;
	background: var(--wp--preset--color--gold-tint);
	color: var(--wp--preset--color--ink-soft);
	font-size: 15px;
	line-height: 1.6;
}

.ymc-tuition .ymc-tuition__foot a {
	color: var(--wp--preset--color--purple);
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 3px;
}

@media (max-width: 781px) {

	.ymc-tuition .ymc-tuition__next {
		grid-template-columns: minmax(0, 1fr);
	}

	.ymc-tuition .ymc-fee {
		grid-template-columns: minmax(0, 1fr);
	}

	.ymc-tuition .ymc-fee__amount {
		grid-column: 1;
		grid-row: 3;
		margin-top: 6px;
		text-align: left;
	}
}
/* --- School payments --- */

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

.ymc-pay .ymc-pay__panel {
	margin-block: 0;
	padding: clamp(28px, 3.4vw, 44px);
	border-radius: 16px;
	background: var(--wp--preset--color--purple);
	color: #fff;
	text-align: center;
}

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

.ymc-pay .ymc-pay__title {
	margin: 10px 0 0;
	color: #fff;
	font-size: clamp(28px, 3.6vw, 40px);
	font-weight: 700;
	line-height: 1.15;
}

.ymc-pay .ymc-pay__body {
	max-width: 52ch;
	margin: clamp(12px, 1.6vw, 18px) auto 0;
	color: rgba(255, 255, 255, 0.82);
	font-size: 16px;
	line-height: 1.6;
}

.ymc-pay .wp-block-buttons {
	justify-content: center;
	margin-top: clamp(18px, 2.2vw, 26px);
}

.ymc-pay .ymc-pay__cta .wp-block-button__link {
	padding: 14px 30px;
	border-radius: 999px;
	background: var(--wp--preset--color--gold);
	color: var(--wp--preset--color--purple);
	font-size: 16px;
	font-weight: 700;
}

.ymc-pay .ymc-pay__note,
.ymc-pay .ymc-pay__soon {
	max-width: 52ch;
	margin: clamp(14px, 1.8vw, 20px) auto 0;
	color: rgba(255, 255, 255, 0.82);
	font-size: 15px;
	line-height: 1.6;
}

.ymc-pay .ymc-pay__body a,
.ymc-pay .ymc-pay__soon a {
	color: var(--wp--preset--color--gold);
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.ymc-pay .ymc-pay__subtitle {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: clamp(36px, 4vw, 52px) 0 clamp(14px, 1.8vw, 20px);
	color: var(--wp--preset--color--purple);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

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

.ymc-pay .ymc-pay__items {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(16px, 2vw, 22px);
	margin-block: 0;
}

.ymc-pay .ymc-payitem {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin-block: 0;
	padding: clamp(22px, 2.6vw, 30px);
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: 8px;
	background: #fff;
}

.ymc-pay .ymc-payitem__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	margin: 0;
	border-radius: 20px;
	background: var(--wp--preset--color--gold-tint);
	color: var(--wp--preset--color--purple);
	font-family: "Font Awesome 5 Free";
	font-size: 16px;
	font-weight: 900;
}

.ymc-pay .ymc-payitem__icon--trips::before { content: "\f5b0"; }
.ymc-pay .ymc-payitem__icon--meals::before { content: "\f2e7"; }
.ymc-pay .ymc-payitem__icon--other::before { content: "\f291"; }

.ymc-pay .ymc-payitem__label {
	margin: 0;
	color: var(--wp--preset--color--purple);
	font-size: 18px;
	font-weight: 600;
}

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

.ymc-pay .ymc-pay__foot {
	margin: clamp(28px, 3.4vw, 40px) 0 0;
	padding: 20px 22px;
	border-left: 3px solid var(--wp--preset--color--gold);
	border-radius: 0 12px 12px 0;
	background: var(--wp--preset--color--gold-tint);
	color: var(--wp--preset--color--ink-soft);
	font-size: 15px;
	line-height: 1.6;
}

.ymc-pay .ymc-pay__foot a {
	color: var(--wp--preset--color--purple);
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 3px;
}

@media (max-width: 781px) {

	.ymc-pay .ymc-pay__items {
		grid-template-columns: minmax(0, 1fr);
	}
}

.ymc-footer .ymc-footer__pay {
	margin: 4px 0 0;
	font-size: 14px;
}

.ymc-footer .ymc-footer__pay a {
	color: rgba(255, 255, 255, 0.82);
	text-decoration: none;
}

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

/* A note for whoever is editing; never shown to a visitor. */
.ymc-editor-note {
	display: none;
}

.ymc-pay .ymc-pay__check {
	display: flex;
	justify-content: center;
	margin-top: clamp(14px, 1.8vw, 20px);
}

.ymc-pay .ymc-pay__error {
	margin: 12px auto 0;
	max-width: 52ch;
	color: #ffd7d7;
	font-size: 15px;
	line-height: 1.6;
}

.ymc-pay .ymc-pay__cta button {
	border: 0;
	cursor: pointer;
	font-family: inherit;
}

.ymc-pay .ymc-pay__help {
	max-width: 52ch;
	margin: 10px auto 0;
	color: rgba(255, 255, 255, 0.72);
	font-size: 14px;
	line-height: 1.6;
}

.ymc-pay .ymc-pay__help a {
	color: var(--wp--preset--color--gold);
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* A photograph in an issue opens full size; the pointer says so. */
.ymc-post .ymc-post__zoom {
	display: block;
	cursor: zoom-in;
}

/* The picture viewer: the page dims and the whole photograph sits on top. */
.ymc-viewer {
	position: fixed;
	z-index: 9999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: clamp(16px, 4vw, 48px);
	background: rgba(20, 17, 45, 0.94);
	inset: 0;
}

/* A class rule beats the browser's own [hidden], so say it here. */
.ymc-viewer[hidden] {
	display: none;
}

.ymc-viewer__img {
	max-width: 100%;
	max-height: 100%;
	border-radius: 10px;
	box-shadow: 0 24px 60px rgba(0, 0, 0, 0.45);
	object-fit: contain;
}

.ymc-viewer__close {
	position: absolute;
	top: clamp(10px, 2vw, 22px);
	right: clamp(10px, 2vw, 22px);
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.12);
	color: #fff;
	font-size: 26px;
	line-height: 1;
	cursor: pointer;
}

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

body.ymc-viewer-open {
	overflow: hidden;
}

/* Reminders and calendars: each graphic sits on its own card, two to a row,
   shown whole rather than cropped, since the wording is inside the picture. */
.ymc-post .ymc-notices {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
	align-items: stretch;
	gap: clamp(14px, 1.8vw, 20px);
	margin-block: 0;
}

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

.ymc-post .ymc-notice {
	display: flex;
	align-items: center;
	justify-content: center;
	margin-block: 0;
	padding: clamp(12px, 1.6vw, 18px);
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: 14px;
	background: var(--wp--preset--color--surface);
}

.ymc-post .ymc-notice figure {
	width: 100%;
	margin: 0;
}

.ymc-post .ymc-notice img {
	display: block;
	width: 100%;
	max-height: 340px;
	border-radius: 8px;
	object-fit: contain;
}

/* A wide strip, a birthday list for instance, takes the full row. */
.ymc-post .ymc-notices .ymc-notice--wide {
	grid-column: 1 / -1;
}

/* Compact campaign popup on phones, 2026-09-23. */
@media (max-width: 760px) {
 body .ymc-popup { padding:16px; box-sizing:border-box; }
 body .ymc-popup__box { width:100%; max-width:400px; max-height:calc(100vh - 32px); max-height:calc(100svh - 32px); grid-template-columns:minmax(0,1fr); overscroll-behavior:contain; }
 body .ymc-popup__media { display:none; }
 body .ymc-popup__media img { object-position:center 35%; transform:none; }
 body .ymc-popup__close { top:8px; right:8px; width:44px; height:44px; background:#241355; }
 body .ymc-popup__copy { padding:54px 20px 20px; }
 body .ymc-popup__label { font-size:10px; padding:5px 10px; }
 body .ymc-popup__title { margin-top:12px; font-size:24px; line-height:1.15; }
 body .ymc-popup__text { margin-top:8px; font-size:14px; line-height:1.4; }
 body .ymc-popup__goal { margin-top:12px; gap:8px; flex-wrap:wrap; }
 body .ymc-popup__amount { font-size:32px; line-height:1.1; }
 body .ymc-popup__goallabel { font-size:10px; }
 body .ymc-popup__points { margin-top:12px; gap:5px; }
 body .ymc-popup__points li { font-size:12px; line-height:1.35; }
 body .ymc-popup__actions { margin-top:16px; gap:8px; flex-wrap:nowrap; }
 body .ymc-popup__actions .ymc-popup__give, body .ymc-popup__actions .ymc-popup__later { flex:1 1 0; padding:12px 8px; font-size:13px; min-height:44px; box-sizing:border-box; }
}
@media (max-width:760px) and (max-height:600px) { body .ymc-popup__media { display:none; } body .ymc-popup__copy { padding-top:54px; } }
