/* ==========================================================================
   WELS Mamta Niketan — design layer
   Scoped to body.wels-preset-mamta so choosing another preset in the
   Customizer returns the site to the parent's look cleanly.
   Colours come from CSS variables only — never hex — so the Customizer
   still controls them.
   ========================================================================== */

/* ---------- Tokens the parent doesn't derive the way we need ---------- */
.wels-preset-mamta {
	/* Orange as text, dark enough for the cream ground too (4.72:1 on alt bg). */
	--wels-accent-text: #a3560f;
	--mn-line: color-mix(in srgb, var(--wels-ink) 10%, transparent);
	--mn-shadow: 0 10px 28px -14px rgba(36, 31, 28, .28);
	background: var(--wels-bg);
}
/* No heading font set under Settings → Advanced yet: fall back to a serif, not sans. */
.wels-preset-mamta:not(.wels-has-gfont) {
	--wels-heading-font: Georgia, "Times New Roman", serif;
}

/* ---------- Typography ---------- */
.wels-preset-mamta h1,
.wels-preset-mamta h2,
.wels-preset-mamta h3 {
	font-weight: 700;
	letter-spacing: 0;
}
.wels-preset-mamta .wels-eyebrow {
	letter-spacing: .16em;
	font-size: .74rem;
}

/* ---------- Header: one dark band ---------- */
.wels-preset-mamta .wels-site-header {
	box-shadow: 0 1px 0 rgba(0, 0, 0, .25);
	border-bottom: 3px solid var(--wels-accent);
}
.wels-preset-mamta .wels-site-name {
	color: #fff;
	text-transform: uppercase;
	letter-spacing: .06em;
	font-size: clamp(.98rem, 1.9vw, 1.2rem);
	/* Two lines — MAMTA NIKETAN / CONVENT SCHOOL — as in the mockup.
	   On one line the name took 400px and pushed the last menu item down. */
	max-width: 14em;
	line-height: 1.2;
}
.wels-preset-mamta a.wels-site-name:hover { color: var(--wels-accent-light); }
.wels-preset-mamta .wels-site-sub {
	color: var(--wels-accent-light);
	letter-spacing: .08em;
	font-size: .74rem;
}
/* The crest is a white disc on the dark band — give it a little air. */
.wels-preset-mamta .wels-branding .custom-logo {
	height: 64px;
	border-radius: 50%;
	background: #fff;
	padding: 2px;
}

