/* MM Polo & Showjumping — component styles. Tokens live in theme.json (var(--wp--preset--*)).
   Page-content rules are scoped to :is(.mm-content, :where(.wp-block-post-content.is-root-container)):
   .mm-content is the post-content wrapper on the site; the second part is the page editor's canvas,
   which has no .mm-content, so editors see the same styling. :where() keeps the specificity of
   plain .mm-content. */

:root {
	--mm-deep: var(--wp--preset--color--deep, #151b3a);
	--mm-midnight: var(--wp--preset--color--midnight, #0b133a);
	--mm-blue: var(--wp--preset--color--blue, #292e7c);
	--mm-gold: var(--wp--preset--color--gold, #ceab52);
	--mm-gold-soft: var(--wp--preset--color--gold-soft, #dfc98a);
	--mm-gold-deep: var(--wp--preset--color--gold-deep, #8a6a2c);
	--mm-ink: var(--wp--preset--color--ink, #1d2153);
	--mm-line: var(--wp--preset--color--line, #dee2ef);
	--mm-shadow: var(--wp--custom--shadow, 0 18px 44px rgba(21, 27, 58, 0.14));
	--mm-serif: var(--wp--preset--font-family--narziss);
}

/* ---------- page scaffolding ---------- */
.wp-site-blocks { position: relative; }
.wp-site-blocks > * + * { margin-block-start: 0; }
.mm-main { margin-block-start: 0; }
.mm-main--page { padding-bottom: var(--wp--preset--spacing--60); }
img { height: auto; }
::selection { background: var(--mm-gold-soft); color: var(--mm-deep); }

/* ---------- small type devices ---------- */
.mm-kicker,
.mm-eyebrow,
.mm-fact__label {
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.24em;
	text-transform: uppercase;
	color: var(--mm-gold-deep);
	margin-bottom: 0.6rem;
}
.mm-kicker--dashed::before,
.mm-kicker--dashed::after { content: "—"; margin: 0 0.75em; color: var(--mm-gold); }
/* limit line length without breaking constrained-layout alignment (which centres any narrower max-width) */
.mm-lede { box-sizing: border-box; padding-right: max(0px, calc(min(100%, var(--wp--style--global--content-size)) - 62ch)); margin-bottom: 2.5rem; }

/* ---------- buttons ---------- */
.wp-block-button.is-style-outline > .wp-block-button__link {
	background: transparent;
	color: inherit;
	border: 1.5px solid currentColor;
	padding: calc(0.85rem - 1.5px) calc(1.75rem - 1.5px);
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover {
	background: rgba(255, 255, 255, 0.08);
	color: inherit;
}
/* editorial underlined link (per M2 reference mockup) */
.wp-block-button.is-style-mm-link > .wp-block-button__link {
	background: transparent;
	color: var(--mm-gold-soft);
	padding: 0 0 4px;
	border-radius: 0;
	border-bottom: 1px solid currentColor;
}
.wp-block-button.is-style-mm-link > .wp-block-button__link:hover { background: transparent; opacity: 0.75; color: var(--mm-gold-soft); }
:where(.has-white-background-color, .has-mist-background-color, .has-cream-background-color, .mm-main--page :is(.mm-content, :where(.wp-block-post-content.is-root-container))) .wp-block-button.is-style-mm-link > .wp-block-button__link,
.mm-panel--cream .wp-block-button.is-style-mm-link > .wp-block-button__link { color: var(--mm-gold-deep); }

/* ---------- header ---------- */
.mm-header {
	position: relative;
	z-index: 20;
	gap: 1.5rem;
	padding-left: var(--wp--custom--gutter) !important;
	padding-right: var(--wp--custom--gutter) !important;
}
.mm-header__logo { flex: none; margin: 0; }
.mm-header__logo img { display: block; }
/* V6 layout: logo | menu centred in the remaining space | ticket button */
.mm-header .mm-menu--header { flex: 1 1 auto; min-width: 0; display: flex; justify-content: center; }
.mm-header__cta { flex: none; }
.mm-header__cta .wp-block-button__link { white-space: nowrap; padding: 0.75rem 1.4rem; }

/* ---------- site menu (classic menus from Appearance → Menus; If Menu rules apply) ---------- */
.mm-menu__list { list-style: none; margin: 0; padding: 0; }
.mm-menu--header .mm-menu__list { display: flex; flex-wrap: nowrap; align-items: center; gap: clamp(0.9rem, 1.8vw, 1.9rem); }
.mm-menu--header .menu-item { position: relative; margin: 0; }
.mm-menu--header .menu-item > a,
.mm-menu__parent {
	display: block;
	color: #fff;
	text-decoration: none;
	padding: 0.35rem 0;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	white-space: nowrap;
}
.mm-menu__parent,
.mm-menu__sub-toggle,
.mm-menu__toggle { background: none; border: 0; margin: 0; font: inherit; cursor: pointer; color: #fff; }
.mm-menu--header .menu-item > a:hover,
.mm-menu__parent:hover,
.mm-menu--header .current-menu-item > a,
.mm-menu--header .current-menu-ancestor > a,
.mm-menu--header .current-menu-ancestor > .mm-menu__parent { color: var(--mm-gold-soft); }
/* chevron on parent items */
.mm-menu__sub-toggle { display: inline-flex; align-items: center; justify-content: center; width: 1.5rem; height: 1.5rem; padding: 0; }
.mm-menu__sub-toggle::before,
.mm-menu__parent::after {
	content: "";
	display: inline-block;
	width: 0.4em;
	height: 0.4em;
	border-right: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;
	transform: translateY(-25%) rotate(45deg);
	transition: transform 0.2s;
}
.mm-menu__parent::after { margin-left: 0.55em; }
.menu-item.is-open > .mm-menu__sub-toggle::before,
.menu-item.is-open > .mm-menu__parent::after { transform: translateY(15%) rotate(-135deg); }
.mm-menu--header .sub-menu { list-style: none; margin: 0; padding: 0; }
.mm-menu--header .sub-menu a { text-transform: none; letter-spacing: 0.01em; white-space: normal; }
.mm-menu__toggle { display: none; }
.screen-reader-text:not(:focus) {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}

/* full menu: one line, dropdowns on hover / click / keyboard */
.mm-menu--header:not(.is-compact) .menu-item-has-children { display: flex; align-items: center; gap: 0.1rem; }
.mm-menu--header:not(.is-compact) .sub-menu {
	position: absolute;
	top: 100%;
	left: -1.1rem;
	z-index: 30;
	min-width: 15rem;
	max-width: 22rem;
	width: max-content;
	margin-top: 0.6rem;
	padding: 0.55rem 0;
	background: var(--mm-deep);
	border-top: 2px solid var(--mm-gold);
	box-shadow: 0 18px 40px rgba(8, 11, 30, 0.45);
	opacity: 0;
	visibility: hidden;
	transform: translateY(6px);
	transition: opacity 0.18s, transform 0.18s, visibility 0s 0.18s;
}
/* invisible bridge so the pointer can cross the gap into the dropdown */
.mm-menu--header:not(.is-compact) .sub-menu::before { content: ""; position: absolute; left: 0; right: 0; bottom: 100%; height: 0.8rem; }
.mm-menu--header:not(.is-compact) .menu-item-has-children:hover > .sub-menu,
.mm-menu--header:not(.is-compact) .menu-item-has-children.is-open > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: none;
	transition: opacity 0.18s, transform 0.18s;
}
/* last items open leftwards so the dropdown stays on screen */
.mm-menu--header:not(.is-compact) .mm-menu__list > .menu-item:nth-last-child(-n+2) > .sub-menu { left: auto; right: -1.1rem; }
.mm-menu--header:not(.is-compact) .sub-menu a { display: block; padding: 0.5rem 1.35rem; font-size: 0.95rem; line-height: 1.35; color: #e6e7f5; }
.mm-menu--header:not(.is-compact) .sub-menu a:hover,
.mm-menu--header:not(.is-compact) .sub-menu .current-menu-item > a { background: rgba(255, 255, 255, 0.06); color: var(--mm-gold-soft); }

/* compact menu (menu.js adds .is-compact below 1180px, or whenever the items don't fit on one line):
   hamburger opens a full-screen panel, submenus expand as accordions */
.mm-header .mm-menu--header.is-compact { flex: none; order: 3; }
.mm-header:has(.is-compact) .mm-header__cta { margin-left: auto !important; }
.is-compact .mm-menu__toggle { display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; position: relative; z-index: 110; }
.mm-menu__bars,
.mm-menu__bars::before,
.mm-menu__bars::after { display: block; width: 24px; height: 2px; background: currentColor; transition: transform 0.2s, background-color 0.2s; }
.mm-menu__bars { position: relative; }
.mm-menu__bars::before,
.mm-menu__bars::after { content: ""; position: absolute; left: 0; }
.mm-menu__bars::before { top: -7px; }
.mm-menu__bars::after { top: 7px; }
.mm-menu__toggle[aria-expanded="true"] .mm-menu__bars { background: transparent; }
.mm-menu__toggle[aria-expanded="true"] .mm-menu__bars::before { transform: translateY(7px) rotate(45deg); }
.mm-menu__toggle[aria-expanded="true"] .mm-menu__bars::after { transform: translateY(-7px) rotate(-45deg); }
.is-compact .mm-menu__toggle[aria-expanded="true"] { position: fixed; top: calc(var(--wp-admin--admin-bar--height, 0px) + 1rem); right: var(--wp--custom--gutter); }
.is-compact .mm-menu__panel {
	display: none;
	position: fixed;
	inset: var(--wp-admin--admin-bar--height, 0px) 0 0 0;
	z-index: 100;
	overflow-y: auto;
	overscroll-behavior: contain;
	background: var(--mm-deep);
	padding: 5rem var(--wp--custom--gutter) 2.5rem;
}
.is-compact .mm-menu__panel.is-open { display: block; }
html.mm-menu-open { overflow: hidden; }
.mm-menu--header.is-compact .mm-menu__list { display: block; max-width: 34rem; margin: 0 auto; }
.mm-menu--header.is-compact .mm-menu__list > .menu-item { display: grid; grid-template-columns: 1fr auto; align-items: center; border-bottom: 1px solid rgba(255, 255, 255, 0.1); }
.mm-menu--header.is-compact .mm-menu__list > .menu-item > a,
.is-compact .mm-menu__parent { font-size: 1.2rem; padding: 0.85rem 0; text-align: left; white-space: normal; }
.is-compact .mm-menu__parent { grid-column: 1 / -1; display: flex; justify-content: space-between; align-items: center; width: 100%; }
.is-compact .mm-menu__parent::after { margin-right: 0.95rem; }
.is-compact .mm-menu__sub-toggle { width: 44px; height: 44px; }
.mm-menu--header.is-compact .sub-menu { display: none; grid-column: 1 / -1; padding: 0 0 0.9rem 1rem; }
.mm-menu--header.is-compact .menu-item.is-open > .sub-menu { display: block; }
.mm-menu--header.is-compact .sub-menu a { display: block; padding: 0.5rem 0; font-size: 1rem; color: #c9cbe8; }
.mm-menu--header.is-compact .sub-menu a:hover,
.mm-menu--header.is-compact .sub-menu .current-menu-item > a { color: var(--mm-gold-soft); }

/* ---------- tables (core Table block) ---------- */
.wp-block-table { margin-block: 1.75rem 2.25rem; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.wp-block-table table {
	width: 100%;
	border: 0;
	border-collapse: separate;
	border-spacing: 0;
	/* the editor defaults to equal-width columns; let short columns (Placing, State) stay narrow */
	table-layout: auto;
	font-size: 0.95rem;
	line-height: 1.45;
	color: var(--mm-ink);
}
.wp-block-table table :is(th, td) {
	border: 0;
	border-bottom: 1px solid var(--mm-line);
	padding: 0.8rem 1.1rem;
	text-align: left;
	vertical-align: top;
}
/* beats core's .wp-block-table .has-fixed-layout { table-layout: fixed } */
.wp-block-table table.has-fixed-layout { table-layout: auto; }
/* core lets fixed-layout cells break anywhere ("$5,000. / 00"); columns now size to content */
.wp-block-table table.has-fixed-layout :is(td, th) { word-break: normal; overflow-wrap: break-word; }
/* centred / right-aligned cells are values and prices: keep on one line */
.wp-block-table table td:is(.has-text-align-center, .has-text-align-right) { white-space: nowrap; }
.wp-block-table thead { border: 0; }
.wp-block-table thead th {
	background: var(--mm-deep);
	color: #fff;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	white-space: nowrap;
	padding-block: 0.95rem;
	border-bottom: 2px solid var(--mm-gold);
}
.wp-block-table tbody tr:nth-child(even) > * { background: var(--wp--preset--color--mist, #f1f3f9); }
.wp-block-table tbody tr:hover > * { background: rgba(206, 171, 82, 0.1); }
.wp-block-table tbody td:empty::after { content: "—"; color: var(--mm-line); }
.wp-block-table table :is(th, td).has-text-align-center { text-align: center; }
.wp-block-table table :is(th, td).has-text-align-right { text-align: right; }
.wp-block-table tfoot td { font-weight: 700; border-top: 2px solid var(--mm-ink); border-bottom: 0; }
.wp-block-table figcaption { margin-top: 0.7rem; font-size: 0.8rem; color: var(--wp--preset--color--body, #43476e); text-align: left; }
/* core "Stripes" style → same look as above */
.wp-block-table.is-style-stripes { border-bottom: 0; }
.wp-block-table.is-style-stripes tbody tr:nth-child(odd) { background-color: transparent; }
@media (max-width: 781px) {
	.wp-block-table table :is(th, td) { padding: 0.65rem 0.8rem; }
	/* let headings wrap on phones so one long heading can't push other columns off screen */
	.wp-block-table thead th { white-space: normal; letter-spacing: 0.1em; }
	/* 4+ columns: keep columns readable and let the table scroll sideways instead of squashing */
	.wp-block-table table:has(tr > :nth-child(4)) { min-width: 38rem; }
}

/* homepage: header floats over the hero photo */
body.home .wp-site-blocks > header:first-child {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	z-index: 20;
}
body.home .mm-header {
	background: linear-gradient(180deg, rgba(21, 27, 58, 0.9) 0%, rgba(21, 27, 58, 0.55) 62%, rgba(21, 27, 58, 0) 100%) !important;
	padding-bottom: 2.5rem !important;
}
@media (min-width: 1180px) {
	body.home .mm-menu--header:not(.is-compact) .mm-menu__list > .menu-item > a,
	body.home .mm-menu--header:not(.is-compact) .mm-menu__list > .menu-item > .mm-menu__parent { text-shadow: 0 1px 8px rgba(13, 17, 41, 0.6); }
}

@media (max-width: 1180px) {
	.mm-header__logo img { height: 48px !important; }
}
/* capitals run wider: step the menu down on small laptops so it stays on one line */
@media (min-width: 1180px) and (max-width: 1399px) {
	.mm-menu--header .mm-menu__list > .menu-item > a,
	.mm-menu--header .mm-menu__list > .menu-item > .mm-menu__parent { font-size: 0.875rem; letter-spacing: 0.04em; }
	.mm-menu--header .mm-menu__list { gap: clamp(0.8rem, 1.4vw, 1.4rem); }
}
@media (max-width: 600px) {
	.mm-header { gap: 0.75rem; }
	.mm-header__logo img { height: 40px !important; }
	.mm-header__cta .wp-block-button__link { padding: 0.6rem 0.9rem; font-size: 0.7rem; letter-spacing: 0.08em; }
}

/* ---------- hero: photo on top, type on the deep band below (never crosses faces) ---------- */
.mm-hero { position: relative; overflow: hidden; isolation: isolate; padding-bottom: clamp(64px, 7vh, 96px); }
.mm-hero__photo { position: relative; margin-top: 0 !important; margin-bottom: 0 !important; }
.mm-hero__photo img {
	width: 100%;
	height: max(360px, min(62.24vw, 82vh, 900px));
	object-fit: cover;
	object-position: 50% 0;
}
.mm-hero__photo::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(21, 27, 58, 0.14) 0%, rgba(21, 27, 58, 0) 65%, rgba(21, 27, 58, 0.5) 98%, var(--mm-deep) 100%);
	pointer-events: none;
}
.mm-hero__inner { position: relative; margin-top: clamp(-104px, -7vw, -48px) !important; }
@media (max-width: 781px) {
	/* small screens: header sits above the photo and the whole group shot stays in frame */
	body.home .wp-site-blocks > header:first-child { position: relative; }
	body.home .mm-header { background: var(--mm-deep) !important; padding-bottom: 0.9rem !important; }
	.mm-hero__photo img { height: auto; }
	.mm-hero__inner { margin-top: -1.5rem !important; }
}
.mm-hero__date {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 0.4rem 0.9rem;
	font-size: 0.95rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	margin-bottom: 1rem;
	text-shadow: 0 2px 14px rgba(13, 17, 41, 0.85);
}
.mm-hero__date::before {
	content: "";
	width: 58px;
	height: 1.5px;
	background: linear-gradient(90deg, rgba(206, 171, 82, 0), var(--mm-gold));
}
.mm-hero__date mark { font-size: 0.6em; }
.mm-hero__title {
	color: #fff;
	margin: 0 0 1.1rem;
	letter-spacing: 0.01em;
	text-shadow: 0 3px 22px rgba(13, 17, 41, 0.75);
}
.mm-hero__tagline { max-width: 46ch; color: rgba(255, 255, 255, 0.92); margin-bottom: 1.9rem; }
@media (prefers-reduced-motion: no-preference) {
	.mm-hero__inner > * { animation: mm-rise 0.8s ease both; }
	.mm-hero__inner > :nth-child(2) { animation-delay: 0.12s; }
	.mm-hero__inner > :nth-child(3) { animation-delay: 0.24s; }
	.mm-hero__inner > :nth-child(4) { animation-delay: 0.36s; }
	@keyframes mm-rise { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
}

/* ---------- gold anniversary ribbon ---------- */
.mm-anniv { padding-top: 0.7rem; padding-bottom: 0.7rem; }
.mm-anniv p { margin: 0; font-size: 0.78rem; font-weight: 700; letter-spacing: 0.22em; text-transform: uppercase; }

/* ---------- event ribbon ---------- */
.mm-ribbon { padding-top: 1.9rem; padding-bottom: 1.9rem; border-bottom: 1px solid rgba(255, 255, 255, 0.12); }
.mm-ribbon__row { gap: clamp(1.25rem, 3.5vw, 3rem) !important; }
.mm-fact { min-width: 180px; padding-right: clamp(1.25rem, 3.5vw, 3rem); border-right: 1px solid rgba(206, 171, 82, 0.45); }
.mm-fact > * { margin: 0; }
.mm-fact__label { color: var(--mm-gold); font-size: 0.66rem; margin-bottom: 0.35rem; }
.mm-fact__value { font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; }
.mm-countdown { display: flex; gap: clamp(0.9rem, 2vw, 1.6rem); }
.mm-countdown__unit { text-align: center; min-width: 54px; }
.mm-countdown__num { font-family: var(--mm-serif); font-size: 2.5rem; line-height: 1; color: var(--mm-gold); font-variant-numeric: tabular-nums; }
.mm-countdown__word { font-size: 0.62rem; letter-spacing: 0.24em; text-transform: uppercase; color: rgba(255, 255, 255, 0.65); margin-top: 0.5rem; }
.mm-ribbon .is-style-outline .wp-block-button__link { color: var(--mm-gold-soft); white-space: nowrap; }
@media (max-width: 720px) { .mm-fact { border-right: 0; padding-right: 0; } }

/* ---------- split panels ---------- */
.mm-panel.wp-block-media-text { min-height: clamp(420px, 55vh, 560px); }
.mm-panel .wp-block-media-text__content { padding: clamp(44px, 6vw, 88px) var(--wp--custom--gutter); }
.mm-panel .wp-block-media-text__content > * { max-width: 44ch; }
.mm-panel .wp-block-media-text__media,
.is-style-mm-panel .wp-block-media-text__media { position: relative; }
.is-style-mm-panel .wp-block-media-text__media::after {
	content: "";
	position: absolute;
	inset: 14px;
	border: 1px solid rgba(206, 171, 82, 0.8);
	pointer-events: none;
}
.mm-panel .mm-eyebrow {
	display: flex;
	align-items: center;
	gap: 14px;
	font-size: 0.7rem;
	letter-spacing: 0.3em;
	margin-bottom: 1.1rem;
	color: var(--mm-gold);
}
.mm-panel .mm-eyebrow::before {
	content: "";
	flex: none;
	width: 7px;
	height: 7px;
	background: currentColor;
	transform: rotate(45deg);
	box-shadow: 0 0 0 2.5px color-mix(in srgb, currentColor 25%, transparent);
}
.mm-panel .mm-eyebrow::after {
	content: "";
	flex: none;
	width: 64px;
	height: 1.5px;
	background: linear-gradient(90deg, currentColor, transparent);
	opacity: 0.85;
}
.mm-panel__title { font-size: clamp(1.9rem, 3.6vw, 2.9rem) !important; line-height: 1.08; margin: 0 0 1.1rem; text-wrap: balance; }
.mm-panel p:not(.mm-eyebrow) { line-height: 1.7; margin-bottom: 1.75rem; }
.mm-panel__cta { gap: 1rem 1.5rem; align-items: center; }
/* panel without a link yet ("More information coming soon"): reads like the CTA links, not clickable */
.mm-panel p.mm-panel__note { margin: 0; font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--mm-gold-deep); }
.mm-panel--deep p.mm-panel__note, .mm-panel--blue p.mm-panel__note { color: var(--mm-gold-soft); }
.mm-panel--deep, .mm-panel--blue { color: rgba(255, 255, 255, 0.86) !important; }
.mm-panel--deep h3, .mm-panel--blue h3 { color: #fff; }
.mm-panel--blue .mm-eyebrow { color: var(--mm-gold-soft); }
.mm-panel--cream { color: #5a5343 !important; }
.mm-panel--cream h3 { color: var(--mm-deep); }
.mm-panel--cream .mm-eyebrow { color: var(--mm-gold-deep); }
@media (max-width: 600px) {
	.mm-panel.wp-block-media-text.is-stacked-on-mobile { min-height: 0; }
	.mm-panel.is-stacked-on-mobile .wp-block-media-text__media { height: 64vw; min-height: 240px; grid-row: 1; }
	.mm-panel.is-stacked-on-mobile .wp-block-media-text__content { grid-row: 2; }
}

/* ---------- promo banners (Banners admin screen -> mm-polo/banners block) ---------- */
.mm-banners { background: var(--wp--preset--color--mist, #f1f3f9); padding: var(--wp--preset--spacing--50) var(--wp--custom--gutter); }
.mm-banners > * { max-width: var(--wp--style--global--wide-size, 1400px); margin-inline: auto; }
.mm-banners > .mm-banner + .mm-banner { margin-top: 1.25rem; }
.mm-banner { position: relative; display: flex; align-items: center; min-height: 380px; padding: clamp(2rem, 4vw, 3.5rem) clamp(1.5rem, 5vw, 4.5rem); background: var(--mm-midnight); color: #fff; overflow: hidden; text-decoration: none; box-sizing: border-box; }
.mm-banner__image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.mm-banner__body { position: relative; width: min(560px, 52%); }
.mm-banner__title { color: #fff; font-size: clamp(1.8rem, 3.4vw, 3rem) !important; line-height: 1.06; margin: 0 0 0.9rem; }
.mm-banner__sub { font-family: var(--mm-serif); font-size: clamp(1.05rem, 1.6vw, 1.4rem); line-height: 1.35; margin: 0 0 1.2rem; }
.mm-banner__cta { display: inline-block; font-family: var(--mm-serif); font-size: 1.05rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--mm-gold); padding-bottom: 4px; border-bottom: 1px solid currentColor; transition: opacity 0.2s; }
a.mm-banner:hover .mm-banner__cta { opacity: 0.75; }
a.mm-banner:focus-visible { outline: 3px solid var(--mm-gold); outline-offset: 3px; }
/* artwork-only banner (no heading/text): show the whole image, never crop baked-in text */
.mm-banner.is-artwork { display: block; min-height: 0; padding: 0; }
.mm-banner.is-artwork .mm-banner__image { position: static; display: block; height: auto; }
.mm-banner__picture { display: contents; }
.mm-slider__track > .mm-banner.is-artwork { display: flex; align-items: center; }
@media (max-width: 781px) {
	/* poster layout: photo strip on top, copy on the navy below */
	.mm-banner:not(.is-artwork) { flex-direction: column; align-items: stretch; min-height: 0; padding: 0; }
	.mm-banner:not(.is-artwork) .mm-banner__image { position: relative; display: block; height: 52vw; }
	.mm-banner__body { width: auto; flex: 1; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; padding: 1.5rem 1.4rem 1.8rem; }
}
/* slider (built by banner-slider.js): slides share one grid cell so the slot is as tall as the tallest banner */
.mm-slider__track { display: grid; }
.mm-slider__track > .mm-banner { grid-area: 1 / 1; margin: 0 !important; width: 100%; opacity: 0; visibility: hidden; transition: opacity 0.8s ease, visibility 0s linear 0.8s; }
.mm-slider__track > .mm-banner.is-active { opacity: 1; visibility: visible; transition: opacity 0.8s ease, visibility 0s; z-index: 1; }
.mm-slider__controls { display: flex; justify-content: center; align-items: center; gap: 0.35rem; margin-top: 1rem; }
.mm-slider__dot { appearance: none; border: 0; background: none; padding: 0; cursor: pointer; display: grid; place-items: center; width: 32px; height: 32px; }
.mm-slider__dot::before { content: ""; width: 10px; height: 10px; border-radius: 50%; border: 1.5px solid var(--mm-deep); transition: background 0.2s; }
.mm-slider__dot[aria-current="true"]::before { background: var(--mm-deep); }
.mm-slider__dot:hover::before { background: var(--mm-gold); border-color: var(--mm-gold); }
.mm-slider__dot:focus-visible { outline: 2px solid var(--mm-gold-deep); outline-offset: 2px; border-radius: 4px; }
@media (prefers-reduced-motion: reduce) {
	.mm-slider__track > .mm-banner,
	.mm-slider__track > .mm-banner.is-active { transition: none; }
}

/* ---------- cards, framed images, ambassadors ---------- */
.is-style-mm-card {
	background: #fff;
	border: 1px solid var(--mm-line);
	box-shadow: var(--mm-shadow);
	padding: 2rem 2.2rem;
	height: 100%;
	transition: transform 0.25s ease;
}
.is-style-mm-card:hover { transform: translateY(-3px); }
.is-style-mm-card h3 { margin: 0.2rem 0 0.8rem; }
.mm-card__go a { color: var(--mm-gold-deep); font-size: 0.8rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; text-decoration: none; }
.mm-card__go a::after { content: ""; position: absolute; inset: 0; }
.mm-plan .is-style-mm-card { position: relative; }
/* Default gold trim on content photos (matches the homepage panels): a thin gold line
   inset over the photo + soft shadow. Outline (not a pseudo-element) so it also works on
   plain <img> tags in older content. Skipped for logos (SVG), round/rounded styles, and
   anything inside .no-frame or the "No frame" image style. */
:where(:is(.mm-content, :where(.wp-block-post-content.is-root-container)), .mm-sections__media) :where(.wp-block-image, .wp-block-gallery, .wp-block-media-text__media, .mm-sections__media, p, a) img:not([src*=".svg" i]),
.mm-sections__media img:not([src*=".svg" i]) {
	outline: 1px solid rgba(206, 171, 82, 0.85);
	outline-offset: -10px;
	box-shadow: var(--mm-shadow);
}
:is(.mm-content, :where(.wp-block-post-content.is-root-container)) .wp-block-gallery img { outline-offset: -7px; }
:where(:is(.mm-content, :where(.wp-block-post-content.is-root-container))) :is(.is-style-rounded, .is-style-circle-mask, .is-style-mm-plain, .is-style-mm-frame, .is-style-mm-panel, .no-frame) img,
:where(:is(.mm-content, :where(.wp-block-post-content.is-root-container))) img.no-frame {
	outline: 0;
	box-shadow: none;
}
.is-style-mm-frame { position: relative; box-shadow: var(--mm-shadow); }
.is-style-mm-frame::after { content: ""; position: absolute; inset: 10px; border: 1px solid rgba(206, 171, 82, 0.85); pointer-events: none; }
.is-style-mm-frame img { display: block; width: 100%; object-position: 50% 25%; }
/* homepage: ambassadors group photo, shown whole (never cropped, so no faces are cut at any width) */
.mm-amb-photo { margin-block: 2rem 2.25rem; }
.mm-amb-photo img { width: 100%; height: auto; aspect-ratio: 40 / 21; }
.mm-amb-photo a { display: block; }

/* profile cards pattern (Maoliosa's Meet the Ambassadors mockup): photo (or initials until a photo is added),
   name, role, bio. Top row: text on a navy panel under the photo. Lower row: 3:4 photo with a gold edge. */
.mm-amb-grid { gap: 1.5rem; margin-bottom: 1.5rem; }
.mm-amb-card__initials { font-family: var(--mm-serif); font-size: clamp(2.25rem, 4.5vw, 2.75rem); color: var(--mm-gold-soft); letter-spacing: 0.04em; }
.mm-amb-card__photo--initials { background: linear-gradient(160deg, var(--mm-blue), var(--mm-deep)); }
.mm-amb-card__photo--initials > .wp-block-cover__background { opacity: 0.55 !important; }
/* Once a photo is in, it fills the tile untinted, however the editor added it: as the tile's own
   background (the navy overlay and any leftover initials go), or as an Image or Cover block dropped
   inside the tile (it's stretched over the whole tile, minus its own overlay, padding and trim). */
.mm-amb-card__photo:has(> .wp-block-cover__image-background) > .wp-block-cover__background { opacity: 0 !important; }
.mm-amb-card__photo:has(> .wp-block-cover__image-background) .mm-amb-card__initials { display: none; }
.mm-amb-card__photo > .wp-block-cover__inner-container:has(> :is(.wp-block-image, .wp-block-cover)) { position: absolute; inset: 0; z-index: 1; width: auto; max-width: none; margin: 0 !important; padding: 0 !important; }
.mm-amb-card__photo > .wp-block-cover__inner-container > :is(.wp-block-image, .wp-block-cover) { width: 100%; max-width: none !important; height: 100%; min-height: 0 !important; margin: 0 !important; padding: 0; aspect-ratio: auto !important; }
.mm-amb-card__photo > .wp-block-cover__inner-container > .wp-block-image img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 25%; outline: 0; box-shadow: none; }
.mm-amb-card__photo > .wp-block-cover__inner-container > .wp-block-cover > .wp-block-cover__background { opacity: 0 !important; }
.mm-amb-card__photo > .wp-block-cover__inner-container:has(> :is(.wp-block-image, .wp-block-cover)) > .mm-amb-card__initials { display: none; }
:is(.mm-content, :where(.wp-block-post-content.is-root-container)) .mm-amb-card > * { margin-block: 0; }
:is(.mm-content, :where(.wp-block-post-content.is-root-container)) h2.mm-amb-card__name { line-height: 1.2; }
:is(.mm-content, :where(.wp-block-post-content.is-root-container)) .mm-amb-card__role { margin-top: 0.5rem; font-size: 0.9375rem; font-weight: 600; color: var(--mm-gold-deep); }
:is(.mm-content, :where(.wp-block-post-content.is-root-container)) .mm-amb-card p:not([class*="mm-"]) { margin-top: 0.75rem; font-size: 0.9375rem; line-height: 1.6; }
.mm-amb-grid--2 .mm-amb-card { display: flex; flex-direction: column; padding-bottom: 1.6rem; background: var(--mm-deep); border-bottom: 3px solid var(--mm-gold); }
.mm-amb-grid--2 .mm-amb-card > :not(.mm-amb-card__photo) { padding-inline: 1.6rem; }
:is(.mm-content, :where(.wp-block-post-content.is-root-container)) .mm-amb-grid--2 h2.mm-amb-card__name { margin-top: 1.5rem; font-size: 1.625rem; color: #fff; }
:is(.mm-content, :where(.wp-block-post-content.is-root-container)) .mm-amb-grid--2 .mm-amb-card__role { color: var(--mm-gold-soft); font-size: 1rem; }
:is(.mm-content, :where(.wp-block-post-content.is-root-container)) .mm-amb-grid--2 .mm-amb-card p:not([class*="mm-"]) { color: #dde3ee; font-size: 1rem; }
.mm-amb-grid--3 .mm-amb-card__photo { aspect-ratio: 3 / 4 !important; border-bottom: 3px solid var(--mm-gold); }
:is(.mm-content, :where(.wp-block-post-content.is-root-container)) .mm-amb-grid--3 h2.mm-amb-card__name { margin-top: 1.1rem; font-size: 1.3125rem; }
@media (max-width: 781px) {
	.mm-amb-grid--3 { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem 0.9rem; }
	:is(.mm-content, :where(.wp-block-post-content.is-root-container)) .mm-amb-grid--3 h2.mm-amb-card__name { font-size: 1.125rem; }
	:is(.mm-content, :where(.wp-block-post-content.is-root-container)) .mm-amb-grid--3 .mm-amb-card__role { font-size: 0.875rem; }
}
@media (max-width: 380px) { .mm-amb-grid--3 { grid-template-columns: minmax(0, 1fr); } }

/* ---------- sponsor strip (stays light so every sponsor colourway holds up) ---------- */
.mm-sponsors { background: #eef0f5; border-top: 1px solid #dfe3ee; padding: 2.75rem var(--wp--custom--gutter) 3.25rem; }
.mm-sponsors__tier { max-width: 1180px; margin: 0 auto; }
.mm-sponsors__tier + .mm-sponsors__tier { margin-top: 2.25rem; }
.mm-sponsors__label {
	display: flex;
	align-items: center;
	gap: 18px;
	margin: 0 0 1.25rem;
	font-size: 0.7rem;
	font-weight: 600;
	letter-spacing: 0.24em;
	text-transform: uppercase;
	color: #6e7194;
}
.mm-sponsors__label::before, .mm-sponsors__label::after { content: ""; flex: 1; height: 1px; background: #d8dce9; }
.mm-sponsors__logos { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 20px 48px; }
.mm-sponsors__tier--event .mm-sponsors__logos { gap: 16px 36px; }
.mm-sponsors a, .mm-sponsors span { display: block; line-height: 0; }
.mm-sponsors img { width: auto; max-width: 220px; object-fit: contain; transition: opacity 0.2s ease; }
.mm-sponsors__tier--presenting img { height: 96px; max-width: 280px; }
.mm-sponsors__tier--major img { height: 62px; }
.mm-sponsors__tier--event img { height: 44px; max-width: 170px; }
.mm-sponsors a:hover img { opacity: 0.75; }
@media (max-width: 600px) {
	.mm-sponsors__logos { gap: 16px 28px; }
	.mm-sponsors__tier--presenting img { height: 72px; }
	.mm-sponsors__tier--major img { height: 46px; }
	.mm-sponsors__tier--event img { height: 34px; }
}

/* ---------- footer ---------- */
.mm-footer { color: #c9cbe8 !important; }
.mm-footer a:not(.wp-block-button__link) { color: #c9cbe8; text-decoration: none; }
.mm-footer a:not(.wp-block-button__link):hover { color: #fff; }
.mm-footer__heading { color: var(--mm-gold) !important; font-size: 0.75rem !important; letter-spacing: 0.2em; margin: 0 0 0.9rem; }
.mm-footer__links, .mm-footer__contact { list-style: none; padding: 0; margin: 0; display: grid; gap: 0.5rem; font-size: 0.92rem; }
.mm-footer__contact { margin-top: 1.25rem; }
.mm-footer__event { font-size: 0.92rem; margin: 1rem 0 1.4rem; }
.mm-footer .wp-block-buttons { gap: 0.75rem; }
.mm-footer .is-style-outline .wp-block-button__link { color: #fff; }
.mm-footer .wp-block-social-links { margin-top: 1.25rem; gap: 0.9rem; }
.mm-footer__bar {
	margin-top: 2.75rem !important;
	padding-top: 1.4rem;
	border-top: 1px solid rgba(255, 255, 255, 0.14);
	font-size: 0.82rem;
	color: #9698c4;
}
.mm-footer__bar p { margin: 0; }
.mm-menu--inline .mm-menu__list { display: flex; flex-wrap: wrap; }
.mm-menu--inline .menu-item + .menu-item::before { content: "·"; margin: 0 0.45em; }
@media (max-width: 781px) { .mm-footer__cols { row-gap: 2.25rem; } }

/* ---------- interior pages ---------- */
/* page title band: blurred polo photo under a navy wash so the white H1 stays readable (swap the photo in assets/img/titleband-polo.jpg) */
.mm-titleband {
	padding-top: clamp(3.5rem, 8vw, 6.5rem);
	padding-bottom: clamp(3rem, 6.5vw, 5.5rem);
	position: relative;
	background-image: linear-gradient(90deg, rgba(21, 27, 58, 0.9) 0%, rgba(21, 27, 58, 0.72) 45%, rgba(21, 27, 58, 0.5) 100%), url(../img/titleband-polo.jpg);
	background-size: cover;
	background-position: center 45%;
}
@media (max-width: 781px) {
	/* the title spans the full width on phones, so darken evenly */
	.mm-titleband { background-image: linear-gradient(rgba(21, 27, 58, 0.78), rgba(21, 27, 58, 0.78)), url(../img/titleband-polo.jpg); }
}
.mm-titleband::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 3px;
	background: var(--mm-gold);
}
.mm-titleband__title { color: #fff; margin-top: 0; margin-bottom: 0; padding-right: max(0px, calc(min(100%, var(--wp--style--global--content-size)) - 24ch)); text-wrap: balance; }
.mm-titleband__meta { color: var(--mm-gold-soft); font-size: 0.8rem; letter-spacing: 0.18em; text-transform: uppercase; margin-bottom: 0.6rem; }
:is(.mm-content, :where(.wp-block-post-content.is-root-container)) { padding-top: var(--wp--preset--spacing--50); }
.mm-content--wide { padding-top: 0; }
:is(.mm-content, :where(.wp-block-post-content.is-root-container)) h2 { margin-top: 2.5rem; }
:is(.mm-content, :where(.wp-block-post-content.is-root-container)) h3 { margin-top: 2rem; }
:is(.mm-content, :where(.wp-block-post-content.is-root-container)) img { max-width: 100%; }
/* buttons carried over from the old site have its corporate blue + small size inlined: give them the theme button look */
:is(.mm-content, :where(.wp-block-post-content.is-root-container)) .wp-block-button__link[style*="094fa3" i] { background-color: var(--mm-gold) !important; color: var(--mm-deep) !important; font-size: 0.8125rem !important; }
:is(.mm-content, :where(.wp-block-post-content.is-root-container)) .wp-block-button__link[style*="094fa3" i]:hover { background-color: var(--mm-gold-soft) !important; }

/* popup for old FancyBox-style inline content (legacy-popups.js) */
.mm-dialog { width: min(760px, calc(100% - 32px)); max-height: 86vh; padding: 0; border: 0; border-top: 4px solid var(--mm-gold); background: #fff; color: var(--mm-deep); box-shadow: 0 24px 60px rgba(13, 17, 41, 0.35); }
/* popup content: hidden on the front end only (body.wp-theme-mm-polo isn't in the editor,
   whose copy of this CSS gets re-prefixed); the dialog's copy drops the class */
body.wp-theme-mm-polo .popup-content { display: none !important; }
.popup-content { outline: 1px dashed var(--mm-gold); outline-offset: 8px; }
.popup-content::before { content: "Popup content · hidden on the page"; display: block; margin-bottom: 0.75rem; font-size: 0.7rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--mm-gold-deep); }
/* only the body scrolls: browsers give modal dialogs overflow:auto, which added a second scrollbar */
.mm-dialog[open] { display: flex; flex-direction: column; overflow: hidden; }
.mm-dialog__body { flex: 1 1 auto; min-height: 0; overscroll-behavior: contain; }
.mm-dialog::backdrop { background: rgba(21, 27, 58, 0.72); }
.mm-dialog__body { max-height: calc(86vh - 4px); overflow: auto; padding: clamp(1.5rem, 4vw, 2.75rem); }
.mm-dialog__body > :first-child > :first-child { margin-top: 0; }
.mm-dialog__body table { width: 100%; border-collapse: collapse; font-size: 0.95rem; }
.mm-dialog__body [style*="094fa3" i] { color: inherit !important; }
.mm-dialog__body th,
.mm-dialog__body td { text-align: left; vertical-align: top; padding: 0.55rem 0.75rem 0.55rem 0; border-bottom: 1px solid var(--mm-line); }
.mm-dialog__close { position: absolute; top: 0.6rem; right: 0.6rem; width: 40px; height: 40px; border: 0; background: none; cursor: pointer; color: var(--mm-deep); z-index: 1; }
.mm-dialog__close::before,
.mm-dialog__close::after { content: ""; position: absolute; left: 50%; top: 50%; width: 20px; height: 2px; background: currentColor; }
.mm-dialog__close::before { transform: translate(-50%, -50%) rotate(45deg); }
.mm-dialog__close::after { transform: translate(-50%, -50%) rotate(-45deg); }
.mm-dialog__close:hover { color: var(--mm-gold-deep); }
.mm-dialog__close:focus-visible { outline: 2px solid var(--mm-gold); outline-offset: 2px; }
:is(.mm-content, :where(.wp-block-post-content.is-root-container)) .alignleft { float: left; margin: 0.3rem 1.75rem 1rem 0; }
:is(.mm-content, :where(.wp-block-post-content.is-root-container)) .alignright { float: right; margin: 0.3rem 0 1rem 1.75rem; }
:is(.mm-content, :where(.wp-block-post-content.is-root-container)) .aligncenter { display: block; margin-left: auto; margin-right: auto; }
:is(.mm-content, :where(.wp-block-post-content.is-root-container))::after { content: ""; display: table; clear: both; }
:is(.mm-content, :where(.wp-block-post-content.is-root-container)) table { width: 100%; border-collapse: collapse; }
:is(.mm-content, :where(.wp-block-post-content.is-root-container)) :where(table) th, :is(.mm-content, :where(.wp-block-post-content.is-root-container)) :where(table) td { border-bottom: 1px solid var(--mm-line); padding: 0.6rem 0.75rem; text-align: left; vertical-align: top; }
:is(.mm-content, :where(.wp-block-post-content.is-root-container)) :where(table) thead th { background: var(--mm-deep); color: #fff; font-size: 0.8rem; letter-spacing: 0.08em; text-transform: uppercase; }
:is(.mm-content, :where(.wp-block-post-content.is-root-container)) iframe { max-width: 100%; }
.mm-single__image { margin-top: var(--wp--preset--spacing--50) !important; }
.mm-list { padding-top: var(--wp--preset--spacing--50); }

/* ---------- legacy ACF blocks ---------- */
.mm-legacy { margin-top: var(--wp--preset--spacing--50) !important; }
.mm-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 1.75rem; }
.mm-grid__card { background: #fff; border: 1px solid var(--mm-line); box-shadow: var(--mm-shadow); display: flex; flex-direction: column; }
.mm-grid__media { background: #f6f7fb; }
/* logo tile: white (many partner logos are JPG/PNG on a white background), fixed shape,
   logo scaled to fit whatever its file size — a big PNG or a lazy-load placeholder can't stretch the card */
.mm-grid--logos .mm-grid__media {
	display: grid;
	place-items: center;
	aspect-ratio: 3 / 2;
	padding: 1.5rem 1.75rem;
	background: #fff;
	border-bottom: 1px solid var(--mm-line);
	overflow: hidden;
}
.mm-grid--logos .mm-grid__media a { display: contents; }
.mm-grid--logos .mm-grid__media img {
	display: block;
	width: 100%;
	height: 100%;
	max-height: 110px;
	object-fit: contain;
}
.mm-grid--photos .mm-grid__media img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 20%; }
.mm-grid__body { padding: 1.1rem 1.3rem 1.3rem; }
.mm-grid__title { font-size: 1.25rem !important; margin: 0 0 0.4rem; }
.mm-grid__text { font-size: 0.9rem; }
.mm-grid__text p { margin: 0 0 0.4rem; }
.mm-grid__links { font-size: 0.78rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; margin: 0.6rem 0 0; display: flex; flex-wrap: wrap; gap: 0.4rem 1rem; }
.mm-grid__links a { color: var(--mm-gold-deep); }
/* Logo cards pattern: the same cards built from blocks — drop the block gaps, Image block margins and paragraph sizes */
:is(.mm-content, :where(.wp-block-post-content.is-root-container)) :is(.mm-grid, .mm-grid__card) > * { margin: 0; }
:is(.mm-content, :where(.wp-block-post-content.is-root-container)) .mm-grid__title { margin: 0 0 0.4rem; }
:is(.mm-content, :where(.wp-block-post-content.is-root-container)) p.mm-grid__text { margin: 0 0 0.4rem; font-size: 0.9rem; }
:is(.mm-content, :where(.wp-block-post-content.is-root-container)) p.mm-grid__links { margin: 0.6rem 0 0; font-size: 0.78rem; }
.mm-sections__row { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(1.5rem, 4vw, 3.5rem); align-items: center; padding: clamp(1.5rem, 4vw, 3rem) 0; border-bottom: 1px solid var(--mm-line); }
.mm-sections__row.is-flipped .mm-sections__media { order: 2; }
.mm-sections__media img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; object-position: 50% 30%; box-shadow: var(--mm-shadow); }
.mm-sections__body h2 { margin-top: 0; }
.mm-sections__video { margin-top: var(--wp--preset--spacing--50); aspect-ratio: 16 / 9; }
.mm-sections__video iframe { width: 100%; height: 100%; border: 0; }
@media (max-width: 781px) {
	.mm-sections__row { grid-template-columns: 1fr; }
	.mm-sections__row.is-flipped .mm-sections__media { order: 0; }
}

/* ---------- page patterns: link tiles, facts row, stat cards, steps, schedule ---------- */
.mm-small-note { font-size: 0.9rem; color: #6e7194; }
.mm-small-note a { color: var(--mm-gold-deep); font-weight: 700; }
.mm-facts { gap: 0.5rem 2.5rem; margin-block: 2rem 2.75rem; }
.mm-facts__item { margin: 0; text-align: center; font-weight: 700; color: var(--mm-ink); }
.mm-facts__item > span, .mm-stat > span { display: block; font-size: 0.72rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--mm-gold-deep); }

/* these pattern headings use the display serif in mixed case (h2 is otherwise uppercase sans) */
:is(.mm-content, :where(.wp-block-post-content.is-root-container)) :is(.mm-steps > h2, .mm-schedule > h2, h2.mm-amb-card__name, h2.mm-stat-card__title) { font-family: var(--mm-serif); font-weight: 400; text-transform: none; letter-spacing: 0; }
:is(.mm-content, :where(.wp-block-post-content.is-root-container)) :is(.mm-steps > h2, .mm-schedule > h2) { font-size: clamp(1.9rem, 3.2vw, 2.5rem); }
:is(.mm-content, :where(.wp-block-post-content.is-root-container)) h3.mm-step__title { font-family: var(--wp--preset--font-family--neutraface); font-weight: 700; }

/* link tiles: navy squares, gold icon + hairline, whole tile clickable; gold variant centred below */
.mm-tiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; margin-block: 0 2.5rem; }
.mm-tile { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.6rem; min-height: 15rem; padding: 2rem 1.5rem; background: var(--mm-deep); border-bottom: 3px solid var(--mm-gold); box-shadow: var(--mm-shadow); transition: transform 0.25s ease; }
.mm-tile:hover, .mm-tile:focus-within { transform: translateY(-3px); }
:is(.mm-content, :where(.wp-block-post-content.is-root-container)) .mm-tile > * { margin: 0; }
:is(.mm-content, :where(.wp-block-post-content.is-root-container)) .mm-tiles > .mm-tile { margin-block: 0; } /* grid gap does the spacing, not the block gap */
.mm-tile__icon img { width: 48px; height: 48px; outline: 0 !important; box-shadow: none !important; }
:is(.mm-content, :where(.wp-block-post-content.is-root-container)) h3.mm-tile__title { font-size: 1.35rem; line-height: 1.2; }
.mm-tile__title a { color: #fff; text-decoration: none; }
.mm-tile__title a::after { content: ""; position: absolute; inset: 0; }
.mm-tile__title a:focus-visible { outline: 0; }
.mm-tile:focus-within { outline: 2px solid var(--mm-gold); outline-offset: 3px; }
.mm-tile__sub { font-size: 0.9rem; color: rgba(255, 255, 255, 0.85); }
.mm-tile--accent .mm-tile__title a { color: var(--mm-gold); }
.mm-tile--gold { grid-column: 2; min-height: 0; background: var(--mm-gold); border-bottom-color: var(--mm-deep); }
.mm-tile--gold .mm-tile__title a { color: var(--mm-deep); }
.mm-tile--gold .mm-tile__sub { color: var(--mm-deep); }
/* only two navy tiles (e.g. one hidden): two columns, the gold tile centred underneath at the same width */
.mm-tiles:not(:has(> .mm-tile:not(.mm-tile--gold) ~ .mm-tile:not(.mm-tile--gold) ~ .mm-tile:not(.mm-tile--gold))) { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 52rem; margin-inline: auto; }
.mm-tiles:not(:has(> .mm-tile:not(.mm-tile--gold) ~ .mm-tile:not(.mm-tile--gold) ~ .mm-tile:not(.mm-tile--gold))) > .mm-tile--gold { grid-column: 1 / -1; justify-self: center; width: calc(50% - 0.625rem); }
@media (max-width: 781px) {
	.mm-tiles:not(:has(> .mm-tile:not(.mm-tile--gold) ~ .mm-tile:not(.mm-tile--gold) ~ .mm-tile:not(.mm-tile--gold))) { grid-template-columns: minmax(0, 1fr); }
	.mm-tiles:not(:has(> .mm-tile:not(.mm-tile--gold) ~ .mm-tile:not(.mm-tile--gold) ~ .mm-tile:not(.mm-tile--gold))) > .mm-tile--gold { grid-column: auto; width: auto; justify-self: stretch; }
}
@media (max-width: 781px) {
	.mm-tiles { grid-template-columns: minmax(0, 1fr); }
	.mm-tile, .mm-tile--gold { grid-column: auto; min-height: 0; }
}

/* stat cards + numbered steps */
.mm-stat-cards { gap: 1.25rem; margin-block: 1.25rem 3rem; }
.mm-stat-card { padding: 2.1rem 2rem 2rem; background: var(--mm-deep); color: #e6eaf2; }
:is(.mm-content, :where(.wp-block-post-content.is-root-container)) h2.mm-stat-card__title { margin: 0; color: #fff; font-size: 1.75rem; }
.mm-stat-card__stats { gap: 0.5rem 1.75rem; margin: 1.4rem 0; padding: 1.1rem 0; border-block: 1px solid rgba(223, 201, 138, 0.3); }
:is(.mm-content, :where(.wp-block-post-content.is-root-container)) .mm-stat-card > p { margin: 0; line-height: 1.65; }
.mm-stat { margin: 0; font-weight: 700; font-size: 1.6rem; line-height: 1; color: var(--mm-gold-soft); }
.mm-stat > span { margin-bottom: 0.3rem; font-weight: 400; letter-spacing: 0; text-transform: none; font-size: 0.8125rem; color: #c9d1e0; }
.mm-steps { padding: var(--wp--preset--spacing--50) 1.5rem; margin-bottom: 2.5rem; background: #faf7f0; }
:is(.mm-content, :where(.wp-block-post-content.is-root-container)) .mm-steps > h2 { margin-top: 0; }
.mm-steps__list { gap: 1.5rem 2rem; }
.mm-step__num { width: 44px; height: 44px; margin: 0 auto 1rem !important; border: 1px solid var(--mm-gold); border-radius: 50%; line-height: 42px; font-family: var(--mm-serif); font-size: 1.15rem; color: var(--mm-gold-deep); }
:is(.mm-content, :where(.wp-block-post-content.is-root-container)) h3.mm-step__title { margin: 0 0 0.4rem; font-size: 1.05rem; }
.mm-step p:not([class*="num"]) { font-size: 0.925rem; }

/* Schedule: hairline rows, gold times; "featured" rows navy (polo matches), "highlight" rows gold tint */
.mm-schedule { margin-block: 1rem 2.5rem; }
.mm-schedule__row { gap: 1rem 2rem; padding: 0.95rem 1rem; border-top: 1px solid #e4dccb; }
.mm-schedule__row:last-of-type { border-bottom: 1px solid #e4dccb; }
:is(.mm-content, :where(.wp-block-post-content.is-root-container)) .mm-schedule > .mm-schedule__row { margin-block: 0; } /* rows sit flush, like a table */
.mm-schedule > .mm-schedule__row + :not(.mm-schedule__row) { margin-top: 1.25rem; }
:is(.mm-content, :where(.wp-block-post-content.is-root-container)) .mm-schedule__row p { margin: 0; }
:is(.mm-content, :where(.wp-block-post-content.is-root-container)) .mm-schedule__row p + p { margin-top: 0.3rem; }
.mm-schedule__time { flex: 0 0 7rem; font-weight: 700; font-size: 0.95rem; color: var(--mm-gold-deep); }
.is-style-mm-schedule-feature { background: var(--mm-deep); border-left: 3px solid var(--mm-gold); color: #fff; }
.is-style-mm-schedule-feature .mm-schedule__time { color: var(--mm-gold); }
.is-style-mm-schedule-feature .mm-schedule__what p { font-family: var(--mm-serif); font-size: 1.25rem; }
.is-style-mm-schedule-highlight { background: #f6f2e9; border-left: 3px solid var(--mm-gold); }
.is-style-mm-schedule-highlight .mm-schedule__what p + p { font-weight: 700; color: var(--mm-gold-deep); }
@media (max-width: 600px) {
	.mm-schedule__row { gap: 0.75rem; padding-inline: 0.6rem; }
	.mm-schedule__time { flex-basis: 5.25rem; font-size: 0.85rem; }
}

/* "Normal case" heading style: keeps the capitalisation as typed (h2/h4 are otherwise uppercase) */
:is(h1, h2, h3, h4, h5, h6).is-style-mm-normal-case { text-transform: none; letter-spacing: 0.01em; }

/* Teams & Players: team logos were inserted at 340-380px; keep them small and even */
.mm-content--players .wp-block-image img { width: auto !important; max-width: min(200px, 100%); max-height: 96px; object-fit: contain; outline: 0; box-shadow: none; } /* logos: no photo trim */
.mm-content--players > h1 { margin-top: var(--wp--preset--spacing--60) !important; }

/* ---------- Hospitality patterns (from Maoliosa's mockup): glance, package feature, price list, offers, info, closing ---------- */
:is(.mm-content, :where(.wp-block-post-content.is-root-container)) :is(h2.mm-section-title, h2.mm-package__title, h2.mm-closing__title) { font-family: var(--mm-serif); font-weight: 400; text-transform: none; letter-spacing: 0; line-height: 1.05; }
:is(.mm-content, :where(.wp-block-post-content.is-root-container)) h2.mm-section-title { font-size: clamp(2rem, 4vw, 2.625rem); margin-top: 0; }

/* options at a glance: four linked cells divided by hairlines */
.mm-glance { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; margin-block: 2.5rem 0; background: var(--mm-line); border: 1px solid var(--mm-line); }
:is(.mm-content, :where(.wp-block-post-content.is-root-container)) .mm-glance > .mm-glance__item { position: relative; margin: 0; padding: 1.75rem 1.6rem; background: #fff; transition: background-color 0.2s ease; }
.mm-glance__item:hover, .mm-glance__item:focus-within { background: #faf7f0; }
:is(.mm-content, :where(.wp-block-post-content.is-root-container)) .mm-glance__item > * { margin: 0; }
:is(.mm-content, :where(.wp-block-post-content.is-root-container)) h3.mm-glance__name { font-size: 1.375rem; line-height: 1.2; }
.mm-glance__name a { color: var(--mm-ink); text-decoration: none; }
.mm-glance__name a::after { content: ""; position: absolute; inset: 0; }
:is(.mm-content, :where(.wp-block-post-content.is-root-container)) .mm-glance__desc { margin: 0.4rem 0 0.9rem; font-size: 0.9375rem; }
/* prices and figures use Neutraface Bold: Narziss's $ reads as an S ("S550") */
.mm-glance__price, .mm-pricebar__amount { font-family: var(--wp--preset--font-family--neutraface); font-weight: 700; font-size: 1.6rem; line-height: 1; color: var(--mm-gold-deep); }
.mm-glance__price > span, .mm-pricebar__amount > span { margin-left: 0.3rem; font-weight: 400; font-size: 0.8125rem; color: #6e7194; }
@media (max-width: 1000px) { .mm-glance { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 440px) { .mm-glance { grid-template-columns: minmax(0, 1fr); } }

/* package feature: photo stack + copy; --reverse puts the photos on the right */
.mm-package { gap: 3.5rem; margin-block: var(--wp--preset--spacing--60) 0; }
.mm-package > .wp-block-column { flex: 1 1 0 !important; min-width: 0; }
.mm-package > .mm-package__media { flex-grow: 1.05 !important; }
.mm-package--reverse .mm-package__media { order: 2; }
:is(.mm-content, :where(.wp-block-post-content.is-root-container)) .mm-package__media figure { margin: 0; }
.mm-package__pair { gap: 12px; margin: 12px 0 0 !important; }
:is(.mm-content, :where(.wp-block-post-content.is-root-container)) h2.mm-package__title { margin-top: 0; font-size: clamp(2.25rem, 4.5vw, 3rem); }
:is(.mm-content, :where(.wp-block-post-content.is-root-container)) .mm-package__tagline { margin-top: 0.6rem; font-family: var(--mm-serif); font-style: italic; font-size: 1.25rem; color: var(--mm-gold-deep); }
.mm-pricebar { gap: 1rem; margin-top: 1.75rem; padding-block: 1.25rem; border-block: 1px solid #e8e1d0; }
:is(.mm-content, :where(.wp-block-post-content.is-root-container)) .mm-pricebar > * { margin: 0; }
.mm-pricebar__amount { font-size: 2rem; color: var(--mm-ink); }
.mm-pricebar__amount > span { display: block; margin: 0.4rem 0 0; }
@media (max-width: 781px) {
	.mm-package { gap: 2rem; }
	.mm-package--reverse .mm-package__media { order: 0; }
	.mm-package__main img { aspect-ratio: 4 / 3 !important; }
}

/* inclusions drop-down (Details block): closed until "Inclusions" is clicked */
:is(.mm-content, :where(.wp-block-post-content.is-root-container)) .wp-block-details.mm-inclusions { margin-top: 1.5rem; border-bottom: 1px solid #e8e1d0; }
.mm-inclusions > summary { display: flex; justify-content: space-between; align-items: center; padding: 0.9rem 0; cursor: pointer; list-style: none; font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--mm-gold-deep); }
.mm-inclusions > summary::-webkit-details-marker { display: none; }
.mm-inclusions > summary::after { content: "+"; font-size: 1.4rem; font-weight: 400; line-height: 1; letter-spacing: 0; transition: transform 0.2s ease; }
.mm-inclusions[open] > summary::after { transform: rotate(45deg); }
.mm-inclusions > summary:focus-visible { outline: 2px solid var(--mm-gold); outline-offset: 2px; }
:is(.mm-content, :where(.wp-block-post-content.is-root-container)) .mm-inclusions ul { margin: 0; padding: 0; list-style: none; }
.mm-inclusions li { position: relative; padding: 0.75rem 0 0.75rem 1.6rem; border-top: 1px solid #e8e1d0; line-height: 1.5; }
.mm-inclusions li::before { content: ""; position: absolute; left: 2px; top: 1.3rem; width: 10px; height: 1px; background: var(--mm-gold); }
:is(.mm-content, :where(.wp-block-post-content.is-root-container)) .mm-fine { margin: 0.9rem 0; font-size: 0.8125rem; line-height: 1.6; color: #6e7194; }
@media (prefers-reduced-motion: reduce) { .mm-inclusions > summary::after { transition: none; } }

/* "Price list" table style: hairline rows, price in gold serif on the right */
.wp-block-table.is-style-mm-price-list { margin-block: 1.5rem; }
.wp-block-table.is-style-mm-price-list table { border-top: 1px solid #e8e1d0; }
.wp-block-table.is-style-mm-price-list tbody tr > * { background: transparent !important; padding: 0.75rem 0; border: 0; border-bottom: 1px solid #e8e1d0; }
.wp-block-table.is-style-mm-price-list td:last-child { text-align: right; white-space: nowrap; font-weight: 700; font-size: 1.0625rem; color: var(--mm-gold-deep); }

/* offer cards on a cream band */
.mm-offers { margin-block: var(--wp--preset--spacing--60) 0; padding: var(--wp--preset--spacing--60) var(--wp--custom--gutter, 1.5rem); background: #faf7f0; }
:is(.mm-content, :where(.wp-block-post-content.is-root-container)) .mm-offers__intro { max-width: 640px; margin: 1rem auto 0 !important; }
.mm-offers__grid { gap: 1.5rem; margin-top: 2.75rem; }
.mm-offer { display: flex; flex-direction: column; padding-bottom: 1.9rem; background: #fff; }
:is(.mm-content, :where(.wp-block-post-content.is-root-container)) .mm-offer > * { margin: 0; padding-inline: 1.9rem; }
:is(.mm-content, :where(.wp-block-post-content.is-root-container)) .mm-offer > figure { padding: 0; margin-bottom: 1.75rem; }
.mm-offer__top { gap: 0.75rem; }
:is(.mm-content, :where(.wp-block-post-content.is-root-container)) h3.mm-offer__name { margin: 0; font-size: 1.5rem; line-height: 1.15; }
.mm-offer__price { margin: 0; font-weight: 700; font-size: 1.6rem; line-height: 1; white-space: nowrap; color: var(--mm-gold-deep); }
:is(.mm-content, :where(.wp-block-post-content.is-root-container)) .mm-offer__for { margin-top: 0.3rem; font-size: 0.8125rem; color: #6e7194; }
:is(.mm-content, :where(.wp-block-post-content.is-root-container)) .mm-offer__blurb { margin-top: 0.9rem; font-family: var(--mm-serif); font-style: italic; font-size: 1.0625rem; }
:is(.mm-content, :where(.wp-block-post-content.is-root-container)) h4.mm-offer__label { margin-top: 1.1rem; font-size: 0.8125rem; color: var(--mm-gold-deep); }
:is(.mm-content, :where(.wp-block-post-content.is-root-container)) .mm-offer > p:not([class*="mm-"]) { margin-top: 0.3rem; font-size: 0.9375rem; line-height: 1.6; }
.mm-offers > .mm-small-note { margin-top: 2rem; }

/* info cards under a gold rule */
.mm-info { margin-block: var(--wp--preset--spacing--60) 0; }
.mm-info__grid { gap: 1.5rem; margin-top: 2.5rem; }
.mm-info__card { padding-top: 1.4rem; border-top: 2px solid var(--mm-gold); }
:is(.mm-content, :where(.wp-block-post-content.is-root-container)) h3.mm-info__title { margin: 0 0 0.5rem; font-size: 1.25rem; }
:is(.mm-content, :where(.wp-block-post-content.is-root-container)) .mm-info__card p { margin: 0 0 0.5rem; font-size: 0.9375rem; }

/* closing band */
.mm-closing { margin-block: var(--wp--preset--spacing--60) 0 !important; }
.mm-closing .wp-block-media-text__media { min-height: 340px; }
.mm-closing .wp-block-media-text__content { padding: 4rem 3.5rem; }
:is(.mm-content, :where(.wp-block-post-content.is-root-container)) h2.mm-closing__title { color: #fff; font-size: clamp(2rem, 4vw, 2.75rem); line-height: 1.1; }
.mm-closing p { color: #dde3ee; }
@media (max-width: 600px) { .mm-closing .wp-block-media-text__content { padding: 3rem 1.75rem; } .mm-closing .wp-block-media-text__media { min-height: 240px; } }