/* Top-level menu only; dropdown panels keep the parent's light styling. */
.wels-preset-mamta .wels-primary-nav .wels-menu > .wels-menu-item > a {
	color: rgba(255, 255, 255, .88);
	font-size: .9rem;
	font-weight: 500;
	padding-left: 12px;
	padding-right: 12px;
	white-space: nowrap;
}
.wels-preset-mamta .wels-primary-nav .wels-menu > .wels-menu-item > a::after { left: 12px; right: 12px; }
.wels-preset-mamta .wels-primary-nav .wels-menu { flex-wrap: nowrap; }
.wels-preset-mamta .wels-primary-nav .wels-menu > .wels-menu-item > a:hover,
.wels-preset-mamta .wels-primary-nav .wels-menu > .wels-menu-item.current-menu-item > a,
.wels-preset-mamta .wels-primary-nav .wels-menu > .wels-menu-item.current-menu-ancestor > a {
	color: var(--wels-accent-light);
}
.wels-preset-mamta .wels-primary-nav .wels-submenu-toggle { color: rgba(255, 255, 255, .8); }
.wels-preset-mamta .wels-nav-toggle-bar,
.wels-preset-mamta .wels-nav-toggle-bar::before,
.wels-preset-mamta .wels-nav-toggle-bar::after { background: #fff; }
.wels-preset-mamta.wels-nav-open .wels-nav-toggle-bar { background: transparent; }

/* ---------- Buttons ---------- */
.wels-preset-mamta .wels-btn { font-weight: 600; letter-spacing: .01em; }
.wels-preset-mamta .wels-btn-accent:hover,
.wels-preset-mamta .wels-btn-accent:focus {
	filter: none;
	background: var(--wels-accent-light);
}

/* ---------- Homepage hero ----------
   A photo with no caption shows exactly as uploaded — no dark wash.
   A slide that has words on it gets a light wash on the left, just enough
   to keep white text readable, plus a soft text shadow. */
.wels-preset-mamta.wels-hero-full .wels-slide::after {
	background:
		linear-gradient(90deg,
			color-mix(in srgb, var(--wels-primary-dark) 55%, transparent) 0%,
			color-mix(in srgb, var(--wels-primary-dark) 25%, transparent) 40%,
			transparent 65%);
}
.wels-preset-mamta .wels-slide:not(:has(.wels-slide-caption))::after { display: none; }
/* (::before is the photo layer that does the slow zoom — never hide it.) */
/* A taller slider than the theme's "Tall" setting: about 82% of the screen
   on a computer (max 880px); phones keep the theme's own height. */
@media (min-width: 900px) {
	body.wels-preset-mamta.wels-hero-full .wels-hero-track { height: clamp(480px, 82vh, 880px); height: clamp(480px, 82svh, 880px); }
}
.wels-preset-mamta .wels-slide-caption { text-shadow: 0 2px 12px rgba(0, 0, 0, .45); }
.wels-preset-mamta .wels-slide-caption h2 {
	font-size: clamp(2rem, 5vw, 3.6rem);
	line-height: 1.08;
	max-width: 14ch;
}
.wels-preset-mamta .wels-slide-caption h2::after {
	content: "";
	display: block;
	width: 64px;
	height: 3px;
	margin-top: 22px;
	background: var(--wels-accent);
}
.wels-preset-mamta .wels-slide-caption p { color: rgba(255, 255, 255, .92); }
.wels-preset-mamta .wels-slide-caption .wels-btn-ghost { border-color: rgba(255, 255, 255, .7); }
/* Core prints the slide button as btn-primary — charcoal on a charcoal wash. Make it the crest orange. */
.wels-preset-mamta .wels-slide-caption .wels-btn-primary {
	background: var(--wels-accent);
	color: var(--wels-accent-ink);
}
.wels-preset-mamta .wels-slide-caption .wels-btn-primary:hover,
.wels-preset-mamta .wels-slide-caption .wels-btn-primary:focus {
	background: var(--wels-accent-light);
	color: var(--wels-accent-ink);
}

/* ---------- Section headings: left, short orange line after the title ---------- */
.wels-preset-mamta .wels-section-head {
	text-align: left;
	max-width: none;
	margin-bottom: clamp(22px, 3vw, 36px);
}
.wels-preset-mamta .wels-section-title {
	display: inline-flex;
	align-items: center;
	gap: 18px;
}
.wels-preset-mamta .wels-section-title::after {
	width: 48px;
	height: 2px;
	margin: 0;
	flex: 0 0 auto;
	border-radius: 0;
}
/* Sections whose own layout centres the head keep it centred. */
.wels-preset-mamta .wels-admissions-inner .wels-section-head,
.wels-preset-mamta .wels-about-grid.is-centred .wels-section-head { text-align: center; }

/* ---------- Cards: cream, hairline border, soft lift ---------- */
.wels-preset-mamta .wels-card,
.wels-preset-mamta .wels-ql-card,
.wels-preset-mamta .wels-update-card,
.wels-preset-mamta .wels-pillar,
.wels-preset-mamta .wels-leader-card,
.wels-preset-mamta .wels-tm-card,
.wels-preset-mamta .wels-newsletter-card {
	border: 1px solid var(--mn-line);
	box-shadow: none;
	transition: transform .2s ease, box-shadow .2s ease;
}
.wels-preset-mamta .wels-card:hover,
.wels-preset-mamta .wels-ql-card:hover,
.wels-preset-mamta .wels-update-card:hover {
	transform: translateY(-3px);
	box-shadow: var(--mn-shadow);
}
.wels-preset-mamta .wels-card-arrow {
	background: var(--wels-accent);
	color: var(--wels-accent-ink);
}

/* ---------- Interior page banner: dark, left-aligned, crumbs under title ---------- */
.wels-preset-mamta .wels-page-banner {
	text-align: left;
	background: var(--wels-primary);
	padding: clamp(40px, 6vw, 64px) 0 clamp(34px, 5vw, 52px);
}
.wels-preset-mamta .wels-page-banner.has-photo::before {
	background: linear-gradient(90deg,
		color-mix(in srgb, var(--wels-primary-dark) 92%, transparent) 0%,
		color-mix(in srgb, var(--wels-primary-dark) 70%, transparent) 45%,
		color-mix(in srgb, var(--wels-primary-dark) 20%, transparent) 100%);
}
.wels-preset-mamta .wels-page-banner-title { text-shadow: none; }
.wels-preset-mamta .wels-page-banner-title::after { margin: 16px 0 0; height: 3px; width: 56px; border-radius: 0; }
.wels-preset-mamta .wels-page-banner-sub { margin-left: 0; text-shadow: none; }
.wels-preset-mamta .wels-page-banner .wels-crumbs ol { justify-content: flex-start; }
.wels-preset-mamta .wels-page-banner .wels-crumbs a { color: var(--wels-accent-light); }

/* The faint crest behind a photo-less banner: this school's logo file has a
   white square background, so it showed as a pale block. Off here; a crest
   with a transparent background could bring it back. */
.wels-preset-mamta .wels-page-banner:not(.has-photo)::after { content: none; }
/* A page whose own text is empty (the content comes from a section below)
   shouldn't leave a blank band under the banner. */
.wels-preset-mamta .wels-page-body:not(:has(*)) { display: none; }

/* ---------- Tables (faculty, committees, notices, downloads) ---------- */
.wels-preset-mamta .wels-table thead th,
.wels-preset-mamta .wels-committee-table thead th {
	background: var(--wels-primary);
	color: #fff;
	font-weight: 600;
}
.wels-preset-mamta .wels-table tbody tr:nth-child(even),
.wels-preset-mamta .wels-committee-table tbody tr:nth-child(even) {
	background: var(--wels-alt-bg);
}

/* ---------- Footer ---------- */
.wels-preset-mamta .wels-site-footer { border-top: 3px solid var(--wels-accent); }
.wels-preset-mamta .wels-footer-name {
	font-family: var(--wels-heading-font);
	color: #fff;
	text-transform: uppercase;
	letter-spacing: .06em;
}
.wels-preset-mamta .wels-footer-tagline {
	font-family: var(--wels-heading-font);
	font-style: italic;
	color: var(--wels-accent-light);
}
.wels-preset-mamta .wels-footer-title { color: #fff; }
.wels-preset-mamta .wels-footer-title::after { background: var(--wels-accent); }
.wels-preset-mamta .wels-site-footer a:hover { color: var(--wels-accent-light); }

/* ==========================================================================
   Homepage pairs (front-page.php): two sections side by side, each in a
   panel. Core's own section markup is reused; only its frame is reset.
   ========================================================================== */
.mn-duo {
	padding: clamp(40px, 6vw, 72px) 0;
	background: var(--wels-alt-bg);
}
.mn-duo-grid {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	gap: clamp(20px, 2.4vw, 32px);
	align-items: stretch;
}
.mn-duo-achievements-updates .mn-duo-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.mn-duo-col { display: flex; min-width: 0; }

/* Each section becomes a panel; its own container stops adding width/padding. */
.mn-duo .mn-duo-col > .wels-section {
	flex: 1;
	min-width: 0; /* a carousel inside must scroll, not widen the column */
	/* Core pulls Quick Links up over the hero with a negative margin; in a panel that made it 38px taller than its partner. */
	margin: 0;
	box-shadow: none; /* Core floats Quick Links with a heavy shadow; panels should match. */
	z-index: auto;
	padding: clamp(20px, 2.4vw, 30px);
	background: var(--wels-bg);
	border: 1px solid var(--mn-line);
	border-top: 3px solid var(--wels-accent);
	border-radius: var(--wels-radius);
}
.mn-duo .mn-duo-col > .wels-section > .wels-container {
	max-width: none;
	width: auto;
	padding: 0;
	margin: 0;
}
.mn-duo .wels-section-head,
.mn-duo .wels-updates-head { text-align: left; margin: 0 0 18px; }
.mn-duo .wels-section-title,
.mn-duo .wels-updates-title {
	font-size: clamp(1.25rem, 1.8vw, 1.5rem);
	margin: 0;
	max-width: none;
}
.mn-duo .wels-section-cta { text-align: left; margin-top: 18px; }

/* Quick Links: two columns of row tiles — icon left, label right. */
.mn-duo .wels-ql-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.mn-duo .wels-ql-card {
	display: grid;
	grid-template-columns: 40px 1fr;
	align-items: center;
	column-gap: 12px;
	min-height: 64px;
	padding: 12px 14px;
	text-align: left;
	background: var(--wels-alt-bg);
	box-shadow: none;
}
.mn-duo .wels-ql-figure {
	grid-row: span 2;
	width: 40px;
	height: 40px;
	display: grid;
	place-items: center;
	border-radius: var(--wels-radius);
	background: var(--wels-primary);
	color: var(--wels-accent-light);
}
.mn-duo .wels-ql-figure svg,
.mn-duo .wels-ql-figure img { width: 22px; height: 22px; }
.mn-duo .wels-ql-label { font-weight: 600; font-size: .94rem; line-height: 1.25; }
.mn-duo .wels-ql-note { font-size: .78rem; color: var(--wels-muted); line-height: 1.3; }

/* Notices: a dated list instead of a horizontal scroller. */
.mn-duo .wels-notice-viewport { overflow: visible; }
.mn-duo .wels-notice-track { flex-direction: column; gap: 0; padding: 0; }
.mn-duo .wels-notice-card {
	flex: none;
	min-height: 0;
	padding: 14px 0;
	background: transparent;
	box-shadow: none;
	border-radius: 0;
	border-top: 0;
	border-bottom: 1px solid var(--mn-line);
	display: grid;
	grid-template-columns: auto 1fr;
	column-gap: 16px;
	align-items: start;
}
.mn-duo .wels-notice-card:nth-child(n+5) { display: none; }
.mn-duo .wels-notice-date {
	grid-row: span 3;
	min-width: 64px;
	padding: 6px 8px;
	text-align: center;
	line-height: 1.25;
	font-size: .74rem;
	color: var(--wels-accent-text);
	background: var(--wels-alt-bg);
	border-radius: var(--wels-radius);
}
.mn-duo .wels-notice-title { font-size: 1rem; margin: 0 0 4px; }
.mn-duo .wels-notice-text {
	margin: 0 0 6px;
	font-size: .88rem;
	display: -webkit-box;
	-webkit-line-clamp: 1;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.mn-duo .wels-notice-actions { gap: 12px; font-size: .86rem; }

/* News & Events: one column, picture on the left. */
.mn-duo .wels-updates-eyebrow { margin-bottom: 4px; }
.mn-duo .wels-updates-grid { grid-template-columns: minmax(0, 1fr); gap: 12px; }
.mn-duo .wels-update-card:nth-child(n+4) { display: none; }
.mn-duo .wels-update-card > article { flex-direction: row; }
/* School news pictures are often square flyers with text on them, so the
   whole picture is shown (contain), on cream, never cropped. */
.mn-duo .wels-update-media {
	flex: 0 0 150px;
	aspect-ratio: 1;
	align-self: flex-start;
	background: var(--wels-alt-bg);
}
.mn-duo .wels-update-media img { width: 100%; height: 100%; object-fit: contain; }

/* Achievements: compact single column, three at most. */
.mn-duo .wels-ach-grid { grid-template-columns: minmax(0, 1fr); gap: 12px; }
.mn-duo .wels-ach-card:nth-child(n+4) { display: none; }
.mn-duo .wels-ach-card { flex-direction: row; }
.mn-duo .wels-ach-photo { flex: 0 0 130px; aspect-ratio: 1; align-self: flex-start; }
.mn-duo .wels-ach-photo img { object-fit: contain; object-position: center; }
.mn-duo .wels-ach-body { padding: 14px 16px; gap: 4px; }

@media (max-width: 900px) {
	.mn-duo-grid,
	.mn-duo-achievements-updates .mn-duo-grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 520px) {
	.mn-duo .wels-ql-grid { grid-template-columns: minmax(0, 1fr); }
	.mn-duo .wels-update-card > article,
	.mn-duo .wels-ach-card { flex-direction: column; }
	.mn-duo .wels-update-media,
	.mn-duo .wels-ach-photo { flex-basis: auto; width: 100%; aspect-ratio: 1; }
}

/* ==========================================================================
   Leadership — homepage only: a dark charcoal band, as the mockup's
   Leadership panel. The Leadership page itself keeps the light bands, so a
   page of several messages doesn't become a wall of dark.
   Covers all three homepage modes Core offers (one / all / summary) and the
   tribute band.
   ========================================================================== */
.wels-preset-mamta.wels-front .wels-principal,
.wels-preset-mamta.wels-front .wels-leaders-summary {
	background: var(--wels-primary);
	color: rgba(255, 255, 255, .86);
	position: relative;
	overflow: hidden;
	isolation: isolate;
}
.wels-preset-mamta.wels-front .wels-principal-plain { background: var(--wels-primary-dark); }

/* Photo: an orange frame offset behind it. */
.wels-preset-mamta.wels-front .wels-principal-photo { isolation: isolate; }
.wels-preset-mamta.wels-front .wels-principal-photo::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	transform: translate(14px, 14px);
	border: 2px solid var(--wels-accent);
	border-radius: var(--wels-radius);
}
.wels-preset-mamta.wels-front .wels-principal-photo img { box-shadow: 0 18px 40px -16px rgba(0, 0, 0, .6); }

/* Words. */
.wels-preset-mamta.wels-front .wels-principal-body { position: relative; }
.wels-preset-mamta.wels-front .wels-principal-body::before {
	content: "\201C";
	display: block;
	height: .55em;
	font-family: var(--wels-heading-font);
	font-size: 4.5rem;
	line-height: 1;
	color: var(--wels-accent);
}
.wels-preset-mamta.wels-front .wels-principal-eyebrow { color: var(--wels-accent-light); letter-spacing: .14em; }
.wels-preset-mamta.wels-front .wels-principal-name { color: #fff; }
.wels-preset-mamta.wels-front .wels-principal-name::after {
	content: "";
	display: block;
	width: 48px;
	height: 2px;
	margin-top: 14px;
	background: var(--wels-accent);
}
.wels-preset-mamta.wels-front .wels-principal-text { color: rgba(255, 255, 255, .82); }
.wels-preset-mamta.wels-front .wels-principal-caret { background: var(--wels-accent); }
.wels-preset-mamta.wels-front .wels-principal-more .wels-btn-outline,
.wels-preset-mamta.wels-front .wels-lmsg-more .wels-btn-outline {
	color: #fff;
	border-color: rgba(255, 255, 255, .55);
	background: transparent;
}
.wels-preset-mamta.wels-front .wels-principal-more .wels-btn-outline:hover,
.wels-preset-mamta.wels-front .wels-lmsg-more .wels-btn-outline:hover {
	background: var(--wels-accent);
	border-color: var(--wels-accent);
	color: var(--wels-accent-ink);
}

/* Tribute band on the homepage. */
.wels-preset-mamta.wels-front .wels-tribute .wels-principal-body::before { content: none; }
.wels-preset-mamta.wels-front .wels-tribute .wels-principal-role {
	color: rgba(255, 255, 255, .7);
	border-bottom-color: rgba(255, 255, 255, .16);
}

/* Summary mode: light cards on the dark band. */
.wels-preset-mamta.wels-front .wels-leaders-summary .wels-section-title { color: #fff; }
.wels-preset-mamta.wels-front .wels-lmsg-card {
	background: rgba(255, 255, 255, .05);
	border: 1px solid rgba(255, 255, 255, .12);
	border-top: 3px solid var(--wels-accent);
	border-radius: var(--wels-radius);
}
.wels-preset-mamta.wels-front .wels-lmsg-role { color: var(--wels-accent-light); }
.wels-preset-mamta.wels-front .wels-lmsg-name { color: #fff; }
.wels-preset-mamta.wels-front .wels-lmsg-text { color: rgba(255, 255, 255, .8); }

/* Focus rings on the dark band. */
.wels-preset-mamta.wels-front .wels-principal a:focus-visible,
.wels-preset-mamta.wels-front .wels-leaders-summary a:focus-visible { outline-color: var(--wels-accent-light); }

/* ==========================================================================
   Academics — four stage cards (Kindergarten, Primary, Middle, Senior):
   photo on top, centred serif title, tagline, an orange round arrow.
   Applies wherever Core prints the Academics section, homepage or page.
   ========================================================================== */
.wels-preset-mamta .wels-academics .wels-card-grid:not(.is-carousel) {
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(16px, 2vw, 24px);
}
.wels-preset-mamta .wels-academics .wels-card {
	text-align: center;
	background: var(--wels-bg);
	padding-bottom: 20px;
}
.wels-preset-mamta .wels-academics .wels-card-media { aspect-ratio: 4 / 3; overflow: hidden; }
.wels-preset-mamta .wels-academics .wels-card-media img {
	height: 100%;
	transition: transform .5s ease;
}
.wels-preset-mamta .wels-academics a.wels-card:hover .wels-card-media img { transform: scale(1.05); }
.wels-preset-mamta .wels-academics .wels-card-icon { margin: 24px auto 0; }
.wels-preset-mamta .wels-academics .wels-card-title { margin: 18px 16px 4px; font-size: 1.15rem; }
.wels-preset-mamta .wels-academics .wels-card-tagline { margin: 0 16px 8px; }
.wels-preset-mamta .wels-academics .wels-card-text { margin: 0 18px 14px; font-size: .9rem; }
/* "Explore →" becomes a round orange arrow. Core marks the cue aria-hidden;
   the card title already names the link for screen readers. */
.wels-preset-mamta .wels-academics .wels-card-cue {
	margin: auto auto 0;
	padding: 0;
	font-size: 0;
}
.wels-preset-mamta .wels-academics .wels-card-arrow {
	display: inline-grid;
	place-items: center;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	font-size: 1rem;
	background: var(--wels-accent);
	color: var(--wels-accent-ink);
	transition: transform .18s ease, background .18s ease;
}
.wels-preset-mamta .wels-academics a.wels-card:hover .wels-card-arrow,
.wels-preset-mamta .wels-academics a.wels-card:focus-visible .wels-card-arrow {
	transform: translateX(3px);
	background: var(--wels-accent-light);
}
@media (max-width: 1000px) {
	.wels-preset-mamta .wels-academics .wels-card-grid:not(.is-carousel) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 520px) {
	.wels-preset-mamta .wels-academics .wels-card-grid:not(.is-carousel) { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
	.wels-preset-mamta .wels-academics .wels-card-media img,
	.wels-preset-mamta .wels-academics .wels-card-arrow { transition: none; }
	.wels-preset-mamta .wels-academics a.wels-card:hover .wels-card-media img { transform: none; }
}

/* ==========================================================================
   About (homepage): welcome text | campus photo | facts column.
   The facts column only exists when School facts is filled in
   (functions.php → wels_mn_about_facts).
   ========================================================================== */
.wels-preset-mamta .wels-about-media { position: relative; isolation: isolate; }
.wels-preset-mamta .wels-about-media::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	transform: translate(12px, 12px);
	border: 2px solid var(--wels-accent);
	border-radius: var(--wels-radius);
}
.wels-preset-mamta .wels-about-media img { box-shadow: none; aspect-ratio: 4 / 3; }

.wels-preset-mamta .wels-about-grid.mn-has-facts {
	grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr) minmax(170px, .5fr);
	grid-template-areas: "body media facts";
	align-items: center;
}
.wels-preset-mamta .mn-has-facts .wels-about-body { grid-area: body; }
.wels-preset-mamta .mn-has-facts .wels-about-media { grid-area: media; order: 0; }
.wels-preset-mamta .mn-has-facts .mn-about-facts { grid-area: facts; }
/* No photo yet: text and facts only, text no longer centred. */
.wels-preset-mamta .wels-about-grid.is-centred.mn-has-facts {
	grid-template-columns: minmax(0, 2fr) minmax(170px, 1fr);
	grid-template-areas: "body facts";
}
.wels-preset-mamta .is-centred.mn-has-facts .wels-about-body { text-align: left; max-width: none; margin: 0; }
.wels-preset-mamta .is-centred.mn-has-facts .wels-section-head { text-align: left; margin-inline: 0; }

.mn-about-facts dl { margin: 0; display: grid; gap: 0; }
.mn-fact {
	padding: 16px 0 16px 18px;
	border-left: 3px solid var(--wels-accent);
}
.mn-fact + .mn-fact { margin-top: 14px; }
.mn-fact dt {
	margin: 0;
	font-size: .74rem;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--wels-muted);
}
.mn-fact dd {
	margin: 4px 0 0;
	font-family: var(--wels-heading-font);
	font-size: clamp(1.15rem, 1.6vw, 1.45rem);
	font-weight: 700;
	line-height: 1.25;
	color: var(--wels-ink);
}

@media (max-width: 900px) {
	.wels-preset-mamta .wels-about-grid.mn-has-facts,
	.wels-preset-mamta .wels-about-grid.is-centred.mn-has-facts {
		grid-template-columns: minmax(0, 1fr);
		grid-template-areas: "media" "body" "facts";
	}
	.mn-about-facts dl { grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 14px; }
	.mn-fact + .mn-fact { margin-top: 0; }
}

/* ==========================================================================
   Facilities (homepage): photo tiles with a caption underneath, four to a
   view, as in the mockup. Works for both of Core's layouts — the carousel
   and the plain grid. A facility with no photo yet shows its icon on a
   cream tile of the same shape, so the row stays even.
   The full Facilities page keeps its descriptive cards.
   ========================================================================== */
.wels-preset-mamta.wels-front .wels-facilities .wels-card-grid { --mn-gap: clamp(14px, 1.8vw, 22px); gap: var(--mn-gap); }
.wels-preset-mamta.wels-front .wels-facilities .wels-card-grid:not(.is-carousel) { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.wels-preset-mamta.wels-front .wels-facilities .wels-card-grid.is-carousel > .wels-card {
	flex: 0 0 calc((100% - 3 * var(--mn-gap)) / 4);
}
.wels-preset-mamta.wels-front .wels-facilities .wels-card {
	background: transparent;
	border: 0;
	box-shadow: none;
	border-radius: 0;
	overflow: visible;
	text-align: center;
}
.wels-preset-mamta.wels-front .wels-facilities .wels-card:hover { transform: none; box-shadow: none; }
.wels-preset-mamta.wels-front .wels-facilities .wels-card-media,
.wels-preset-mamta.wels-front .wels-facilities .wels-card-icon {
	aspect-ratio: 4 / 3;
	height: auto;
	overflow: hidden;
	border-radius: var(--wels-radius);
}
.wels-preset-mamta.wels-front .wels-facilities .wels-card-media img {
	height: 100%;
	transition: transform .5s ease;
}
.wels-preset-mamta.wels-front .wels-facilities .wels-card:hover .wels-card-media img { transform: scale(1.05); }
.wels-preset-mamta.wels-front .wels-facilities .wels-card-icon {
	display: grid;
	place-items: center;
	padding: 0;
	background: var(--wels-bg);
	border: 1px solid var(--mn-line);
	border-bottom: 3px solid var(--wels-accent);
	color: var(--wels-accent-text);
}
.wels-preset-mamta.wels-front .wels-facilities .wels-card-glyph { width: 46px; height: 46px; }
.wels-preset-mamta.wels-front .wels-facilities .wels-card-icon img { width: 56px; height: 56px; object-fit: contain; }
.wels-preset-mamta.wels-front .wels-facilities .wels-card-title {
	margin: 12px 4px 0;
	font-size: .98rem;
	line-height: 1.3;
}
/* Captions only on the homepage; the full text lives on the Facilities page. */
.wels-preset-mamta.wels-front .wels-facilities .wels-card-tagline,
.wels-preset-mamta.wels-front .wels-facilities .wels-card-text { display: none; }
.wels-preset-mamta.wels-front .wels-facilities .wels-card-cue { margin: 6px auto 0; font-size: .82rem; color: var(--wels-accent-text); }

/* Carousel controls in the site colours. */
.wels-preset-mamta .wels-carousel-btn { color: var(--wels-ink); border-color: var(--mn-line); }
.wels-preset-mamta .wels-carousel-btn:hover:not(:disabled) { background: var(--wels-accent); color: var(--wels-accent-ink); border-color: var(--wels-accent); }
.wels-preset-mamta .wels-carousel-dot[aria-current="true"] { background: var(--wels-accent); }

@media (max-width: 1000px) {
	.wels-preset-mamta.wels-front .wels-facilities .wels-card-grid:not(.is-carousel) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.wels-preset-mamta.wels-front .wels-facilities .wels-card-grid.is-carousel > .wels-card { flex-basis: calc((100% - var(--mn-gap)) / 2); }
}
@media (max-width: 520px) {
	.wels-preset-mamta.wels-front .wels-facilities .wels-card-grid.is-carousel > .wels-card { flex-basis: 78%; }
}
@media (prefers-reduced-motion: reduce) {
	.wels-preset-mamta.wels-front .wels-facilities .wels-card-media img { transition: none; }
	.wels-preset-mamta.wels-front .wels-facilities .wels-card:hover .wels-card-media img { transform: none; }
}

/* ==========================================================================
   Life at school — the Activities section on the homepage: a row of up to
   five photo cards, caption on a white strip beneath, as in the mockup.
   Which activities appear is still the office's choice ("Show this activity
   on the homepage" on each card). The Activities page keeps its full cards.
   ========================================================================== */
.wels-preset-mamta.wels-front .wels-activities .wels-card-grid { --mn-gap: clamp(12px, 1.4vw, 18px); gap: var(--mn-gap); }
.wels-preset-mamta.wels-front .wels-activities .wels-card-grid:not(.is-carousel) {
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}
.wels-preset-mamta.wels-front .wels-activities .wels-card-grid.is-carousel > .wels-card {
	flex: 0 0 calc((100% - 4 * var(--mn-gap)) / 5);
}
.wels-preset-mamta.wels-front .wels-activities .wels-card {
	background: var(--wels-bg);
	border: 1px solid var(--mn-line);
	box-shadow: none;
	text-align: left;
}
.wels-preset-mamta.wels-front .wels-activities .wels-card-media,
.wels-preset-mamta.wels-front .wels-activities .wels-card-icon {
	aspect-ratio: 5 / 4;
	height: auto;
	overflow: hidden;
}
.wels-preset-mamta.wels-front .wels-activities .wels-card-media img {
	height: 100%;
	transition: transform .5s ease;
}
.wels-preset-mamta.wels-front .wels-activities .wels-card:hover .wels-card-media img { transform: scale(1.05); }
.wels-preset-mamta.wels-front .wels-activities .wels-card-icon {
	display: grid;
	place-items: center;
	padding: 0;
	background: var(--wels-alt-bg);
	color: var(--wels-accent-text);
	border-bottom: 1px solid var(--mn-line);
}
.wels-preset-mamta.wels-front .wels-activities .wels-card-glyph { width: 40px; height: 40px; }
.wels-preset-mamta.wels-front .wels-activities .wels-card-title {
	margin: 0;
	padding: 12px 14px;
	font-size: .95rem;
	line-height: 1.3;
	border-top: 3px solid var(--wels-accent);
}
.wels-preset-mamta.wels-front .wels-activities .wels-card-tagline,
.wels-preset-mamta.wels-front .wels-activities .wels-card-text { display: none; }
.wels-preset-mamta.wels-front .wels-activities .wels-card-cue { margin: -6px 14px 12px; font-size: .8rem; color: var(--wels-accent-text); }
/* "View More" sits under the row on the left, like the other sections. */
.wels-preset-mamta.wels-front .wels-activities .wels-card-more { text-align: left; }

@media (max-width: 1000px) {
	.wels-preset-mamta.wels-front .wels-activities .wels-card-grid.is-carousel > .wels-card { flex-basis: calc((100% - 2 * var(--mn-gap)) / 3); }
}
@media (max-width: 640px) {
	.wels-preset-mamta.wels-front .wels-activities .wels-card-grid:not(.is-carousel) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.wels-preset-mamta.wels-front .wels-activities .wels-card-grid.is-carousel > .wels-card { flex-basis: 70%; }
}
@media (prefers-reduced-motion: reduce) {
	.wels-preset-mamta.wels-front .wels-activities .wels-card-media img { transition: none; }
	.wels-preset-mamta.wels-front .wels-activities .wels-card:hover .wels-card-media img { transform: none; }
}

/* ==========================================================================
   Admissions band (homepage): a cream panel with an orange edge; heading,
   text and buttons on the left, the school's Admission Steps on the right
   (functions.php → wels_mn_admission_steps).
   ========================================================================== */
.wels-preset-mamta.wels-front .wels-admissions:not(.has-bg) { background: var(--wels-alt-bg); }
.wels-preset-mamta .wels-admissions-inner.mn-has-steps {
	/* Same width as every other section (Core narrows this band to 760px;
	   "none" let it run edge to edge). */
	max-width: 1180px;
	margin-inline: auto;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.35fr);
	column-gap: clamp(28px, 4vw, 60px);
	align-items: center;
	text-align: left;
}
.wels-preset-mamta .mn-has-steps > * { grid-column: 1; justify-self: start; }
.wels-preset-mamta .mn-has-steps > .mn-adm-process { grid-column: 2; grid-row: 1 / span 6; justify-self: stretch; }
.wels-preset-mamta .mn-has-steps .wels-section-head { text-align: left; margin-inline: 0; }
.wels-preset-mamta .mn-has-steps .wels-admissions-btn { margin: 4px 0 8px; }

.mn-adm-process {
	background: var(--wels-bg);
	border: 1px solid var(--mn-line);
	border-top: 3px solid var(--wels-accent);
	border-radius: var(--wels-radius);
	padding: clamp(18px, 2.4vw, 28px);
}
.mn-adm-process-title {
	margin: 0 0 16px;
	font-size: .74rem;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--wels-accent-text);
}
.mn-adm-steps {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	/* Two by two: the school's steps are full sentences, and four narrow
	   columns cut them off. Each step reads in full. */
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 20px 24px;
}
.mn-adm-step {
	display: grid;
	grid-template-columns: 36px minmax(0, 1fr);
	column-gap: 12px;
	align-items: start;
}
.mn-adm-num {
	grid-row: span 2;
	display: grid;
	place-items: center;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	font-family: var(--wels-heading-font);
	font-weight: 700;
	background: var(--wels-accent);
	color: var(--wels-accent-ink);
}
.mn-adm-name { display: block; font-size: .95rem; color: var(--wels-ink); line-height: 1.3; margin: 7px 0 4px; }
.mn-adm-text { display: block; font-size: .86rem; color: var(--wels-muted); line-height: 1.55; }

/* Photo background chosen in Settings: keep the steps panel readable on it. */
.wels-admissions.has-bg .mn-adm-process { box-shadow: 0 16px 40px -18px rgba(0, 0, 0, .5); }

@media (max-width: 900px) {
	.wels-preset-mamta .wels-admissions-inner.mn-has-steps { grid-template-columns: minmax(0, 1fr); }
	.wels-preset-mamta .mn-has-steps > .mn-adm-process { grid-column: 1; grid-row: auto; margin-top: 22px; }
}
@media (max-width: 600px) {
	.mn-adm-steps { grid-template-columns: minmax(0, 1fr); }
}

/* ==========================================================================
   Pair: Leadership | Our Facilities (front-page.php + wels_mn_prepare_pair).
   Left: a compact dark panel — photo, role, name, a few lines, Read Message.
   Right: the facilities tiles with "View All Facilities" beside the heading.
   ========================================================================== */
.mn-duo-leadership-facilities .mn-duo-grid { grid-template-columns: minmax(0, 5fr) minmax(0, 8fr); }
/* QC fix: the rule above outranked the 900px stacking rule (it comes later),
   so the pair stayed side by side on phones. Stack it again. */
@media (max-width: 900px) {
	.mn-duo-leadership-facilities .mn-duo-grid { grid-template-columns: minmax(0, 1fr); }
}

/* The dark panel keeps its own colours inside the duo frame. */
.wels-preset-mamta.wels-front .mn-duo .mn-duo-col > .wels-principal {
	background: var(--wels-primary);
	border-color: transparent;
	border-top-color: var(--wels-accent);
}
.wels-preset-mamta.wels-front .mn-duo .wels-principal-inner {
	grid-template-columns: 112px minmax(0, 1fr);
	gap: 20px;
	align-items: start;
}
.wels-preset-mamta.wels-front .mn-duo .wels-principal-photo { aspect-ratio: 4 / 5; max-width: none; }
.wels-preset-mamta.wels-front .mn-duo .wels-principal-photo::after { transform: translate(7px, 7px); }
.wels-preset-mamta.wels-front .mn-duo .wels-principal-body::before { content: none; }
.wels-preset-mamta.wels-front .mn-duo .wels-principal-name {
	font-size: clamp(1.15rem, 1.6vw, 1.4rem);
	margin-bottom: 12px;
}
.wels-preset-mamta.wels-front .mn-duo .wels-principal-name::after { margin-top: 10px; width: 40px; }
/* The message, cut to four lines; the whole of it is one click away. */
.wels-preset-mamta.wels-front .mn-duo .wels-principal-text {
	grid-column: 1 / -1;
	font-size: .93rem;
	line-height: 1.65;
	white-space: normal;
	display: -webkit-box;
	-webkit-line-clamp: 4;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.wels-preset-mamta.wels-front .mn-duo .wels-principal-more { margin: 16px 0 0; }
/* "Leadership" heading across the top of the panel. */
.wels-preset-mamta.wels-front .mn-duo .mn-lead-head { margin: 0 0 20px; text-align: left; }
.wels-preset-mamta.wels-front .mn-duo .mn-lead-head .wels-section-title { color: #fff; }
/* Read Message: a solid orange button so it can't be missed on the dark panel. */
.wels-preset-mamta.wels-front .mn-duo .wels-principal-more .wels-btn-outline {
	background: var(--wels-accent);
	border-color: var(--wels-accent);
	color: var(--wels-accent-ink);
}
.wels-preset-mamta.wels-front .mn-duo .wels-principal-more .wels-btn-outline:hover,
.wels-preset-mamta.wels-front .mn-duo .wels-principal-more .wels-btn-outline:focus-visible {
	background: var(--wels-accent-light);
	border-color: var(--wels-accent-light);
	color: var(--wels-accent-ink);
}
/* Under 560px wide the photo sits above the words. */
@media (max-width: 560px) {
	.wels-preset-mamta.wels-front .mn-duo .wels-principal-inner { grid-template-columns: minmax(0, 1fr); }
	.wels-preset-mamta.wels-front .mn-duo .wels-principal-photo { max-width: 160px; }
}

/* Facilities in the right-hand panel: four tiles to a view still. */
.mn-duo-leadership-facilities .wels-facilities .wels-container { position: relative; }
.mn-viewall {
	position: absolute;
	top: 6px;
	right: 0;
	font-size: .86rem;
	font-weight: 600;
	color: var(--wels-accent-text);
	text-decoration: none;
	white-space: nowrap;
}
.mn-viewall:hover { text-decoration: underline; }
.mn-duo-leadership-facilities .wels-facilities .wels-section-head { padding-right: 170px; }
.wels-preset-mamta.wels-front .mn-duo-leadership-facilities .wels-facilities .wels-card-title { font-size: .88rem; }
@media (max-width: 1100px) {
	.wels-preset-mamta.wels-front .mn-duo-leadership-facilities .wels-facilities .wels-card-grid.is-carousel > .wels-card { flex-basis: calc((100% - var(--mn-gap)) / 2); }
	.wels-preset-mamta.wels-front .mn-duo-leadership-facilities .wels-facilities .wels-card-grid:not(.is-carousel) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 520px) {
	.mn-viewall { position: static; display: inline-block; margin: -6px 0 14px; }
	.mn-duo-leadership-facilities .wels-facilities .wels-section-head { padding-right: 0; }
}

/* ==========================================================================
   Row: Achievements | News & Events | Latest Newsletter
   (front-page.php adds the newsletter as a third column when one exists).
   ========================================================================== */
.mn-duo-achievements-updates.mn-cols-3 .mn-duo-grid {
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr) minmax(0, .85fr);
}
.mn-newsletter-panel .wels-container,
.mn-duo .wels-achievements .wels-container,
.mn-duo .wels-updates .wels-container { position: relative; }
.mn-newsletter-panel .wels-section-head { padding-right: 90px; }

/* One issue: cover on the left, title, note and the PDF button beside it. */
.mn-newsletter-panel .wels-newsletters {
	display: block;
	list-style: none;
	margin: 0;
	padding: 0;
	overflow: visible;
}
.mn-newsletter-panel .wels-newsletter-card {
	display: grid;
	grid-template-columns: minmax(96px, 42%) minmax(0, 1fr);
	gap: 16px;
	align-items: start;
	width: auto;
	max-width: none;
	flex: none;
	margin: 0;
	padding: 0;
	background: transparent;
	border: 0;
	box-shadow: none;
}
.mn-newsletter-panel .wels-newsletter-cover {
	display: block;
	/* The cover keeps its own shape — a square flyer stays square, nothing cropped. */
	overflow: hidden;
	border-radius: var(--wels-radius);
	border: 1px solid var(--mn-line);
	background: var(--wels-primary);
}
.mn-newsletter-panel .wels-newsletter-cover img { width: 100%; height: auto; display: block; }
.mn-newsletter-panel .wels-newsletter-cover:has(.wels-newsletter-nocover),
.mn-newsletter-panel .wels-newsletter-cover.mn-has-preview { aspect-ratio: 3 / 4; }
.mn-newsletter-panel .wels-newsletter-nocover {
	display: grid;
	place-items: center;
	height: 100%;
	padding: 12px;
	text-align: center;
	font-family: var(--wels-heading-font);
	font-weight: 700;
	color: #fff;
	border-bottom: 4px solid var(--wels-accent);
}
.mn-newsletter-panel .wels-newsletter-body { padding: 0; }
.mn-newsletter-panel .wels-newsletter-body h3 { font-size: 1.05rem; margin: 2px 0 8px; }
.mn-newsletter-panel .wels-newsletter-body p { font-size: .88rem; color: var(--wels-muted); margin: 0 0 14px; }
.mn-newsletter-panel .wels-newsletter-btn {
	align-self: flex-start;
	justify-self: start;
	width: auto;
	background: var(--wels-accent);
	border-color: var(--wels-accent);
	color: var(--wels-accent-ink);
	padding: 10px 16px;
	font-size: .88rem;
}
.mn-newsletter-panel .wels-newsletter-btn:hover { background: var(--wels-accent-light); border-color: var(--wels-accent-light); }

/* The PDF's first page standing in for a cover (functions.php). */
.mn-newsletter-panel .wels-newsletter-cover.mn-has-preview { background: #fff; }
.mn-newsletter-panel .mn-pdf-preview {
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
	pointer-events: none; /* the click belongs to the link around it */
}
.mn-newsletter-panel .mn-has-preview img { height: 100%; object-fit: cover; object-position: top center; }

/* A newsletter shown on its own (the other two empty) still looks finished. */
.mn-newsletter-panel:not(.mn-duo .mn-newsletter-panel) .wels-newsletter-card { max-width: 560px; }

@media (max-width: 1100px) {
	.mn-duo-achievements-updates.mn-cols-3 .mn-duo-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.mn-duo-achievements-updates.mn-cols-3 .mn-duo-col-extra { grid-column: 1 / -1; }
}
@media (max-width: 900px) {
	.mn-duo-achievements-updates.mn-cols-3 .mn-duo-grid { grid-template-columns: minmax(0, 1fr); }
}

/* ==========================================================================
   INNER PAGES
   ========================================================================== */

/* ---------- Page hero (page.php → wels_mn_page_banner) ----------
   Section label, title, intro, crumbs on the left; the page's photograph on
   the right fading into charcoal. */
.wels-preset-mamta .mn-hero {
	position: relative;
	text-align: left;
	background-color: var(--wels-primary);
	padding: clamp(40px, 6vw, 72px) 0 clamp(34px, 5vw, 56px);
	min-height: clamp(200px, 24vw, 300px);
	display: flex;
	align-items: center;
}
.wels-preset-mamta .mn-hero.mn-hero-photo {
	background-image:
		linear-gradient(90deg,
			var(--wels-primary) 0%,
			var(--wels-primary) 32%,
			color-mix(in srgb, var(--wels-primary) 70%, transparent) 50%,
			color-mix(in srgb, var(--wels-primary) 10%, transparent) 78%),
		var(--mn-hero-img);
	background-size: 100% 100%, cover;
	background-position: center, right center;
	background-repeat: no-repeat;
}
.wels-preset-mamta .mn-hero .wels-page-banner-inner { width: 100%; }
.wels-preset-mamta .mn-hero .wels-page-banner-title,
.wels-preset-mamta .mn-hero .wels-page-banner-sub,
.wels-preset-mamta .mn-hero .wels-crumbs { max-width: 560px; }
.mn-hero-eyebrow {
	margin: 0 0 10px;
	font-size: .74rem;
	font-weight: 700;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--wels-accent-light);
}
.wels-preset-mamta .mn-hero .wels-page-banner-title { font-size: clamp(1.9rem, 4.2vw, 3rem); line-height: 1.12; }
.wels-preset-mamta .mn-hero .wels-page-banner-sub { color: rgba(255, 255, 255, .88); font-size: 1rem; line-height: 1.6; margin: 14px 0 0; }
.wels-preset-mamta .mn-hero .wels-crumbs { margin-top: 16px; font-size: .85rem; }
@media (max-width: 760px) {
	/* On a phone the photo sits behind the words with a stronger wash. */
	.wels-preset-mamta .mn-hero.mn-hero-photo {
		background-image:
			linear-gradient(180deg, color-mix(in srgb, var(--wels-primary) 70%, transparent), var(--wels-primary)),
			var(--mn-hero-img-sm, var(--mn-hero-img)); /* the 1024px copy on phones */
		background-position: center, center;
	}
}

/* ---------- Shared: filter pills (gallery chips, achievement tabs) ---------- */
.wels-preset-mamta .wels-gallery-filter,
.mn-tabs {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
	margin: 0 0 28px;
}
.wels-preset-mamta .wels-gallery-filter button,
.mn-tab {
	padding: 8px 20px;
	min-width: 96px;
	font: inherit;
	font-size: .88rem;
	font-weight: 600;
	color: var(--wels-ink);
	background: var(--wels-bg);
	border: 1px solid var(--mn-line);
	border-radius: var(--wels-radius);
	cursor: pointer;
	transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.wels-preset-mamta .wels-gallery-filter button:hover,
.mn-tab:hover { border-color: var(--wels-accent); color: var(--wels-accent-text); }
.wels-preset-mamta .wels-gallery-filter button.is-active,
.mn-tab.is-active {
	background: var(--wels-accent);
	border-color: var(--wels-accent);
	color: var(--wels-accent-ink);
}
.wels-preset-mamta .wels-gallery-filter button:focus-visible,
.mn-tab:focus-visible { outline: 2px solid var(--wels-accent); outline-offset: 3px; }

/* ---------- Our Journey page: story beside a photo ([mn_story]) ---------- */
.mn-story { display: grid; grid-template-columns: minmax(0, 1fr); gap: clamp(24px, 4vw, 56px); align-items: center; margin-bottom: clamp(36px, 5vw, 60px); }
.mn-story.has-image { grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); }
.mn-story-text p { color: var(--wels-muted); line-height: 1.75; }
.mn-story-text .wels-section-title { margin-bottom: 18px; }
.mn-story-media { margin: 0; position: relative; isolation: isolate; }
.mn-story-media::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	transform: translate(12px, 12px);
	border: 2px solid var(--wels-accent);
	border-radius: var(--wels-radius);
}
.mn-story-media img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--wels-radius); }
@media (max-width: 820px) {
	.mn-story.has-image { grid-template-columns: minmax(0, 1fr); }
	.mn-story-media { order: -1; margin-right: 12px; }
}

/* ---------- Key Milestones ([wels_journey]) on inner pages ----------
   The mockup's single column: an orange line on the left, a ringed dot per
   year, the year large beside it, then the title and a line of detail.
   The homepage keeps Core's alternating cards. */
.wels-page-body .wels-journey { padding: 0; background: transparent; }
.wels-page-body .wels-journey .wels-container { padding: 0; max-width: none; }
.wels-page-body .wels-journey .wels-section-head { text-align: left; margin: 0 0 22px; max-width: none; }
.wels-page-body .wels-timeline { max-width: 760px; margin: 0; padding: 4px 0; }
.wels-page-body .wels-tl-line { left: 9px; transform: none; background: color-mix(in srgb, var(--wels-accent) 35%, transparent); }
.wels-page-body .wels-tl-progress { background: var(--wels-accent); }
.wels-page-body .wels-tl-item,
.wels-page-body .wels-tl-item.is-left,
.wels-page-body .wels-tl-item.is-right { width: 100%; left: 0; text-align: left; padding: 4px 0 26px 44px; }
.wels-page-body .wels-tl-item .wels-tl-dot { left: 0 !important; right: auto !important; top: 6px; border-color: var(--wels-bg); }
.wels-page-body .wels-tl-item:not(:first-of-type) .wels-tl-dot { background: var(--wels-bg); }
.wels-page-body .wels-tl-card {
	display: grid;
	grid-template-columns: 90px minmax(0, 1fr);
	column-gap: 18px;
	max-width: none;
	padding: 0;
	background: transparent;
	border: 0;
	box-shadow: none;
	overflow: visible;
}
.wels-page-body .wels-tl-ghost { display: none; }
.wels-page-body .wels-tl-year {
	grid-row: span 3;
	margin: 0;
	font-family: var(--wels-heading-font);
	font-size: 1.15rem;
	letter-spacing: 0;
	text-transform: none;
	color: var(--wels-ink);
}
.wels-page-body .wels-tl-year::after { display: none; }
.wels-page-body .wels-tl-title { font-size: 1.05rem; margin: 0 0 4px; }
.wels-page-body .wels-tl-text { font-size: .92rem; }
.wels-page-body .wels-timeline.wels-tl-anim .wels-tl-item .wels-tl-card { transform: none; }
@media (max-width: 520px) {
	.wels-page-body .wels-tl-card { grid-template-columns: minmax(0, 1fr); }
	.wels-page-body .wels-tl-year { grid-row: auto; margin-bottom: 2px; }
}

/* ---------- Leadership page: message bands ----------
   Light, as in the mockup: portrait in the orange offset frame, "From the
   Principal" heading, the message, then the name as a signature line.
   Bands alternate plain / cream. (The homepage has its own dark panel.) */
.wels-preset-mamta:not(.wels-front) .wels-principal {
	background: var(--wels-alt-bg);
	border: 1px solid var(--mn-line);
	border-radius: var(--wels-radius);
	padding: clamp(24px, 3.4vw, 44px);
	margin-bottom: 24px;
}
.wels-preset-mamta:not(.wels-front) .wels-principal-plain { background: var(--wels-bg); }
.wels-preset-mamta:not(.wels-front) .wels-principal .wels-container { padding: 0; max-width: none; }
.wels-preset-mamta:not(.wels-front) .wels-principal-inner { --wels-band-media: minmax(200px, 300px); align-items: start; }
.wels-preset-mamta:not(.wels-front) .wels-principal-photo { isolation: isolate; }
.wels-preset-mamta:not(.wels-front) .wels-principal-photo::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	transform: translate(12px, 12px);
	border: 2px solid var(--wels-accent);
	border-radius: var(--wels-radius);
}
.wels-preset-mamta:not(.wels-front) .wels-principal-photo img { box-shadow: none; }
.wels-preset-mamta:not(.wels-front) .wels-principal-eyebrow {
	font-family: var(--wels-heading-font);
	font-size: clamp(1.3rem, 2.2vw, 1.7rem);
	font-weight: 700;
	letter-spacing: 0;
	text-transform: none;
	color: var(--wels-ink);
	margin-bottom: 14px;
}
/* The name moves under the message, after an orange rule — a signature. */
.wels-preset-mamta:not(.wels-front) .wels-principal-body { display: flex; flex-direction: column; }
.wels-preset-mamta:not(.wels-front) .wels-principal-name {
	order: 3;
	margin: 18px 0 0;
	font-size: 1.05rem;
	color: var(--wels-accent-text);
	display: flex;
	align-items: center;
	gap: 14px;
}
.wels-preset-mamta:not(.wels-front) .wels-principal-name::before {
	content: "";
	width: 40px;
	height: 2px;
	background: var(--wels-accent);
	flex: 0 0 auto;
}
.wels-preset-mamta:not(.wels-front) .wels-principal-text { order: 2; color: var(--wels-muted); max-width: 70ch; }
.wels-preset-mamta:not(.wels-front) .wels-principal-more { order: 4; }

/* ---------- Link cards ([mn_cards]) — "Our Management" ---------- */
.mn-cards { margin-top: clamp(32px, 4vw, 52px); }
.mn-cards.mn-landing { margin-top: 0; }
.mn-cards > .wels-section-title { margin-bottom: 22px; }
.mn-card-grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 18px;
}
.mn-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 10px;
	padding: 28px 22px 24px;
	background: var(--wels-alt-bg);
	border: 1px solid var(--mn-line);
	border-top: 3px solid var(--wels-accent);
	border-radius: var(--wels-radius);
}
.mn-card-icon { width: 46px; height: 46px; color: var(--wels-accent-text); }
.mn-card-icon svg { width: 100%; height: 100%; }
.mn-card-title { margin: 4px 0 0; font-size: 1.15rem; }
.mn-card-text { margin: 0; font-size: .9rem; color: var(--wels-muted); line-height: 1.6; }
.mn-card-btn {
	margin-top: auto;
	padding: 9px 18px;
	font-size: .88rem;
	background: var(--wels-accent);
	color: var(--wels-accent-ink);
}
.mn-card-btn:hover, .mn-card-btn:focus-visible { background: var(--wels-accent-light); color: var(--wels-accent-ink); }

/* ---------- Faculty search & staff-group filter (mamta-niketan.js) ---------- */
.mn-filterbar {
	display: grid;
	grid-template-columns: minmax(0, 1.6fr) minmax(160px, 1fr) auto;
	gap: 12px;
	align-items: end;
	padding: 16px;
	margin: 0 0 18px;
	background: var(--wels-alt-bg);
	border: 1px solid var(--mn-line);
	border-radius: var(--wels-radius);
}
.mn-filterbar input,
.mn-filterbar select {
	width: 100%;
	height: 44px;
	padding: 0 14px;
	font: inherit;
	font-size: .92rem;
	color: var(--wels-ink);
	background: var(--wels-bg);
	border: 1px solid var(--mn-line);
	border-radius: var(--wels-radius);
}
.mn-filterbar input:focus,
.mn-filterbar select:focus { outline: 2px solid var(--wels-accent-text, #a3560f); outline-offset: 1px; border-color: var(--wels-accent-text, #a3560f); }
.mn-fb-label {
	display: block;
	margin-bottom: 4px;
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--wels-muted);
}
.mn-fb-reset {
	height: 44px;
	background: var(--wels-bg);
	color: var(--wels-ink);
	border: 1px solid var(--mn-line);
}
.mn-fb-reset:hover { border-color: var(--wels-accent); color: var(--wels-accent-text); }
.mn-fb-count { grid-column: 1 / -1; margin: 0; font-size: .85rem; color: var(--wels-muted); }
.mn-fb-count:empty { display: none; }
@media (max-width: 640px) {
	.mn-filterbar { grid-template-columns: minmax(0, 1fr); }
}

/* Committee tabs: the active committee's own heading repeats the tab. */
.wels-committee-full.mn-tabs-filtered .wels-committee-name { display: none; }

/* ---------- Notices page & Downloads table ---------- */
.mn-filterbar-simple { grid-template-columns: minmax(0, 1fr); }
.mn-pinned {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 6px 24px;
	align-items: center;
	margin: 0 0 22px;
	padding: 20px 24px;
	background: color-mix(in srgb, var(--wels-accent) 9%, var(--wels-bg));
	border: 1px solid color-mix(in srgb, var(--wels-accent) 40%, transparent);
	border-left: 4px solid var(--wels-accent);
	border-radius: var(--wels-radius);
}
.mn-pinned-label {
	grid-column: 1 / -1;
	margin: 0;
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--wels-accent-text);
}
.wels-page-body .mn-pinned .mn-pinned-title { margin: 4px 0 0; font-size: 1.2rem; line-height: 1.3; }
.wels-page-body .mn-pinned .mn-pinned-title::after { content: none; }
.mn-pinned-title a { color: var(--wels-ink); text-decoration: none; }
.mn-pinned-title a:hover { text-decoration: underline; }
.mn-pinned time { display: block; margin-top: 2px; font-size: .82rem; color: var(--wels-muted); }
.mn-pinned p { margin: 6px 0 0; color: var(--wels-muted); font-size: .92rem; }
.mn-pinned-btn { background: var(--wels-primary); color: #fff; white-space: nowrap; }
.mn-pinned-btn:hover { background: var(--wels-primary-dark); color: #fff; }

.mn-notice-table td, .mn-dl-table td { vertical-align: top; }
.mn-nt-date { white-space: nowrap; color: var(--wels-muted); font-size: .9rem; width: 1%; }
.mn-nt-title a { font-weight: 600; color: var(--wels-ink); text-decoration: none; }
.mn-nt-title a:hover { color: var(--wels-accent-text); text-decoration: underline; }
.mn-nt-title span { display: block; margin-top: 3px; font-size: .86rem; color: var(--wels-muted); }
.mn-nt-file, .mn-dl-file { white-space: nowrap; width: 1%; }
.mn-nt-none { color: var(--wels-muted); }
.mn-file-link {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin-right: 12px;
	font-weight: 600;
	font-size: .88rem;
	color: var(--wels-accent-text);
	text-decoration: none;
}
.mn-file-link:hover { text-decoration: underline; }
.mn-file-icon { width: 20px; height: 20px; flex: 0 0 auto; color: var(--wels-accent-text); }
.mn-dl-title { display: flex; align-items: center; gap: 10px; font-weight: 600; color: var(--wels-ink); }
.mn-dl-note { color: var(--wels-muted); font-size: .9rem; }
@media (max-width: 640px) {
	.mn-pinned { grid-template-columns: minmax(0, 1fr); }
	.mn-pinned-btn { justify-self: start; }
}

/* ---------- Online Registration form (Core [wels_enquiry_form]) ---------- */
.wels-enquiry { max-width: 920px; }
.wels-enq-intro { color: var(--wels-muted); margin: 0 0 20px; }
.wels-enq-form { margin: 0; }
.wels-enq-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.wels-enq-group {
	margin: 0 0 18px;
	padding: 20px 22px 8px;
	background: var(--wels-alt-bg);
	border: 1px solid var(--mn-line);
	border-top: 3px solid var(--wels-accent);
	border-radius: var(--wels-radius);
}
.wels-enq-group legend {
	padding: 0 8px;
	margin-left: -8px;
	font-family: var(--wels-heading-font);
	font-weight: 700;
	font-size: 1.05rem;
	color: var(--wels-ink);
}
.wels-enq-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px 18px; }
.wels-enq-field { margin: 0 0 14px; }
.wels-enq-field.is-wide { grid-column: 1 / -1; }
.wels-enq-field label { display: block; margin-bottom: 6px; font-size: .97rem; font-weight: 600; color: var(--wels-ink); }
.wels-enq-req { color: var(--wels-accent-text); }
.wels-enq-field input,
.wels-enq-field select,
.wels-enq-field textarea {
	width: 100%;
	min-height: 44px;
	padding: 10px 12px;
	font: inherit;
	font-size: .95rem;
	color: var(--wels-ink);
	background: var(--wels-bg);
	border: 1px solid color-mix(in srgb, var(--wels-ink) 22%, transparent);
	border-radius: var(--wels-radius);
}
.wels-enq-field textarea { min-height: 84px; resize: vertical; }
.wels-enq-field :focus { outline: 2px solid var(--wels-accent-text, #a3560f); outline-offset: 1px; border-color: var(--wels-accent-text, #a3560f); }
.wels-enq-field [aria-invalid="true"] { border-color: #b3261e; background: #fff6f5; }
.wels-enq-note { font-size: .85rem; color: var(--wels-muted); margin: 4px 0 14px; }
.wels-enq-actions .wels-btn { padding: 13px 26px; font-size: 1rem; }
.wels-enq-errors {
	margin: 0 0 18px;
	padding: 14px 18px;
	background: #fff6f5;
	border: 1px solid #e8b4b0;
	border-left: 4px solid #b3261e;
	border-radius: var(--wels-radius);
	color: #5c1410;
}
.wels-enq-errors p, .wels-enq-errors ul { margin: 0; }
.wels-enq-errors ul { padding-left: 18px; margin-top: 6px; }
.wels-enq-done {
	padding: 22px 24px;
	background: color-mix(in srgb, var(--wels-accent) 9%, var(--wels-bg));
	border: 1px solid color-mix(in srgb, var(--wels-accent) 40%, transparent);
	border-left: 4px solid var(--wels-accent);
	border-radius: var(--wels-radius);
}
.wels-enq-done p { margin: 0 0 6px; }
@media (max-width: 640px) {
	.wels-enq-grid { grid-template-columns: minmax(0, 1fr); }
}

/* ---------- News & Events page ([wels_updates] on an inner page) ----------
   As the mockup: the newest story large on the left, the next three as
   small horizontal cards beside it, the rest three to a row below. */
.wels-page-body .wels-updates { padding: 0; background: transparent; }
.wels-page-body .wels-updates .wels-container { padding: 0; max-width: none; }
.wels-page-body .wels-updates-head { display: none; } /* the page title already says it */
.wels-page-body .wels-updates-grid {
	grid-template-columns: repeat(6, minmax(0, 1fr));
	gap: 18px;
}
.wels-page-body .wels-update-card { grid-column: span 2; }
.wels-page-body .wels-update-card > article { border: 1px solid var(--mn-line); box-shadow: none; }

/* Featured: first story. */
.wels-page-body .wels-update-card:first-child { grid-column: 1 / 5; grid-row: span 3; }
.wels-page-body .wels-update-card:first-child > article { position: relative; min-height: 420px; background: var(--wels-primary); }
.wels-page-body .wels-update-card:first-child .wels-update-media { position: absolute; inset: 0; aspect-ratio: auto; }
.wels-page-body .wels-update-card:first-child .wels-update-media img { width: 100%; height: 100%; object-fit: cover; }
.wels-page-body .wels-update-card:first-child .wels-update-body {
	position: relative;
	margin-top: auto;
	padding: 60px 24px 22px;
	background: linear-gradient(180deg, transparent, color-mix(in srgb, var(--wels-primary-dark) 92%, transparent) 45%);
	color: #fff;
}
.wels-page-body .wels-update-card:first-child .wels-update-title { font-size: clamp(1.25rem, 2.2vw, 1.65rem); }
.wels-page-body .wels-update-card:first-child .wels-update-title a,
.wels-page-body .wels-update-card:first-child .wels-update-meta,
.wels-page-body .wels-update-card:first-child .wels-update-excerpt { color: #fff; }
.wels-page-body .wels-update-card:first-child .wels-update-more .wels-btn { color: #fff; border-color: rgba(255, 255, 255, .6); }

/* Stories 2–4: small and horizontal, stacked beside the featured one. */
.wels-page-body .wels-update-card:nth-child(n+2):nth-child(-n+4) { grid-column: 5 / 7; }
.wels-page-body .wels-update-card:nth-child(n+2):nth-child(-n+4) > article { flex-direction: row; }
.wels-page-body .wels-update-card:nth-child(n+2):nth-child(-n+4) .wels-update-media { flex: 0 0 120px; aspect-ratio: auto; }
.wels-page-body .wels-update-card:nth-child(n+2):nth-child(-n+4) .wels-update-media img { height: 100%; object-fit: cover; }
.wels-page-body .wels-update-card:nth-child(n+2):nth-child(-n+4) .wels-update-excerpt,
.wels-page-body .wels-update-card:nth-child(n+2):nth-child(-n+4) .wels-update-more { display: none; }
.wels-page-body .wels-update-card:nth-child(n+2):nth-child(-n+4) .wels-update-title { font-size: .98rem; }

/* Only one or two stories: let them use the width sensibly. */
.wels-page-body .wels-updates-grid:has(> :only-child) .wels-update-card:first-child { grid-column: 1 / -1; }
.wels-page-body .wels-updates-grid:has(> :nth-child(2):last-child) .wels-update-card:first-child { grid-row: auto; }

@media (max-width: 900px) {
	.wels-page-body .wels-updates-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.wels-page-body .wels-update-card,
	.wels-page-body .wels-update-card:first-child,
	.wels-page-body .wels-update-card:nth-child(n+2):nth-child(-n+4) { grid-column: auto; grid-row: auto; }
	.wels-page-body .wels-update-card:first-child { grid-column: 1 / -1; }
}
@media (max-width: 560px) {
	.wels-page-body .wels-updates-grid { grid-template-columns: minmax(0, 1fr); }
}
/* Filter chips built by mamta-niketan.js from each story's category. */
.wels-page-body .wels-update-card[hidden] { display: none; }

/* ---------- Newsletter page ([wels_newsletters] on an inner page) ----------
   As the mockup: the latest issue large (cover beside its summary), the
   earlier issues as a row of covers underneath. */
.wels-page-body .wels-newsletters {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
	gap: 22px;
	overflow: visible;
	padding: 0;
	margin: 0;
	list-style: none;
}
.wels-page-body .wels-newsletter-card { min-width: 0; width: auto; }
.wels-page-body .wels-newsletter-cover { display: block; aspect-ratio: 3 / 4; overflow: hidden; border: 1px solid var(--mn-line); border-radius: 10px; background: var(--wels-alt, #f7efe2); }
.wels-page-body .wels-newsletter-cover img,
.wels-page-body .wels-newsletter-cover .mn-pdf-preview { width: 100%; height: 100%; object-fit: cover; display: block; pointer-events: none; }
.wels-page-body .wels-newsletter-body h3 { font-size: 1rem; margin: 12px 0 6px; }
.wels-page-body .wels-newsletter-body p { font-size: .9rem; color: var(--mn-muted, #6a5f57); }

/* Latest issue. */
.wels-page-body .wels-newsletter-card:first-child {
	grid-column: 1 / -1;
	display: grid;
	grid-template-columns: minmax(200px, 300px) minmax(0, 1fr);
	gap: 32px;
	align-items: center;
	padding: 26px;
	border: 1px solid var(--mn-line);
	border-radius: 14px;
	background: #fff;
}
.wels-page-body .wels-newsletter-card:first-child .wels-newsletter-body::before {
	content: "Latest issue";
	display: block;
	font-size: .78rem;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--mn-accent-text, #a3560f);
}
.wels-page-body .wels-newsletter-card:first-child h3 { font-size: clamp(1.3rem, 2.4vw, 1.8rem); margin-top: 8px; }
.wels-page-body .wels-newsletter-card:first-child p { font-size: 1rem; }
.wels-page-body .wels-newsletter-card:first-child .wels-newsletter-btn { background: var(--wels-accent); border-color: var(--wels-accent); color: #fff; display: inline-flex; width: auto; padding-inline: 26px; }
@media (max-width: 640px) {
	.wels-page-body .wels-newsletter-card:first-child { grid-template-columns: minmax(0, 1fr); padding: 18px; }
	.wels-page-body .wels-newsletter-card:first-child .wels-newsletter-cover { max-width: 260px; }
}

/* ---------- Admissions page ([mn_admissions]) ---------- */
.wels-page-body .mn-eyebrow-title {
	font-family: inherit;
	font-size: .9rem;
	line-height: 1.4;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--mn-accent-text, #a3560f);
	margin: 0 0 22px;
}
.mn-journey { margin-bottom: clamp(32px, 4vw, 48px); }
.mn-journey-steps {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
	gap: 28px;
	counter-reset: none;
}
.mn-journey-step { position: relative; text-align: center; padding: 0 8px; }
.mn-journey-step:not(:last-child)::after {
	content: "\203A";
	position: absolute;
	right: -20px;
	top: 18px;
	font-size: 2rem;
	line-height: 1;
	color: var(--mn-muted, #6a5f57);
}
.mn-journey-icon {
	display: inline-grid;
	place-items: center;
	width: 64px;
	height: 64px;
	border-radius: 50%;
	background: color-mix(in srgb, var(--wels-accent) 14%, #fff);
	color: var(--mn-accent-text, #a3560f);
	margin-bottom: 12px;
}
.mn-journey-icon svg { width: 30px; height: 30px; }
.wels-page-body .mn-journey-name { line-height: 1.35; font-family: inherit; font-size: .95rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; margin: 0 0 6px; }
.mn-journey-num { color: var(--mn-accent-text, #a3560f); }
.mn-journey-text { font-size: .92rem; color: var(--mn-muted, #6a5f57); margin: 0; }

.mn-adm-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, 340px); gap: 28px; align-items: start; }
.mn-adm-grid.is-single { grid-template-columns: minmax(0, 1fr); }
.mn-adm-form .wels-enquiry { margin: 0; padding: clamp(20px, 3vw, 30px); border: 1px solid var(--mn-line); border-radius: 14px; background: #fff; }
.wels-page-body .mn-adm-form .wels-enquiry > .wels-section-title { font-size: 1.15rem; letter-spacing: .1em; text-transform: uppercase; }
.mn-adm-docs {
	position: sticky;
	top: 110px;
	padding: 24px;
	border: 1px solid color-mix(in srgb, var(--wels-accent) 30%, #fff);
	border-radius: 14px;
	background: color-mix(in srgb, var(--wels-accent) 8%, #fff);
}
.wels-page-body .mn-adm-docs-title { line-height: 1.3; display: flex; align-items: center; gap: 12px; font-family: inherit; font-size: 1rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; margin: 0 0 14px; }
.mn-adm-docs-title .mn-card-icon { margin: 0; flex: 0 0 auto; }
.mn-adm-docs ul { margin: 0 0 16px; padding-left: 1.2em; }
.mn-adm-docs li { margin: 0 0 8px; }
.mn-adm-docs li::marker { color: var(--wels-accent); }
.mn-adm-docs-note { margin: 0; padding: 12px 14px; border-radius: 8px; background: #fff; font-size: .86rem; color: var(--mn-muted, #6a5f57); }
@media (max-width: 900px) {
	.mn-adm-grid { grid-template-columns: minmax(0, 1fr); }
	.mn-adm-docs { position: static; }
	.mn-journey-step::after { display: none; }
}

/* ---------- Careers page ([mn_careers]) ---------- */
.mn-careers { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, 380px); gap: 28px; align-items: start; margin-top: 28px; }
.wels-page-body .mn-careers-title { display: flex; align-items: center; gap: 12px; font-family: inherit; font-size: 1rem; line-height: 1.3; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; margin: 0 0 16px; }
.mn-careers-title .mn-card-icon { margin: 0; flex: 0 0 auto; }
.mn-careers .wels-vacancies { padding: 0; background: transparent; }
.mn-careers .wels-vacancies .wels-container { padding: 0; max-width: none; }
.mn-careers .wels-vac-none {
	margin: 0;
	padding: 20px 22px;
	border: 1px solid color-mix(in srgb, var(--wels-accent) 30%, #fff);
	border-radius: 12px;
	background: color-mix(in srgb, var(--wels-accent) 8%, #fff);
}
.mn-careers-photo { margin: 22px 0 0; }
.mn-careers-photo img { width: 100%; height: auto; border-radius: 12px; display: block; }
.mn-careers-apply { position: sticky; top: 110px; padding: 24px; border: 1px solid var(--mn-line); border-radius: 14px; background: #fff; }
.mn-careers-apply p { margin: 0 0 14px; }
.mn-careers-line { display: grid; gap: 2px; }
.mn-careers-label { font-size: .82rem; color: var(--mn-muted, #6a5f57); }
.mn-careers-line a { font-weight: 600; word-break: break-word; }
.mn-careers-btn { background: var(--wels-accent); border-color: var(--wels-accent); color: #fff; }
@media (max-width: 900px) {
	.mn-careers { grid-template-columns: minmax(0, 1fr); }
	.mn-careers-apply { position: static; }
}

/* ---------- Group of Schools ([mn_schools]) ---------- */
/* Our Schools: an editable intro, then one wide card per school (from
   School Website > Group Schools): logo medallion on a cream panel at left,
   name, class range and link at right. */
.mn-schools-intro { max-width: 720px; margin: 0 0 clamp(28px, 4vw, 44px); }
.mn-schools-intro h2 { font-size: clamp(1.7rem, 3.4vw, 2.5rem); line-height: 1.15; margin: 0 0 14px; }
.mn-schools-intro h2::after { content: ""; display: block; width: 56px; height: 3px; margin-top: 16px; background: var(--wels-accent); }
.mn-schools-intro .wels-lead { margin: 0; }
.mn-schools { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 460px), 1fr)); gap: clamp(18px, 2.4vw, 28px); }
.mn-school { display: grid; grid-template-columns: minmax(150px, 40%) minmax(0, 1fr); margin: 0; border: 1px solid var(--mn-line); border-top: 3px solid var(--wels-accent); border-radius: 16px; overflow: hidden; background: #fff; transition: transform .3s, box-shadow .3s, border-color .3s; }
.mn-school-photo { margin: 0; display: grid; place-items: center; padding: clamp(20px, 3vw, 32px); background: var(--wels-alt-bg, #f7efe2); border-right: 1px solid var(--mn-line); min-height: 220px; }
.mn-school-photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.mn-school-photo.is-logo { background: var(--wels-alt-bg, #f7efe2); border-bottom: 0; padding: clamp(20px, 3vw, 32px); }
.mn-school-photo.is-logo img { width: 100%; max-width: 170px; height: auto; aspect-ratio: 1; object-fit: contain; padding: 10px; border-radius: 50%; background: #fff; box-shadow: 0 0 0 1px var(--mn-line), 0 0 0 7px color-mix(in srgb, var(--wels-accent) 12%, transparent), 0 14px 30px -16px rgba(36, 31, 28, .35); transition: transform .5s cubic-bezier(.2, .7, .2, 1); }
.mn-school-nophoto svg { width: 54px; height: 54px; color: var(--mn-accent-text, #a3560f); opacity: .5; }
.mn-school-body { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: 12px; padding: clamp(22px, 3vw, 32px); }
.wels-page-body .mn-schools .mn-school-name { font-family: var(--wels-heading-font); font-size: clamp(1.2rem, 2vw, 1.45rem); line-height: 1.25; font-weight: 700; letter-spacing: 0; text-transform: none; margin: 0; }
.mn-school-classes { display: inline-flex; align-items: center; gap: 8px; margin: 0; padding: 5px 14px 5px 11px; border-radius: 999px; background: color-mix(in srgb, var(--wels-accent) 13%, #fff); color: var(--mn-accent-text, #a3560f); font-size: .86rem; font-weight: 600; }
.mn-school-classes::before { content: ""; flex: none; width: 17px; height: 17px; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 9 12 4 2 9l10 5 10-5z'/%3E%3Cpath d='M6 11v5c3 2.5 9 2.5 12 0v-5'/%3E%3Cpath d='M22 9v6'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 9 12 4 2 9l10 5 10-5z'/%3E%3Cpath d='M6 11v5c3 2.5 9 2.5 12 0v-5'/%3E%3Cpath d='M22 9v6'/%3E%3C/svg%3E") center / contain no-repeat; }
.mn-school-addr { display: flex; gap: 8px; margin: 0; color: var(--mn-muted, #6a5f57); font-size: .92rem; }
.mn-school-addr svg { width: 18px; height: 18px; flex: 0 0 auto; color: var(--wels-accent); margin-top: 2px; }
.mn-school-btn { margin-top: 6px; }
@media (hover: hover) and (pointer: fine) {
	.mn-school:hover { transform: translateY(-5px); box-shadow: 0 18px 40px rgba(36, 31, 28, .1); border-color: color-mix(in srgb, var(--wels-accent) 35%, var(--mn-line)); border-top-color: var(--wels-accent); }
	.mn-school:hover .mn-school-photo.is-logo img { transform: scale(1.05); }
}
@media (max-width: 560px) {
	.mn-school { grid-template-columns: 1fr; }
	.mn-school-photo { border-right: 0; border-bottom: 1px solid var(--mn-line); min-height: 0; }
	.mn-school-photo.is-logo img { max-width: 150px; }
}
@media (prefers-reduced-motion: reduce) { .mn-school, .mn-school-photo.is-logo img { transition: none; } }

/* ---------- Vision & Values ([mn_values], [mn_affiliation]) ---------- */
.mn-values { margin: 0 0 clamp(28px, 4vw, 44px); }
.mn-val-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 22px; }
.mn-val { display: flex; gap: 16px; align-items: flex-start; }
.mn-val-icon { flex: 0 0 auto; display: grid; place-items: center; border-radius: 50%; color: var(--mn-accent-text, #a3560f); background: color-mix(in srgb, var(--wels-accent) 14%, #fff); }
.mn-val-icon svg { width: 55%; height: 55%; }
.mn-val-body { display: grid; gap: 4px; }
.mn-val-title { font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.mn-val-text { color: var(--mn-muted, #6a5f57); font-size: .93rem; }

/* Pillars: Inspire · Stimulate · Motivate */
.mn-values-pillars .mn-val-list { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); padding: 26px; border: 1px solid var(--mn-line); border-radius: 14px; background: #fff; }
.mn-values-pillars .mn-val-icon { width: 68px; height: 68px; background: var(--wels-accent); color: #fff; }
.mn-values-pillars .mn-val-title { font-family: var(--wels-font-heading, inherit); font-size: 1.2rem; }

/* Core values */
.mn-values-values .mn-val-list { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); padding: 22px 24px; border-radius: 14px; background: color-mix(in srgb, var(--wels-accent) 8%, #fff); border: 1px solid color-mix(in srgb, var(--wels-accent) 25%, #fff); }
.mn-values-values .mn-val { align-items: center; }
.mn-values-values .mn-val-icon { width: 52px; height: 52px; background: #fff; }
.mn-values-values .mn-val-title { font-size: .9rem; }

/* Badges: No Bag · No Tiffin · No Homework · No Tuition */
.mn-values-badges .mn-val-list { grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); text-align: center; }
.mn-values-badges .mn-val { flex-direction: column; align-items: center; gap: 10px; }
.mn-values-badges .mn-val-icon { width: 72px; height: 72px; background: var(--wels-primary); color: var(--wels-accent-light, #f6a04d); }
.mn-values-badges .mn-val-title { font-size: .92rem; letter-spacing: .04em; }

.mn-affil { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 6px 18px; align-items: center; padding: 20px 24px; border-radius: 14px; background: var(--wels-primary); color: #fff; margin-top: clamp(28px, 4vw, 44px); }
.mn-affil-icon { grid-row: span 2; width: 52px; height: 52px; display: grid; place-items: center; border-radius: 50%; border: 2px solid var(--wels-accent); color: var(--wels-accent-light, #f6a04d); }
.mn-affil-icon svg { width: 28px; height: 28px; }
.wels-page-body .mn-affil-title { font-family: inherit; font-size: .9rem; line-height: 1.3; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #fff; margin: 0; }
.mn-affil-facts { margin: 0; display: flex; flex-wrap: wrap; gap: 6px 22px; color: rgba(255, 255, 255, .85); }
.mn-affil-link { grid-column: 3; grid-row: 1 / span 2; color: var(--wels-accent-light, #f6a04d); font-weight: 600; text-decoration: none; }
.mn-affil-link:hover, .mn-affil-link:focus-visible { text-decoration: underline; }
@media (max-width: 640px) {
	.mn-affil { grid-template-columns: auto minmax(0, 1fr); }
	.mn-affil-link { grid-column: 1 / -1; grid-row: auto; }
}

/* ---------- Academics page: Core's stage cards + [mn_cards style="row"] ---------- */
.wels-page-body .wels-academics { padding: 0; background: transparent; margin-bottom: clamp(28px, 4vw, 44px); }
.wels-page-body .wels-academics .wels-container { padding: 0; max-width: none; }
.wels-page-body .wels-academics .wels-section-head { display: none; } /* the page's own heading introduces them */
.wels-page-body .wels-academics .wels-card-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 20px; }
.wels-page-body .wels-academics .wels-card {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 8px;
	padding: 0 0 52px;
	border: 1px solid var(--mn-line);
	border-radius: 14px;
	background: #fff;
	overflow: hidden;
	text-decoration: none;
	color: inherit;
}
.wels-page-body .wels-academics .wels-card-media { width: 100%; aspect-ratio: 4 / 3; overflow: hidden; }
.wels-page-body .wels-academics .wels-card-media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s ease; }
.wels-page-body .wels-academics a.wels-card:hover .wels-card-media img { transform: scale(1.04); }
.wels-page-body .wels-academics .wels-card-icon { margin-top: 24px; }
.wels-page-body .wels-academics .wels-card-title { font-size: 1.15rem; margin: 16px 16px 0; }
.wels-page-body .wels-academics .wels-card > :not(.wels-card-media):not(.wels-card-title) { margin-inline: 16px; color: var(--mn-muted, #6a5f57); font-size: .92rem; }
.wels-page-body .wels-academics .wels-card-tagline { text-transform: none; letter-spacing: normal; font-weight: 400; }
/* Core's "Explore →" cue is replaced by the round orange arrow of the mockup. */
.wels-page-body .wels-academics .wels-card-cue { display: none !important; }
.wels-page-body .wels-academics a.wels-card::after {
	content: "\2192";
	position: absolute;
	bottom: 14px;
	left: 50%;
	transform: translateX(-50%);
	width: 30px;
	height: 30px;
	display: grid;
	place-items: center;
	border-radius: 50%;
	background: var(--wels-accent);
	color: #fff;
	font-size: .95rem;
	line-height: 1;
}
.wels-page-body .wels-academics div.wels-card { padding-bottom: 20px; }
.wels-page-body .wels-academics a.wels-card:hover,
.wels-page-body .wels-academics a.wels-card:focus-visible { border-color: var(--wels-accent); }

.mn-cards-row .mn-card-grid { grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); }
.mn-cards-row .mn-card {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	column-gap: 18px;
	text-align: left;
	align-items: start;
	justify-items: start;
}
.mn-cards-row .mn-card-icon { grid-row: span 3; margin: 0; }
.mn-cards-row .mn-card-title,
.mn-cards-row .mn-card-text { margin-inline: 0; }
.mn-cards-row .mn-card-btn { margin: 6px 0 0; }

/* ---------- Kindergarten page ([mn_intro] + Core's [wels_kindergarten]) ---------- */
.mn-intro { max-width: 760px; margin: 0 0 28px; }
.mn-intro-text { font-size: 1.08rem; line-height: 1.7; margin: 0 0 16px; }
.mn-intro-btn { background: var(--wels-accent); border-color: var(--wels-accent); color: #fff; }
.wels-page-body .wels-kg-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 22px; margin-top: 8px; }
.wels-page-body .wels-kg-card { display: flex; flex-direction: column; padding: 0; border: 1px solid var(--mn-line); border-top: 3px solid var(--wels-accent); border-radius: 14px; background: #fff; overflow: hidden; text-align: left; }
.wels-page-body .wels-kg-card .wels-card-media { aspect-ratio: 16 / 10; overflow: hidden; }
.wels-page-body .wels-kg-card .wels-card-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.wels-page-body .wels-kg-card .wels-card-title { font-size: 1.15rem; margin: 18px 20px 6px; }
.wels-page-body .wels-kg-card .wels-card-text { margin: 0 20px 20px; color: var(--mn-muted, #6a5f57); font-size: .94rem; }
.wels-page-body .wels-kg-card .wels-card-text p { margin: 0 0 8px; }

/* =====================================================================
   KINDERGARTEN PAGE — playful sections (scoped to .mn-kg-* / .mn-split)
   Palette of the Kindergarten mockup: navy ink on pastels.
   ===================================================================== */
:root {
	--mn-kg-ink: #0b2f66;
	--mn-kg-font: "Fredoka", "Trebuchet MS", system-ui, sans-serif;
}

/* Slim header: breadcrumb only, the illustrated banner below is the hero. */
.mn-hero.mn-hero-slim { padding: 14px 0; min-height: 0; background: var(--wels-primary); }
.mn-hero.mn-hero-slim .wels-page-banner-inner { padding: 0; }
.mn-hero.mn-hero-slim .wels-crumbs { margin: 0; }

.mn-kg-hero { margin: 0 0 clamp(20px, 3vw, 32px); border-radius: 22px; overflow: hidden; }
.mn-kg-hero img { width: 100%; height: auto; display: block; }

.wels-page-body .mn-kg-heading {
	font-family: var(--mn-kg-font);
	font-weight: 600;
	color: var(--mn-kg-ink);
	font-size: clamp(1.6rem, 3vw, 2.2rem);
	line-height: 1.15;
	margin: 0 0 14px;
}
.mn-kg-heading-heart { color: #ff4f83; font-size: .8em; }

/* ---- No Bag / No Tiffin / No Homework + cloud ---- */
.mn-kg-rules { margin: 0 0 clamp(28px, 4vw, 44px); }
.mn-kg-rules-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr)) minmax(200px, .9fr);
	align-items: center;
	gap: 12px;
}
.mn-kg-tile {
	position: relative;
	min-height: 240px;
	border-radius: 36px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 24px 16px 20px;
	transition: transform .35s ease, box-shadow .35s ease;
}
.mn-kg-tile:hover { transform: translateY(-6px); box-shadow: 0 18px 45px rgba(25, 60, 90, .10); }
.mn-kg-pink { background: radial-gradient(circle at 40% 25%, #fff 0, #fff1f5 65%, #ffeef3 100%); }
.mn-kg-yellow { background: radial-gradient(circle at 50% 25%, #fffdf4 0, #fff8df 65%, #fff3c9 100%); }
.mn-kg-blue { background: radial-gradient(circle at 50% 25%, #fafdff 0, #edf9ff 60%, #e1f5ff 100%); }
.wels-page-body .mn-kg-tile-title {
	margin: 16px 0 0;
	font-family: var(--mn-kg-font);
	font-size: clamp(1.4rem, 2vw, 2rem);
	line-height: 1.05;
	font-weight: 700;
	text-align: center;
	text-transform: none;
	letter-spacing: 0;
}
.mn-kg-pink .mn-kg-tile-title { color: #e0245e; }
.mn-kg-yellow .mn-kg-tile-title { color: #0b8a54; }
.mn-kg-blue .mn-kg-tile-title { color: #0751aa; }

/* Entrance: only once the script has armed the section (no script → shown). */
.mn-kg-rules.is-armed .mn-kg-tile { opacity: 0; transform: translateY(30px); }
.mn-kg-rules.is-visible .mn-kg-tile { animation: mnKgRise .75s ease forwards; }
.mn-kg-rules.is-visible .mn-kg-tile:nth-child(2) { animation-delay: .13s; }
.mn-kg-rules.is-visible .mn-kg-tile:nth-child(3) { animation-delay: .26s; }
.mn-kg-rules.is-visible .mn-kg-tile:hover { transform: translateY(-6px); }
@keyframes mnKgRise { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } }

.mn-kg-art {
	position: relative;
	width: 155px;
	height: 130px;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: transform .35s ease;
}
.mn-kg-tile:hover .mn-kg-art { transform: translateY(-5px) scale(1.025); }

/* red "no" sign */
.mn-kg-no {
	position: absolute;
	width: 58px;
	height: 58px;
	right: 2px;
	bottom: 2px;
	border: 8px solid #ef2626;
	border-radius: 50%;
	background: rgba(255, 255, 255, .9);
	box-shadow: 0 4px 10px rgba(0, 0, 0, .08);
	z-index: 10;
}
.mn-kg-no::after {
	content: "";
	position: absolute;
	width: 47px;
	height: 8px;
	background: #ef2626;
	left: -3px;
	top: 17px;
	border-radius: 10px;
	transform: rotate(45deg);
}
.mn-kg-rules.is-visible .mn-kg-no { animation: mnKgPop .6s .55s both; }
.mn-kg-rules.is-visible .mn-kg-tile:nth-child(2) .mn-kg-no { animation-delay: .68s; }
.mn-kg-rules.is-visible .mn-kg-tile:nth-child(3) .mn-kg-no { animation-delay: .81s; }
@keyframes mnKgPop { 0% { transform: scale(.4); opacity: 0; } 70% { transform: scale(1.15); } 100% { transform: scale(1); opacity: 1; } }

/* backpack */
.mn-kg-bag { position: relative; width: 92px; height: 105px; margin-left: -15px; }
.mn-kg-bag .bag-body { position: absolute; width: 82px; height: 90px; left: 5px; top: 15px; border: 4px solid #29223d; border-radius: 32px 32px 22px 22px; background: linear-gradient(145deg, #ff91bb, #ff5f9d); box-shadow: inset 8px 5px rgba(255, 255, 255, .18), 0 8px 12px rgba(255, 70, 130, .15); }
.mn-kg-bag .bag-handle { position: absolute; width: 40px; height: 28px; left: 26px; top: 0; border: 5px solid #29223d; border-bottom: 0; border-radius: 20px 20px 0 0; background: #ff6ca5; }
.mn-kg-bag .bag-pocket { position: absolute; width: 56px; height: 36px; left: 18px; bottom: 3px; border: 4px solid #29223d; border-radius: 12px 12px 18px 18px; background: #ff82b1; }

/* tiffin */
.mn-kg-tiffin { position: relative; width: 110px; height: 88px; margin-left: -8px; }
.mn-kg-tiffin .tiffin-body { position: absolute; width: 110px; height: 70px; left: 0; top: 18px; background: linear-gradient(#ffd959, #ffc328); border: 4px solid #352a24; border-radius: 22px; box-shadow: inset 0 7px rgba(255, 255, 255, .25), 0 8px 12px rgba(220, 170, 30, .15); }
.mn-kg-tiffin .tiffin-handle { position: absolute; width: 45px; height: 27px; left: 32px; top: 0; border: 4px solid #352a24; border-bottom: 0; border-radius: 12px 12px 0 0; background: #ffd348; }
.mn-kg-tiffin .tiffin-line { position: absolute; width: 104px; height: 7px; left: 3px; top: 43px; background: #f0a900; z-index: 3; }

/* notebook + pencil */
.mn-kg-book { position: relative; width: 90px; height: 108px; margin-left: -20px; background: linear-gradient(145deg, #4db9ff, #188de1); border: 4px solid #163a65; border-radius: 10px; transform: rotate(-4deg); box-shadow: 0 8px 12px rgba(0, 110, 190, .15); }
.mn-kg-book::before { content: ""; position: absolute; width: 11px; height: 92px; left: -10px; top: 7px; background: repeating-linear-gradient(to bottom, #203d61 0, #203d61 5px, transparent 5px, transparent 13px); }
.mn-kg-book::after { content: ""; position: absolute; width: 50px; height: 25px; left: 17px; top: 14px; background: #fff; border: 3px solid #31557c; border-radius: 5px; }
.mn-kg-book .book-line { position: absolute; left: 16px; width: 52px; height: 3px; background: rgba(255, 255, 255, .7); border-radius: 10px; }
.mn-kg-book .line-one { top: 54px; }
.mn-kg-book .line-two { top: 66px; }
.mn-kg-book .line-three { top: 78px; }
.mn-kg-pencil { position: absolute; width: 18px; height: 105px; right: 22px; top: 5px; background: linear-gradient(90deg, #f5b71b, #ffd952, #f1a714); border: 3px solid #373042; border-radius: 9px; transform: rotate(20deg); z-index: 4; }
.mn-kg-pencil::before { content: ""; position: absolute; width: 14px; height: 18px; top: -7px; left: -1px; background: #ff607a; border-radius: 6px 6px 2px 2px; }

/* floating cloud */
.mn-kg-cloud-wrap { display: flex; align-items: center; justify-content: center; min-height: 270px; padding: 10px; }
.mn-kg-cloud {
	position: relative;
	isolation: isolate;
	width: 220px;
	min-height: 210px;
	margin: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	background: radial-gradient(circle at 45% 35%, #fff1a4, #ffd967 72%);
	border-radius: 45% 55% 48% 52% / 50% 42% 58% 50%;
	filter: drop-shadow(0 14px 15px rgba(225, 175, 40, .14));
	color: var(--mn-kg-ink);
	font-family: var(--mn-kg-font);
	font-size: 1.45rem;
	line-height: 1.12;
	font-weight: 600;
	animation: mnKgFloat 5s ease-in-out infinite;
	will-change: transform;
}
.mn-kg-cloud::before,
.mn-kg-cloud::after { content: ""; position: absolute; background: inherit; border-radius: 50%; z-index: -1; }
.mn-kg-cloud::before { width: 110px; height: 100px; left: -22px; top: 55px; }
.mn-kg-cloud::after { width: 105px; height: 100px; right: -22px; top: 55px; }
.mn-kg-cloud-text { display: block; position: relative; z-index: 2; }
.mn-kg-cloud strong { font-weight: 700; }
.mn-kg-heart { position: absolute; right: 12px; bottom: 4px; font-size: 2.6rem; line-height: 1; color: #ff4f83; transform: rotate(-10deg); }
@keyframes mnKgFloat {
	0%, 100% { transform: translate(0, 0) rotate(-1deg); }
	25% { transform: translate(5px, -8px) rotate(0deg); }
	50% { transform: translate(0, -14px) rotate(1deg); }
	75% { transform: translate(-5px, -7px) rotate(0deg); }
}

/* Picture tiles (the school's own artwork instead of the drawn ones). */
.mn-kg-tile.has-image { min-height: 0; padding: 0; border-radius: 11%/14%; background: none; }
.mn-kg-tile-img { width: 100%; height: auto; display: block; }
.mn-kg-cloud-img {
	width: min(100%, 260px);
	height: auto;
	display: block;
	filter: drop-shadow(0 14px 15px rgba(225, 175, 40, .18));
	animation: mnKgFloat 5s ease-in-out infinite;
	will-change: transform;
}

/* ---- Split panel (The Montessori Way) ---- */
.mn-split {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 28px;
	align-items: center;
	padding: clamp(24px, 4vw, 44px);
	border-radius: 28px;
	margin: 0 0 clamp(28px, 4vw, 44px);
}
.mn-split.has-image { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); }
.mn-split.image-left .mn-split-media { order: -1; }
.mn-tone-green { background: linear-gradient(135deg, #eef8ef, #e3f3e6); }
.mn-tone-yellow { background: linear-gradient(135deg, #fff9e3, #fff1c4); }
.mn-tone-pink { background: linear-gradient(135deg, #fff2f6, #ffe6ee); }
.mn-tone-blue { background: linear-gradient(135deg, #eef8ff, #e1f2fd); }
.mn-tone-plain { background: #fff; border: 1px solid var(--mn-line); }
.mn-split-text p { color: #2b3a52; font-size: 1.02rem; line-height: 1.7; }
.mn-split-media { margin: 0; border-radius: 22px; overflow: hidden; }
.mn-split-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.mn-split-btn { background: transparent; color: #1f6b45; border: 2px solid #1f6b45; border-radius: 999px; }
.mn-split-btn:hover, .mn-split-btn:focus-visible { background: #1f6b45; color: #fff; }

/* Photo slides inside the split panel: one photo at a time. */
.mn-split-media.has-slides { position: relative; aspect-ratio: 4 / 3; }
.mn-slides { position: relative; height: 100%; }
.mn-slides-track {
	display: flex;
	height: 100%;
	margin: 0;
	padding: 0;
	list-style: none;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
}
.mn-slides-track::-webkit-scrollbar { display: none; }
.mn-slide { flex: 0 0 100%; scroll-snap-align: start; height: 100%; }
.mn-slide img { width: 100%; height: 100%; object-fit: cover; display: block; }
.mn-slides:focus-visible { outline: 3px solid var(--wels-accent); outline-offset: 3px; }
.mn-slides-btn {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 42px;
	height: 42px;
	border: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, .9);
	color: var(--mn-kg-ink, #0b2f66);
	font-size: 1.8rem;
	line-height: 1;
	cursor: pointer;
	box-shadow: 0 6px 16px rgba(0, 0, 0, .15);
	display: grid;
	place-items: center;
}
.mn-slides-btn.is-prev { left: 12px; }
.mn-slides-btn.is-next { right: 12px; }
.mn-slides-btn:hover, .mn-slides-btn:focus-visible { background: #fff; outline: 3px solid var(--wels-accent); }
.mn-slides-dots { position: absolute; left: 0; right: 0; bottom: 12px; display: flex; justify-content: center; gap: 8px; }
.mn-slides-dots button { width: 10px; height: 10px; padding: 0; border: 2px solid #fff; border-radius: 50%; background: rgba(255, 255, 255, .45); cursor: pointer; }
.mn-slides-dots button.is-active { background: #fff; }

/* ---- Core Principles (Core's Kindergarten cards) ---- */
.mn-kg-principles { margin: 0 0 clamp(28px, 4vw, 44px); }
.wels-page-body .mn-kg-principles .wels-kg-grid.wels-card-grid:not(.is-carousel) { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; }
@media (max-width: 1100px) { .wels-page-body .mn-kg-principles .wels-kg-grid.wels-card-grid:not(.is-carousel) { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 700px) { .wels-page-body .mn-kg-principles .wels-kg-grid.wels-card-grid:not(.is-carousel) { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 420px) { .wels-page-body .mn-kg-principles .wels-kg-grid.wels-card-grid:not(.is-carousel) { grid-template-columns: minmax(0, 1fr); } }
.mn-kg-principles .wels-kg-card { border: 0; border-radius: 22px; text-align: center; transition: transform .3s ease, box-shadow .3s ease; }
.mn-kg-principles .wels-kg-card:hover { transform: translateY(-5px); box-shadow: 0 16px 36px rgba(25, 60, 90, .10); }
.mn-kg-principles .wels-kg-card:nth-child(5n+1) { background: #fff1f5; }
.mn-kg-principles .wels-kg-card:nth-child(5n+2) { background: #fff8e3; }
.mn-kg-principles .wels-kg-card:nth-child(5n+3) { background: #eaf6ff; }
.mn-kg-principles .wels-kg-card:nth-child(5n+4) { background: #ecf8ef; }
.mn-kg-principles .wels-kg-card:nth-child(5n+5) { background: #f3eefe; }
.mn-kg-principles .wels-kg-card .wels-card-media { aspect-ratio: 1; background: transparent; }
.mn-kg-principles .wels-kg-card .wels-card-media img { object-fit: contain; }
.wels-page-body .mn-kg-principles .wels-kg-card .wels-card-title { font-family: var(--mn-kg-font); color: var(--mn-kg-ink); font-weight: 600; }
.mn-kg-principles .wels-kg-card .wels-card-text { color: #3b4a63; font-size: .92rem; line-height: 1.55; }
.mn-kg-principles.titles-in-image .wels-kg-card .wels-card-media + .wels-card-title {
	position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap;
}
.mn-kg-principles.titles-in-image .wels-kg-card .wels-card-text { margin-top: 4px; }

/* ---- Closing banner ---- */
.mn-kg-cta { position: relative; margin: 0; border-radius: 26px; overflow: hidden; }
.mn-kg-cta-media { margin: 0; }
.mn-kg-cta-media img { width: 100%; height: auto; display: block; }
.mn-kg-cta-actions { position: absolute; left: 5%; top: 76%; margin: 0; display: flex; flex-wrap: wrap; gap: 12px; }
.mn-kg-btn-primary { background: #ffcf2e; border-color: #ffcf2e; color: #10233f; border-radius: 999px; font-weight: 700; }
.mn-kg-btn-ghost { background: transparent; border: 2px solid #fff; color: #fff; border-radius: 999px; }
.mn-kg-btn-primary:hover, .mn-kg-btn-primary:focus-visible { background: #fff; border-color: #fff; color: #10233f; }
.mn-kg-btn-ghost:hover, .mn-kg-btn-ghost:focus-visible { background: #fff; color: #10233f; }

@media (max-width: 1000px) {
	.mn-kg-rules-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.mn-kg-cloud-wrap { grid-column: 1 / -1; min-height: 240px; }
}
@media (max-width: 760px) {
	.mn-split.has-image { grid-template-columns: minmax(0, 1fr); }
	.mn-split.image-left .mn-split-media { order: 0; }
	.mn-kg-cta-actions { position: static; padding: 16px; background: #24461f; justify-content: center; }
}
@media (max-width: 650px) {
	.mn-kg-rules-grid { gap: 6px; }
	.mn-kg-tile:not(.has-image) { min-height: 170px; padding: 14px 4px 12px; border-radius: 24px; }
	.mn-kg-art { width: 100px; height: 95px; transform: scale(.72); }
	.mn-kg-tile:hover .mn-kg-art { transform: translateY(-3px) scale(.75); }
	.wels-page-body .mn-kg-tile-title { margin-top: 2px; font-size: 1.05rem; }
	.mn-kg-cloud { width: 200px; min-height: 190px; font-size: 1.3rem; }
}
@media (max-width: 420px) {
	/* Still three across on a phone — short and friendly, cloud underneath. */
	.mn-kg-tile:not(.has-image) { min-height: 140px; padding: 10px 2px; border-radius: 20px; }
	.mn-kg-art { width: 84px; height: 78px; transform: scale(.58); }
	.mn-kg-tile:hover .mn-kg-art { transform: scale(.6); }
	.wels-page-body .mn-kg-tile-title { font-size: .95rem; }
	.mn-kg-cloud-wrap { min-height: 220px; }
}
@media (prefers-reduced-motion: reduce) {
	.mn-kg-cloud, .mn-kg-cloud-img, .mn-kg-tile, .mn-kg-no, .mn-kg-art, .mn-kg-principles .wels-kg-card { animation: none !important; transition: none !important; }
	.mn-kg-rules .mn-kg-tile { opacity: 1 !important; transform: none !important; }
}

/* ---------- Facilities page: cards from Core's facilities ---------- */
.mn-facilities { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.mn-fac {
	display: grid;
	grid-template-columns: minmax(120px, 40%) minmax(0, 1fr);
	border: 1px solid var(--mn-line);
	border-radius: 14px;
	background: #fff;
	overflow: hidden;
	transition: box-shadow .25s ease, transform .25s ease;
}
.mn-fac:hover { box-shadow: 0 14px 30px rgba(36, 31, 28, .08); transform: translateY(-2px); }
.mn-fac-media { position: relative; min-height: 170px; background: color-mix(in srgb, var(--wels-accent) 10%, #fff); display: grid; place-items: center; }
.mn-fac-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.mn-fac-icon { width: 64px; height: 64px; display: grid; place-items: center; border-radius: 50%; background: #fff; color: var(--mn-accent-text, #a3560f); box-shadow: 0 6px 16px rgba(163, 86, 15, .12); }
.mn-fac-icon svg, .mn-fac-icon img { width: 32px; height: 32px; }
.mn-fac-body { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; padding: 20px 22px; }
.wels-page-body .mn-fac-title { font-size: 1.15rem; margin: 0; }
.mn-fac-body p { margin: 0; color: var(--mn-muted, #6a5f57); font-size: .94rem; line-height: 1.6; }
.mn-fac-btn { margin-top: auto; background: transparent; color: var(--mn-accent-text, #a3560f); border: 1.5px solid var(--wels-accent); padding: 6px 14px; font-size: .88rem; }
.mn-fac-btn:hover, .mn-fac-btn:focus-visible { background: var(--wels-accent); color: #fff; }
@media (max-width: 860px) { .mn-facilities { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 480px) {
	.mn-fac { grid-template-columns: minmax(0, 1fr); }
	.mn-fac-media { min-height: 0; aspect-ratio: 16 / 9; }
	.mn-fac:not(.has-photo) .mn-fac-media { aspect-ratio: auto; padding: 18px 0 0; background: transparent; place-items: start; padding-left: 22px; }
}

/* ---------- Activities page ("Beyond the Classroom"): Core's activity rows as cards ----------
   Same entries as School Website → Activities: Card Image fills the left of
   the card; Card Link + Button text give the button. */
.wels-page-body .wels-activities-full { padding: 0; background: transparent; }
.wels-page-body .wels-activities-full .wels-container { padding: 0; max-width: none; }
.wels-page-body .wels-act-rows { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.wels-page-body .wels-act-row,
.wels-page-body .wels-act-row.is-flipped {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	margin: 0;
	padding: 0;
	gap: 0;
	border: 1px solid var(--mn-line);
	border-radius: 14px;
	background: #fff;
	overflow: hidden;
	transition: box-shadow .3s ease, transform .3s ease, border-color .3s ease;
}
.wels-page-body .wels-act-row:has(.wels-act-media) { grid-template-columns: minmax(130px, 40%) minmax(0, 1fr); }
.wels-page-body .wels-act-row.is-flipped .wels-act-media { order: 0; }
.wels-page-body .wels-act-media { position: relative; min-height: 200px; margin: 0; border-radius: 0; overflow: hidden; }
.wels-page-body .wels-act-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border-radius: 0; transition: transform .6s cubic-bezier(.2, .7, .2, 1); }
.wels-page-body .wels-act-body { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; padding: 20px 22px; }
.wels-page-body .wels-act-head { display: flex; align-items: center; gap: 12px; margin: 0; }
.wels-page-body .wels-act-badge { flex: 0 0 auto; width: 44px; height: 44px; display: grid; place-items: center; border-radius: 50%; background: color-mix(in srgb, var(--wels-accent) 12%, #fff); color: var(--mn-accent-text, #a3560f); }
.wels-page-body .wels-act-badge svg, .wels-page-body .wels-act-badge img { width: 24px; height: 24px; }
.wels-page-body .wels-act-row:has(.wels-act-media) .wels-act-badge { display: none; } /* the photo says it */
.wels-page-body .wels-act-title { font-size: 1.2rem; margin: 0; }
.wels-page-body .wels-act-tagline { margin: 0; font-weight: 600; color: var(--mn-accent-text, #a3560f); font-size: .92rem; }
.wels-page-body .wels-act-text p { margin: 0; color: var(--mn-muted, #6a5f57); font-size: .94rem; line-height: 1.6; }
.wels-page-body .wels-act-points { list-style: none; margin: 4px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.wels-page-body .wels-act-points li { margin: 0; padding: 3px 10px; border-radius: 999px; background: var(--wels-alt, #f7efe2); font-size: .82rem; color: var(--wels-ink, #241f1c); }
.wels-page-body .wels-act-points li::before { display: none; }
.wels-page-body .wels-act-btn { margin-top: auto; background: transparent; color: var(--mn-accent-text, #a3560f); border: 1.5px solid var(--wels-accent); padding: 6px 14px; font-size: .88rem; }
.wels-page-body .wels-act-btn:hover, .wels-page-body .wels-act-btn:focus-visible { background: var(--wels-accent); color: #fff; }
.wels-page-body .wels-act-arrow { display: inline-block; transition: transform .3s ease; }
.wels-page-body .wels-act-points[hidden] { display: none; }
.wels-page-body .mn-act-toggle { cursor: pointer; font: inherit; font-size: .88rem; }
.wels-page-body .wels-act-row.is-open .mn-act-toggle .wels-act-arrow { transform: rotate(90deg); }
.wels-page-body .wels-act-points:not([hidden]) { animation: mnActOpen .3s ease both; }
@keyframes mnActOpen { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
@media (hover: hover) and (pointer: fine) {
	.wels-page-body .wels-act-row:hover { transform: translateY(-6px); box-shadow: 0 18px 40px rgba(36, 31, 28, .10); border-color: color-mix(in srgb, var(--wels-accent) 35%, var(--mn-line, #e5ddd5)); }
	.wels-page-body .wels-act-row:hover .wels-act-media img { transform: scale(1.06); }
	.wels-page-body .wels-act-btn:hover .wels-act-arrow { transform: translateX(4px); }
}
@media (max-width: 860px) { .wels-page-body .wels-act-rows { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 480px) {
	.wels-page-body .wels-act-row:has(.wels-act-media) { grid-template-columns: minmax(0, 1fr); }
	.wels-page-body .wels-act-media { min-height: 0; aspect-ratio: 16 / 9; }
}
@media (prefers-reduced-motion: reduce) {
	.wels-page-body .wels-act-row, .wels-page-body .wels-act-media img, .wels-page-body .wels-act-arrow { transition: none !important; transform: none !important; }
}

/* ---------- Activities gallery page (Core [wels_activities_gallery]) ----------
   Menu of activities on the left (dark header, highlighted current one);
   the chosen activity on the right: round icon, heading with orange rule,
   tagline, description, points as tags, then its photographs, 4 across. */
.wels-actg { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 28px; align-items: start; }
.wels-actg-panel[hidden] { display: none !important; }
.wels-actg-nav { position: sticky; top: 100px; border: 1px solid var(--mn-line); border-radius: 12px; background: #fff; overflow: hidden; box-shadow: 0 8px 22px rgba(36, 31, 28, .06); }
.wels-actg-navtitle { margin: 0; padding: 18px 22px; background: var(--wels-primary); color: #fff; font-family: var(--wels-font-heading, inherit); font-size: 1.35rem; }
.wels-actg-nav ul { list-style: none; margin: 0; padding: 6px; }
.wels-actg-nav li { margin: 0; border-bottom: 1px solid var(--mn-line); }
.wels-actg-nav li:last-child { border-bottom: 0; }
.wels-actg-nav a {
	display: flex;
	align-items: center;
	gap: 14px;
	min-height: 54px;
	padding: 10px 14px;
	border-radius: 8px;
	color: var(--wels-ink, #241f1c);
	text-decoration: none;
	font-weight: 500;
	transition: background-color .2s ease, color .2s ease;
}
.wels-actg-nav a:hover { background: var(--wels-alt, #f7efe2); }
.wels-actg-nav a[aria-current="true"] { background: color-mix(in srgb, var(--wels-accent) 18%, #fff); font-weight: 700; }
.wels-actg-nav a:focus-visible { outline: 3px solid var(--wels-accent); outline-offset: -3px; }
.wels-actg-navicon { width: 30px; height: 30px; flex: 0 0 auto; display: grid; place-items: center; color: var(--wels-primary); }
.wels-actg-navicon svg, .wels-actg-navicon img { width: 26px; height: 26px; }
.wels-actg-navname { flex: 1; }
.wels-actg-chev { font-size: 1.4rem; line-height: 1; color: var(--mn-muted, #6a5f57); transition: transform .2s ease; }
.wels-actg-nav a[aria-current="true"] .wels-actg-chev { color: var(--mn-accent-text, #a3560f); transform: translateX(2px); }

.wels-actg-panel { padding: clamp(20px, 3vw, 32px); border: 1px solid var(--mn-line); border-radius: 14px; background: #fff; box-shadow: 0 8px 22px rgba(36, 31, 28, .05); margin-bottom: 24px; outline: none; }
.wels-actg.is-tabs .wels-actg-panel { margin-bottom: 0; animation: mnActgIn .35s ease both; }
@keyframes mnActgIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.wels-actg-head { display: flex; gap: 20px; align-items: flex-start; margin-bottom: 18px; }
.wels-actg-icon { flex: 0 0 auto; width: 76px; height: 76px; display: grid; place-items: center; border-radius: 50%; background: color-mix(in srgb, var(--wels-accent) 14%, #fff); color: var(--wels-primary); }
.wels-actg-icon svg, .wels-actg-icon img { width: 38px; height: 38px; }
.wels-page-body .wels-actg-title { margin: 4px 0 10px; font-size: clamp(1.6rem, 3vw, 2.2rem); line-height: 1.15; }
.wels-page-body .wels-actg-title::after { content: ""; display: block; width: 48px; height: 3px; margin-top: 10px; border-radius: 3px; background: var(--wels-accent); }
.wels-actg-tagline { margin: 0 0 6px; font-weight: 600; color: var(--mn-accent-text, #a3560f); }
.wels-actg-text p { margin: 0 0 8px; color: var(--mn-muted, #6a5f57); line-height: 1.65; }
.wels-actg-points { list-style: none; margin: 0 0 20px; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.wels-actg-points li { margin: 0; padding: 4px 12px; border-radius: 999px; background: var(--wels-alt, #f7efe2); font-size: .85rem; }
.wels-actg-points li::before { display: none; }
.wels-actg-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.wels-actg-grid li { margin: 0; }
.wels-actg-grid li::before { display: none; }
.wels-actg-grid .wels-gallery-item { aspect-ratio: 4 / 3; min-height: 0; border-radius: 10px; }
.wels-actg-more { margin: 20px 0 0; }
@media (max-width: 1100px) { .wels-actg { grid-template-columns: 240px minmax(0, 1fr); } .wels-actg-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 760px) {
	.wels-actg { grid-template-columns: minmax(0, 1fr); gap: 18px; }
	.wels-actg-nav { position: static; }
	.wels-actg-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
	.wels-actg-head { gap: 14px; }
	.wels-actg-icon { width: 56px; height: 56px; }
	.wels-actg-icon svg, .wels-actg-icon img { width: 28px; height: 28px; }
}
@media (prefers-reduced-motion: reduce) { .wels-actg-panel, .wels-actg-chev { animation: none !important; transition: none !important; } }

/* ---------- Houses (Our Houses / House System page) ----------
   Four across, each card topped with its house colour, emblem centred. */
.wels-preset-mamta .wels-hs-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.wels-preset-mamta .wels-hs-card {
	background: var(--wels-bg);
	border: 1px solid var(--mn-line);
	border-top: 4px solid var(--hs-colour, var(--wels-accent));
	border-radius: var(--wels-radius);
	padding: 24px 18px;
	text-align: center;
}
.wels-preset-mamta .wels-hs-card-top { flex-direction: column; gap: 10px; }
.wels-preset-mamta .wels-hs-emblem { width: 76px; height: 76px; box-shadow: none; border: 1px solid var(--mn-line); }
.wels-preset-mamta .wels-hs-emblem-none {
	display: grid;
	place-items: center;
	font-family: var(--wels-heading-font);
	font-size: 2rem;
	font-weight: 700;
	color: var(--hs-ink, #fff);
	background: var(--hs-colour, var(--wels-accent));
	border: 0;
}
.wels-preset-mamta .wels-hs-name { color: var(--wels-ink); font-size: 1.25rem; }
.wels-preset-mamta .wels-hs-motto { font-style: italic; color: var(--wels-muted); font-size: .9rem; margin: 6px 0 0; }
.wels-preset-mamta .wels-hs-about { font-size: .9rem; color: var(--wels-muted); text-align: left; }
.wels-preset-mamta .wels-hs-people { justify-items: start; }

/* Students' Council: a cream panel, people as photo-and-name tiles. */
.wels-preset-mamta .wels-hs-council {
	background: var(--wels-alt-bg);
	border: 1px solid var(--mn-line);
	border-top: 3px solid var(--wels-accent);
}
.wels-preset-mamta .wels-hs-photo { width: 64px; height: 64px; border: 2px solid var(--wels-bg); box-shadow: 0 0 0 2px var(--wels-accent); }
.wels-preset-mamta .wels-hs-photo-none {
	display: grid;
	place-items: center;
	font-family: var(--wels-heading-font);
	font-weight: 700;
	color: var(--wels-accent-ink);
	background: var(--wels-accent);
}

/* ---------- Student Council page ([mn_student_council]) ----------
   Heading left, intro right; then large portrait cards — photo on top,
   the post held in orange, the name under it — as in the mockup. */
.mn-sec-head {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: 8px 40px;
	align-items: center;
	margin-bottom: 24px;
}
.mn-sec-head .wels-section-title { margin: 0; }
.mn-sec-intro { margin: 0; color: var(--wels-muted); font-size: .94rem; line-height: 1.6; max-width: 70ch; }
.mn-council .wels-hs-people {
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: 18px;
	margin: 0;
	justify-items: stretch;
}
.mn-council .wels-hs-person {
	flex-direction: column;
	align-items: stretch;
	gap: 0;
	text-align: center;
	background: var(--wels-bg);
	border: 1px solid var(--mn-line);
	border-radius: var(--wels-radius);
	overflow: hidden;
}
.mn-council .wels-hs-photo {
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 3.4;
	border-radius: 0;
	border: 0;
	box-shadow: none;
	object-fit: cover;
	object-position: center 20%;
	border-bottom: 3px solid var(--wels-accent);
}
.mn-council .wels-hs-photo-none { font-size: 3rem; }
.mn-council .wels-hs-person-text {
	display: flex;
	flex-direction: column-reverse; /* post held above the name, as in the mockup */
	gap: 4px;
	padding: 14px 12px 18px;
}
.mn-council .wels-hs-person-name { font-family: var(--wels-heading-font); font-size: 1.05rem; color: var(--wels-ink); }
.mn-council .wels-hs-person-meta {
	margin: 0;
	font-size: .76rem;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--wels-accent-text);
}
@media (max-width: 700px) {
	.mn-sec-head { grid-template-columns: minmax(0, 1fr); }
	.mn-council .wels-hs-people { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Stacked on one page under the houses: give each block room to breathe. */
.wels-page-body > .mn-council,
.wels-page-body > * + .mn-council { margin-top: clamp(40px, 5vw, 64px); }
.wels-page-body .mn-council + .mn-roles,
.wels-page-body .mn-council ~ .mn-roles { margin-top: 24px; }

/* ---------- Roles and Responsibilities band ([mn_roles]) ---------- */
.mn-roles {
	display: grid;
	grid-template-columns: minmax(180px, .9fr) minmax(0, 3fr);
	gap: 20px;
	align-items: center;
	padding: clamp(18px, 2.4vw, 28px);
	background: var(--wels-alt-bg);
	border: 1px solid var(--mn-line);
	border-left: 4px solid var(--wels-accent);
	border-radius: var(--wels-radius);
}
.mn-roles .mn-ih-head { display: block; margin: 0; }
.mn-roles .wels-section-title { font-size: clamp(1.2rem, 1.8vw, 1.45rem); display: block; }
.mn-roles .wels-section-title::after { margin: 12px 0 0; }
.mn-roles .mn-ih-intro { margin-top: 10px; }
.mn-roles .mn-ih-grid { grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 0; }
.mn-roles .mn-ih-item {
	background: transparent;
	border: 0;
	border-left: 1px solid var(--mn-line);
	border-radius: 0;
	padding: 8px 14px;
}
@media (max-width: 800px) {
	.mn-roles { grid-template-columns: minmax(0, 1fr); }
	.mn-roles .mn-ih-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 14px; }
	.mn-roles .mn-ih-item { border-left: 0; }
}

/* Inter-house activities: icon-less tiles in a neat row. */
.wels-preset-mamta .wels-hs-cats li {
	background: var(--wels-bg);
	border: 1px solid var(--mn-line);
	border-bottom: 2px solid var(--wels-accent);
	border-radius: var(--wels-radius);
	padding: 12px 18px;
	font-weight: 600;
}

@media (max-width: 1000px) {
	.wels-preset-mamta .wels-hs-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 520px) {
	.wels-preset-mamta .wels-hs-grid { grid-template-columns: minmax(0, 1fr); }
}

/* Inter-House Activities ([mn_interhouse] on the Houses page). */
.mn-interhouse { margin-top: clamp(36px, 5vw, 56px); }
.mn-ih-head {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: 8px 32px;
	align-items: center;
	margin-bottom: 20px;
}
.mn-ih-head .wels-section-title { margin: 0; }
.mn-ih-intro { margin: 0; color: var(--wels-muted); font-size: .92rem; }
.mn-ih-grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	gap: 12px;
}
.mn-ih-item {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
	padding: 20px 12px 16px;
	text-align: center;
	background: var(--wels-bg);
	border: 1px solid var(--mn-line);
	border-bottom: 3px solid var(--wels-accent);
	border-radius: var(--wels-radius);
}
.mn-ih-icon { width: 36px; height: 36px; color: var(--wels-accent-text); }
.mn-ih-icon svg { width: 100%; height: 100%; }
.mn-ih-label { font-size: .9rem; font-weight: 600; color: var(--wels-ink); line-height: 1.3; }
@media (max-width: 700px) {
	.mn-ih-head { grid-template-columns: minmax(0, 1fr); }
}

/* ---------- Gallery (Moments) ---------- */
.wels-preset-mamta .wels-gallery-full .wels-gallery-grid {
	grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
	gap: 14px;
}
.wels-preset-mamta .wels-gallery-item { box-shadow: none; border: 1px solid var(--mn-line); }
.wels-preset-mamta .wels-gallery-tag { background: var(--wels-accent); color: var(--wels-accent-ink); }

/* ---------- Achievements page ---------- */
.wels-preset-mamta .wels-achievements-full .wels-ach-grid {
	grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
	gap: 18px;
}
.wels-preset-mamta .wels-achievements-full .wels-ach-card {
	flex-direction: row;
	box-shadow: none;
	border: 1px solid var(--mn-line);
	background: var(--wels-bg);
}
.wels-preset-mamta .wels-achievements-full .wels-ach-photo {
	flex: 0 0 130px;
	aspect-ratio: auto;
	min-height: 140px;
}
.wels-preset-mamta .wels-achievements-full .wels-ach-photo img { object-fit: cover; }
.wels-preset-mamta .wels-ach-photo.is-initial {
	background: var(--wels-alt-bg);
	color: var(--wels-accent-text);
}
.wels-preset-mamta .wels-ach-cat { color: var(--wels-accent-text); }
.wels-preset-mamta .wels-ach-who { color: var(--wels-ink); }
.wels-preset-mamta .wels-ach-group-title { color: var(--wels-ink); border-bottom-color: var(--wels-accent); }
/* With one tab chosen, the heading repeats the tab — hide it. */
.mn-tabs-filtered .wels-ach-group-title { display: none; }
@media (max-width: 520px) {
	.wels-preset-mamta .wels-achievements-full .wels-ach-grid { grid-template-columns: minmax(0, 1fr); }
	.wels-preset-mamta .wels-achievements-full .wels-ach-card { flex-direction: column; }
	.wels-preset-mamta .wels-achievements-full .wels-ach-photo { flex-basis: auto; aspect-ratio: 16 / 9; }
}

/* ---------- Focus: visible on both dark and light grounds ---------- */
.wels-preset-mamta a:focus-visible,
.wels-preset-mamta button:focus-visible,
.wels-preset-mamta .wels-btn:focus-visible {
	outline: 2px solid var(--wels-accent);
	outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
	.wels-preset-mamta .wels-card:hover,
	.wels-preset-mamta .wels-ql-card:hover,
	.wels-preset-mamta .wels-update-card:hover { transform: none; }
}


/* =====================================================================
   Quality-check fixes (Oct 2026)
   ===================================================================== */

/* Tables typed into a page (Curriculum, Calendar, Results, Day Boarding,
   Residential Life) scroll inside their own box on a phone instead of
   pushing the whole page sideways. */
.wels-page-body figure.wp-block-table,
.wels-page-body .wels-table-scroll { position: relative; max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.wels-page-body > .wels-table,
.wels-page-body > table { display: block; max-width: 100%; overflow-x: auto; }

/* Carousel controls never wider than their column: many dots wrap. */
.wels-carousel-nav { max-width: 100%; }
.wels-carousel-dots { min-width: 0; flex: 0 1 auto; flex-wrap: wrap; justify-content: center; }

/* Orange buttons: dark text (6:1) instead of white (2.7:1). */
.mn-careers-btn,
.mn-careers-btn:visited,
.wels-page-body .wels-newsletter-card:first-child .wels-newsletter-btn,
.mn-intro-btn { color: var(--wels-dark, #1d1916); }
.mn-careers-btn:hover, .mn-careers-btn:focus-visible,
.wels-page-body .wels-newsletter-card:first-child .wels-newsletter-btn:hover,
.wels-page-body .wels-newsletter-card:first-child .wels-newsletter-btn:focus-visible,
.mn-intro-btn:hover, .mn-intro-btn:focus-visible { background: var(--wels-primary); border-color: var(--wels-primary); color: #fff; }

/* ==========================================================================
   Day Boarding and Residential Life pages (.mn-db)
   The pages hold only plain headings, paragraphs and lists so staff can edit
   them in the Visual editor; all layout, icons and photo placeholders live
   here. Icons are set by an mn-i-NAME class on the heading, step or line.
   ========================================================================== */
.mn-i-clock { --mn-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E"); }
.mn-i-house { --mn-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 20V10l9-6 9 6v10'/%3E%3Cpath d='M9 20v-6h6v6'/%3E%3C/svg%3E"); }
.mn-i-camera { --mn-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 8h3l1.5-2h7L17 8h3a1 1 0 0 1 1 1v9a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V9a1 1 0 0 1 1-1z'/%3E%3Ccircle cx='12' cy='13' r='3.5'/%3E%3C/svg%3E"); }
.mn-i-sunrise { --mn-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3v3M5.6 5.6l2 2M3 12h3M18.4 5.6l-2 2M21 12h-3'/%3E%3Cpath d='M6 16a6 6 0 0 1 12 0M3 16h18M7 20h10'/%3E%3C/svg%3E"); }
.mn-i-book { --mn-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 6.5C9.5 4.4 6.4 4 3 4.8v13c3.4-.8 6.5-.4 9 1.7 2.5-2.1 5.6-2.5 9-1.7v-13c-3.4-.8-6.5-.4-9 1.7zM12 6.5v13'/%3E%3C/svg%3E"); }
.mn-i-meal { --mn-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 3v6a3 3 0 0 0 6 0V3M7 3v18M17 3c-2 0-3 2.5-3 5s1 4 3 4v9M17 3c2 0 3 2.5 3 5s-1 4-3 4'/%3E%3C/svg%3E"); }
.mn-i-group { --mn-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='7' r='3'/%3E%3Ccircle cx='5' cy='9' r='2.2'/%3E%3Ccircle cx='19' cy='9' r='2.2'/%3E%3Cpath d='M7 19v-3a5 5 0 0 1 10 0v3M2 18v-2a3.5 3.5 0 0 1 4.5-3.3M22 18v-2a3.5 3.5 0 0 0-4.5-3.3'/%3E%3C/svg%3E"); }
.mn-i-home { --mn-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 11l9-7 9 7M5 9.5V20h14V9.5M10 20v-6h4v6'/%3E%3C/svg%3E"); }
.mn-i-sun { --mn-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Cpath d='M12 2v2M12 20v2M4.9 4.9l1.4 1.4M17.7 17.7l1.4 1.4M2 12h2M20 12h2M4.9 19.1l1.4-1.4M17.7 6.3l1.4-1.4'/%3E%3C/svg%3E"); }
.mn-i-ball { --mn-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 3a15 15 0 0 1 0 18M3 12h18M5.5 6a12 12 0 0 0 13 0M5.5 18a12 12 0 0 1 13 0'/%3E%3C/svg%3E"); }
.mn-i-lamp { --mn-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3c-1.5 2-2.5 3.5-2.5 5a2.5 2.5 0 0 0 5 0c0-1.5-1-3-2.5-5z'/%3E%3Cpath d='M5 14h14l-2 5H7z'/%3E%3Cpath d='M12 10.5V14'/%3E%3C/svg%3E"); }
.mn-i-study { --mn-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 19V7a2 2 0 0 1 2-2h12v14H6a2 2 0 0 0-2 2'/%3E%3Cpath d='M8 9h6M8 12h4'/%3E%3C/svg%3E"); }
.mn-i-moon { --mn-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 14.5A8 8 0 1 1 9.5 4a6.5 6.5 0 0 0 10.5 10.5z'/%3E%3C/svg%3E"); }
.mn-i-run { --mn-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='14.5' cy='4' r='1.8'/%3E%3Cpath d='M10 9l4-1.5 2.5 3 3 1M14 7.5l-1.5 6 3.5 2.5-1 5M12.5 13.5l-3 2-3.5-.5M10 9l-3 1.5'/%3E%3C/svg%3E"); }
.mn-i-sbook { --mn-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='black' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M24 13c-5-4-11-5-18-3v26c7-2 13-1 18 3 5-4 11-5 18-3V10c-7-2-13-1-18 3z'/%3E%3Cpath d='M24 13v26'/%3E%3C/svg%3E"); }
.mn-i-smeal { --mn-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='black' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 8v10a4 4 0 0 0 8 0V8M12 8v32'/%3E%3Ccircle cx='28' cy='24' r='8'/%3E%3Cpath d='M40 8c-3 0-4 5-4 10s2 6 4 6v16'/%3E%3C/svg%3E"); }
.mn-i-srun { --mn-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='black' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='29' cy='8' r='3.5'/%3E%3Cpath d='M21 18l7-3 5 6 6 2M28 15l-3 12 7 5-2 10M25 27l-6 4-7-1M19 18l-6 3'/%3E%3C/svg%3E"); }
.mn-i-svan { --mn-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='black' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 30V18a4 4 0 0 1 4-4h20l8 8h4a2 2 0 0 1 2 2v6a2 2 0 0 1-2 2h-2'/%3E%3Cpath d='M6 30a2 2 0 0 0 2 2h4M18 32h12'/%3E%3Ccircle cx='15' cy='33' r='3.5'/%3E%3Ccircle cx='33' cy='33' r='3.5'/%3E%3Cpath d='M6 22h32'/%3E%3C/svg%3E"); }
.mn-i-sbed { --mn-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='black' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 36V14M5 26h38v10M43 26v-4a6 6 0 0 0-6-6H22v10'/%3E%3Ccircle cx='13' cy='20' r='4'/%3E%3C/svg%3E"); }
.mn-i-scupboard { --mn-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='black' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='10' y='6' width='28' height='36' rx='2'/%3E%3Cpath d='M24 6v36M20 22v4M28 22v4'/%3E%3C/svg%3E"); }
.mn-i-swater { --mn-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='black' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M24 6c-7 9-11 15-11 21a11 11 0 0 0 22 0c0-6-4-12-11-21z'/%3E%3Cpath d='M19 29a5 5 0 0 0 5 5'/%3E%3C/svg%3E"); }
.mn-i-slaundry { --mn-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='black' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='9' y='5' width='30' height='38' rx='3'/%3E%3Ccircle cx='24' cy='27' r='9'/%3E%3Cpath d='M15 11h4M27 11h6'/%3E%3Cpath d='M18 28c2-2 4-2 6 0s4 2 6 0'/%3E%3C/svg%3E"); }
.mn-db .mn-db-ph { --mn-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 8h3l1.5-2h7L17 8h3a1 1 0 0 1 1 1v9a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V9a1 1 0 0 1 1-1z'/%3E%3Ccircle cx='12' cy='13' r='3.5'/%3E%3C/svg%3E"); }
.mn-db { --db-line: var(--mn-line, color-mix(in srgb, var(--wels-ink) 10%, transparent)); --db-r: 14px; }
.mn-db > * { margin: 0 0 clamp(44px, 6vw, 72px); }
.mn-db > *:last-child { margin-bottom: 0; }
.mn-db h2, .mn-db h3, .mn-db p { margin-top: 0; }
.mn-db .wels-section-head { margin-bottom: clamp(22px, 3vw, 34px); }
.mn-db .wels-section-head p { color: var(--wels-muted); margin: 10px 0 0; max-width: 60ch; }
.mn-db [class*="mn-i-"]::before, .mn-db .mn-db-steps li::after, .mn-db .mn-db-ph::before { -webkit-mask: var(--mn-i) center / contain no-repeat; mask: var(--mn-i) center / contain no-repeat; }
/* Intro: text + framed photo */
.mn-db .mn-db-intro { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(28px, 5vw, 64px); align-items: center; }
.mn-db .mn-db-intro h2 { font-size: clamp(1.9rem, 4vw, 2.9rem); line-height: 1.12; margin: 0 0 16px; }
.mn-db .mn-db-intro h2::after { content: ""; display: block; width: 56px; height: 3px; margin-top: 18px; background: var(--wels-accent); }
.mn-db .mn-db-intro .wels-lead { margin-bottom: 18px; }
.mn-db .mn-db-hours { display: inline-flex; align-items: center; gap: 10px; margin: 0 0 24px; padding: 8px 14px; border: 1px solid var(--db-line); border-radius: 999px; background: #fff; font-size: .92rem; color: var(--wels-muted); }
.mn-db .mn-db-hours::before { content: ""; flex: none; width: 18px; height: 18px; background: var(--wels-accent-text); }
.mn-db .mn-db-hours strong { color: var(--wels-ink); }
.mn-db .mn-db-actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 0; }
.mn-db .mn-db-photo { position: relative; z-index: 0; margin: 0 14px 14px 0; }
.mn-db .mn-db-photo::after { content: ""; position: absolute; inset: 0; z-index: -1; transform: translate(14px, 14px); border: 2px solid var(--wels-accent); border-radius: var(--wels-radius); }
.mn-db .mn-db-photo > p { margin: 0; }
.mn-db .mn-db-photo img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--wels-radius); margin: 0; }
/* Photo placeholder: a paragraph reading "Photo to be added". Staff replace it with a photo. */
.mn-db .mn-db-ph { display: grid; place-items: center; width: 100%; height: 100%; margin: 0; font-size: 0; color: transparent; background: var(--wels-alt-bg); }
.mn-db .mn-db-ph::before { content: ""; width: 40px; height: 40px; background: color-mix(in srgb, var(--wels-muted) 45%, transparent); }
.mn-db .mn-db-photo .mn-db-ph { aspect-ratio: 4 / 3; border-radius: var(--wels-radius); border: 1px solid var(--db-line); }
.mn-db .mn-db-ph:has(img) { display: block; font-size: inherit; background: none; border: 0; }
.mn-db .mn-db-ph:has(img)::before { display: none; }
/* Four-point strip */
.mn-db .mn-db-strip { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); padding: 26px 8px; background: var(--wels-alt-bg); border: 1px solid var(--db-line); border-radius: var(--db-r); }
.mn-db .mn-db-point { text-align: center; padding: 4px 18px; }
.mn-db .mn-db-point + .mn-db-point { border-left: 1px solid var(--db-line); }
.mn-db .mn-db-point h3 { font-size: 1.05rem; margin: 0 0 4px; }
.mn-db .mn-db-point h3::before { content: ""; display: block; width: 44px; height: 44px; margin: 0 auto 10px; background: var(--wels-accent-text); }
.mn-db .mn-db-point p { font-size: .9rem; color: var(--wels-muted); line-height: 1.5; margin: 0; }
/* Photo cards */
.mn-db .mn-db-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(16px, 2vw, 24px); }
.mn-db .mn-db-card { margin: 0; border: 1px solid var(--db-line); border-radius: var(--db-r); background: #fff; overflow: hidden; transition: transform .3s, box-shadow .3s, border-color .3s; }
.mn-db .mn-db-media { aspect-ratio: 16 / 10; overflow: hidden; background: var(--wels-alt-bg); }
.mn-db .mn-db-media > p { margin: 0; height: 100%; }
.mn-db .mn-db-media img { display: block; width: 100%; height: 100%; object-fit: cover; margin: 0; transition: transform .5s; }
.mn-db .mn-db-card-body { padding: 20px 22px 24px; }
.mn-db .mn-db-card h3 { font-size: var(--wels-h3, 1.3rem); margin: 0 0 8px; }
.mn-db .mn-db-card p { color: var(--wels-muted); margin: 0; }
@media (hover: hover) and (pointer: fine) {
  .mn-db .mn-db-card:hover { transform: translateY(-6px); box-shadow: 0 18px 40px rgba(36, 31, 28, .1); border-color: color-mix(in srgb, var(--wels-accent) 35%, var(--db-line)); }
  .mn-db .mn-db-card:hover img { transform: scale(1.06); }
}
/* A day: timeline steps. The circle is li::before and the icon li::after. */
.mn-db .mn-db-day { padding: clamp(28px, 4vw, 44px); background: var(--wels-alt-bg); border: 1px solid var(--db-line); border-radius: var(--db-r); }
.mn-db .mn-db-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(var(--mn-steps, 5), minmax(0, 1fr)); gap: 12px; position: relative; }
.mn-db .mn-db-steps.mn-db-steps-6 { --mn-steps: 6; }
.mn-db .mn-db-steps::before { content: ""; position: absolute; top: 31px; left: 9%; right: 9%; border-top: 1px dashed var(--wels-accent); }
.mn-db .mn-db-steps li { text-align: center; position: relative; margin: 0; padding: 0; }
.mn-db .mn-db-steps li::before { content: ""; display: block; box-sizing: border-box; width: 62px; height: 62px; margin: 0 auto 12px; border-radius: 50%; border: 1.5px solid var(--wels-accent); background: var(--wels-bg); position: relative; z-index: 1; -webkit-mask: none; mask: none; }
.mn-db .mn-db-steps li::after { content: ""; position: absolute; z-index: 2; top: 17px; left: 50%; width: 28px; height: 28px; margin-left: -14px; background: var(--wels-accent-text); }
.mn-db .mn-db-steps h3 { font-size: 1.02rem; margin: 0 0 4px; }
.mn-db .mn-db-steps p { font-size: .9rem; color: var(--wels-muted); line-height: 1.5; margin: 0 auto; max-width: 22ch; }
.mn-db .mn-db-steps .mn-db-time { max-width: none; margin: 0 0 4px; font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--wels-accent-text); }
/* Full timetable */
.mn-db .mn-rl-table { margin-top: clamp(24px, 3vw, 34px); padding: 18px; border: 1px solid var(--db-line); border-radius: 10px; background: #fff; overflow-x: auto; }
.mn-db .mn-rl-table h3 { font-size: 1.05rem; margin: 0 0 12px; }
.mn-db .mn-rl-table table { width: 100%; border-collapse: collapse; font-size: .95rem; margin: 0; border: 0; }
.mn-db .mn-rl-table th, .mn-db .mn-rl-table td { text-align: left; padding: 10px 12px; border: 0; border-bottom: 1px solid var(--db-line); vertical-align: top; background: none; }
.mn-db .mn-rl-table th { font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; color: var(--wels-muted); background: var(--wels-alt-bg); }
.mn-db .mn-rl-table td:first-child { white-space: nowrap; font-weight: 600; color: var(--wels-accent-text); width: 1%; }
.mn-db .mn-rl-table tr:last-child td { border-bottom: 0; }
/* Rules: three cards of equal height; a longer list scrolls inside its card */
.mn-db .mn-rl-rules { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(16px, 2vw, 24px); align-items: stretch; }
.mn-db .mn-rl-rule { display: flex; flex-direction: column; height: 460px; padding: 24px 16px 18px 24px; border: 1px solid var(--db-line); border-radius: var(--db-r); background: #fff; border-top: 3px solid var(--wels-accent); }
.mn-db .mn-rl-rule h3 { flex: none; font-size: 1.15rem; margin: 0 0 14px; }
.mn-db .mn-rl-rule ul { list-style: none; margin: 0; padding: 0 10px 0 0; flex: 1 1 auto; min-height: 0; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: var(--wels-accent) transparent; background: linear-gradient(#fff 30%, rgba(255, 255, 255, 0)) top / 100% 28px no-repeat local, linear-gradient(rgba(255, 255, 255, 0), #fff 70%) bottom / 100% 28px no-repeat local, radial-gradient(farthest-side at 50% 0, rgba(36, 31, 28, .14), rgba(36, 31, 28, 0)) top / 100% 10px no-repeat scroll, radial-gradient(farthest-side at 50% 100%, rgba(36, 31, 28, .14), rgba(36, 31, 28, 0)) bottom / 100% 10px no-repeat scroll; }
.mn-db .mn-rl-rule ul:focus-visible { outline: 3px solid var(--wels-accent); outline-offset: 4px; border-radius: 4px; }
.mn-db .mn-rl-rule ul::-webkit-scrollbar { width: 6px; }
.mn-db .mn-rl-rule ul::-webkit-scrollbar-thumb { background: var(--wels-accent); border-radius: 3px; }
.mn-db .mn-rl-rule li { position: relative; padding: 0 0 0 18px; margin: 0 0 12px; font-size: .94rem; line-height: 1.6; color: var(--wels-ink); list-style: none; }
.mn-db .mn-rl-rule li:last-child { margin-bottom: 0; }
.mn-db .mn-rl-rule li::before { content: ""; position: absolute; left: 0; top: .62em; width: 7px; height: 7px; border-radius: 50%; background: var(--wels-accent); }
/* Closing band */
.mn-db .mn-db-cta { display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; padding: clamp(28px, 4vw, 48px); border-radius: var(--db-r); background: var(--wels-primary); color: #fff; }
.mn-db .mn-db-cta .wels-eyebrow { color: var(--wels-accent-light); letter-spacing: .14em; }
.mn-db .mn-db-cta h2 { color: #fff; font-size: var(--wels-h2, 2rem); margin: 0 0 6px; }
.mn-db .mn-db-cta p { color: rgba(255, 255, 255, .82); margin: 0; }
.mn-db .mn-db-cta .mn-db-actions { flex: none; }
@media (max-width: 1100px) {
  .mn-db .mn-db-steps.mn-db-steps-6 { --mn-steps: 3; row-gap: 28px; }
  .mn-db .mn-db-steps.mn-db-steps-6::before { display: none; }
}
@media (max-width: 960px) {
  .mn-db .mn-db-intro { grid-template-columns: 1fr; }
  .mn-db .mn-db-photo { order: -1; }
  .mn-db .mn-db-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 24px; }
  .mn-db .mn-db-point:nth-child(3) { border-left: 0; }
  .mn-db .mn-db-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mn-db .mn-rl-rules { grid-template-columns: 1fr; }
  .mn-db .mn-db-steps, .mn-db .mn-db-steps.mn-db-steps-6 { grid-template-columns: 1fr; gap: 0; }
  .mn-db .mn-db-steps::before, .mn-db .mn-db-steps.mn-db-steps-6::before { display: block; top: 31px; bottom: 31px; left: 31px; right: auto; border-top: 0; border-left: 1px dashed var(--wels-accent); }
  .mn-db .mn-db-steps li { display: grid; grid-template-columns: 62px 1fr; column-gap: 16px; text-align: left; padding-bottom: 22px; }
  .mn-db .mn-db-steps li:last-child { padding-bottom: 0; }
  .mn-db .mn-db-steps li::before { margin: 0; grid-row: span 3; }
  .mn-db .mn-db-steps li::after { left: 17px; margin-left: 0; }
  .mn-db .mn-db-steps p { margin: 0; max-width: none; }
}
@media (max-width: 600px) {
  .mn-db .mn-db-strip { grid-template-columns: 1fr; }
  .mn-db .mn-db-point + .mn-db-point { border-left: 0; border-top: 1px solid var(--db-line); padding-top: 20px; }
  .mn-db .mn-db-cards { grid-template-columns: 1fr; }
  .mn-db .mn-db-intro .mn-db-actions .wels-btn { flex: 1 1 100%; }
  .mn-db .mn-rl-table td:first-child { white-space: normal; }
}
@media (prefers-reduced-motion: reduce) {
  .mn-db .mn-db-card, .mn-db .mn-db-media img { transition: none; }
}

/* ==========================================================================
   Site-wide motion (see section 9 of mamta-niketan.js)
   Reveal uses the separate translate / scale properties, never transform,
   so each card keeps its own hover lift. Classes are removed again once
   an item has arrived. Reduced motion: none of this applies.
   ========================================================================== */
html.mn-motion .wels-reveal.is-armed:not(.mn-rv) { opacity: 1; }
html.mn-motion .wels-reveal.is-armed:not(.mn-rv):not(.is-in) { transform: none; }
html.mn-motion .mn-rv.mn-rv { transform: none; transition: opacity .7s cubic-bezier(.2, .7, .2, 1), translate .7s cubic-bezier(.2, .7, .2, 1), scale .9s cubic-bezier(.2, .7, .2, 1); transition-delay: var(--mn-d, 0ms) !important; }
html.mn-motion .mn-rv.mn-rv:not(.mn-in) { opacity: 0; translate: 0 28px; }
html.mn-motion .mn-rv-media.mn-rv-media:not(.mn-in) { translate: 0 12px; scale: .96; }
html.mn-motion .mn-rv.mn-rv.mn-in { opacity: 1; translate: none; scale: none; }
/* The short orange rule under a section title draws in as its heading arrives. */
html.mn-motion .mn-rv .wels-section-title::after { transform-origin: left center; transition: transform .8s cubic-bezier(.2, .7, .2, 1) .25s; }
html.mn-motion .mn-rv:not(.mn-in) .wels-section-title::after { transform: scaleX(0); }
@media (prefers-reduced-motion: no-preference) {
	/* Page banner: eyebrow, title and breadcrumbs settle in on load. */
	.wels-page-banner-inner > * { animation: mn-rise .8s cubic-bezier(.2, .7, .2, 1) both; }
	.wels-page-banner-inner > :nth-child(2) { animation-delay: .1s; }
	.wels-page-banner-inner > :nth-child(3) { animation-delay: .2s; }
	.wels-preset-mamta .wels-page-banner-title::after { animation: mn-draw .9s cubic-bezier(.2, .7, .2, 1) .35s both; transform-origin: left center; }
	/* Buttons in sections and pages: a touch more lift and a soft shadow on hover. */
	.wels-preset-mamta .wels-section .wels-btn, .wels-preset-mamta .wels-page-body .wels-btn { transition: transform .2s, background .2s, color .2s, border-color .2s, box-shadow .25s; }
	.wels-preset-mamta .wels-section .wels-btn:hover, .wels-preset-mamta .wels-section .wels-btn:focus-visible,
	.wels-preset-mamta .wels-page-body .wels-btn:hover, .wels-preset-mamta .wels-page-body .wels-btn:focus-visible { transform: translateY(-2px); box-shadow: 0 10px 20px -10px rgba(36, 31, 28, .45); }
	/* Gallery photos: slow zoom on hover. */
	.wels-gallery-item { overflow: hidden; }
	.wels-gallery-item img { transition: transform .6s cubic-bezier(.2, .7, .2, 1); }
	.wels-gallery-item:hover img { transform: scale(1.06); }
}
@keyframes mn-rise { from { opacity: 0; translate: 0 18px; } to { opacity: 1; translate: none; } }
@keyframes mn-draw { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@media print { html.mn-motion .mn-rv.mn-rv { opacity: 1 !important; translate: none !important; scale: none !important; } }

/* Tab switches (Activities, Achievements, Committees, News filters):
   the newly shown panel fades and rises in. */
@media (prefers-reduced-motion: no-preference) {
	.wels-actg-panel:not([hidden]), .wels-ach-group:not([hidden]), [data-mn-cat]:not([hidden]),
	.wels-committee-full > :not([hidden]):not(.mn-tabs) { animation: mn-rise .5s cubic-bezier(.2, .7, .2, 1) both; }
}

/* ==========================================================================
   Quality-check fixes, 29 Oct 2026
   ========================================================================== */
/* Header dropdowns of the last three menu items open leftwards from their
   item, so they stay on screen and the page never scrolls sideways on
   1100-1370 px laptops (parent opens every dropdown rightwards). */
.wels-primary-nav .wels-menu > .wels-menu-item:nth-last-child(-n+3) > .wels-sub-menu { left: auto; right: 0; }
.wels-primary-nav .wels-menu > .wels-menu-item:nth-last-child(-n+3) .wels-sub-menu .wels-sub-menu { left: auto; right: 100%; }
/* Focus ring: the light orange is only 2.7:1 on cream. Use the darker orange
   on light grounds (5.3:1) and keep the bright one on the dark bands. */
.wels-preset-mamta :focus-visible,
.wels-preset-mamta :is(a, button, input, select, textarea, summary, [tabindex]):focus-visible { outline-color: var(--wels-accent-text, #a3560f); }
.wels-preset-mamta :is(.wels-topbar, .wels-site-header, .wels-site-footer, .wels-page-banner, .wels-hero, .wels-principal, .mn-db-cta) :is(a, button, input, select, textarea, summary, [tabindex]):focus-visible { outline-color: var(--wels-accent); }
/* Search box: let the field shrink so the button never pushes past a
   320 px screen (404 page, empty search). */
.wels-search-field { min-width: 0; }

/* Registration form helpers (Core 2.8.0): hint under a field, "(optional)"
   beside its label, and the field's own error message. */
.wels-enq-opt { font-weight: 400; font-size: .85em; color: var(--wels-muted); }
.wels-enq-hint { display: block; margin-top: 5px; font-size: .86rem; line-height: 1.45; color: var(--wels-muted); }
.wels-enq-error { display: flex; align-items: flex-start; gap: 6px; margin-top: 6px; font-size: .88rem; font-weight: 600; line-height: 1.4; color: #b3261e; }
.wels-enq-error::before { content: "!"; flex: none; display: grid; place-items: center; width: 17px; height: 17px; margin-top: 1px; border-radius: 50%; background: #b3261e; color: #fff; font-size: .72rem; font-weight: 700; }
.wels-enq-field input::placeholder, .wels-enq-field textarea::placeholder { color: var(--wels-muted); opacity: 1; }

/* ==========================================================================
   Fee table (2025-26 fees): the column headings are long, so let them wrap
   instead of forcing an 850px-wide table on phones.
   ========================================================================== */
.wels-fee-table thead th { white-space: normal; vertical-align: bottom; line-height: 1.3; }
.wels-fee-table td { font-variant-numeric: tabular-nums; }
@media (max-width: 600px) {
	.wels-fee-table { min-width: 0; font-size: .9rem; }
	.wels-fee-table th, .wels-fee-table td { padding: .55rem .5rem; }
	.wels-fee-table thead th:first-child, .wels-fee-table tbody td:first-child { display: none; }
}

/* ==========================================================================
   Transport page ([mn_transport], inc/transport.php)
   ========================================================================== */
.mn-filterbar-two { grid-template-columns: minmax(0, 1fr) auto; }
@media (max-width: 640px) { .mn-filterbar-two { grid-template-columns: minmax(0, 1fr); } }
.mn-van-table th[scope="row"] { font-weight: 700; color: var(--wels-primary); text-align: left; white-space: nowrap; }
.mn-van-table .mn-van-no { display: block; font-size: .78rem; font-weight: 500; color: var(--wels-muted); letter-spacing: .03em; }
.mn-van-table td, .mn-van-table th { vertical-align: top; }
.mn-van-table td:last-child { min-width: 22rem; }
.mn-van-tel { font-weight: 600; white-space: nowrap; color: var(--wels-accent-text, #a3560f); }
.mn-van-tel::before { content: ""; display: inline-block; width: .95em; height: .95em; margin-right: .35em; vertical-align: -.1em; background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1z'/%3E%3C/svg%3E") center / contain no-repeat; }
/* Route: numbered stops joined by a thin line, like a bus-route strip. */
.mn-route { columns: 2 10.5rem; column-gap: 14px; margin: 0; padding: 0; list-style: none; }
.mn-route li { break-inside: avoid; margin-bottom: 6px; }
.mn-route li { display: flex; align-items: center; gap: 8px; min-width: 0; padding: 3px 8px 3px 3px; border-radius: 999px; transition: background .2s, box-shadow .2s; }
.mn-stop-no {
	flex: 0 0 auto; display: inline-grid; place-items: center; min-width: 1.75rem; height: 1.75rem; padding: 0 .35rem;
	border-radius: 999px; background: var(--wels-primary); color: #fff; font-size: .78rem; font-weight: 700; font-variant-numeric: tabular-nums;
}
.mn-stop-name { min-width: 0; overflow-wrap: anywhere; line-height: 1.3; }
.mn-route li.is-match { background: var(--wels-accent-light, #fde7c8); box-shadow: inset 0 0 0 1px var(--wels-accent, #e8892b); }
.mn-route li.is-match .mn-stop-no { background: var(--wels-accent-text, #a3560f); }
.mn-route li.is-match .mn-stop-name { font-weight: 700; color: var(--wels-ink); }

@media (max-width: 760px) {
	/* The van table becomes one card per van. */
	.mn-van-table { min-width: 0; }
	.mn-van-table td:last-child { min-width: 0; }
	.mn-van-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
	.mn-van-table, .mn-van-table tbody, .mn-van-table tr, .mn-van-table th, .mn-van-table td { display: block; width: 100%; }
	.wels-preset-mamta .mn-van-table tbody tr,
	.mn-van-table tbody tr { margin: 0 0 12px; background: var(--wels-bg); border: 1px solid var(--mn-line); border-radius: var(--wels-radius); overflow: hidden; }
	.mn-van-table tbody tr[hidden] { display: none; }
	.mn-van-table td.is-empty { display: none; } /* an optional detail left empty: no blank line on the card */
	.mn-van-table th[scope="row"] { padding: 12px 14px; background: var(--wels-primary); color: #fff; white-space: normal; }
	.mn-van-table th[scope="row"] .mn-van-no { color: rgba(255,255,255,.75); }
	.mn-van-table td { display: grid; grid-template-columns: 6.5rem minmax(0, 1fr); gap: 10px; padding: 9px 14px; border: 0; border-top: 1px solid var(--mn-line); }
	.mn-van-table td::before { content: attr(data-label); font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--wels-muted); padding-top: .2em; }
	/* Route gets the full card width, stops listed top to bottom. */
	.mn-van-table td:last-child { grid-template-columns: minmax(0, 1fr); gap: 8px; }
	.mn-route { columns: 1; position: relative; }
	.mn-route li { margin-bottom: 4px; }
	.mn-route::before { content: ""; position: absolute; left: calc(3px + .875rem - 1px); top: 14px; bottom: 14px; width: 2px; background: var(--mn-line); }
	.mn-route li { position: relative; }
}
@media print {
	.mn-filterbar { display: none !important; }
}

/* Transport page strip icons (same 48px line style as the other .mn-i-s* icons). */
.mn-i-sguard { --mn-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='black' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M24 5l15 6v10c0 10-6.5 18-15 22-8.5-4-15-12-15-22V11z'/%3E%3Ccircle cx='24' cy='20' r='4.5'/%3E%3Cpath d='M16 33c1.5-4 4.5-6 8-6s6.5 2 8 6'/%3E%3C/svg%3E"); }
.mn-i-spin { --mn-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='black' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M24 43s13-12.5 13-23a13 13 0 0 0-26 0c0 10.5 13 23 13 23z'/%3E%3Ccircle cx='24' cy='20' r='5'/%3E%3C/svg%3E"); }
.mn-i-sfare { --mn-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='black' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='10' cy='12' r='4'/%3E%3Ccircle cx='38' cy='36' r='4'/%3E%3Cpath d='M14 12h14a6 6 0 0 1 0 12H20a6 6 0 0 0 0 12h14'/%3E%3C/svg%3E"); }
.mn-tr .mn-tr-intro { margin-bottom: 0; }
.mn-tr .mn-transport { margin-top: 4px; }

/* ==========================================================================
   Mobile menu: school contact details at the foot of the panel
   (wels_mn_mobile_nav_info). Order: menu, buttons, then contact.
   ========================================================================== */
.wels-mobile-nav-panel { display: flex; flex-direction: column; }
.wels-mobile-nav-panel > .wels-menu-mobile { flex: 0 0 auto; }
.wels-mobile-nav-panel > .wels-header-actions-mobile { order: 1; }
.mn-mnav-info { order: 2; margin-top: 26px; padding: 18px 16px 16px; background: var(--wels-alt-bg, #f6efe4); border-radius: var(--wels-radius, 10px); border-top: 3px solid var(--wels-accent, #e8892b); }
.mn-mnav-title { margin: 0 0 10px; font-size: .72rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--wels-muted); }
.mn-mnav-list { list-style: none; margin: 0; padding: 0; }
.mn-mnav-list li + li { border-top: 1px solid var(--mn-line, rgba(0,0,0,.08)); }
.mn-mnav-list a, .mn-mnav-row { display: flex; align-items: flex-start; gap: 12px; padding: 10px 0; color: var(--wels-ink); text-decoration: none; font-size: .92rem; line-height: 1.4; overflow-wrap: anywhere; }
.mn-mnav-list a:hover span, .mn-mnav-list a:focus-visible span { color: var(--wels-accent-text, #a3560f); }
.mn-mnav-list small { display: block; margin-top: 2px; font-size: .78rem; color: var(--wels-muted); }
.mn-mnav-list a small { color: var(--wels-accent-text, #a3560f); font-weight: 600; }
.mn-mnav-ico { flex: 0 0 auto; width: 20px; height: 20px; margin-top: 1px; color: var(--wels-accent-text, #a3560f); }
.mn-mnav-info .wels-social-row { display: flex; gap: 10px; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--mn-line, rgba(0,0,0,.08)); }
.mn-mnav-info .wels-social { display: inline-grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--wels-primary); color: #fff; }
.mn-mnav-info .wels-social:hover, .mn-mnav-info .wels-social:focus-visible { background: var(--wels-accent-text, #a3560f); color: #fff; }
/* The ghost button (Staff Login) is styled for dark bars; on the white
   panel it was white on white. */
.wels-mobile-nav-panel .wels-header-actions-mobile .wels-btn-ghost { background: transparent; color: var(--wels-primary); border: 2px solid var(--mn-line, rgba(0,0,0,.15)); }
.wels-mobile-nav-panel .wels-header-actions-mobile .wels-btn-ghost:hover,
.wels-mobile-nav-panel .wels-header-actions-mobile .wels-btn-ghost:focus-visible { border-color: var(--wels-accent); color: var(--wels-accent-text, #a3560f); }
/* The WhatsApp bubble sat on top of the open menu. */
body.wels-nav-open .wels-whatsapp-float { opacity: 0; visibility: hidden; pointer-events: none; }
/* Logo and school name at the top of the mobile menu, beside the close button. */
.wels-mobile-nav-panel { padding-top: 16px; }
.mn-mnav-brand { order: -1; display: flex; align-items: center; gap: 12px; min-height: 52px; margin: 0 0 14px; padding: 0 52px 14px 0; border-bottom: 2px solid var(--wels-accent, #e8892b); color: var(--wels-primary); text-decoration: none; }
.mn-mnav-logo { flex: 0 0 auto; width: 52px; height: 52px; border-radius: 50%; object-fit: contain; background: #fff; box-shadow: 0 0 0 1px var(--mn-line, rgba(0,0,0,.1)); }
.mn-mnav-name { font-family: var(--wels-heading-font); font-weight: 700; font-size: 1rem; line-height: 1.2; text-transform: uppercase; letter-spacing: .02em; }
.wels-mobile-nav-panel .wels-mobile-close { top: 22px; }
/* In a full-height column panel, flex items shrank and overlapped; keep each at its own height. */
.wels-mobile-nav-panel > * { flex-shrink: 0; }
.mn-mnav-name { text-transform: none; font-size: 1.02rem; letter-spacing: 0; }

/* Footer first column: affiliation and office hours (wels_mn_footer_facts_html). */
.mn-footer-facts { list-style: none; margin: 18px 0 0; padding: 14px 0 0; border-top: 1px solid rgba(255,255,255,.12); font-size: .86rem; line-height: 1.5; }
.mn-footer-facts li + li { margin-top: 8px; }
.mn-footer-facts span { display: block; font-size: .7rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--wels-accent-light, #f4b678); }
.mn-footer-facts strong { font-weight: 500; color: rgba(255,255,255,.88); }

/* ==========================================================================
   About Us → Our Inspiration (.mn-insp): framed portrait beside the story.
   The photo is small (174 × 253), so it is shown near its own size in a
   mount rather than stretched.
   ========================================================================== */
.mn-insp { display: grid; grid-template-columns: minmax(230px, 290px) minmax(0, 1fr); gap: clamp(28px, 5vw, 64px); align-items: start; }
.mn-insp-portrait { position: sticky; top: 110px; margin: 0; padding: 26px 22px 22px; text-align: center; background: var(--wels-alt-bg); border: 1px solid var(--mn-line); border-radius: var(--wels-radius); }
.mn-insp-frame { display: inline-block; padding: 8px; background: #fff; border-radius: 4px; box-shadow: 0 0 0 1px var(--mn-line), 0 18px 34px -18px rgba(36,31,28,.45); position: relative; }
.mn-insp-frame::after { content: ""; position: absolute; inset: -10px; border: 2px solid var(--wels-accent); border-radius: 6px; opacity: .55; pointer-events: none; }
.mn-insp-photo { display: block; width: 190px; max-width: 100%; height: auto; border-radius: 2px; }
.mn-insp-portrait figcaption { margin-top: 24px; }
.mn-insp-name { display: block; font-family: var(--wels-heading-font); font-size: 1.3rem; font-weight: 700; color: var(--wels-primary); line-height: 1.25; }
.mn-insp-role { display: block; margin-top: 4px; font-size: .88rem; color: var(--wels-muted); font-style: italic; }
.mn-insp-fact { margin: 18px 0 0; padding-top: 16px; border-top: 1px solid var(--mn-line); font-size: .9rem; color: var(--wels-muted); }
.mn-insp-fact strong { display: block; font-family: var(--wels-heading-font); font-size: 2.4rem; line-height: 1; color: var(--wels-accent-text, #a3560f); }
.mn-insp-story > h2 { margin: .2em 0 .6em; }
.mn-insp-story > p { max-width: 62ch; }
.mn-insp-quote { margin: 28px 0; padding: 18px 24px; background: var(--wels-alt-bg); border-left: 4px solid var(--wels-accent); border-radius: 0 var(--wels-radius) var(--wels-radius) 0; font-family: var(--wels-heading-font); font-size: 1.18rem; font-style: italic; line-height: 1.5; color: var(--wels-primary); max-width: 62ch; }
.mn-insp-quote p { margin: 0; }
.mn-insp-close { margin-top: 28px; padding-top: 22px; border-top: 2px solid var(--wels-accent); font-family: var(--wels-heading-font); font-size: 1.15rem; font-weight: 700; color: var(--wels-primary); }
@media (max-width: 820px) {
	.mn-insp { grid-template-columns: minmax(0, 1fr); }
	.mn-insp-portrait { position: static; max-width: 340px; margin: 0 auto; width: 100%; }
}

/* ==========================================================================
   Achievements page (.mn-ach): Board results band, category strip, list.
   ========================================================================== */
.mn-i-smedal { --mn-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='black' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 5l6 12M32 5l-6 12M14 5h8M26 5h8'/%3E%3Ccircle cx='24' cy='29' r='12'/%3E%3Cpath d='M24 22l2.2 4.4 4.8.7-3.5 3.4.8 4.8-4.3-2.3-4.3 2.3.8-4.8-3.5-3.4 4.8-.7z'/%3E%3C/svg%3E"); }
.mn-i-spalette { --mn-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='black' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M24 6C13 6 5 14 5 23.5S13 42 22 42c2.5 0 3.5-1.6 3.5-3.3 0-2.3-2-3.2-2-5.2 0-1.8 1.4-3 3.3-3H33c5.5 0 10-4.2 10-9.5C43 12.5 34.5 6 24 6z'/%3E%3Ccircle cx='15' cy='22' r='2.5'/%3E%3Ccircle cx='21' cy='14' r='2.5'/%3E%3Ccircle cx='31' cy='14' r='2.5'/%3E%3Ccircle cx='36' cy='22' r='2.5'/%3E%3C/svg%3E"); }
.mn-ach .mn-ach-intro { margin-bottom: 0; }
.mn-ach-results { display: grid; grid-template-columns: 1fr 1fr 1.4fr; gap: 0; margin: 0 0 28px; background: var(--wels-primary); color: #fff; border-radius: var(--wels-radius); overflow: hidden; }
.mn-ach-stat { padding: 26px 24px; text-align: center; border-right: 1px solid rgba(255,255,255,.12); }
.mn-ach-results p { margin: 0; }
.mn-ach-num { font-family: var(--wels-heading-font); font-size: clamp(2.2rem, 4vw, 3rem); font-weight: 700; line-height: 1; color: var(--wels-accent-light, #f4b678); }
.mn-ach-label { margin-top: 10px !important; font-weight: 600; font-size: 1rem; }
.mn-ach-sub { margin-top: 2px !important; font-size: .82rem; color: rgba(255,255,255,.7); }
.mn-ach-stat-cta { display: flex; flex-direction: column; justify-content: center; gap: 14px; padding: 24px 28px; background: rgba(255,255,255,.05); font-size: .95rem; color: rgba(255,255,255,.85); }
.mn-ach-stat-cta .wels-btn { align-self: flex-start; }
.mn-ach-empty { padding: 34px 28px; text-align: center; background: var(--wels-alt-bg); border: 1px dashed var(--mn-line); border-radius: var(--wels-radius); }
.mn-ach-empty::before { content: ""; display: block; width: 52px; height: 52px; margin: 0 auto 12px; background: var(--wels-accent-text, #a3560f);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='black' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 7h18v10a9 9 0 0 1-18 0z'/%3E%3Cpath d='M15 10H8v3a7 7 0 0 0 7 7M33 10h7v3a7 7 0 0 1-7 7M24 26v7M17 41h14M19 41l1-8h8l1 8'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='black' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 7h18v10a9 9 0 0 1-18 0z'/%3E%3Cpath d='M15 10H8v3a7 7 0 0 0 7 7M33 10h7v3a7 7 0 0 1-7 7M24 26v7M17 41h14M19 41l1-8h8l1 8'/%3E%3C/svg%3E") center / contain no-repeat; }
.mn-ach-empty p { margin: 0 auto; max-width: 46ch; color: var(--wels-muted); }
.mn-ach-empty .mn-ach-empty-title { margin-bottom: 6px; font-family: var(--wels-heading-font); font-size: 1.25rem; font-weight: 700; color: var(--wels-primary); }
@media (max-width: 820px) {
	.mn-ach-results { grid-template-columns: 1fr 1fr; }
	.mn-ach-stat-cta { grid-column: 1 / -1; border-top: 1px solid rgba(255,255,255,.12); }
}
@media (max-width: 420px) {
	.mn-ach-stat { padding: 20px 12px; }
}
/* Achievement cards: photo on top at 4:3, so a group photo shows the whole group. */
.wels-preset-mamta .wels-achievements-full .wels-ach-grid { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.wels-preset-mamta .wels-achievements-full .wels-ach-card { flex-direction: column; }
.wels-preset-mamta .wels-achievements-full .wels-ach-photo { flex: 0 0 auto; width: 100%; aspect-ratio: 4 / 3; min-height: 0; }
.wels-preset-mamta .wels-achievements-full .wels-ach-photo img { width: 100%; height: 100%; object-position: center 30%; }

/* Homepage "Our Achievers" panel: the latest achievement only, as a feature
   card (photo on top), with "View All Achievements" below it. */
.mn-duo .wels-ach-card:nth-child(n+2) { display: none; }
.mn-duo .wels-ach-card { flex-direction: column; }
.mn-duo .wels-ach-photo { flex: 0 0 auto; width: 100%; aspect-ratio: 4 / 3; align-self: stretch; }
.mn-duo .wels-ach-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center 30%; }
.mn-duo .wels-ach-body { padding: 16px 18px; }

/* ==========================================================================
   Homepage row: Our Achievers | News & Events | Latest Newsletter — one
   pattern for all three: short heading with the orange rule, one card
   (picture on top at 4:3, then label, title and a three-line note) and the
   same outline "View All" button pinned to the foot of each panel.
   ========================================================================== */
.mn-duo-achievements-updates.mn-cols-3 .mn-duo-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.mn-duo-achievements-updates .mn-duo-col > .wels-section > .wels-container { display: flex; flex-direction: column; height: 100%; }
.mn-duo-achievements-updates .wels-section-head { margin: 0 0 18px; padding-right: 0; }
.mn-duo-achievements-updates .wels-section-cta { margin-top: auto; padding-top: 20px; text-align: left; }
.mn-duo-achievements-updates .wels-section-cta .wels-btn { width: 100%; justify-content: center; text-align: center; }

/* The card */
.mn-duo-achievements-updates .wels-ach-grid,
.mn-duo-achievements-updates .wels-updates-grid,
.mn-duo-achievements-updates .wels-newsletters { display: block; margin: 0; padding: 0; list-style: none; }
.mn-duo-achievements-updates .wels-ach-card,
.mn-duo-achievements-updates .wels-update-card > article,
.mn-duo-achievements-updates .wels-newsletter-card {
	display: flex; flex-direction: column; gap: 0; margin: 0; padding: 0;
	background: var(--wels-bg); border: 1px solid var(--mn-line); border-radius: var(--wels-radius);
	box-shadow: none; overflow: hidden; max-width: none; width: auto;
}
.mn-duo-achievements-updates .wels-update-card { margin: 0; padding: 0; border: 0; background: none; box-shadow: none; }
.mn-duo-achievements-updates .wels-ach-card:nth-child(n+2),
.mn-duo-achievements-updates .wels-update-card:nth-child(n+2),
.mn-duo-achievements-updates .wels-newsletter-card:nth-child(n+2) { display: none; }

/* Picture on top, 4:3, filled */
.mn-duo-achievements-updates .wels-ach-photo,
.mn-duo-achievements-updates .wels-update-media,
.mn-duo-achievements-updates .wels-newsletter-cover,
.mn-duo-achievements-updates .wels-newsletter-cover.mn-has-preview,
.mn-duo-achievements-updates .wels-newsletter-cover:has(.wels-newsletter-nocover) {
	flex: 0 0 auto; width: 100%; aspect-ratio: 4 / 3; margin: 0; border: 0; border-radius: 0;
	overflow: hidden; background: var(--wels-alt-bg); align-self: stretch;
}
.mn-duo-achievements-updates .wels-ach-photo img,
.mn-duo-achievements-updates .wels-update-media img,
.mn-duo-achievements-updates .wels-newsletter-cover img { width: 100%; height: 100%; object-fit: cover; object-position: center 30%; display: block; }
.mn-duo-achievements-updates .wels-newsletter-cover .mn-pdf-preview { width: 100%; height: 100%; }

/* Text under the picture */
.mn-duo-achievements-updates .wels-ach-body,
.mn-duo-achievements-updates .wels-update-body,
.mn-duo-achievements-updates .wels-newsletter-body { display: flex; flex-direction: column; gap: 6px; padding: 16px 18px 18px; }
.mn-duo-achievements-updates .wels-ach-cat,
.mn-duo-achievements-updates .wels-update-meta { margin: 0; font-size: .74rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--wels-accent-text, #a3560f); }
.mn-duo-achievements-updates .wels-ach-cat { align-self: flex-start; }
.mn-duo-achievements-updates .wels-update-meta svg { display: none; }
.mn-duo-achievements-updates .wels-ach-title,
.mn-duo-achievements-updates .wels-update-title,
.mn-duo-achievements-updates .wels-newsletter-body h3 { margin: 0; font-family: var(--wels-heading-font); font-size: 1.15rem; line-height: 1.3; color: var(--wels-ink); }
.mn-duo-achievements-updates .wels-update-title a { color: inherit; text-decoration: none; }
.mn-duo-achievements-updates .wels-update-title a:hover { color: var(--wels-accent-text, #a3560f); }
.mn-duo-achievements-updates .wels-ach-who { margin: 0; font-size: .88rem; color: var(--wels-ink); }
.mn-duo-achievements-updates .wels-ach-text p,
.mn-duo-achievements-updates .wels-update-excerpt,
.mn-duo-achievements-updates .wels-newsletter-body p {
	margin: 0; font-size: .9rem; line-height: 1.55; color: var(--wels-muted);
	display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
/* The panel's own button replaces the buttons inside the cards. */
.mn-duo-achievements-updates .wels-update-more,
.mn-duo-achievements-updates .wels-newsletter-btn { display: none; }

@media (max-width: 1100px) {
	.mn-duo-achievements-updates.mn-cols-3 .mn-duo-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
	.mn-duo-achievements-updates.mn-cols-3 .mn-duo-grid { grid-template-columns: minmax(0, 1fr); }
}
/* The PDF preview draws its own scrollbar; push it outside the frame. */
.mn-duo-achievements-updates .wels-newsletter-cover .mn-pdf-preview { width: calc(100% + 22px); height: calc(100% + 22px); max-width: none; }

/* ==========================================================================
   Quality-check fixes, 2 Nov 2026 (round 2)
   ========================================================================== */
/* Mobile menu: show the contact box before Staff Login, the same order the
   keyboard moves through them (WCAG 2.4.3). */
.wels-mobile-nav-panel > .mn-mnav-info { order: 1; }
.wels-mobile-nav-panel > .wels-header-actions-mobile { order: 2; }
/* Transport: the driver's phone link was 21 px tall; give it a proper tap area. */
.mn-van-tel { display: inline-flex; align-items: center; min-height: 32px; padding: 4px 0; }
@media (max-width: 760px) { .mn-van-tel { min-height: 44px; } }

/* ==========================================================================
   Transfer Certificates ([mn_tc], inc/transfer-certificates.php)
   ========================================================================== */
.mn-tc-table th[scope="row"] { font-weight: 700; color: var(--wels-primary); white-space: nowrap; text-align: left; }
.mn-tc-table td:first-child { width: 5.5rem; }
.mn-tc-form { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; }
.mn-tc-form input[type="text"] {
	flex: 1 1 10rem; min-width: 0; max-width: 16rem; height: 44px; padding: 0 12px; font: inherit;
	background: var(--wels-bg); color: var(--wels-ink); border: 1px solid var(--mn-line); border-radius: var(--wels-radius);
}
.mn-tc-form input[type="text"]:focus { outline: 2px solid var(--wels-accent-text, #a3560f); outline-offset: 1px; border-color: var(--wels-accent-text, #a3560f); }
.mn-tc-form .wels-btn { min-height: 44px; }
.mn-tc-err { margin: 8px 0 0; color: #b3261e; font-weight: 600; font-size: .92rem; }
.mn-tc-soon { color: var(--wels-muted); }
.mn-tc-help { margin-top: 10px; font-size: .9rem; color: var(--wels-muted); }
@media (max-width: 640px) {
	.mn-tc-table { min-width: 0; }
	.mn-tc-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
	.mn-tc-table, .mn-tc-table tbody, .mn-tc-table tr, .mn-tc-table th, .mn-tc-table td { display: block; width: 100%; }
	.mn-tc-table tr { margin: 0 0 12px; border: 1px solid var(--mn-line); border-radius: var(--wels-radius); overflow: hidden; background: var(--wels-bg); }
	.mn-tc-table td:first-child { display: none; }
	.mn-tc-table th[scope="row"] { padding: 10px 14px; background: var(--wels-primary); color: #fff; }
	.mn-tc-table td { padding: 12px 14px; border: 0; }
	.mn-tc-form input[type="text"] { max-width: none; }
}
