/*
 * MAS Marine Academy — design system layer (Phase 1)
 * Loaded last, after the legacy Educavo theme. Tokens + base typography + scoped `mas-*` components.
 * Spec: docs/website-design-reference.md (Part C). Keep this file small; no global layout changes here.
 */

/* ---------------------------------------------------------------------------
 * 1. Fonts — zero download.
 * The legacy theme declares 'Rubik' and 'Nunito' in ~30 places. Instead of fetching them from Google Fonts
 * (render-blocking @import, 12 weights), alias both names to fonts already installed on the device.
 * If none of the local() faces exist the browser falls through to the declared `sans-serif`.
 * ------------------------------------------------------------------------- */
@font-face { font-family: 'Rubik';  font-weight: 300 400; font-style: normal; font-display: swap;
	src: local('Segoe UI'), local('SegoeUI'), local('Roboto'), local('Roboto-Regular'), local('Helvetica Neue'), local('HelveticaNeue'), local('Arial'), local('ArialMT'); }
@font-face { font-family: 'Rubik';  font-weight: 500 600; font-style: normal; font-display: swap;
	src: local('Segoe UI Semibold'), local('SegoeUI-Semibold'), local('Roboto Medium'), local('Roboto-Medium'), local('Helvetica Neue Medium'), local('HelveticaNeue-Medium'), local('Arial'), local('ArialMT'); }
@font-face { font-family: 'Rubik';  font-weight: 700 900; font-style: normal; font-display: swap;
	src: local('Segoe UI Bold'), local('SegoeUI-Bold'), local('Roboto Bold'), local('Roboto-Bold'), local('Helvetica Neue Bold'), local('HelveticaNeue-Bold'), local('Arial Bold'), local('Arial-BoldMT'); }
@font-face { font-family: 'Nunito'; font-weight: 300 400; font-style: normal; font-display: swap;
	src: local('Segoe UI'), local('SegoeUI'), local('Roboto'), local('Roboto-Regular'), local('Helvetica Neue'), local('HelveticaNeue'), local('Arial'), local('ArialMT'); }
@font-face { font-family: 'Nunito'; font-weight: 500 600; font-style: normal; font-display: swap;
	src: local('Segoe UI Semibold'), local('SegoeUI-Semibold'), local('Roboto Medium'), local('Roboto-Medium'), local('Helvetica Neue Medium'), local('HelveticaNeue-Medium'), local('Arial'), local('ArialMT'); }
@font-face { font-family: 'Nunito'; font-weight: 700 900; font-style: normal; font-display: swap;
	src: local('Segoe UI Bold'), local('SegoeUI-Bold'), local('Roboto Bold'), local('Roboto-Bold'), local('Helvetica Neue Bold'), local('HelveticaNeue-Bold'), local('Arial Bold'), local('Arial-BoldMT'); }
/* Real italic faces (otherwise the browser slants the upright face). */
@font-face { font-family: 'Rubik';  font-weight: 300 600; font-style: italic; font-display: swap;
	src: local('Segoe UI Italic'), local('SegoeUI-Italic'), local('Roboto Italic'), local('Roboto-Italic'), local('Helvetica Neue Italic'), local('HelveticaNeue-Italic'), local('Arial Italic'), local('Arial-ItalicMT'); }
@font-face { font-family: 'Rubik';  font-weight: 700 900; font-style: italic; font-display: swap;
	src: local('Segoe UI Bold Italic'), local('SegoeUI-BoldItalic'), local('Roboto Bold Italic'), local('Roboto-BoldItalic'), local('Helvetica Neue Bold Italic'), local('HelveticaNeue-BoldItalic'), local('Arial Bold Italic'), local('Arial-BoldItalicMT'); }
@font-face { font-family: 'Nunito'; font-weight: 300 600; font-style: italic; font-display: swap;
	src: local('Segoe UI Italic'), local('SegoeUI-Italic'), local('Roboto Italic'), local('Roboto-Italic'), local('Helvetica Neue Italic'), local('HelveticaNeue-Italic'), local('Arial Italic'), local('Arial-ItalicMT'); }
@font-face { font-family: 'Nunito'; font-weight: 700 900; font-style: italic; font-display: swap;
	src: local('Segoe UI Bold Italic'), local('SegoeUI-BoldItalic'), local('Roboto Bold Italic'), local('Roboto-BoldItalic'), local('Helvetica Neue Bold Italic'), local('HelveticaNeue-BoldItalic'), local('Arial Bold Italic'), local('Arial-BoldItalicMT'); }

/* ---------------------------------------------------------------------------
 * 2. Tokens
 * ------------------------------------------------------------------------- */
:root {
	--mas-navy-900: #0b1f44;
	--mas-navy-800: #112958;
	--mas-navy-700: #1b3a73;
	--mas-blue-600: #1f4fa3;
	--mas-blue-050: #eef3fb;
	--mas-red-600: #c8102e;
	--mas-green-700: #1e7b3c;
	--mas-gold-400: #f5b700;
	--mas-ink: #1a2233;
	--mas-text: #3e4a5e;
	--mas-muted: #5e6a7d;
	--mas-border: #e3e8f0;
	--mas-surface: #f6f8fb;
	--mas-white: #fff;

	--mas-font: 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans Bengali', 'Nirmala UI', Vrinda, sans-serif;

	/* Re-review 2026-11-04: grey page canvas + flat white blocks (no shadows), 8 px corners — see section 7. */
	--mas-canvas: #f3f5f8;
	--mas-tint: #e9eff8;
	--mas-radius-sm: 6px;
	--mas-radius: 8px;
	--mas-radius-pill: 999px;
	--mas-shadow-sm: none;
	--mas-shadow: 0 4px 12px rgba(16, 24, 40, .08);
	--mas-shadow-lg: 0 12px 32px rgba(16, 24, 40, .12);
	--mas-ease: cubic-bezier(.4, 0, .2, 1);
	--mas-section-y: clamp(3rem, 2rem + 4vw, 6rem);
}

/* ---------------------------------------------------------------------------
 * 3. Base — minimal, contrast-safe overrides of the legacy theme
 * ------------------------------------------------------------------------- */
html, body {
	font-family: var(--mas-font);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}
body { color: var(--mas-text); }
.home-style2 h1, .home-style2 h2, .home-style2 h3,
.home-style2 h4, .home-style2 h5, .home-style2 h6 { letter-spacing: -.01em; }

/* Legacy link colour #21a7d0 is 2.8:1 on white (fails WCAG AA). */
a { color: var(--mas-blue-600); }
a:active, a:hover { color: var(--mas-navy-800); } /* same selectors/specificity as the theme rule */

/* The theme forces `outline: none !important` on links; restore a visible keyboard focus ring. */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible,
textarea:focus-visible, [tabindex]:focus-visible, .btn:focus-visible, iframe:focus-visible {
	outline: 3px solid var(--mas-blue-600) !important;
	outline-offset: 2px;
	box-shadow: 0 0 0 5px rgba(255, 255, 255, .9);
}

/* ---------------------------------------------------------------------------
 * 3b. Layout stability (CLS)
 * The homepage hero reserves its 1920:820 frame and shows slide 1 before Owl starts — see section 5c (Phase 3;
 * replaced the Phase 1 `.rs-slider.style1` aspect-ratio rule).
 * ------------------------------------------------------------------------- */

/* ---------------------------------------------------------------------------
 * 4. Accessibility utilities
 * ------------------------------------------------------------------------- */
.mas-visually-hidden {
	position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.mas-skip-link {
	position: absolute; left: 1rem; top: -100px; z-index: 10000;
	padding: .75rem 1rem; border-radius: var(--mas-radius-sm);
	background: var(--mas-navy-900); color: var(--mas-white) !important; font-weight: 600;
}
.mas-skip-link:focus { top: 1rem; }
/* The skip-link target gets focus programmatically; outlining the whole page area would only confuse. */
.main-content[tabindex="-1"]:focus, .main-content[tabindex="-1"]:focus-visible { outline: none !important; box-shadow: none; }

/* ---------------------------------------------------------------------------
 * 5. Components (scoped — only affect markup that opts in with `mas-*`)
 * ------------------------------------------------------------------------- */
.mas-section { padding-top: var(--mas-section-y); padding-bottom: var(--mas-section-y); }
.mas-section--tint { background: var(--mas-surface); }
.mas-section--navy { background: var(--mas-navy-900); color: rgba(255, 255, 255, .85); }
.mas-section--navy .mas-title { color: var(--mas-white); }
.mas-container-wide { width: 100%; max-width: 1320px; margin-left: auto; margin-right: auto; padding-left: 15px; padding-right: 15px; }

.mas-eyebrow {
	display: inline-block; margin-bottom: .5rem;
	font-size: .8125rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase;
	color: var(--mas-red-600);
}
.mas-title {
	margin: 0 0 1rem; font-family: var(--mas-font); font-weight: 700; line-height: 1.2; letter-spacing: -.01em;
	font-size: clamp(1.5rem, 1.1rem + 1.4vw, 2.25rem); color: var(--mas-navy-800);
}
.mas-lead { font-size: 1.0625rem; line-height: 1.7; color: var(--mas-muted); max-width: 65ch; }

.mas-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
	min-height: 44px; padding: .625rem 1.25rem;
	border: 2px solid transparent; border-radius: var(--mas-radius-sm);
	font-family: var(--mas-font); font-size: 1rem; font-weight: 600; line-height: 1.2; text-align: center;
	cursor: pointer; transition: background-color .15s var(--mas-ease), color .15s var(--mas-ease),
		border-color .15s var(--mas-ease), box-shadow .15s var(--mas-ease), transform .15s var(--mas-ease);
}
.mas-btn:hover { transform: translateY(-1px); box-shadow: var(--mas-shadow); }
.mas-btn--primary { background: var(--mas-blue-600); color: var(--mas-white) !important; }
.mas-btn--primary:hover { background: var(--mas-navy-700); }
.mas-btn--accent { background: var(--mas-red-600); color: var(--mas-white) !important; }
.mas-btn--accent:hover { background: #a50d26; }
.mas-btn--outline { background: transparent; border-color: var(--mas-blue-600); color: var(--mas-blue-600) !important; }
.mas-btn--outline:hover { background: var(--mas-blue-600); color: var(--mas-white) !important; }
.mas-btn--light { background: var(--mas-white); color: var(--mas-navy-800) !important; }
.mas-btn--block { display: flex; width: 100%; }

.mas-link-arrow { display: inline-flex; align-items: center; gap: .375rem; font-weight: 600; color: var(--mas-blue-600); }
.mas-link-arrow::after { content: "\2192"; transition: transform .15s var(--mas-ease); }
.mas-link-arrow:hover::after { transform: translateX(3px); }

.mas-card {
	display: flex; flex-direction: column; height: 100%;
	background: var(--mas-white); border: 1px solid var(--mas-border); border-radius: var(--mas-radius);
	box-shadow: var(--mas-shadow-sm); overflow: hidden;
}
.mas-card--hover { transition: box-shadow .18s var(--mas-ease), transform .18s var(--mas-ease), border-color .18s var(--mas-ease); }
.mas-card--hover:hover { transform: translateY(-3px); box-shadow: var(--mas-shadow-lg); border-color: #cfd8e6; }
.mas-card__media { aspect-ratio: 16 / 9; background: var(--mas-blue-050); overflow: hidden; }
.mas-card__media img { width: 100%; height: 100%; object-fit: cover; }
.mas-card__body { display: flex; flex-direction: column; gap: .5rem; flex: 1; padding: 1.25rem; }
.mas-card__title { margin: 0; font-family: var(--mas-font); font-size: 1.125rem; font-weight: 700; line-height: 1.35; color: var(--mas-ink); }
.mas-card__meta { font-size: .875rem; color: var(--mas-muted); }

.mas-date {
	display: inline-flex; align-items: center; padding: .125rem .625rem; border-radius: var(--mas-radius-pill);
	background: var(--mas-blue-050); color: var(--mas-navy-800); font-size: .8125rem; font-weight: 600; white-space: nowrap;
}
.mas-badge {
	display: inline-flex; align-items: center; gap: .375rem; padding: .25rem .625rem; border-radius: var(--mas-radius-pill);
	background: var(--mas-navy-800); color: var(--mas-white); font-size: .75rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
}
.mas-badge--red { background: var(--mas-red-600); }

.mas-stat { text-align: center; }
.mas-stat__num { display: block; font-size: clamp(1.75rem, 1.2rem + 2vw, 2.75rem); font-weight: 700; line-height: 1.1; color: var(--mas-navy-800); }
.mas-section--navy .mas-stat__num { color: var(--mas-gold-400); }
.mas-stat__label { display: block; margin-top: .25rem; font-size: .9375rem; color: var(--mas-muted); }
.mas-section--navy .mas-stat__label { color: rgba(255, 255, 255, .8); }

.mas-list { margin: 0; padding: 0; list-style: none; }
.mas-list__item { display: flex; gap: .75rem; align-items: flex-start; padding: .875rem 0; border-bottom: 1px solid var(--mas-border); }
.mas-list__item:last-child { border-bottom: 0; }

/* ---------------------------------------------------------------------------
 * 5b. Header, navigation, notice ticker, footer (Phase 2)
 * The whole <header> becomes position:sticky once mas-nav.js has set --mas-sticky-top to minus the height above the
 * part that should stay visible (brand row on mobile, nav bar on desktop). Sticky never moves other content (no CLS).
 * Without JS the header is static and the menu is always shown (the toggle is hidden).
 * ------------------------------------------------------------------------- */
/* The theme's `html, body { overflow-x: hidden }` turns <body> into a scroll container, which disables sticky.
 * `clip` still prevents horizontal scrolling but is not a scroll container. Older browsers keep `hidden` (header
 * is then simply not sticky). */
@supports (overflow: clip) { html, body { overflow-x: clip; } }
.mas-header { position: relative; z-index: 1000; background: var(--mas-white); box-shadow: var(--mas-shadow-sm); }
.mas-header.is-sticky-ready { position: -webkit-sticky; position: sticky; top: var(--mas-sticky-top, 0px); }
.mas-header ul { margin: 0; padding: 0; list-style: none; }
.mas-topbar :focus-visible, .mas-navbar :focus-visible, .mas-footer :focus-visible, .mas-ticker :focus-visible {
	outline-color: var(--mas-gold-400) !important; box-shadow: none;
}

.mas-topbar { background: var(--mas-navy-900); font-size: .8125rem; }
.mas-topbar__inner { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0 1.25rem; padding-top: .25rem; padding-bottom: .25rem; }
.mas-topbar__list { display: flex; flex-wrap: wrap; gap: 0 1.25rem; }
.mas-topbar a { display: inline-flex; align-items: center; gap: .4rem; min-height: 32px; color: rgba(255, 255, 255, .9); white-space: nowrap; }
.mas-topbar a:hover { color: var(--mas-gold-400); }
.mas-topbar .fa { color: var(--mas-gold-400); }
.mas-topbar__short { display: none; }

.mas-brandbar__inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-top: .625rem; padding-bottom: .625rem; }
.mas-brand { display: block; min-width: 0; }
.mas-brand picture, .mas-footer__brand picture { display: block; } /* re-review: WebP logo wrapper */
/* 2026-11-06: a fixed height (not max-height) so the logo has its space before the image loads: with width and height both
   auto the width/height attributes could not reserve it, and the header grew by up to 84 px when the logo arrived. The
   width follows from the attributes, then from the real image; object-fit keeps the ratio if a narrow screen limits it. */
.mas-brand img { display: block; width: auto; height: 72px; max-width: 100%; object-fit: contain; object-position: left center; }

.mas-nav-toggle {
	display: none; flex: none; align-items: center; gap: .5rem; min-height: 44px; padding: .5rem .875rem;
	border: 2px solid var(--mas-navy-800); border-radius: var(--mas-radius-sm); background: var(--mas-white);
	color: var(--mas-navy-800); font-family: var(--mas-font); font-size: .9375rem; font-weight: 600; cursor: pointer;
}
.mas-nav-toggle__bars, .mas-nav-toggle__bars::before, .mas-nav-toggle__bars::after {
	display: block; width: 18px; height: 2px; background: currentColor; transition: transform .15s var(--mas-ease);
}
.mas-nav-toggle__bars { position: relative; }
.mas-nav-toggle__bars::before, .mas-nav-toggle__bars::after { content: ""; position: absolute; left: 0; }
.mas-nav-toggle__bars::before { top: -6px; }
.mas-nav-toggle__bars::after { top: 6px; }
.mas-nav-toggle[aria-expanded="true"] .mas-nav-toggle__bars { background: transparent; }
.mas-nav-toggle[aria-expanded="true"] .mas-nav-toggle__bars::before { transform: translateY(6px) rotate(45deg); }
.mas-nav-toggle[aria-expanded="true"] .mas-nav-toggle__bars::after { transform: translateY(-6px) rotate(-45deg); }

.mas-navbar { background: var(--mas-navy-800); }
.mas-menu { display: flex; flex-wrap: wrap; }
.mas-menu__item { position: relative; display: flex; align-items: stretch; }
.mas-menu__link {
	display: flex; align-items: center; gap: .4rem; min-height: 52px; padding: 0 .875rem; margin: 0;
	border: 0; background: none; color: var(--mas-white) !important; font-family: var(--mas-font);
	font-size: .9375rem; font-weight: 600; line-height: 1.2; white-space: nowrap; cursor: pointer;
}
.mas-menu__item:hover > .mas-menu__link, .mas-menu__link:hover, .mas-menu__item.is-open > .mas-menu__link { background: var(--mas-navy-700); }
.mas-menu__item.is-active > .mas-menu__link { box-shadow: inset 0 -3px 0 var(--mas-gold-400); }
.mas-menu__toggle { display: flex; align-items: center; justify-content: center; margin: 0; padding: 0; border: 0; background: none; color: var(--mas-white); cursor: pointer; }
.mas-menu__toggle:not(.mas-menu__toggle--label) { width: 28px; margin-left: -.625rem; padding-right: .375rem; }
.mas-menu__toggle::after {
	content: ""; width: .45em; height: .45em; border-right: 2px solid; border-bottom: 2px solid;
	transform: translateY(-2px) rotate(45deg); transition: transform .15s var(--mas-ease);
}
.mas-menu__toggle[aria-expanded="true"]::after { transform: translateY(2px) rotate(-135deg); }
.mas-submenu__link { display: block; padding: .5rem 1.25rem; line-height: 1.4; }
.mas-submenu__link[aria-current="page"] { font-weight: 700; }

.mas-ticker { background: var(--mas-blue-050); border-bottom: 1px solid var(--mas-border); }
.mas-ticker__inner { display: flex; align-items: center; gap: .75rem; min-height: 52px; }
.mas-ticker__label {
	flex: none; padding: .25rem .75rem; border-radius: var(--mas-radius-pill); background: var(--mas-red-600);
	color: var(--mas-white); font-size: .75rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
}
.mas-ticker__viewport { flex: 1; min-width: 0; overflow: hidden; }
.mas-ticker__track {
	display: inline-block; padding-left: 100%; white-space: nowrap; color: var(--mas-navy-800);
	font-size: 1.0625rem; font-weight: 600; line-height: 1.6;
	animation: mas-ticker var(--mas-ticker-duration, 30s) linear infinite;
}
.mas-ticker__track > * { display: inline; margin: 0; }
.mas-ticker:hover .mas-ticker__track, .mas-ticker:focus-within .mas-ticker__track, .mas-ticker.is-paused .mas-ticker__track { animation-play-state: paused; }
.mas-ticker__pause {
	display: inline-flex; flex: none; align-items: center; justify-content: center; width: 36px; height: 36px;
	border: 1px solid var(--mas-border); border-radius: 50%; background: var(--mas-white); color: var(--mas-navy-800); cursor: pointer;
}
@keyframes mas-ticker { from { transform: translateX(0); } to { transform: translateX(-100%); } }

.mas-footer { background: var(--mas-navy-900); color: rgba(255, 255, 255, .8); font-size: .9375rem; line-height: 1.6; }
.mas-footer ul { margin: 0; padding: 0; list-style: none; }
.mas-footer a { color: rgba(255, 255, 255, .88); }
.mas-footer a:hover { color: var(--mas-gold-400); text-decoration: underline; }
.mas-footer__main { padding: 3.5rem 0 1rem; }
.mas-footer__col { margin-bottom: 2rem; }
.mas-footer__brand img { display: block; width: 100%; max-width: 280px; height: auto; margin-bottom: 1.5rem; }
.mas-footer .mas-footer__title { /* beats the theme `.home-style2 h2` colour */
	margin: 0 0 1rem; padding-bottom: .625rem; border-bottom: 2px solid var(--mas-gold-400); display: inline-block;
	font-family: var(--mas-font); font-size: .9375rem; font-weight: 700; letter-spacing: .06em; line-height: 1.3;
	text-transform: uppercase; color: var(--mas-white);
}
.mas-footer__links li { margin-bottom: .5rem; }
.mas-footer a[href^="tel:"] { white-space: nowrap; }
.mas-footer__contact li { display: flex; gap: .75rem; margin-bottom: .625rem; }
.mas-footer__contact .fa { flex: none; width: 1rem; margin-top: .3rem; text-align: center; color: var(--mas-gold-400); }
.mas-footer__social { display: flex; gap: .5rem; margin-top: 1.25rem !important; }
.mas-footer__social a {
	display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%;
	background: rgba(255, 255, 255, .1); color: var(--mas-white);
}
.mas-footer__social a:hover { background: var(--mas-gold-400); color: var(--mas-navy-900); text-decoration: none; }
.mas-footer__bottom { padding: 1rem 0; border-top: 1px solid rgba(255, 255, 255, .12); font-size: .875rem; }
.mas-footer__bottom-inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem 1.5rem; }
.mas-footer__copy { margin: 0; color: rgba(255, 255, 255, .8); }
.mas-footer__legal { display: flex; flex-wrap: wrap; gap: .25rem 1.25rem; }

/* Desktop: one-row nav bar with dropdowns (hover for mouse, the toggle button for keyboard and touch) */
@media (min-width: 992px) {
	html { scroll-padding-top: 64px; }
	.mas-submenu {
		position: absolute; top: 100%; left: 0; z-index: 20; min-width: 240px; padding: .5rem 0 !important;
		border-top: 3px solid var(--mas-red-600); border-radius: 0 0 var(--mas-radius-sm) var(--mas-radius-sm);
		background: var(--mas-white); box-shadow: var(--mas-shadow-lg);
		visibility: hidden; opacity: 0; transform: translateY(6px);
		transition: opacity .15s var(--mas-ease), transform .15s var(--mas-ease), visibility 0s linear .15s;
	}
	.mas-menu__item:last-child > .mas-submenu { left: auto; right: 0; }
	.mas-submenu--cols { min-width: 480px; columns: 2; column-gap: 0; }
	.mas-submenu--cols li { break-inside: avoid; }
	.mas-menu__item.is-open > .mas-submenu { visibility: visible; opacity: 1; transform: none; transition-delay: 0s; }
	.mas-submenu__link { color: var(--mas-ink); }
	.mas-submenu__link:hover, .mas-submenu__link[aria-current="page"] { background: var(--mas-blue-050); color: var(--mas-navy-800); }
}
@media (min-width: 992px) and (hover: hover) {
	.mas-menu__item--parent:hover > .mas-submenu { visibility: visible; opacity: 1; transform: none; transition-delay: 0s; }
}
@media (min-width: 1200px) {
	.mas-menu__link { padding: 0 1.125rem; }
}

/* Mobile and tablet: menu panel under the brand row, sub-menus as accordions */
@media (max-width: 991.98px) {
	html { scroll-padding-top: 80px; } /* sticky brand row */
	.mas-js .mas-nav-toggle { display: inline-flex; }
	.mas-js .mas-navbar { display: none; }
	.mas-js .mas-navbar.is-open { display: block; max-height: var(--mas-panel-max, 75vh); overflow-y: auto; overscroll-behavior: contain; }
	.mas-menu { flex-direction: column; padding: .25rem 0 .75rem !important; }
	.mas-menu__item { flex-wrap: wrap; border-bottom: 1px solid rgba(255, 255, 255, .1); }
	.mas-menu__link { flex: 1; min-height: 48px; padding: 0 .25rem; }
	.mas-menu__item.is-active > .mas-menu__link { box-shadow: inset 3px 0 0 var(--mas-gold-400); padding-left: .75rem; }
	.mas-menu__toggle:not(.mas-menu__toggle--label) { width: 48px; margin: 0; padding: 0; }
	.mas-menu__toggle--label { justify-content: space-between; text-align: left; }
	.mas-submenu { display: none; flex-basis: 100%; padding: 0 0 .5rem .75rem !important; }
	.mas-menu__item.is-open > .mas-submenu { display: block; }
	.mas-submenu__link { padding: .625rem .5rem; color: rgba(255, 255, 255, .88) !important; }
	.mas-submenu__link[aria-current="page"] { color: var(--mas-gold-400) !important; }
}
@media (max-width: 575.98px) {
	/* One-row utility bar on phones: short visible labels; the full text stays available to screen readers. */
	.mas-topbar__inner, .mas-topbar__list { gap: 0 1rem; }
	.mas-topbar__full { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }
	.mas-topbar__short { display: inline; }
}
@media (max-width: 767.98px) {
	.mas-topbar__inner { justify-content: center; }
	.mas-topbar__list { justify-content: center; }
	.mas-brand img { height: 52px; }
	.mas-ticker__track { font-size: 1rem; }
	.mas-footer__main { padding-top: 2.5rem; }
	.mas-footer__bottom { padding-bottom: 6rem; } /* keep the bottom links clear of the theme scroll-to-top button (fixed, 80 px from the bottom) */
	.mas-footer__bottom-inner { justify-content: center; text-align: center; }
	.mas-footer__legal { justify-content: center; }
}

/* ---------------------------------------------------------------------------
 * 5c. Homepage (Phase 3)
 * ------------------------------------------------------------------------- */
/* Hero: fixed 1920:820 frame (no CLS); slide 1 is shown before Owl starts so the LCP image does not wait for JS. */
.mas-hero__frame { position: relative; overflow: hidden; aspect-ratio: 1920 / 820; background: var(--mas-navy-900); }
/* Hero slideshow (2026-11-06, assets/js/mas-hero.js; no Owl): slides are stacked and fade; slide 1 is visible from the
   first paint and never moves. Control colours are custom properties so dark mode keeps them light on the photos. */
.mas-hero { --mas-hero-ctrl-bg: rgba(255, 255, 255, .92); --mas-hero-ctrl-ink: #112958; --mas-hero-dot: rgba(255, 255, 255, .6); --mas-hero-dot-on: #fff; }
.mas-hero__track, .mas-hero__slide { height: 100%; }
.mas-hero__track { position: relative; }
.mas-hero__slide { position: absolute; inset: 0; opacity: 0; visibility: hidden; transition: opacity .8s ease, visibility 0s linear .8s; will-change: opacity; } /* every slide on its own layer, slide 1 too: the same pixel rounding, so a later slide never counts as a larger, later LCP */
.mas-hero__slide.is-active { opacity: 1; visibility: visible; transition: opacity .8s ease; }
@media (prefers-reduced-motion: reduce) { .mas-hero__slide, .mas-hero__slide.is-active { transition: none; } }
.mas-hero__slide img { display: block; width: 100%; height: 100%; object-fit: contain; } /* other ratios letterbox, never crop banner text */
.mas-hero__dots { position: absolute; left: 0; right: 0; bottom: .75rem; z-index: 2; display: flex; justify-content: center; gap: .25rem; pointer-events: none; }
.mas-hero__dot { pointer-events: auto; display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; padding: 0; border: 0; background: none; cursor: pointer; }
.mas-hero__dot span { display: block; width: 10px; height: 10px; border-radius: 50%; background-color: var(--mas-hero-dot); box-shadow: 0 0 0 1px rgba(11, 31, 68, .5); }
.mas-hero__dot[aria-current="true"] span { background-color: var(--mas-hero-dot-on); transform: scale(1.25); }
.mas-hero__arrow {
	position: absolute; top: 50%; z-index: 2; display: none; align-items: center; justify-content: center; width: 44px; height: 44px; margin-top: -22px;
	padding: 0; border: 0; border-radius: 50%; background-color: var(--mas-hero-ctrl-bg); color: var(--mas-hero-ctrl-ink); font-size: 1.5rem; line-height: 1; cursor: pointer;
}
.mas-hero__arrow:hover { background-color: var(--mas-hero-dot-on); }
.mas-hero__arrow--prev { left: 1rem; }
.mas-hero__arrow--next { right: 1rem; }
@media (min-width: 768px) { .mas-hero__arrow { display: flex; } }
.mas-hero__dot:focus-visible span, .mas-hero__arrow:focus-visible { outline: 3px solid var(--mas-hero-dot-on); outline-offset: 2px; box-shadow: 0 0 0 5px rgba(11, 31, 68, .8); }
/* without JS the controls would do nothing */
html:not(.mas-js) .mas-hero__dots, html:not(.mas-js) .mas-hero__arrow { display: none; }
.mas-carousel .owl-dot { cursor: pointer; }
.mas-hero__pause {
	position: absolute; right: .75rem; bottom: .5rem; z-index: 2; display: inline-flex; align-items: center; justify-content: center;
	width: 32px; height: 32px; border: 0; border-radius: 50%; background: rgba(11, 31, 68, .6); color: var(--mas-white); font-size: .75rem; cursor: pointer;
}
/* Pause buttons need JS; without it they would do nothing */
html:not(.mas-js) .mas-carousel__pause, html:not(.mas-js) .mas-ticker__pause { display: none; }
/* Re-review: the hero frame sits in .container (slider.php); rounded from 576 px, edge to edge on phones. */
.mas-hero { padding-top: 1.5rem; }
@media (min-width: 576px) { .mas-hero__frame { border-radius: var(--mas-radius); } }
@media (max-width: 575.98px) { .mas-hero { padding-top: 0; } .mas-hero__container { padding: 0; } }

/* Admission + verification cards */
.mas-quick { padding: 2rem 0 1rem; }
.mas-quick__col { margin-bottom: 1.5rem; }
.mas-quick__card { border-top: 4px solid var(--mas-blue-600); }
.mas-quick__card--accent { border-top-color: var(--mas-red-600); }
.mas-quick__card .mas-card__body { gap: .75rem; }
.mas-quick__card .mas-card__meta { margin: 0; }
.mas-quick .mas-btn { margin-top: auto; }
.mas-verify { display: flex; flex-direction: column; gap: .625rem; flex: 1; }
.mas-verify .mas-btn { margin-top: .25rem; }
.mas-verify__label { margin: 0; font-size: .875rem; font-weight: 600; color: var(--mas-ink); }
.mas-linklist { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; margin: 0; padding: 0; list-style: none; }
.mas-linklist a {
	display: flex; align-items: center; min-height: 44px; padding: .5rem .75rem; border: 1px solid var(--mas-border);
	border-radius: var(--mas-radius-sm); background: var(--mas-surface); color: var(--mas-navy-800); font-weight: 600; line-height: 1.3;
}
.mas-linklist a:hover { border-color: var(--mas-blue-600); background: var(--mas-blue-050); }

/* Noticeboard + news panels */
.mas-updates__col { margin-bottom: 1.5rem; }
.mas-panel { display: flex; flex-direction: column; height: 100%; padding: 1.5rem; border: 1px solid var(--mas-border); border-radius: var(--mas-radius); background: var(--mas-white); box-shadow: var(--mas-shadow-sm); }
.mas-panel__head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: .5rem; padding-bottom: .75rem; border-bottom: 2px solid var(--mas-navy-800); }
.home-style2 .mas-panel__title { margin: 0; font-family: var(--mas-font); font-size: 1.375rem; font-weight: 700; color: var(--mas-navy-800); }
.mas-panel__more { margin-top: auto; padding-top: 1rem; align-self: flex-start; }
.mas-list__item { flex-direction: column; gap: .375rem; }
.mas-list__link { color: var(--mas-ink); font-weight: 600; line-height: 1.45; }
.mas-list__link:hover { color: var(--mas-blue-600); text-decoration: underline !important; }
.mas-news { margin: 0; padding: 0; list-style: none; }
.mas-news__item { display: flex; align-items: flex-start; gap: .875rem; padding: .75rem 0; border-bottom: 1px solid var(--mas-border); }
.mas-news__date {
	display: flex; flex: none; flex-direction: column; align-items: center; justify-content: center; width: 52px; height: 52px;
	border-radius: var(--mas-radius-sm); background: var(--mas-blue-050); color: var(--mas-navy-800); font-size: .75rem; font-weight: 600; line-height: 1.1; text-transform: uppercase;
}
.mas-news__date span { font-size: 1.25rem; font-weight: 700; }
.mas-news__link { color: var(--mas-ink); font-size: .9375rem; line-height: 1.45; }
.mas-news__link:hover { color: var(--mas-blue-600); text-decoration: underline !important; }

/* Quick-link tiles */
.mas-tiles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin: 0; padding: 0; list-style: none; }
.mas-tile {
	display: flex; align-items: center; gap: .875rem; height: 100%; min-height: 72px; padding: .875rem 1rem;
	border: 1px solid var(--mas-border); border-radius: var(--mas-radius); background: var(--mas-white);
	color: var(--mas-navy-800) !important; font-weight: 600; line-height: 1.3; box-shadow: var(--mas-shadow-sm);
	transition: box-shadow .18s var(--mas-ease), transform .18s var(--mas-ease), border-color .18s var(--mas-ease);
}
.mas-tile:hover { transform: translateY(-2px); border-color: var(--mas-blue-600); box-shadow: var(--mas-shadow); }
.mas-tile img { flex: none; width: 48px; height: 48px; object-fit: contain; }
/* Phase 6: one column on the narrowest phones / 400 % zoom, so tile labels are not cut off (WCAG 1.4.10) */
@media (max-width: 359.98px) { .mas-tiles { grid-template-columns: 1fr; } }
@media (min-width: 768px) { .mas-tiles { grid-template-columns: repeat(4, 1fr); } }

/* Principal + why-us */
.mas-about__col { margin-bottom: 2rem; }
.mas-principal { margin: 0; }
/* Reset the theme blockquote look (italic, white box, shadow, blue bar) for our quotes */
.mas-principal__quote, .mas-quote__text { clear: none; background: none; box-shadow: none; color: var(--mas-text); font-style: normal; }
.mas-principal__quote::before { content: none; }
.mas-principal__quote { margin: .5rem 0 0; padding: 0; border: 0; }
.mas-principal__quote p { margin: 0 0 1rem; font-size: 1rem; line-height: 1.7; color: var(--mas-text); }
.mas-principal__person { display: flex; align-items: center; gap: 1rem; margin: auto 0 0; padding-top: 1rem; border-top: 1px solid var(--mas-border); font-size: .875rem; color: var(--mas-muted); line-height: 1.4; }
.mas-principal__person img { flex: none; width: 72px; height: 72px; border-radius: 50%; object-fit: cover; }
.mas-principal__person strong { display: block; font-size: 1rem; color: var(--mas-navy-800); }
.mas-features { display: grid; grid-template-columns: 1fr; gap: 1rem; margin: 1.5rem 0 0; padding: 0; list-style: none; }
.mas-feature { padding: 1.25rem 1.25rem 1.25rem 3.5rem; position: relative; border: 1px solid var(--mas-border); border-radius: var(--mas-radius); background: var(--mas-white); }
.mas-feature::before {
	content: "\f00c"; content: "\f00c" / ""; /* decorative: empty alt text where supported */
	position: absolute; left: 1.25rem; top: 1.25rem; width: 1.5rem; height: 1.5rem; border-radius: 50%;
	background: var(--mas-green-700); color: var(--mas-white); font: normal normal normal .75rem/1.5rem FontAwesome; text-align: center;
}
.home-style2 .mas-feature__title { margin: 0 0 .375rem; font-family: var(--mas-font); font-size: 1.0625rem; font-weight: 700; line-height: 1.35; color: var(--mas-navy-800); }
.mas-feature p { margin: 0; font-size: .9375rem; line-height: 1.6; color: var(--mas-text); }
@media (min-width: 768px) { .mas-features { grid-template-columns: 1fr 1fr; } }

/* Stats band */
.mas-stats { display: grid; grid-template-columns: repeat(2, 1fr); gap: 2rem 1rem; margin: 0; padding: 0; list-style: none; }
@media (min-width: 992px) { .mas-stats { grid-template-columns: repeat(4, 1fr); } }
.mas-stats-section { padding-top: 3rem; padding-bottom: 3rem; }

/* Testimonials */
.mas-testimonials__head { position: relative; margin-bottom: 1.5rem; padding: 0 3rem; text-align: center; }
.mas-testimonials__head .mas-carousel__pause {
	position: absolute; right: 0; bottom: 1rem; display: inline-flex; align-items: center; justify-content: center;
	width: 36px; height: 36px; border: 1px solid var(--mas-border); border-radius: 50%; background: var(--mas-white); color: var(--mas-navy-800); cursor: pointer;
}
/* "Principal's Message" is an <h2> styled as an eyebrow (beats the theme `.home-style2 h2` size/colour) */
.home-style2 h2.mas-eyebrow { margin: 0 0 .5rem; font-family: var(--mas-font); font-size: .8125rem; line-height: 1.4; color: var(--mas-red-600); }
.mas-quote { justify-content: space-between; margin: 0; padding: 1.5rem; }
.mas-quote__text { position: relative; margin: 0 0 1.25rem; padding: 0 0 0 2.25rem; border: 0; font-size: 1rem; line-height: 1.7; color: var(--mas-text); }
.mas-quote__text::before { content: "\201C"; content: "\201C" / ""; position: absolute; left: 0; top: -.75rem; width: auto; height: auto; background: none; font: 700 3.5rem/1 Georgia, serif; color: var(--mas-gold-400); }
.mas-quote__text p { margin: 0; }
.mas-quote__person { display: flex; align-items: center; gap: .875rem; font-size: .875rem; line-height: 1.4; color: var(--mas-muted); }
.mas-quote__person img { flex: none; width: 56px !important; height: 56px; border-radius: 50%; object-fit: cover; }
.mas-quote__person picture { flex: none; display: block; width: 56px; height: 56px; } /* 2026-11-06: photos now come in a <picture> */
.mas-quote__person strong { display: block; font-size: 1rem; color: var(--mas-navy-800); }
/* Before Owl starts (lazily, near the viewport — or never, without JS): show the first cards in the same layout,
   so nothing jumps when it does start */
.mas-testimonials .owl-carousel:not(.owl-loaded) { display: flex; gap: 30px; overflow: hidden; margin-bottom: 40px; } /* 40px = the dots row Owl adds */
.mas-testimonials .owl-carousel:not(.owl-loaded) > * { flex: 0 0 100%; }
@media (min-width: 768px) { .mas-testimonials .owl-carousel:not(.owl-loaded) > * { flex-basis: calc(50% - 15px); } }
.mas-testimonials .owl-stage { display: flex; }
.mas-testimonials .owl-item { display: flex; }
.mas-testimonials .owl-item > .mas-quote { width: 100%; }
.mas-testimonials .owl-dots { display: flex; justify-content: center; gap: .25rem; margin-top: 1rem; }
.mas-testimonials .owl-dots .owl-dot { display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; padding: 0; border: 0; background: none; }
.mas-testimonials .owl-dots .owl-dot span { display: block; width: 10px; height: 10px; border-radius: 50%; background: #c4cddb; }
.mas-testimonials .owl-dots .owl-dot.active span { background: var(--mas-blue-600); }

/* ---------------------------------------------------------------------------
 * 5d. Inner pages (Phase 4) — scoped to .mas-page (theme.php adds it when a page has a breadcrumb)
 * ------------------------------------------------------------------------- */
.mas-pagehead { padding: 1.5rem 0; border-bottom: 1px solid var(--mas-border); background: var(--mas-surface); }
.mas-pagehead--image { background: linear-gradient(rgba(11, 31, 68, .88), rgba(11, 31, 68, .88)), var(--mas-pagehead-img) center / cover; }
.home-style2 .mas-pagehead__title {
	margin: .5rem 0 0; font-family: var(--mas-font); font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2.25rem); font-weight: 700;
	line-height: 1.2; letter-spacing: -.01em; color: var(--mas-navy-800);
}
.mas-breadcrumb ol { display: flex; flex-wrap: wrap; margin: 0; padding: 0; list-style: none; font-size: .875rem; line-height: 1.5; color: var(--mas-muted); }
.mas-breadcrumb li + li::before { content: "/"; content: "/" / ""; margin: 0 .5rem; color: #8c97a8; }
.mas-breadcrumb li:last-child { color: var(--mas-text); font-weight: 600; }
.mas-breadcrumb a { color: var(--mas-blue-600); text-decoration: underline; text-underline-offset: 2px; }
.home-style2 .mas-pagehead--image .mas-pagehead__title,
.mas-pagehead--image .mas-breadcrumb li, .mas-pagehead--image .mas-breadcrumb a { color: var(--mas-white); }
/* Templates keep the theme's pt-100/pt-50 wrappers; one consistent gap under the new header. */
.mas-pagehead + * { padding-top: 2.5rem !important; }

/* CMS HTML (pages.content, posts.details, course details): readable typography; wide tables scroll sideways. */
.mas-prose { overflow-x: auto; font-size: 1rem; line-height: 1.75; color: var(--mas-text); }
/* overflow-x clips focus rings at the edges: give them room without moving the text */
.mas-prose { padding: 6px; margin: -6px; }
.mas-prose > :first-child { margin-top: 0; }
/* 2026-11-06: text wrapped in a <div> by the editor (BMA Cadet Placement): no extra space at the top or bottom */
.home-style2 .mas-prose > div:first-child > :first-child { margin-top: 0; }
.mas-prose > :last-child, .mas-prose > div:last-child > :last-child { margin-bottom: 0; }
.home-style2 .mas-prose h1, .home-style2 .mas-prose h2, .home-style2 .mas-prose h3,
.home-style2 .mas-prose h4, .home-style2 .mas-prose h5, .home-style2 .mas-prose h6 {
	margin: 1.75rem 0 .75rem; font-family: var(--mas-font); font-weight: 700; line-height: 1.3; color: var(--mas-navy-800);
}
.home-style2 .mas-prose h1, .home-style2 .mas-prose h2 { font-size: 1.625rem; }
.home-style2 .mas-prose h3 { font-size: 1.375rem; }
.home-style2 .mas-prose h4 { font-size: 1.1875rem; }
.home-style2 .mas-prose h5, .home-style2 .mas-prose h6 { font-size: 1.0625rem; }
.mas-prose p { margin: 0 0 1rem; line-height: 1.75; }
.mas-prose ul, .mas-prose ol { margin: 0 0 1rem; padding-left: 1.5rem; }
.mas-prose ul { list-style: disc; }
.mas-prose ol { list-style: decimal; }
.mas-prose li { margin-bottom: .375rem; }
.mas-prose a { text-decoration: underline; text-underline-offset: 2px; }
.mas-prose img { max-width: 100%; height: auto; border-radius: var(--mas-radius-sm); }
.mas-prose table { width: 100%; margin: 0 0 1.5rem; border-collapse: collapse; font-size: .9375rem; }
.mas-prose th, .mas-prose td { padding: .625rem .75rem; border: 1px solid var(--mas-border); vertical-align: top; }
.mas-prose th, .mas-prose thead td { background: var(--mas-blue-050); color: var(--mas-navy-800); font-weight: 700; }
.mas-prose blockquote { margin: 0 0 1rem; padding: .75rem 1.25rem; border-left: 4px solid var(--mas-gold-400); background: var(--mas-surface); box-shadow: none; font-style: normal; color: var(--mas-text); }
.mas-prose blockquote::before { content: none; }

/* Tables in the page templates (Bootstrap .table) */
.mas-page .table { font-size: .9375rem; color: var(--mas-text); }
.mas-page .table th, .mas-page .table td { padding: .625rem .75rem; border-color: var(--mas-border); vertical-align: middle; }
.mas-page .table thead th, .mas-page .table .thead-dark th { border-color: var(--mas-navy-700); background: var(--mas-navy-800); color: var(--mas-white); font-weight: 600; }
.mas-page .table-striped tbody tr:nth-of-type(odd) { background: var(--mas-surface); }
.mas-page .mas-verify-table th { width: 38%; background: var(--mas-blue-050); color: var(--mas-navy-800); font-weight: 600; }
.mas-table-wrap { overflow-x: auto; margin-bottom: 1.5rem; border: 1px solid var(--mas-border); border-radius: var(--mas-radius-sm); }
.mas-table-wrap .table { margin-bottom: 0; border: 0; }
.mas-table-wrap .table th:first-child, .mas-table-wrap .table td:first-child { border-left: 0; }
.mas-table-wrap .table th:last-child, .mas-table-wrap .table td:last-child { border-right: 0; }

/* Contact page (theme markup): long e-mail addresses wrap instead of being cut off at 320 px */
.mas-page .address-item .address-text { min-width: 0; overflow-wrap: anywhere; }

/* Group headings that are h2 for structure but keep the old h4 size (student database, job placement) */
.home-style2 h2.mas-h4 { font-size: 24px; line-height: 1.25; }
/* Theme buttons with too little contrast: contact "Submit" (white on #ff5421 = 3.2:1) and Bootstrap 4 .btn-primary
   (white on #007bff = 3.97:1, admit-card form) → MAS colours (≥ 7:1). */
.mas-page .contact-page-section .rs-quick-contact .form-group .btn-send { background: var(--mas-red-600); }
.mas-page .contact-page-section .rs-quick-contact .form-group .btn-send:hover,
.mas-page .contact-page-section .rs-quick-contact .form-group .btn-send:focus { background: #a50d26; }
.mas-page .btn-primary { border-color: var(--mas-blue-600); background-color: var(--mas-blue-600); }
.mas-page .btn-primary:hover, .mas-page .btn-primary:focus { border-color: var(--mas-navy-800); background-color: var(--mas-navy-800); }

/* Phase 6: Bootstrap 4 text utilities that fail AA on white (success 3.1:1, primary 4.0:1, info 3.0:1) → MAS colours.
   Bootstrap sets them with !important, so these must too. */
html .text-success { color: var(--mas-green-700) !important; }
html .text-primary { color: var(--mas-blue-600) !important; }
html .text-info { color: #0b6e83 !important; }
/* CMS content pasted from Word: table headings use inline light grey (#F2F2F2) on blue (#4472C4) = 4.2:1; white is 4.6:1 */
.mas-prose [style*="color:#F2F2F2" i], .mas-prose [style*="color: #F2F2F2" i] { color: #fff !important; }

/* Phase 6: #scrollUp is now a real <button> (keyboard reachable); reset the browser button look */
#scrollUp { padding: 0; border: 0; background: none; }

/* Phase 6: error summary and per-field messages written by assets/js/mas-forms.js */
.mas-error-summary { margin: 0 0 1.25rem; padding: 1rem 1.25rem; border: 2px solid #c8102e; border-left-width: 6px; border-radius: 8px; background: #fff5f6; color: #1a2233; }
.mas-error-summary:focus { outline: 3px solid #1f4fa3; outline-offset: 2px; }
.mas-error-summary__title { margin: 0 0 .5rem; font-weight: 700; color: #a50d26; }
.mas-error-summary ul { margin: 0; padding-left: 1.25rem; list-style: disc; }
.mas-error-summary a { color: #a50d26; text-decoration: underline; }
.mas-field-error:not(:empty) { margin-top: .25rem; font-size: .875rem; font-weight: 600; color: #b00020; }

/* Sidebar (courses list) */
.mas-sidebar { padding: 1.25rem 1.5rem; border: 1px solid var(--mas-border); border-radius: var(--mas-radius); background: var(--mas-white); box-shadow: var(--mas-shadow-sm); }
.home-style2 .mas-sidebar__title { margin: 0 0 .75rem; padding-bottom: .75rem; border-bottom: 2px solid var(--mas-navy-800); font-family: var(--mas-font); font-size: 1.125rem; font-weight: 700; color: var(--mas-navy-800); }
.mas-sidebar ul { margin: 0; padding: 0; list-style: none; }
.mas-sidebar li { border-bottom: 1px solid var(--mas-border); }
.mas-sidebar li:last-child { border-bottom: 0; }
.mas-sidebar a { display: flex; align-items: center; justify-content: space-between; gap: .5rem; padding: .625rem 0; color: var(--mas-ink); font-weight: 500; }
.mas-sidebar a::after { content: "\203A"; content: "\203A" / ""; color: var(--mas-muted); font-size: 1.25rem; line-height: 1; }
.mas-sidebar a:hover, .mas-sidebar a[aria-current="page"] { color: var(--mas-blue-600); }
@media (max-width: 991.98px) { .mas-aside { margin-top: 2rem; } }

/* FAQ accordion (theme markup; the theme's open header was white on #21a7d0 = 2.8:1) */
.mas-page .rs-faq-part .content-part .accordion .card { margin-bottom: .75rem; border: 1px solid var(--mas-border); border-radius: var(--mas-radius-sm); overflow: hidden; }
.mas-page .rs-faq-part .content-part .accordion .card .card-header { background: var(--mas-white); }
.mas-page .rs-faq-part .content-part .accordion .card .card-header .card-link {
	position: relative; padding: 1rem 3rem 1rem 1.25rem; background: var(--mas-navy-800); color: var(--mas-white); font-size: 1.0625rem; line-height: 1.45; text-transform: none;
}
.mas-page .rs-faq-part .content-part .accordion .card .card-header .card-link.collapsed { background: var(--mas-white); color: var(--mas-navy-800); }
.mas-page .rs-faq-part .content-part .accordion .card .card-header .card-link::after {
	content: ""; position: absolute; right: 1.25rem; top: 50%; width: .5rem; height: .5rem; margin-top: -.375rem;
	border-right: 2px solid; border-bottom: 2px solid; transform: rotate(-135deg);
}
.mas-page .rs-faq-part .content-part .accordion .card .card-header .card-link.collapsed::after { transform: rotate(45deg); }
.mas-page .rs-faq-part .content-part .accordion .card .card-body { border: 0; border-top: 1px solid var(--mas-border); padding: 1rem 1.25rem !important; font-size: 1rem; line-height: 1.7; color: var(--mas-text); }

/* Listing cards: members, gallery, notices/news pages */
.mas-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 1.5rem; margin: 0 0 2rem; padding: 0; list-style: none; }
.mas-grid--wide { grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); }
.mas-member { text-align: center; }
.mas-member__photo { aspect-ratio: 4 / 5; background: var(--mas-blue-050); overflow: hidden; }
.mas-member__photo img { width: 100%; height: 100%; object-fit: cover; object-position: top; }
.home-style2 .mas-member__name { margin: 0; font-family: var(--mas-font); font-size: 1.0625rem; font-weight: 700; line-height: 1.35; color: var(--mas-navy-800); }
.mas-member__name a { color: inherit; }
.mas-member__role { display: block; font-size: .875rem; font-weight: 600; color: var(--mas-red-600); }
.mas-member__text { margin: 0; font-size: .875rem; line-height: 1.6; color: var(--mas-muted); }
.home-style2 .mas-group-title { margin: 0 0 1.25rem; font-family: var(--mas-font); font-size: 1.5rem; font-weight: 700; color: var(--mas-navy-800); text-align: center; }
.home-style2 .mas-group-title--start { text-align: left; }
.mas-group-title a { color: inherit; }
.mas-group-title a:hover { color: var(--mas-blue-600); }
.mas-empty { margin: 0 0 2rem; padding: 2rem 1rem; border: 1px dashed var(--mas-border); border-radius: var(--mas-radius); text-align: center; color: var(--mas-muted); }
.mas-postlist { padding: .5rem 1.5rem; border: 1px solid var(--mas-border); border-radius: var(--mas-radius); background: var(--mas-white); box-shadow: var(--mas-shadow-sm); }
.mas-postlist .mas-list__item:last-child { border-bottom: 0; }

/* ---------------------------------------------------------------------------
 * 6. Motion preferences
 * ------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: .01ms !important; animation-iteration-count: 1 !important;
		transition-duration: .01ms !important; scroll-behavior: auto !important;
	}
	/* The rule above would jump the ticker to its end (text off-screen); show the notice as static text instead. */
	.mas-ticker__track { animation: none !important; padding-left: 0; white-space: normal; }
	.mas-ticker__pause { display: none; }
}

/* ---------------------------------------------------------------------------
 * 5f. Responsive QA fixes (Phase 7)
 * ------------------------------------------------------------------------- */
/* CMS images pasted with inline `style="width: 1024px; height: 768px"`: max-width shrinks the width but the inline
   height stayed, squashing the picture on smaller screens. Keep the aspect ratio. */
.mas-prose img[style*="width"], .mas-prose img[width] { height: auto !important; }

/* Small round buttons keep their look; an invisible ring around them makes the tap area 44 × 44 px */
.mas-hero__pause::before, .mas-testimonials__head .mas-carousel__pause::before, .mas-footer__social a::before {
	content: ""; position: absolute; inset: -6px; border-radius: 50%;
}
.mas-footer__social a { position: relative; width: 44px; height: 44px; } /* the pause buttons are already positioned */

/* Landscape phones: the sticky brand row was 70–90 px tall; keep it under 64 px so more of the page shows */
@media (max-width: 991.98px) and (max-height: 500px) and (orientation: landscape) {
	html { scroll-padding-top: 64px; }
	.mas-brandbar__inner { padding-top: .375rem; padding-bottom: .375rem; }
	.mas-brand img { height: 44px; }
}

/* Phones and tablets: 44 px touch targets for links that sit in lists or stand alone (WCAG 2.5.5 / plan target).
   Links inside running text keep their size (they are exempt). */
@media (max-width: 991.98px) {
	.mas-topbar a { min-height: 44px; min-width: 44px; justify-content: center; }
	.mas-brand { display: flex; align-items: center; min-height: 44px; }
	.mas-table-wrap td > a:only-child { display: inline-flex; align-items: center; min-height: 44px; }
	.mas-breadcrumb a { display: inline-flex; align-items: center; min-height: 44px; min-width: 44px; }
	.mas-breadcrumb ol { align-items: center; }
	.mas-list__link { display: flex; align-items: center; min-height: 44px; }
	.mas-news__link { display: inline-flex; align-items: center; min-height: 44px; }
	.site-map ol a { display: inline-flex; align-items: center; min-height: 44px; }
	.mas-panel__more { min-height: 44px; }
	.mas-group-title a { display: inline-flex; align-items: center; min-height: 44px; }
	.mas-footer__links li { margin-bottom: 0; }
	.mas-footer__links a, .mas-footer__legal a { display: inline-flex; align-items: center; min-height: 44px; min-width: 44px; }
	.mas-footer__contact li { margin-bottom: 0; }
	.mas-footer__contact a { display: inline-flex; align-items: center; min-height: 44px; }
	/* link rows are 44 px tall: centre the icon on them; the address row (no link) keeps the top-aligned icon */
	.mas-footer__contact li:has(> a) { align-items: center; }
	.mas-footer__contact li:has(> a) .fa { margin-top: 0; }
	.mas-footer__contact li:not(:has(> a)) { padding: .625rem 0; }
	.mas-footer__legal { gap: 0 1.25rem; }
	/* Student database batch buttons, "Back previous page" */
	.mas-page .card-body.text-center > a, .mas-page .text-center > a[href] { display: inline-flex; align-items: center; min-height: 44px; }
	/* Contact page phone/e-mail links sit inside address text: vertical padding on an inline link enlarges the tap area
	   (to ≈ 29 px, above the 24 px AA minimum) without changing the line layout */
	.address-text .des a { padding: .25rem 0; }
}
/* Phones: the three footer link lists side by side in two columns, so 44 px rows don't make the footer much longer */
@media (max-width: 575.98px) {
	.mas-footer__links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 1rem; }
	.mas-footer__links a { line-height: 1.3; }
}

/* ---------------------------------------------------------------------------
 * 7. Re-review redesign (2026-11-04) — docs/website-redesign-rereview.md
 * Grey page canvas with flat white blocks (8 px corners, no shadows), centred brand row and nav, thin red ticker,
 * a mixed 12-column homepage grid, photo cards, spotlight, mosaic, facts block, phone action bar.
 * ------------------------------------------------------------------------- */
.main-content { background: var(--mas-canvas); }
/* Colour-only hover: no lifts or shadows */
.mas-btn:hover, .mas-tile:hover, .mas-card--hover:hover { transform: none; box-shadow: none; }

/* Header */
.mas-header { box-shadow: none; border-bottom: 1px solid var(--mas-border); }
.mas-topbar { background: var(--mas-tint); }
.mas-topbar a { color: var(--mas-navy-800); }
.mas-topbar a:hover { color: var(--mas-red-600); }
.mas-topbar .fa { color: var(--mas-blue-600); }
.mas-topbar :focus-visible { outline-color: var(--mas-blue-600) !important; }
.mas-nav-toggle { border-width: 1px; }
@media (min-width: 992px) {
	.mas-brandbar__inner { justify-content: center; padding-top: 1.125rem; padding-bottom: 1.125rem; }
	.mas-brand img { height: 84px; }
	.mas-menu { justify-content: center; }
	/* Active item: a white "tab" in the nav bar */
	.mas-menu__item.is-active > .mas-menu__link, .mas-menu__item.is-active > .mas-menu__toggle {
		box-shadow: none; background: var(--mas-white); color: var(--mas-navy-800) !important;
	}
	.mas-submenu { border: 1px solid var(--mas-border); border-top: 0; box-shadow: var(--mas-shadow); }
}

/* Notice ticker: thin red strip; the text is written twice and moves by half, so it is visible from the start */
.mas-ticker { background: var(--mas-red-600); border-bottom: 0; }
.mas-ticker__inner { min-height: 40px; }
.mas-ticker__label { padding: .125rem .625rem; border: 1px solid rgba(255, 255, 255, .7); background: transparent; }
.mas-ticker__track { padding-left: 0; color: var(--mas-white); font-size: .9375rem; font-weight: 600; animation-name: mas-ticker-loop; }
.mas-ticker__track > span { padding-right: 4rem; }
.mas-ticker__pause { width: 32px; height: 32px; border-color: rgba(255, 255, 255, .55); background: rgba(255, 255, 255, .12); color: var(--mas-white); }
.mas-ticker :focus-visible { outline-color: var(--mas-white) !important; }
@keyframes mas-ticker-loop { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .mas-ticker__copy { display: none !important; } }

/* Homepage rhythm */
.mas-home { padding-bottom: clamp(2.5rem, 2rem + 2vw, 4rem); }
.mas-home__row { padding-top: 1.5rem; }
.mas-home__section { padding-top: clamp(2.5rem, 2rem + 2vw, 4rem); }
.mas-home__section--tight { padding-top: clamp(2rem, 1.5rem + 1.5vw, 3rem); }

/* Blocks: flat white boxes on the grey canvas */
.mas-block {
	position: relative; display: flex; flex-direction: column; gap: .75rem; min-width: 0;
	padding: clamp(1.25rem, 1rem + 1vw, 1.75rem); border-radius: var(--mas-radius); background: var(--mas-white); color: var(--mas-text);
}
.mas-block--navy { background: var(--mas-navy-800); color: rgba(255, 255, 255, .85); }
.mas-block--tint { background: var(--mas-tint); }
.mas-block .mas-eyebrow { margin: 0; }
.mas-block--navy .mas-eyebrow { color: var(--mas-gold-400); }
.mas-block--navy :focus-visible { outline-color: var(--mas-gold-400) !important; box-shadow: none; }
.mas-block__head { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; padding-bottom: .75rem; border-bottom: 1px solid var(--mas-border); }
.mas-block--tint .mas-block__head { border-bottom-color: #cfdbec; }
.home-style2 .mas-block__title { margin: 0; font-family: var(--mas-font); font-size: 1.375rem; font-weight: 700; line-height: 1.25; color: var(--mas-navy-800); }
.home-style2 .mas-block--navy .mas-block__title { color: var(--mas-white); }
.mas-block__text { margin: 0; line-height: 1.6; }
/* A whole box is clickable through its title link (one link per item for screen readers) */
.mas-stretched::after { content: ""; position: absolute; inset: 0; z-index: 1; }
/* <picture> from responsiveImage() fills its media box */
.mas-story__media picture, .mas-newslist__thumb picture, .mas-photocard__media picture, .mas-mosaic__media picture { display: block; width: 100%; height: 100%; }
/* media boxes keep their aspect ratio whatever the photo size (flex items would otherwise grow to the image) */
.mas-story__media, .mas-newslist__thumb, .mas-photocard__media, .mas-mosaic__media { flex: none; min-height: 0; overflow: hidden; }
.mas-story__media img, .mas-newslist__thumb img, .mas-photocard__media img, .mas-mosaic__media img, .mas-spotlight__photo img {
	display: block; width: 100%; height: 100%; object-fit: cover;
}

/* Grid: row 1 = admission | latest story | verification; row 2 = noticeboard (2/3) | news (1/3) */
.mas-bento { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
@media (min-width: 768px) {
	.mas-bento { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.mas-bento .mas-verifyblock { grid-column: 1 / -1; }
	.mas-bento:not(:has(.mas-story)) .mas-verifyblock { grid-column: auto; }
	.mas-bento--updates { grid-template-columns: minmax(0, 1fr); }
}
@media (min-width: 992px) {
	.mas-bento { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.mas-bento .mas-verifyblock { grid-column: auto; }
	.mas-bento--updates { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
}

/* Admission */
.mas-admit .mas-btn { align-self: flex-start; margin-top: .25rem; }
.mas-admit__links { display: grid; grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr)); gap: 0 1rem; margin: auto 0 0; padding: .75rem 0 0; border-top: 1px solid var(--mas-border); list-style: none; }
.mas-admit__links a { display: inline-flex; min-height: 44px; font-size: .9375rem; }

/* Latest story */
.mas-story { padding: 0; overflow: hidden; gap: 0; }
.mas-story__media { aspect-ratio: 3 / 2; background: var(--mas-tint); }
.mas-story__body { display: flex; flex-direction: column; gap: .5rem; padding: 1.25rem 1.5rem 1.5rem; }
.home-style2 .mas-story__title { margin: 0; font-family: var(--mas-font); font-size: 1.1875rem; font-weight: 700; line-height: 1.4; color: var(--mas-ink); }
.mas-story__title a { color: inherit; }
.mas-story:hover .mas-story__title a, .mas-story__title a:focus-visible { text-decoration: underline; }
.mas-story__date { font-size: .875rem; color: var(--mas-muted); }

/* Certificate verification (navy) */
.mas-verifyblock .mas-verify { gap: .5rem; flex: none; }
.mas-verifyblock .mas-verify__label { color: rgba(255, 255, 255, .9); }
.mas-verify__row { display: flex; gap: .5rem; }
.mas-verify__row .form-control { flex: 1; min-width: 0; height: 48px; border: 0; }
.mas-verify__row .mas-btn { flex: none; margin: 0; min-height: 48px; }
.mas-verifyblock .invalid-feedback { color: #ffc2cb; font-weight: 600; }
/* the input sits in a row now, so Bootstrap's "input ~ .invalid-feedback" rule no longer reaches the message */
.was-validated .mas-verify__row:has(.form-control:invalid) ~ .invalid-feedback { display: block; }
.home-style2 .mas-verifyblock__sub { margin: .75rem 0 0; font-family: var(--mas-font); font-size: .8125rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: rgba(255, 255, 255, .75); }
.mas-verifyblock__links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; margin: 0; padding: 0; list-style: none; }
.mas-verifyblock__links a {
	display: flex; align-items: center; min-height: 44px; padding: .5rem .75rem; border: 1px solid rgba(255, 255, 255, .28);
	border-radius: var(--mas-radius-sm); color: var(--mas-white); font-size: .9375rem; font-weight: 600; line-height: 1.3;
}
.mas-verifyblock__links a:hover { border-color: rgba(255, 255, 255, .6); background: rgba(255, 255, 255, .08); color: var(--mas-white); }

/* News list with thumbnails */
.mas-newslist__list { display: grid; grid-template-columns: minmax(0, 1fr); column-gap: 1.5rem; margin: 0; padding: 0; list-style: none; }
.mas-newslist__item { position: relative; display: flex; align-items: flex-start; gap: 1.25rem; padding: 1rem 0; border-bottom: 1px solid var(--mas-border); }
.mas-newslist__item:last-child { border-bottom: 0; padding-bottom: 0; }
@media (max-width: 575.98px) { .mas-newslist__thumb { width: 96px; } }
.mas-newslist__thumb { flex: none; width: 112px; aspect-ratio: 3 / 2; overflow: hidden; border-radius: var(--mas-radius-sm); background: var(--mas-tint); }
.mas-newslist__thumb--empty { display: flex; align-items: center; justify-content: center; font-size: 1.5rem; color: #8a9bb8; }
.mas-newslist__body { display: flex; flex-direction: column; gap: .25rem; min-width: 0; }
.mas-newslist__date { font-size: .8125rem; font-weight: 600; color: var(--mas-muted); }
.mas-newslist__link { color: var(--mas-ink); font-size: .9375rem; font-weight: 600; line-height: 1.45; }
.mas-newslist__item:hover .mas-newslist__link, .mas-newslist__link:focus-visible { color: var(--mas-blue-600); text-decoration: underline; }

/* Noticeboard (tinted) */
.mas-noticeboard__count {
	display: inline-flex; align-items: center; justify-content: center; min-width: 28px; height: 28px; padding: 0 .5rem;
	border-radius: var(--mas-radius-pill); background: var(--mas-navy-800); color: var(--mas-white); font-size: .8125rem; font-weight: 700;
}
.mas-noticeboard__list { display: grid; grid-template-columns: minmax(0, 1fr); gap: .5rem; margin: 0; padding: 0; list-style: none; }
@media (min-width: 768px) { .mas-noticeboard__list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.mas-noticeboard__item { position: relative; display: flex; flex-direction: column; gap: .125rem; padding: .75rem 1rem; border-radius: var(--mas-radius-sm); background: var(--mas-white); }
.mas-noticeboard__date { font-size: .8125rem; font-weight: 600; color: var(--mas-red-600); }
.mas-noticeboard__link { color: var(--mas-ink); font-size: .9375rem; font-weight: 600; line-height: 1.45; }
.mas-noticeboard__item:hover .mas-noticeboard__link, .mas-noticeboard__link:focus-visible { color: var(--mas-blue-600); text-decoration: underline; }
.mas-noticeboard__more { margin-top: auto; padding-top: .25rem; align-self: flex-start; min-height: 44px; }

/* Quick links bar (home_icons) */
.mas-quickbar { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .25rem; margin: 0; padding: .5rem; border-radius: var(--mas-radius); background: var(--mas-white); list-style: none; }
@media (min-width: 576px) { .mas-quickbar { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (min-width: 1200px) { .mas-quickbar { grid-template-columns: repeat(8, minmax(0, 1fr)); } }
.mas-quickbar__link {
	display: flex; align-items: center; gap: .75rem; height: 100%; min-height: 60px; padding: .625rem .75rem;
	border-radius: var(--mas-radius-sm); color: var(--mas-navy-800) !important; font-size: .9375rem; font-weight: 600; line-height: 1.3;
}
.mas-quickbar__link:hover { background: var(--mas-tint); }
.mas-quickbar__link img { flex: none; width: 36px; height: 36px; object-fit: contain; }
@media (min-width: 1200px) { .mas-quickbar__link { flex-direction: column; justify-content: center; gap: .5rem; text-align: center; padding: .875rem .5rem; } }
@media (max-width: 359.98px) { .mas-quickbar { grid-template-columns: minmax(0, 1fr); } }

/* Section heading: title left, optional link/control right */
.mas-sechead { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: .5rem 1rem; margin-bottom: 1.5rem; }
.mas-sechead .mas-eyebrow { margin-bottom: .25rem; }
.home-style2 .mas-sechead__title { margin: 0; font-family: var(--mas-font); font-size: clamp(1.5rem, 1.25rem + .9vw, 2rem); font-weight: 700; line-height: 1.2; color: var(--mas-navy-800); }
.mas-sechead .mas-link-arrow { min-height: 44px; }

/* Photo cards */
.mas-cards3 { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.5rem; margin: 0; padding: 0; list-style: none; }
@media (min-width: 768px) { .mas-cards3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.mas-photocard { position: relative; display: flex; flex-direction: column; overflow: hidden; border-radius: var(--mas-radius); background: var(--mas-white); }
.mas-photocard__media { aspect-ratio: 16 / 10; background: var(--mas-tint); }
.mas-photocard__body { display: flex; flex-direction: column; gap: .5rem; flex: 1; padding: 1.25rem 1.5rem 1.5rem; }
.home-style2 .mas-photocard__title { margin: 0; font-family: var(--mas-font); font-size: 1.25rem; font-weight: 700; line-height: 1.3; color: var(--mas-navy-800); }
.mas-photocard__title a { color: inherit; }
.mas-photocard p { margin: 0; font-size: .9375rem; line-height: 1.6; color: var(--mas-text); }
.mas-photocard .mas-link-arrow { margin-top: auto; padding-top: .5rem; }
.mas-photocard:hover .mas-photocard__title a, .mas-photocard__title a:focus-visible { text-decoration: underline; }
.mas-photocard:hover .mas-link-arrow::after { transform: translateX(3px); }

/* Principal spotlight */
.mas-spotlight { display: grid; grid-template-columns: minmax(0, 1fr); overflow: hidden; border-radius: var(--mas-radius); background: var(--mas-tint); }
.mas-spotlight__photo { width: 168px; aspect-ratio: 5 / 6; margin: 1.5rem 1.5rem 0; overflow: hidden; border-radius: var(--mas-radius-sm); background: var(--mas-navy-800); }
.mas-spotlight__photo img { object-position: top; }
.mas-spotlight__body { display: flex; flex-direction: column; gap: 1rem; padding: 1.5rem; }
.home-style2 .mas-spotlight__title { margin: 0; font-family: var(--mas-font); font-size: clamp(1.375rem, 1.2rem + .6vw, 1.75rem); font-weight: 700; line-height: 1.2; color: var(--mas-navy-800); }
.mas-spotlight__person { margin: 0; font-size: .9375rem; line-height: 1.4; color: var(--mas-muted); }
.mas-spotlight__person strong { display: block; font-size: 1.0625rem; color: var(--mas-navy-800); }
/* reset the theme blockquote look (italic, white box, shadow, quote mark) */
.mas-spotlight__quote { clear: none; margin: 0; padding: 0; border: 0; background: none; box-shadow: none; font-style: normal; color: var(--mas-text); }
.mas-spotlight__quote::before { content: none; }
.mas-spotlight__quote p { margin: 0 0 .75rem; font-size: 1rem; line-height: 1.75; color: var(--mas-text); }
.mas-spotlight__quote p:last-child { margin-bottom: 0; }
.mas-spotlight .mas-btn { align-self: flex-start; }
@media (min-width: 768px) {
	.mas-spotlight { grid-template-columns: 240px minmax(0, 1fr); }
	.mas-spotlight__photo { width: auto; aspect-ratio: auto; margin: 0; border-radius: 0; }
	.mas-spotlight__body { padding: 2rem 2.5rem; }
}

/* Why-us mosaic: one large photo + five tiles (3 columns on desktop) */
.mas-mosaic { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.5rem; margin: 0; padding: 0; list-style: none; }
.mas-mosaic__item { position: relative; display: flex; flex-direction: column; overflow: hidden; border-radius: var(--mas-radius); background: var(--mas-white); }
.mas-mosaic__media { aspect-ratio: 3 / 2; background: var(--mas-tint); }
.mas-mosaic__text { padding: 1.25rem 1.5rem 1.5rem; }
.home-style2 .mas-mosaic__title { margin: 0 0 .375rem; font-family: var(--mas-font); font-size: 1.0625rem; font-weight: 700; line-height: 1.35; color: var(--mas-navy-800); }
.mas-mosaic p { margin: 0; font-size: .9375rem; line-height: 1.6; color: var(--mas-text); }
@media (min-width: 576px) {
	.mas-mosaic { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.mas-mosaic__item--lead { grid-column: 1 / -1; }
	.mas-mosaic__item--lead .mas-mosaic__media { aspect-ratio: 16 / 9; }
}
@media (min-width: 992px) {
	.mas-mosaic { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.mas-mosaic__item--lead { grid-column: span 2; grid-row: span 2; justify-content: flex-end; }
	/* wider photos on the small tiles keep the two rows (and so the large photo) at a sensible height */
	.mas-mosaic__item:not(.mas-mosaic__item--lead) .mas-mosaic__media { aspect-ratio: 16 / 9; }
	.mas-mosaic__item--lead .mas-mosaic__media { position: absolute; inset: 0; aspect-ratio: auto; }
	/* caption over the photo, on a dark scrim for legibility */
	.mas-mosaic__item--lead .mas-mosaic__text { position: relative; padding: 5rem 2rem 1.75rem; background: linear-gradient(to top, rgba(11, 31, 68, .94) 35%, rgba(11, 31, 68, 0)); }
	.home-style2 .mas-mosaic__item--lead .mas-mosaic__title { font-size: 1.5rem; color: var(--mas-white); }
	.mas-mosaic__item--lead p { max-width: 60ch; font-size: 1rem; color: rgba(255, 255, 255, .9); }
}

/* Phones: photo cards and mosaic tiles become horizontal (photo left), so the page is not a column of full-width photos */
@media (max-width: 575.98px) {
	.mas-photocard, .mas-mosaic__item:not(.mas-mosaic__item--lead) { flex-direction: row; }
	.mas-photocard__media, .mas-mosaic__item:not(.mas-mosaic__item--lead) .mas-mosaic__media { width: 38%; min-height: 128px; aspect-ratio: auto; }
	.mas-photocard__body, .mas-mosaic__item:not(.mas-mosaic__item--lead) .mas-mosaic__text { flex: 1; min-width: 0; padding: 1rem; }
	.home-style2 .mas-photocard__title { font-size: 1.125rem; }
	.mas-photocard p, .mas-mosaic p { font-size: .875rem; line-height: 1.55; }
	.mas-cards3, .mas-mosaic { gap: 1rem; }
	/* the full message is one tap away ("Read the full message") */
	.mas-spotlight__quote p + p { display: none; }
}

/* Tablets: the fifth small tile would sit alone in its row — make it a full-width horizontal tile; the principal photo keeps its portrait shape */
@media (min-width: 576px) and (max-width: 991.98px) {
	.mas-mosaic__item:last-child { grid-column: 1 / -1; flex-direction: row; }
	.mas-mosaic__item:last-child .mas-mosaic__media { width: 50%; aspect-ratio: auto; min-height: 200px; }
	.mas-mosaic__item:last-child .mas-mosaic__text { flex: 1; align-self: center; }
}
@media (min-width: 768px) and (max-width: 991.98px) {
	.mas-spotlight { grid-template-columns: 200px minmax(0, 1fr); }
	.mas-spotlight__photo { align-self: start; aspect-ratio: 5 / 6; margin: 2rem 0 0 2rem; border-radius: var(--mas-radius-sm); }
}

/* Facts block */
.mas-facts { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.5rem; padding: clamp(1.5rem, 1rem + 1.5vw, 2.25rem); }
.mas-facts__intro { display: flex; flex-direction: column; gap: .5rem; }
.mas-facts__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin: 0; padding: 0; list-style: none; }
.mas-fact { padding: 1.25rem 1rem; border: 1px solid var(--mas-border); border-radius: var(--mas-radius); text-align: center; }
.mas-fact__num { display: block; font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem); font-weight: 700; line-height: 1.1; color: var(--mas-navy-800); }
.mas-fact__label { display: block; margin-top: .375rem; font-size: .875rem; line-height: 1.35; color: var(--mas-muted); }
@media (min-width: 768px) { .mas-facts__list { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (min-width: 992px) { .mas-facts { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); align-items: center; } }

/* Testimonials: compact equal cards; long quotes clamped with "Read more" (welcome.php) */
.mas-testimonials .mas-carousel__pause {
	position: relative; display: inline-flex; flex: none; align-items: center; justify-content: center; width: 40px; height: 40px;
	border: 1px solid var(--mas-border); border-radius: 50%; background: var(--mas-white); color: var(--mas-navy-800); cursor: pointer;
}
.mas-testimonials .mas-carousel__pause::before { content: ""; position: absolute; inset: -4px; border-radius: 50%; }
.mas-quote { display: flex; flex-direction: column; height: 100%; margin: 0; padding: 1.5rem 1.75rem; border-radius: var(--mas-radius); background: var(--mas-white); }
.mas-quote__text { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 6; overflow: hidden; margin: 0 0 .25rem; }
.mas-quote.is-expanded .mas-quote__text { display: block; -webkit-line-clamp: unset; overflow: visible; }
.mas-quote__more { align-self: flex-start; min-height: 44px; margin: 0; padding: 0 0 0 2.25rem; border: 0; background: none; color: var(--mas-blue-600); font-weight: 600; text-decoration: underline; text-underline-offset: 2px; cursor: pointer; }
.mas-quote__person { margin-top: auto; padding-top: 1rem; border-top: 1px solid var(--mas-border); }
.mas-testimonials .owl-carousel:not(.owl-loaded) { gap: 24px; }
@media (min-width: 768px) { .mas-testimonials .owl-carousel:not(.owl-loaded) > * { flex-basis: calc(50% - 12px); } }

/* Inner pages: white page header, grey canvas, narrow reading column for CMS text */
.mas-pagehead { padding: 1.75rem 0 1.5rem; background: var(--mas-white); }
.home-style2 .mas-pagehead__title { font-size: clamp(1.75rem, 1.4rem + 1.2vw, 2.5rem); }
.mas-sheet { padding: clamp(1.25rem, .75rem + 2vw, 3rem); border-radius: var(--mas-radius); background: var(--mas-white); }
.mas-sheet--narrow { max-width: 840px; margin-left: auto; margin-right: auto; }
.mas-sheet .mas-prose { font-size: 1.0625rem; }
.mas-page .table, .mas-table-wrap { background: var(--mas-white); }

/* Footer: quieter accents */
.mas-footer .mas-footer__title { padding-bottom: 0; border-bottom: 0; font-size: .875rem; color: var(--mas-white); }
.mas-footer a:hover { color: var(--mas-white); }
.mas-footer__contact .fa { color: rgba(255, 255, 255, .6); }
.mas-footer__social a:hover { background: var(--mas-white); color: var(--mas-navy-900); }

/* Phones: fixed quick-action bar (Courses, Apply, Verify, Call); not on short landscape screens */
.mas-actionbar { display: none; }
@media (max-width: 767.98px) and (min-height: 501px) {
	.mas-actionbar {
		position: fixed; left: 0; right: 0; bottom: 0; z-index: 1001; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
		padding-bottom: env(safe-area-inset-bottom); border-top: 1px solid var(--mas-border); background: var(--mas-white);
	}
	.mas-actionbar a { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .125rem; min-height: 56px; color: var(--mas-navy-800); font-size: .75rem; font-weight: 600; }
	.mas-actionbar a:hover { background: var(--mas-tint); color: var(--mas-navy-800); }
	.mas-actionbar .fa { font-size: 1.125rem; color: var(--mas-blue-600); }
	body { padding-bottom: calc(56px + env(safe-area-inset-bottom)); }
	#scrollUp { bottom: calc(72px + env(safe-area-inset-bottom)) !important; }
	.mas-footer__bottom { padding-bottom: 4.5rem; }
}

/* ---------------------------------------------------------------------------
 * 8. Course pages (re-review 2026-11-04): list of row cards + sidebar; course detail with facts and enquiry
 * ------------------------------------------------------------------------- */
.mas-courses { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.5rem; align-items: start; }
.mas-courses__aside { display: grid; gap: 1.5rem; }
@media (min-width: 992px) {
	.mas-courses { grid-template-columns: minmax(0, 1fr) 340px; gap: 2rem; }
	.mas-courses__aside { position: sticky; top: 76px; } /* below the sticky nav bar */
}
.mas-courses__toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem 1rem; margin-bottom: 1rem; }
.mas-courses__count { margin: 0; color: var(--mas-muted); font-size: .9375rem; }
.mas-courses__count strong { color: var(--mas-navy-800); font-size: 1.125rem; }
.mas-courses__filter { position: relative; flex: 0 1 320px; }
.mas-courses__filter .fa { position: absolute; left: .875rem; top: 50%; transform: translateY(-50%); color: var(--mas-muted); pointer-events: none; }
.mas-courses__filter .form-control { height: 44px; padding-left: 2.5rem; border: 1px solid #cdd6e3; border-radius: var(--mas-radius-sm); background: var(--mas-white); font-size: .9375rem; }
.mas-courses__filter .form-control:focus { border-color: var(--mas-blue-600); box-shadow: none; }
.mas-courses__none { margin: 1rem 0 0; padding: 1.25rem; border-radius: var(--mas-radius); background: var(--mas-white); color: var(--mas-muted); }

.mas-courselist { display: grid; gap: .625rem; margin: 0; padding: 0; list-style: none; }
.mas-course {
	position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 1rem;
	padding: 1rem 1.25rem 1rem 1.375rem; border-left: 3px solid transparent; border-radius: var(--mas-radius); background: var(--mas-white);
	transition: border-color .15s var(--mas-ease);
}
.mas-course[hidden] { display: none; }
.mas-course:hover, .mas-course:focus-within { border-left-color: var(--mas-red-600); }
.mas-course__meta { margin: 0 0 .25rem; font-size: .8125rem; font-weight: 600; letter-spacing: .02em; color: var(--mas-blue-600); }
.home-style2 .mas-course__title { margin: 0; font-family: var(--mas-font); font-size: 1.0625rem; font-weight: 600; line-height: 1.4; color: var(--mas-navy-800); }
.mas-course__title a { color: inherit; }
.mas-course:hover .mas-course__title a, .mas-course__title a:focus-visible { text-decoration: underline; text-underline-offset: 2px; }
.mas-course__tags { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .375rem; margin: 0; padding: 0; list-style: none; }
.mas-chip {
	display: inline-flex; align-items: center; min-height: 28px; padding: .125rem .75rem; border-radius: var(--mas-radius-pill);
	background: var(--mas-tint); color: var(--mas-navy-800); font-size: .8125rem; font-weight: 600; white-space: nowrap;
}
.mas-chip--fee { background: #e3f3e8; color: var(--mas-green-700); }
.mas-course__arrow { width: 9px; height: 9px; margin-right: .25rem; border-top: 2px solid #8a97ab; border-right: 2px solid #8a97ab; transform: rotate(45deg); transition: border-color .15s var(--mas-ease), transform .15s var(--mas-ease); }
.mas-course:hover .mas-course__arrow { border-color: var(--mas-red-600); transform: translateX(2px) rotate(45deg); }
@media (max-width: 575.98px) {
	.mas-course { grid-template-columns: minmax(0, 1fr) auto; row-gap: .5rem; padding: .875rem 1rem; }
	.mas-course__tags { grid-column: 1; grid-row: 2; justify-content: flex-start; }
	.mas-course__arrow { grid-column: 2; grid-row: 1 / span 2; }
	.mas-courses__filter { flex-basis: 100%; }
}

/* Fees & enrolment box (navy) */
.mas-enquiry__links { display: grid; gap: .25rem; margin: 0; padding: 0; list-style: none; }
.mas-enquiry__links a { display: inline-flex; align-items: center; gap: .625rem; min-height: 40px; color: var(--mas-white); font-weight: 600; overflow-wrap: anywhere; }
.mas-enquiry__links a:hover { color: var(--mas-white); text-decoration: underline; }
.mas-enquiry__links .fa { flex: none; width: 1rem; color: var(--mas-gold-400); text-align: center; }
.mas-enquiry .mas-btn { margin-top: .5rem; }

/* Sidebar lists: tidy spacing in the new layout; a "View all" link under related courses */
.mas-courses__aside .mas-sidebar a { line-height: 1.4; }
.mas-sidebar__more { margin-top: .75rem; min-height: 44px; }

/* Course detail: note shown when there is no description yet */
.mas-coursenote { display: flex; flex-direction: column; gap: .75rem; }
.mas-coursenote .mas-eyebrow { margin: 0; }
.mas-coursenote__facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: .75rem; margin: .5rem 0 0; padding: 0; list-style: none; }
.mas-coursenote__facts li { display: flex; flex-direction: column; gap: .125rem; padding: .875rem 1rem; border: 1px solid var(--mas-border); border-radius: var(--mas-radius); }
.mas-coursenote__facts span { font-size: .8125rem; color: var(--mas-muted); }
.mas-coursenote__facts strong { font-size: 1.0625rem; color: var(--mas-navy-800); }
.mas-coursenote__actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: .5rem; }
.mas-factlist { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .625rem 1rem; margin: 0; font-size: .9375rem; }
.mas-factlist dt { font-weight: 400; color: var(--mas-muted); }
.mas-factlist dd { margin: 0; font-weight: 600; color: var(--mas-navy-800); }
.mas-courses__empty { display: flex; flex-direction: column; gap: .5rem; }

/* ---------------------------------------------------------------------------
 * 9. Contact, FAQ and student database (re-review 2026-11-04)
 * ------------------------------------------------------------------------- */
/* Contact: three office cards, then the form beside a click-to-load map */
.mas-offices { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
@media (min-width: 768px) { .mas-offices { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1200px) { .mas-offices { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.mas-office { gap: .625rem; }
.mas-office__lead { margin: -.25rem 0 0; color: var(--mas-muted); font-size: .9375rem; }
.mas-office__address { display: flex; gap: .75rem; margin: .25rem 0 0; padding: .875rem 0; border-top: 1px solid var(--mas-border); border-bottom: 1px solid var(--mas-border); font-style: normal; line-height: 1.55; color: var(--mas-text); }
.mas-office .fa { flex: none; width: 1rem; margin-top: .3rem; color: var(--mas-blue-600); text-align: center; }
.mas-office__links { display: grid; gap: .125rem; margin: 0; padding: 0; list-style: none; }
.mas-office__links li { display: grid; grid-template-columns: 1rem minmax(0, 1fr); align-items: center; column-gap: .75rem; padding: .25rem 0; }
.mas-office__links .fa { grid-row: 1 / span 2; align-self: start; margin-top: .3rem !important; }
.mas-office__label { grid-column: 2; font-size: .8125rem; line-height: 1.3; }
.mas-office__links a { grid-column: 2; }
.mas-office__label { color: var(--mas-muted); }
.mas-office__links a { font-weight: 600; color: var(--mas-navy-800); overflow-wrap: anywhere; }
.mas-office__links a:hover { color: var(--mas-red-600); text-decoration: underline; }
.mas-office__mapbtn { display: inline-flex; align-items: center; gap: .5rem; min-height: 44px; margin-top: auto; padding: 0; border: 0; background: none; color: var(--mas-blue-600); font-weight: 600; cursor: pointer; align-self: flex-start; }
.mas-office__mapbtn .fa { margin-top: 0; }
.mas-office__mapbtn:hover { text-decoration: underline; text-underline-offset: 2px; }
.mas-office__mapbtn:focus-visible { outline: 2px solid var(--mas-blue-600); outline-offset: 2px; }

.mas-contact { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.5rem; margin-top: 1.5rem; align-items: stretch; }
@media (min-width: 992px) { .mas-contact { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); } }
.mas-form__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem; margin: .5rem 0 1rem; }
@media (min-width: 576px) { .mas-form__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .mas-form__field--full { grid-column: 1 / -1; } }
.mas-form__field label { display: block; margin-bottom: .375rem; font-size: .875rem; font-weight: 600; color: var(--mas-navy-800); }
.mas-form .form-control { height: 46px; border: 1px solid #cdd6e3; border-radius: var(--mas-radius-sm); background: var(--mas-white); font-size: 1rem; }
.mas-form textarea.form-control { height: auto; min-height: 140px; resize: vertical; }
.mas-form .form-control:focus { border-color: var(--mas-blue-600); box-shadow: 0 0 0 3px rgba(37, 99, 235, .15); }
.mas-form #form-messages:not(:empty) { margin-bottom: 1rem; }
.mas-mappanel { padding-bottom: clamp(1.25rem, 1rem + 1vw, 1.75rem); }
.mas-mappanel__frame { flex: 1; min-height: 360px; border-radius: var(--mas-radius-sm); background: var(--mas-tint); overflow: hidden; }
.mas-mappanel__frame iframe { display: block; width: 100%; height: 100%; min-height: 360px; border: 0; }
.mas-mappanel__placeholder { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .75rem; height: 100%; min-height: 360px; padding: 1.5rem; text-align: center; color: var(--mas-muted); }
.mas-mappanel__placeholder .fa { font-size: 2rem; color: var(--mas-blue-600); }
.mas-mappanel__placeholder p { margin: 0; }

/* FAQ: native disclosures */
.mas-faq { display: grid; gap: .625rem; }
.mas-faq__item { border-left: 3px solid transparent; border-radius: var(--mas-radius); background: var(--mas-white); }
.mas-faq__item[open] { border-left-color: var(--mas-red-600); }
.mas-faq__q { display: flex; align-items: flex-start; gap: .875rem; min-height: 56px; padding: 1rem 3rem 1rem 1.25rem; position: relative; list-style: none; cursor: pointer; font-size: 1.0625rem; font-weight: 600; line-height: 1.45; color: var(--mas-navy-800); }
.mas-faq__q::-webkit-details-marker { display: none; }
.mas-faq__q::after { content: ""; position: absolute; right: 1.375rem; top: 1.375rem; width: 9px; height: 9px; border-right: 2px solid #8a97ab; border-bottom: 2px solid #8a97ab; transform: rotate(45deg); transition: transform .15s var(--mas-ease); }
.mas-faq__item[open] > .mas-faq__q::after { transform: translateY(4px) rotate(-135deg); border-color: var(--mas-red-600); }
.mas-faq__q:hover { color: var(--mas-red-600); }
.mas-faq__q:focus-visible { outline: 2px solid var(--mas-blue-600); outline-offset: -2px; border-radius: var(--mas-radius); }
.mas-faq__num { flex: none; min-width: 2rem; color: var(--mas-blue-600); font-variant-numeric: tabular-nums; }
.mas-faq__a { padding: 0 1.25rem 1.25rem 4.125rem; overflow-wrap: anywhere; }
/* CMS answers sometimes contain very large headings (a phone number set as h2): keep them in scale */
.mas-faq__sub { margin: 1rem 0 .25rem; font-size: 1.0625rem; font-weight: 700; line-height: 1.4; color: var(--mas-navy-800); }
@media (max-width: 575.98px) { .mas-faq__a { padding-left: 1.25rem; } .mas-faq__q { padding-left: 1rem; } }

/* Student database: one block per programme group, courses as link rows */
.mas-studentdb__intro { margin: 0 0 1.25rem; color: var(--mas-muted); }
.mas-studentdb { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.5rem; align-items: start; }
@media (min-width: 992px) { .mas-studentdb { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.mas-linkrows { margin: 0; padding: 0; list-style: none; }
.mas-linkrows li + li { border-top: 1px solid var(--mas-border); }
.mas-linkrows a { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 48px; padding: .625rem 0; font-weight: 600; line-height: 1.4; color: var(--mas-navy-800); }
.mas-linkrows a:hover { color: var(--mas-red-600); }
.mas-linkrows a:hover span { text-decoration: underline; text-underline-offset: 2px; }
.mas-linkrows__arrow { flex: none; width: 8px; height: 8px; margin-right: .25rem; border-top: 2px solid #8a97ab; border-right: 2px solid #8a97ab; transform: rotate(45deg); }
.mas-linkrows a:hover .mas-linkrows__arrow { border-color: var(--mas-red-600); }
.mas-backlink { display: inline-flex; align-items: center; gap: .375rem; min-height: 44px; font-weight: 600; color: var(--mas-blue-600); }
.mas-backlink:hover { text-decoration: underline; text-underline-offset: 2px; }
.mas-batches { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: .75rem; margin: 0; padding: 0; list-style: none; }
.mas-batches a { display: flex; align-items: baseline; justify-content: center; gap: .375rem; min-height: 72px; padding: 1.25rem 1rem; border-bottom: 3px solid transparent; border-radius: var(--mas-radius); background: var(--mas-white); color: var(--mas-muted); font-size: .9375rem; }
.mas-batches strong { font-size: 1.5rem; line-height: 1; color: var(--mas-navy-800); }
.mas-batches a:hover, .mas-batches a:focus-visible { border-bottom-color: var(--mas-red-600); color: var(--mas-navy-800); }
.mas-roster { padding: 0; overflow: hidden; }
.mas-roster > .mas-block__text { padding: clamp(1.25rem, 1rem + 1vw, 1.75rem); }
.mas-roster__table { width: 100%; border-collapse: collapse; font-size: .9375rem; }
.mas-roster__table th { padding: .875rem 1.25rem; background: var(--mas-tint); color: var(--mas-navy-800); font-size: .8125rem; font-weight: 700; letter-spacing: .03em; text-align: left; text-transform: uppercase; }
.mas-roster__table td { padding: .75rem 1.25rem; border-top: 1px solid var(--mas-border); color: var(--mas-text); }
.mas-roster__table td:first-child, .mas-roster__table th:first-child { width: 4.5rem; color: var(--mas-muted); font-variant-numeric: tabular-nums; }
.mas-roster__table tbody tr:hover { background: #f7f9fc; }

/* ---------------------------------------------------------------------------
 * 10. Noticeboard and news list (re-review 2026-11-04)
 * ------------------------------------------------------------------------- */
.mas-notices__toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem 1rem; margin-bottom: 1rem; }
.mas-notices__types { display: flex; flex-wrap: wrap; gap: .5rem; flex-basis: 100%; }
.mas-typebtn { min-height: 36px; padding: .25rem .875rem; border: 1px solid #cdd6e3; border-radius: var(--mas-radius-pill); background: var(--mas-white); color: var(--mas-navy-800); font-size: .875rem; font-weight: 600; cursor: pointer; }
.mas-typebtn span { font-weight: 400; color: var(--mas-muted); }
.mas-typebtn:hover { border-color: var(--mas-navy-800); }
.mas-typebtn[aria-pressed="true"] { border-color: var(--mas-navy-800); background: var(--mas-navy-800); color: var(--mas-white); }
.mas-typebtn[aria-pressed="true"] span { color: rgba(255, 255, 255, .75); }
.mas-typebtn:focus-visible { outline: 2px solid var(--mas-blue-600); outline-offset: 2px; }
.mas-notices__year { padding-top: 0; padding-bottom: 0; margin-bottom: .75rem; gap: 0; }
.mas-notices__year[hidden] { display: none; }
.mas-notices__summary { display: flex; align-items: center; gap: .75rem; min-height: 64px; list-style: none; cursor: pointer; position: relative; padding-right: 2rem; }
.mas-notices__summary::-webkit-details-marker { display: none; }
.mas-notices__summary::after { content: ""; position: absolute; right: .375rem; top: 50%; width: 9px; height: 9px; margin-top: -7px; border-right: 2px solid #8a97ab; border-bottom: 2px solid #8a97ab; transform: rotate(45deg); transition: transform .15s var(--mas-ease); }
.mas-notices__year[open] > .mas-notices__summary::after { transform: translateY(4px) rotate(-135deg); }
.mas-notices__summary:focus-visible { outline: 2px solid var(--mas-blue-600); outline-offset: 2px; border-radius: var(--mas-radius-sm); }
.home-style2 .mas-notices__summary .mas-block__title { font-size: 1.25rem; }
.mas-notices__list { margin: 0 0 1rem; padding: 0; list-style: none; border-top: 1px solid var(--mas-border); }
.mas-notice { position: relative; display: flex; align-items: center; gap: 1rem; padding: .75rem 0; }
.mas-notice[hidden] { display: none; }
.mas-notice + .mas-notice { border-top: 1px solid var(--mas-border); }
.mas-notice__date { flex: none; display: flex; flex-direction: column; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: var(--mas-radius-sm); background: var(--mas-tint); color: var(--mas-blue-600); font-size: .75rem; font-weight: 600; line-height: 1.1; text-transform: uppercase; }
.mas-notice__date strong { font-size: 1.25rem; color: var(--mas-navy-800); }
.mas-notice__body { display: flex; flex-wrap: wrap; align-items: center; gap: .25rem .625rem; min-width: 0; }
.mas-notice__link { color: var(--mas-navy-800); font-weight: 600; line-height: 1.45; overflow-wrap: anywhere; }
.mas-notice:hover .mas-notice__link, .mas-notice__link:focus-visible { color: var(--mas-red-600); text-decoration: underline; text-underline-offset: 2px; }
.mas-notice__new { padding: .0625rem .5rem; border-radius: var(--mas-radius-pill); background: var(--mas-red-600); color: var(--mas-white); font-size: .6875rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
@media (max-width: 575.98px) { .mas-notice__date { width: 46px; height: 46px; } }

.mas-newsgrid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.5rem; margin: 0; padding: 0; list-style: none; }
@media (min-width: 768px) { .mas-newsgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1200px) { .mas-newsgrid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.mas-newscard { padding: 0 0 1.25rem; overflow: hidden; gap: .5rem; }
.mas-newscard > :not(.mas-newscard__media) { margin-left: 1.25rem; margin-right: 1.25rem; }
.mas-newscard__media { flex: none; aspect-ratio: 16 / 10; min-height: 0; margin-bottom: .5rem; overflow: hidden; background: var(--mas-tint); }
.mas-newscard__media picture { display: block; width: 100%; height: 100%; }
.mas-newscard__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s var(--mas-ease); }
.mas-newscard:hover .mas-newscard__media img { transform: scale(1.03); }
.mas-newscard__noimg { display: flex; align-items: center; justify-content: center; height: 100%; font-size: 2.5rem; color: #9fb2cf; }
.home-style2 .mas-newscard__title { margin: 0 1.25rem; font-family: var(--mas-font); font-size: 1.125rem; font-weight: 700; line-height: 1.4; color: var(--mas-navy-800); }
.mas-newscard__title a { color: inherit; }
.mas-newscard:hover .mas-newscard__title a, .mas-newscard__title a:focus-visible { color: var(--mas-red-600); text-decoration: underline; text-underline-offset: 2px; }
.mas-newsgrid__more { margin: 1.5rem 0 0; color: var(--mas-muted); }
@media (prefers-reduced-motion: reduce) { .mas-newscard__media img { transition: none; } .mas-newscard:hover .mas-newscard__media img { transform: none; } }
.mas-newsgrid__more a { font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }
/* ---------------------------------------------------------------------------
 * 11. People: faculty members, management body, member page (re-review 2026-11-04)
 * Photos are 200 × 240 uploads: cards keep them near that size instead of stretching them.
 * ------------------------------------------------------------------------- */
.mas-peoplenav { margin-bottom: 1.5rem; }
.mas-peoplenav ul { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0; padding: 0; list-style: none; }
.mas-chip--link { min-height: 40px; gap: .5rem; padding: .25rem .875rem; border: 1px solid #cdd6e3; background: var(--mas-white); }
.mas-chip--link span { color: var(--mas-muted); font-weight: 400; }
.mas-chip--link:hover { border-color: var(--mas-navy-800); color: var(--mas-navy-800); }
.mas-peoplegroup { margin-bottom: 1.5rem; }
.mas-peoplegroup__count { flex: none; color: var(--mas-muted); font-size: .875rem; }
.mas-people { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem 1rem; margin: .5rem 0 0; padding: 0; list-style: none; }
@media (min-width: 576px) { .mas-people { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 992px) { .mas-people { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
@media (min-width: 1200px) { .mas-people { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 1.5rem 1.25rem; } }
.mas-person { position: relative; display: flex; flex-direction: column; gap: .625rem; min-width: 0; }
.mas-person__photo { aspect-ratio: 5 / 6; max-width: 200px; width: 100%; overflow: hidden; border-radius: var(--mas-radius-sm); background: var(--mas-tint); }
.mas-person__photo picture { display: block; width: 100%; height: 100%; }
.mas-person__photo img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: top; }
.mas-person__body { display: flex; flex-direction: column; gap: .25rem; min-width: 0; }
.home-style2 .mas-person__name { margin: 0; font-family: var(--mas-font); font-size: 1rem; font-weight: 700; line-height: 1.35; color: var(--mas-navy-800); overflow-wrap: anywhere; }
.mas-person__name a { color: inherit; }
.mas-person--link:hover .mas-person__name a, .mas-person__name a:focus-visible { color: var(--mas-red-600); text-decoration: underline; text-underline-offset: 2px; }
.mas-person__role { margin: 0; font-size: .875rem; font-weight: 600; line-height: 1.4; color: var(--mas-red-600); }
.mas-person__text { margin: 0; font-size: .8125rem; line-height: 1.55; color: var(--mas-muted); }
/* Management body: wide cards, photo beside the text */
.mas-people--wide { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; margin: 0; }
@media (min-width: 768px) { .mas-people--wide { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.mas-people--wide .mas-person { flex-direction: row; align-items: flex-start; gap: 1.25rem; padding: 1.25rem; border-radius: var(--mas-radius); background: var(--mas-white); }
.mas-people--wide .mas-person__photo { flex: none; width: 160px; }
.mas-people--wide .mas-person__body { padding-top: .25rem; gap: .375rem; }
.home-style2 .mas-people--wide .mas-person__name { font-size: 1.25rem; }
.mas-people--wide .mas-person__text { font-size: .875rem; }
@media (max-width: 575.98px) { .mas-people--wide .mas-person { gap: 1rem; padding: 1rem; } .mas-people--wide .mas-person__photo { width: 112px; } }
.mas-people__more { margin: 1.5rem 0 0; color: var(--mas-muted); }
.mas-people__more a { font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }
/* Member page */
.mas-profile { display: grid; gap: 1.5rem; max-width: 840px; }
.mas-profile__card { flex-direction: row; align-items: flex-start; gap: 1.5rem; }
.mas-profile__photo { flex: none; width: 200px; }
.mas-profile__body { display: flex; flex-direction: column; gap: .375rem; min-width: 0; padding-top: .25rem; }
.mas-profile__role { margin: 0; font-size: 1.25rem; font-weight: 700; line-height: 1.35; color: var(--mas-navy-800); }
.mas-profile__text { margin: .375rem 0 0; line-height: 1.6; color: var(--mas-text); }
.mas-profile__none { margin: 0; padding: 1.25rem; border-radius: var(--mas-radius); background: var(--mas-white); color: var(--mas-muted); }
.mas-profile__back { display: flex; flex-wrap: wrap; gap: .25rem 1.5rem; margin: 0; }
@media (max-width: 575.98px) { .mas-profile__card { gap: 1rem; } .mas-profile__photo { width: 120px; } .mas-profile__role { font-size: 1.125rem; } }
/* ---------------------------------------------------------------------------
 * 12. Download admit card (re-review 2026-11-04)
 * ------------------------------------------------------------------------- */
.mas-admitform { gap: 1.25rem; }
.mas-admitform__alert { padding: .875rem 1rem; border-left: 4px solid var(--mas-red-600); border-radius: var(--mas-radius-sm); background: #fff5f6; color: #8a0b21; font-weight: 600; }
.mas-admitform__field { min-width: 0; margin: 0; padding: 0; border: 0; }
.mas-admitform .form-label { display: block; margin-bottom: .375rem; padding: 0; font-size: 1rem; font-weight: 700; color: var(--mas-navy-800); }
.mas-admitform .form-control { height: 48px; border: 1px solid #cdd6e3; border-radius: var(--mas-radius-sm); background-color: var(--mas-white); font-size: 1rem; }
.mas-admitform .form-control:focus { border-color: var(--mas-blue-600); box-shadow: 0 0 0 3px rgba(31, 79, 163, .2); }
.mas-admitform #mobile { max-width: 320px; }
.mas-admitform__hint { margin: .375rem 0 0; font-size: .875rem; color: var(--mas-muted); }
.mas-admitform__dob { display: grid; grid-template-columns: minmax(0, 5rem) minmax(0, 11rem) minmax(0, 7rem); gap: .75rem; }
.mas-admitform__sublabel { display: block; margin-bottom: .25rem; font-size: .8125rem; font-weight: 600; color: var(--mas-muted); }
@media (max-width: 575.98px) { .mas-admitform__dob { grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr) minmax(0, 1.2fr); gap: .5rem; } }
.mas-admitform__actions { padding-top: .25rem; }
.mas-admitform__actions .mas-btn { border: 0; }
.mas-admitaside__phones { display: grid; gap: .25rem; margin: 0; padding: 0; list-style: none; }
.mas-admitaside__phones a { display: inline-flex; align-items: center; min-height: 44px; color: var(--mas-white); font-size: 1.125rem; font-weight: 700; }
.mas-admitaside__phones a:hover { text-decoration: underline; text-underline-offset: 2px; }
/* ---------------------------------------------------------------------------
 * 13. Galleries: albums, album photos, videos (re-review 2026-11-04)
 * ------------------------------------------------------------------------- */
.mas-albums, .mas-videos { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.5rem; margin: 0; padding: 0; list-style: none; }
@media (min-width: 768px) { .mas-albums, .mas-videos { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1200px) { .mas-albums { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.mas-albumcard { position: relative; display: flex; flex-direction: column; overflow: hidden; border-radius: var(--mas-radius); background: var(--mas-white); }
.mas-albumcard__cover { flex: none; aspect-ratio: 4 / 3; overflow: hidden; background: var(--mas-tint); }
.mas-albumcard__cover picture { display: block; width: 100%; height: 100%; }
.mas-albumcard__cover img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .3s var(--mas-ease); }
.mas-albumcard:hover .mas-albumcard__cover img { transform: scale(1.03); }
.mas-albumcard__body { display: flex; flex-direction: column; gap: .25rem; padding: 1rem 1.25rem 1.25rem; }
.home-style2 .mas-albumcard__title { margin: 0; font-family: var(--mas-font); font-size: 1.125rem; font-weight: 700; line-height: 1.4; color: var(--mas-navy-800); }
.mas-albumcard__title a { color: inherit; }
.mas-albumcard:hover .mas-albumcard__title a, .mas-albumcard__title a:focus-visible { color: var(--mas-red-600); text-decoration: underline; text-underline-offset: 2px; }
.mas-albumcard__count { margin: 0; font-size: .875rem; color: var(--mas-muted); }
.mas-photogrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; margin: 0; padding: 0; list-style: none; }
@media (min-width: 768px) { .mas-photogrid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; } }
@media (min-width: 1200px) { .mas-photogrid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.mas-photogrid__item { display: block; aspect-ratio: 4 / 3; overflow: hidden; border-radius: var(--mas-radius-sm); background: var(--mas-tint); }
.mas-photogrid__item picture { display: block; width: 100%; height: 100%; }
.mas-photogrid__item img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .3s var(--mas-ease); }
.mas-photogrid__item:hover img { transform: scale(1.04); }
.mas-photogrid__item:focus-visible { outline: 3px solid var(--mas-blue-600); outline-offset: 2px; }
.mas-videocard { padding: 0 0 1.25rem; overflow: hidden; gap: .75rem; }
.mas-videocard__media { aspect-ratio: 16 / 9; background: var(--mas-navy-900); }
.mas-videocard__media iframe { display: block; width: 100%; height: 100%; border: 0; }
.mas-videocard__play { position: relative; display: block; width: 100%; height: 100%; }
.mas-videocard__play img { display: block; width: 100%; height: 100%; object-fit: cover; }
.mas-videocard__btn { position: absolute; left: 50%; top: 50%; width: 68px; height: 48px; margin: -24px 0 0 -34px; border-radius: 12px; background: rgba(17, 41, 88, .9); transition: background .15s var(--mas-ease); }
.mas-videocard__btn::after { content: ""; position: absolute; left: 28px; top: 14px; border-style: solid; border-width: 10px 0 10px 16px; border-color: transparent transparent transparent #fff; }
.mas-videocard__play:hover .mas-videocard__btn, .mas-videocard__play:focus-visible .mas-videocard__btn { background: var(--mas-red-600); }
.mas-videocard__play:focus-visible { outline: 3px solid var(--mas-gold-400); outline-offset: -3px; }
.home-style2 .mas-videocard__title { margin: 0 1.25rem; font-family: var(--mas-font); font-size: 1.125rem; font-weight: 700; line-height: 1.4; color: var(--mas-navy-800); }
@media (prefers-reduced-motion: reduce) { .mas-albumcard__cover img, .mas-photogrid__item img { transition: none; } .mas-albumcard:hover .mas-albumcard__cover img, .mas-photogrid__item:hover img { transform: none; } }
/* ---------------------------------------------------------------------------
 * 14. Empty CMS page (final QA 2026-11-04): replaces the large red "Coming Soon"
 * ------------------------------------------------------------------------- */
.mas-prose .mas-emptypage p { margin: 0 0 .75rem; }
.mas-prose .mas-emptypage__title { font-size: 1.25rem; font-weight: 700; color: var(--mas-navy-800); }
.mas-prose .mas-emptypage .mas-linkrows { margin: 0; padding: 0; }
.mas-prose .mas-emptypage .mas-linkrows li { margin: 0; padding: 0; }
.mas-prose .mas-emptypage .mas-linkrows li::before { content: none; }
.mas-prose .mas-emptypage .mas-linkrows a { text-decoration: none; }
/* Links inside block text are underlined (axe link-in-text-block; final QA 2026-11-04) */
.mas-block__text a { text-decoration: underline; text-underline-offset: 2px; }
/* ---------------------------------------------------------------------------
 * 15. Job placement (re-review 2026-11-05): intro + "At a glance" box, a card per programme, one table per
 *     programme; below 576 px each batch is one line (addons/contents/job-placement-details.php)
 * ------------------------------------------------------------------------- */
.mas-jp__top { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.5rem; margin-bottom: 2rem; }
@media (min-width: 992px) { .mas-jp__top { grid-template-columns: minmax(0, 1.75fr) minmax(0, 1fr); align-items: start; } .mas-jp__top--solo { grid-template-columns: minmax(0, 1fr); } }
.mas-jp__intro { margin-bottom: 2rem; }
.mas-jp__top .mas-jp__intro { margin-bottom: 0; }
/* the figures before the long intro text on narrow screens */
@media (max-width: 991.98px) { .mas-jp__glance { order: -1; } }
.home-style2 .mas-jp__intro .mas-prose > :first-child { margin-top: 0; }
.home-style2 .mas-jp__glancetitle { margin: 0; font-family: var(--mas-font); font-size: .8125rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--mas-gold-400); }
.mas-jp__glancenum { margin: 0; font-size: 1.125rem; color: var(--mas-white); }
.mas-jp__glancenum strong { display: block; font-size: clamp(2.25rem, 1.75rem + 2vw, 3rem); font-weight: 700; line-height: 1.05; font-variant-numeric: tabular-nums; }
.mas-jp__glancesub { margin: 0 0 .5rem; color: rgba(255, 255, 255, .8); }
.mas-jp__legend { display: grid; gap: .625rem; margin: 0; padding-top: 1rem; border-top: 1px solid rgba(255, 255, 255, .18); font-size: .875rem; line-height: 1.5; }
.mas-jp__legend dt { font-weight: 700; color: var(--mas-white); }
.mas-jp__legend dd { margin: .125rem 0 0 1.125rem; color: rgba(255, 255, 255, .8); }
.mas-jp__key { display: inline-block; width: .75rem; height: .75rem; margin-right: .375rem; border-radius: 2px; background: var(--mas-border); vertical-align: -1px; }
.mas-jp__key--placed { background: #3fae66; }
.mas-jp__key--process { background: #6f9be0; }
.mas-jp__overview { margin-bottom: 2rem; }
.home-style2 .mas-jp__title { margin: 0 0 1rem; font-family: var(--mas-font); font-size: 1.5rem; font-weight: 700; line-height: 1.25; color: var(--mas-navy-800); }
.mas-jp__cards { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem; margin: 0; padding: 0; list-style: none; }
@media (min-width: 576px) { .mas-jp__cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1200px) { .mas-jp__cards { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.mas-jp__card { gap: .5rem; }
.home-style2 .mas-jp__cardtitle { margin: 0; font-family: var(--mas-font); font-size: 1.0625rem; font-weight: 700; line-height: 1.35; }
.mas-jp__cardtitle a { color: var(--mas-navy-800); text-decoration: none; }
.mas-jp__card:hover .mas-jp__cardtitle a { color: var(--mas-blue-600); text-decoration: underline; text-underline-offset: 2px; }
/* titles take two lines of space when cards sit side by side, so the figures line up */
@media (min-width: 576px) { .home-style2 .mas-jp__cardtitle { min-height: 2.7em; } }
.mas-jp__cardnum { margin: 0; color: var(--mas-muted); }
.mas-jp__cardnum strong { font-size: 1.75rem; font-weight: 700; line-height: 1.1; color: var(--mas-navy-800); font-variant-numeric: tabular-nums; }
.mas-jp__cardnum span { color: var(--mas-muted); }
.mas-jp__bar { display: flex; height: 8px; overflow: hidden; border-radius: var(--mas-radius-pill); background: var(--mas-border); }
.mas-jp__bar-placed { background: var(--mas-green-700); }
.mas-jp__bar-process { background: var(--mas-blue-600); }
.mas-jp__cardmeta { margin: 0; font-size: .875rem; color: var(--mas-muted); }
.mas-jp__group { margin-bottom: 1.5rem; padding-bottom: .5rem; }
.mas-jp__groupsum { margin: 0; font-size: .9375rem; color: var(--mas-muted); white-space: nowrap; }
.mas-jp__table { width: 100%; border-collapse: collapse; font-size: .9375rem; }
.mas-jp__table thead th { padding: .75rem 1rem; background: var(--mas-tint); color: var(--mas-navy-800); font-size: .8125rem; font-weight: 700; letter-spacing: .03em; text-align: left; text-transform: uppercase; vertical-align: bottom; }
.mas-jp__table tbody th, .mas-jp__table td { padding: .625rem 1rem; border-top: 1px solid var(--mas-border); color: var(--mas-text); font-weight: 400; vertical-align: top; }
.mas-jp__table tbody th { width: 6rem; font-weight: 700; color: var(--mas-navy-800); }
.mas-jp__table .mas-jp__n { width: 9rem; text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.mas-jp__table thead .mas-jp__n { white-space: normal; }
.mas-jp__table td.mas-jp__placed { font-weight: 700; color: var(--mas-green-700); }
.mas-jp__table td.is-zero { font-weight: 400; color: var(--mas-muted); }
.mas-jp__table .mas-jp__note { padding-left: 2rem; color: var(--mas-muted); }
@media (max-width: 991.98px) { .mas-jp__table .mas-jp__n, .mas-jp__table tbody th { width: auto; } .mas-jp__table thead th, .mas-jp__table tbody th, .mas-jp__table td { padding-left: .625rem; padding-right: .625rem; } .mas-jp__table .mas-jp__note { padding-left: 1rem; } }
.mas-jp__table tbody tr:hover { background: #f7f9fc; }
.mas-jp__phone { display: none; }
.mas-jp__source { margin: .5rem 0 0; font-size: .875rem; color: var(--mas-muted); }
@media (max-width: 575.98px) {
	.mas-jp__group { padding-left: 0; padding-right: 0; }
	.mas-jp__group .mas-block__head { flex-wrap: wrap; padding-left: 1.25rem; padding-right: 1.25rem; }
	.mas-jp__table, .mas-jp__table tbody { display: block; }
	.mas-jp__table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
	/* one line per batch ("Batch 5   30 students   27 placed"); a non-zero CDC/not-yet-placed figure and the note go on
	   lines below, aligned under the figures */
	.mas-jp__table tr { display: grid; grid-template-columns: 4.5rem auto minmax(0, 1fr); align-items: baseline; gap: .125rem .875rem; padding: .625rem 1.25rem; border-top: 1px solid var(--mas-border); }
	.mas-jp__table tbody tr:first-child { border-top: 0; }
	.mas-jp__table tbody th, .mas-jp__table td { width: auto; padding: 0; border: 0; }
	.mas-jp__table td.mas-jp__extra, .mas-jp__table .mas-jp__note { grid-column: 2 / -1; }
	.mas-jp__phone { display: inline; }
	.mas-jp__table td.mas-jp__n { width: auto; text-align: left; }
	.mas-jp__table td.mas-jp__n::after { content: " " attr(data-unit); font-weight: 400; color: var(--mas-muted); }
	.mas-jp__table td.mas-jp__extra.is-zero { display: none; }
	.mas-jp__table td.mas-jp__extra { font-size: .875rem; }
	.mas-jp__table .mas-jp__note { padding: 0; font-size: .875rem; }
	.mas-jp__table .mas-jp__note:empty { display: none; }
}
/* ---------------------------------------------------------------------------
 * 16. Pages missed by the redesign (re-review 2026-11-05): all courses, historical background, career progression,
 *     BMA cadet placement
 * ------------------------------------------------------------------------- */
/* All courses (addons/contents/courses.php): one section per category, shared course rows (section 8) */
.mas-allcourses__group + .mas-allcourses__group { margin-top: 2.25rem; }
.mas-allcourses__head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .25rem 1rem; margin-bottom: .875rem; }
.home-style2 .mas-allcourses__title { margin: 0; font-family: var(--mas-font); font-size: 1.375rem; font-weight: 700; line-height: 1.25; color: var(--mas-navy-800); }
.mas-allcourses__head .mas-link-arrow { font-size: .9375rem; }
/* Historical background (addons/contents/historical-background.php): one block per programme with a timeline */
.mas-history__intro { margin-bottom: 1.5rem; }
.mas-history { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.5rem; align-items: start; }
@media (min-width: 992px) { .mas-history { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.mas-history__span { margin: 0; font-size: .875rem; color: var(--mas-muted); white-space: nowrap; font-variant-numeric: tabular-nums; }
.mas-timeline { margin: .25rem 0 0; padding: 0; list-style: none; }
.mas-timeline__item { position: relative; padding: 0 0 1.25rem 1.5rem; }
.mas-timeline__item:last-child { padding-bottom: 0; }
/* the line between entries, and a marker on each year */
.mas-timeline__item::before { content: ""; position: absolute; left: 5px; top: .5rem; bottom: -.5rem; width: 2px; background: var(--mas-border); }
.mas-timeline__item:last-child::before { display: none; }
.mas-timeline__item::after { content: ""; position: absolute; left: 0; top: .3rem; width: 12px; height: 12px; border: 2px solid var(--mas-blue-600); border-radius: 50%; background: var(--mas-white); }
.mas-timeline__item:first-child::after { background: var(--mas-blue-600); }
.mas-timeline__year { margin: 0 0 .125rem; font-weight: 700; line-height: 1.4; color: var(--mas-navy-800); font-variant-numeric: tabular-nums; }
.mas-timeline__text { margin: 0; font-size: .9375rem; line-height: 1.6; color: var(--mas-text); }
.mas-timeline__text + .mas-timeline__text { margin-top: .375rem; }
/* Career progression (addons/contents/career-progression.php): numbered steps from entry level to the top rank */
.mas-career__intro { margin-bottom: 1.5rem; }
.mas-career { margin-bottom: 1.5rem; }
.mas-career__paths { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2rem 2.5rem; padding-top: .5rem; }
@media (min-width: 992px) { .mas-career__paths { grid-template-columns: repeat(2, minmax(0, 1fr)); } .mas-career__paths--one { grid-template-columns: minmax(0, 1fr); max-width: 760px; } }
.home-style2 .mas-career__pathtitle { margin: 0 0 1rem; font-family: var(--mas-font); font-size: 1.125rem; font-weight: 700; line-height: 1.35; color: var(--mas-navy-800); }
.mas-ladder { margin: 0; padding: 0; list-style: none; }
.mas-ladder__step { position: relative; display: grid; grid-template-columns: 2rem minmax(0, 1fr); gap: .875rem; padding-bottom: 1.25rem; }
.mas-ladder__step:last-child { padding-bottom: 0; }
/* connector from each number to the next */
.mas-ladder__step::before { content: ""; position: absolute; left: calc(1rem - 1px); top: 2rem; bottom: 0; width: 2px; background: var(--mas-border); }
.mas-ladder__step:last-child::before { display: none; }
.mas-ladder__num { display: flex; align-items: center; justify-content: center; width: 2rem; height: 2rem; border-radius: 50%; background: var(--mas-tint); color: var(--mas-navy-800); font-size: .875rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.mas-ladder__step.is-top .mas-ladder__num { background: var(--mas-navy-800); color: var(--mas-white); }
.mas-ladder__body { padding-top: .25rem; }
.mas-ladder__title { margin: 0 0 .25rem; font-weight: 700; line-height: 1.45; color: var(--mas-navy-800); }
.mas-ladder__line { margin: 0 0 .25rem; font-size: .9375rem; line-height: 1.55; color: var(--mas-text); }
.mas-ladder__salary { margin: .375rem 0 .25rem; }
.mas-ladder__body > :last-child { margin-bottom: 0; }
/* BMA cadet placement (addons/contents/bma-cadet-placement.php): summary, filter, one collapsible section per year */
.mas-bma__intro { margin-bottom: 1.5rem; }
.mas-bma__summary { margin-bottom: 1.5rem; }
.mas-bma__summarygrid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
@media (min-width: 992px) { .mas-bma__summarygrid { grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); align-items: center; } }
.mas-bma__stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin: 0; }
.mas-bma__stats dt { font-size: .875rem; font-weight: 400; color: var(--mas-muted); }
.mas-bma__stats dd { margin: 0; font-size: 1.75rem; font-weight: 700; line-height: 1.15; color: var(--mas-navy-800); font-variant-numeric: tabular-nums; }
.mas-bma__years { width: 100%; border-collapse: collapse; }
.mas-bma__years th { width: 3.5rem; padding: .25rem .75rem .25rem 0; font-weight: 700; color: var(--mas-navy-800); font-variant-numeric: tabular-nums; }
.mas-bma__years td { display: flex; align-items: center; gap: .5rem; padding: .25rem 0; }
.mas-bma__bar { display: block; height: 14px; min-width: 2px; border-radius: 0 4px 4px 0; background: var(--mas-blue-600); }
.mas-bma__n { font-size: .875rem; color: var(--mas-text); font-variant-numeric: tabular-nums; }
.mas-bma__list { display: grid; gap: .75rem; }
.mas-bma__year { padding: 0; gap: 0; overflow: hidden; }
.mas-bma__year > summary { display: flex; align-items: baseline; gap: .75rem; padding: 1rem 1.25rem; cursor: pointer; list-style: none; }
.mas-bma__year > summary::-webkit-details-marker { display: none; }
.mas-bma__year > summary::after { content: ""; width: .5rem; height: .5rem; margin-left: auto; border-right: 2px solid var(--mas-muted); border-bottom: 2px solid var(--mas-muted); transform: translateY(-2px) rotate(45deg); transition: transform .15s var(--mas-ease); }
.mas-bma__year[open] > summary::after { transform: translateY(2px) rotate(-135deg); }
.mas-bma__year > summary:hover .mas-bma__yearname { color: var(--mas-blue-600); }
.mas-bma__yearname { font-size: 1.125rem; font-weight: 700; color: var(--mas-navy-800); font-variant-numeric: tabular-nums; }
.mas-bma__yearcount { font-size: .9375rem; color: var(--mas-muted); }
.mas-bma__table { width: 100%; border-collapse: collapse; font-size: .9375rem; }
.mas-bma__table thead th { padding: .625rem 1rem; background: var(--mas-tint); color: var(--mas-navy-800); font-size: .75rem; font-weight: 700; letter-spacing: .03em; text-align: left; text-transform: uppercase; }
.mas-bma__table tbody th, .mas-bma__table td { padding: .5rem 1rem; border-top: 1px solid var(--mas-border); color: var(--mas-text); font-weight: 400; text-align: left; vertical-align: top; }
.mas-bma__table tbody th { color: var(--mas-navy-800); font-weight: 600; }
.mas-bma__table .mas-bma__no { width: 3.5rem; color: var(--mas-muted); font-variant-numeric: tabular-nums; }
.mas-bma__table tbody tr:hover { background: #f7f9fc; }
.mas-bma__label { display: none; }
@media (max-width: 767.98px) {
	/* two lines per cadet: the name, then rank · CDC · ship · date · batch */
	.mas-bma__table, .mas-bma__table tbody { display: block; }
	.mas-bma__table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
	.mas-bma__table tr { position: relative; display: flex; flex-wrap: wrap; gap: .125rem .375rem; padding: .625rem 1.25rem .625rem 3.25rem; border-top: 1px solid var(--mas-border); }
	.mas-bma__table tbody th, .mas-bma__table td { padding: 0; border: 0; }
	.mas-bma__table .mas-bma__no { position: absolute; left: 1.25rem; top: .625rem; width: auto; }
	.mas-bma__table .mas-bma__name { flex: 1 0 100%; }
	.mas-bma__table .mas-bma__meta { flex: 0 0 auto; font-size: .8125rem; color: var(--mas-muted); }
	.mas-bma__table .mas-bma__meta:not(:empty) ~ .mas-bma__meta:not(:empty)::before { content: "· "; }
	.mas-bma__label { display: inline; }
}

/* ---------------------------------------------------------------------------
 * 17. Academy profile (2026-11-06): addons/contents/academy-profile.php — figures + mission/vision, details and
 *     courses side by side from 992 px, trained-so-far cards, location and contact
 * ------------------------------------------------------------------------- */
.mas-acad { display: grid; gap: 1.5rem; }
.mas-acad__intro { max-width: 840px; font-size: 1.0625rem; line-height: 1.65; color: var(--mas-text); }
.mas-acad__intro p:last-child { margin-bottom: 0; }
.mas-acad__top, .mas-acad__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
@media (min-width: 992px) {
	.mas-acad__top { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); }
	.mas-acad__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } /* equal width and height (grid stretch) */
	.mas-acad__top--solo, .mas-acad__grid--solo { grid-template-columns: minmax(0, 1fr); }
}
.home-style2 .mas-acad__eyebrow { margin: 0; font-family: var(--mas-font); font-size: .8125rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--mas-gold-400); }
.mas-acad__stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(7.5rem, 1fr)); gap: 1rem 1.5rem; margin: 0; }
@media (min-width: 992px) { .mas-acad__stats { grid-template-columns: minmax(0, 1fr); gap: 1rem; } }
.mas-acad__stat { display: flex; flex-direction: column-reverse; gap: .125rem; }
@media (min-width: 992px) { .mas-acad__stat + .mas-acad__stat { padding-top: 1rem; border-top: 1px solid rgba(255, 255, 255, .18); } }
.mas-acad__stat dt { font-size: .875rem; font-weight: 400; color: rgba(255, 255, 255, .8); }
.mas-acad__stat dd { margin: 0; font-size: clamp(1.75rem, 1.5rem + 1vw, 2.25rem); font-weight: 700; line-height: 1.1; color: var(--mas-white); font-variant-numeric: tabular-nums; }
.mas-acad__aims { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
/* side by side on tablets; stacked beside the figures from 992 px (no empty space under short texts) */
@media (min-width: 768px) and (max-width: 991.98px) { .mas-acad__aims { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.mas-acad__aim { border-left: 4px solid var(--mas-blue-600); }
.home-style2 .mas-acad__aimtitle { margin: 0; font-family: var(--mas-font); font-size: .8125rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--mas-blue-600); }
.mas-acad__aimtext { margin: 0; font-size: clamp(1.125rem, 1rem + .5vw, 1.3125rem); font-weight: 600; line-height: 1.45; color: var(--mas-navy-800); }
/* label / value rows: label above the value on phones, beside it from 576 px */
.mas-acad__list { display: grid; margin: 0; }
.mas-acad__row { display: grid; grid-template-columns: minmax(0, 1fr); gap: .125rem; padding: .75rem 0; border-top: 1px solid var(--mas-border); }
.mas-acad__row:first-child { padding-top: 0; border-top: 0; }
.mas-acad__row:last-child { padding-bottom: 0; }
@media (min-width: 576px) { .mas-acad__row { grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); gap: 1.25rem; } }
@media (min-width: 576px) { .mas-acad__contact .mas-acad__row { grid-template-columns: minmax(0, 1fr) minmax(0, 3fr); } }
@media (min-width: 992px) { .mas-acad__contact .mas-acad__row { grid-template-columns: 14rem minmax(0, 1fr); } }
.mas-acad__row dt { font-size: .9375rem; font-weight: 400; line-height: 1.5; color: var(--mas-muted); }
@media (min-width: 576px) { .mas-acad__row dt { padding-top: .1rem; } }
.mas-acad__row dd { margin: 0; font-size: 1rem; font-weight: 600; line-height: 1.5; color: var(--mas-navy-800); overflow-wrap: anywhere; }
.mas-acad__row dd a { color: var(--mas-blue-600); text-decoration: underline; text-underline-offset: 2px; }
.mas-acad__row dd a:hover { color: var(--mas-navy-800); }
.mas-acad__lines { display: grid; gap: .375rem; margin: 0; padding: 0; list-style: none; }
.mas-acad__lines li { position: relative; padding-left: 1rem; }
.mas-acad__lines li::before { content: ""; position: absolute; left: 0; top: .6em; width: .375rem; height: .375rem; border-radius: 50%; background: var(--mas-blue-600); }
/* trained so far */
.mas-acad__intake { display: flex; flex-wrap: wrap; align-items: baseline; gap: .5rem 1.5rem; padding: 1rem 1.25rem; border-radius: var(--mas-radius); background: var(--mas-tint); }
.home-style2 .mas-acad__intaketitle { flex: 1 0 100%; margin: 0; font-family: var(--mas-font); font-size: .9375rem; font-weight: 700; line-height: 1.4; color: var(--mas-navy-800); }
@media (min-width: 768px) { .home-style2 .mas-acad__intaketitle { flex: 0 1 auto; } }
.mas-acad__intakenums { display: flex; flex-wrap: wrap; gap: .25rem 1.5rem; margin: 0; padding: 0; list-style: none; color: var(--mas-text); }
.mas-acad__intakenums strong { font-size: 1.5rem; font-weight: 700; color: var(--mas-navy-800); font-variant-numeric: tabular-nums; }
.mas-acad__counts { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem; margin: 0; padding: 0; list-style: none; }
@media (min-width: 576px) { .mas-acad__counts { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1200px) { .mas-acad__counts { grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); } }
.mas-acad__count { display: flex; flex-direction: column; gap: .25rem; padding: 1.125rem 1.25rem; border: 1px solid var(--mas-border); border-radius: var(--mas-radius); }
.mas-acad__num { order: -1; margin: 0; color: var(--mas-muted); }
.mas-acad__num strong { font-size: 2rem; font-weight: 700; line-height: 1.1; color: var(--mas-navy-800); font-variant-numeric: tabular-nums; }
.home-style2 .mas-acad__countname { margin: 0; font-family: var(--mas-font); font-size: 1rem; font-weight: 600; line-height: 1.4; color: var(--mas-navy-800); }
.mas-acad__note { margin: 0; font-size: .875rem; line-height: 1.5; color: var(--mas-muted); }
.mas-acad__actions { margin: .5rem 0 0; }
@media (max-width: 575.98px) { .mas-acad__count { padding: .875rem 1rem; } .mas-acad__num strong { font-size: 1.625rem; } }

/* ---------------------------------------------------------------------------
 * 18. Admission procedure (2026-11-06): addons/contents/admission-procedure.php — a card per programme (jump links),
 *     one block per programme with a numbered head; "A → B → C" lines as steps (.mas-steps, any CMS text)
 * ------------------------------------------------------------------------- */
.mas-adm { display: grid; gap: 1.5rem; max-width: 1000px; }
.home-style2 .mas-adm__navtitle { margin: 0 0 1rem; font-family: var(--mas-font); font-size: 1.25rem; font-weight: 700; line-height: 1.3; color: var(--mas-navy-800); }
.mas-adm__cards { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem; margin: 0; padding: 0; list-style: none; }
@media (min-width: 576px) { .mas-adm__cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 992px) { .mas-adm__cards { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.mas-adm__card { gap: .375rem; padding: 1.125rem 1.25rem; border: 1px solid var(--mas-border); transition: border-color .15s var(--mas-ease); }
.mas-adm__card:hover { border-color: var(--mas-blue-600); }
.mas-adm__card:has(:focus-visible) { outline: 2px solid var(--mas-blue-600); outline-offset: 2px; }
.mas-adm__cardlink { font-size: 1.0625rem; font-weight: 700; line-height: 1.35; color: var(--mas-navy-800); text-decoration: none; }
.mas-adm__cardlink:focus-visible { outline: none; }
.mas-adm__card:hover .mas-adm__cardlink { color: var(--mas-blue-600); text-decoration: underline; text-underline-offset: 2px; }
.mas-adm__cardsub { font-size: .875rem; line-height: 1.45; color: var(--mas-muted); }
.mas-adm__num { display: inline-flex; flex: none; align-items: center; justify-content: center; width: 2rem; height: 2rem; border-radius: 50%; background: var(--mas-blue-600); color: var(--mas-white); font-size: .9375rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.mas-adm__section { gap: 1.25rem; scroll-margin-top: 1rem; }
.mas-adm__head { display: flex; align-items: flex-start; gap: .875rem; padding-bottom: 1rem; border-bottom: 1px solid var(--mas-border); }
.mas-adm__head .mas-adm__num { width: 2.5rem; height: 2.5rem; font-size: 1.125rem; }
.home-style2 .mas-adm__title { margin: 0; font-family: var(--mas-font); font-size: clamp(1.375rem, 1.2rem + .6vw, 1.625rem); font-weight: 700; line-height: 1.25; color: var(--mas-navy-800); }
.mas-adm__sub { margin: .25rem 0 0; color: var(--mas-muted); }
.mas-adm__body > :last-child { margin-bottom: 0; }
.home-style2 .mas-adm__body h3 { margin: 1.75rem 0 .625rem; font-size: 1.125rem; }
.home-style2 .mas-adm__body > h3:first-child { margin-top: 0; }
.mas-adm__body li::marker { color: var(--mas-blue-600); }
.mas-adm__top { margin: 0; font-size: .875rem; }
.mas-adm__top a { color: var(--mas-blue-600); text-decoration: underline; text-underline-offset: 2px; }
/* numbered steps with a line between the numbers */
.mas-prose ol.mas-steps { counter-reset: mas-step; padding-left: 0; list-style: none; }
.mas-prose ol.mas-steps > li { position: relative; margin: 0; padding: 0 0 .875rem 2.5rem; counter-increment: mas-step; }
.mas-prose ol.mas-steps > li::before { content: counter(mas-step); position: absolute; left: 0; top: .1em; display: flex; align-items: center; justify-content: center; width: 1.75rem; height: 1.75rem; border-radius: 50%; background: var(--mas-blue-050); color: var(--mas-navy-800); font-size: .8125rem; font-weight: 700; }
.mas-prose ol.mas-steps > li:not(:last-child)::after { content: ""; position: absolute; left: .8125rem; top: 2.05em; bottom: .25rem; width: 2px; background: var(--mas-border); }
.mas-prose ol.mas-steps > li:last-child { padding-bottom: 0; font-weight: 600; color: var(--mas-navy-800); }

/* ---------------------------------------------------------------------------
 * 19. Training facilities (2026-11-06): addons/contents/training-facilities.php — figures, then a card per facility
 * ------------------------------------------------------------------------- */
.mas-fac { display: grid; gap: 1.5rem; }
.mas-fac__glance { flex-direction: row; flex-wrap: wrap; align-items: center; gap: 1rem 2.5rem; }
.home-style2 .mas-fac__eyebrow { flex: 1 0 100%; margin: 0; font-family: var(--mas-font); font-size: .8125rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--mas-gold-400); }
@media (min-width: 768px) { .home-style2 .mas-fac__eyebrow { flex: 0 0 auto; } }
.mas-fac__stats { display: flex; flex-wrap: wrap; gap: 1rem 2.5rem; margin: 0; }
.mas-fac__stat { display: flex; flex-direction: column-reverse; gap: .125rem; }
.mas-fac__stat dt { font-size: .9375rem; font-weight: 400; color: rgba(255, 255, 255, .8); }
.mas-fac__stat dd { margin: 0; font-size: clamp(1.75rem, 1.5rem + 1vw, 2.25rem); font-weight: 700; line-height: 1.1; color: var(--mas-white); font-variant-numeric: tabular-nums; }
.mas-fac__approx { font-size: .9375rem; font-weight: 400; color: rgba(255, 255, 255, .8); }
.home-style2 .mas-fac__title { margin: 0 0 1rem; font-family: var(--mas-font); font-size: 1.25rem; font-weight: 700; line-height: 1.3; color: var(--mas-navy-800); }
/* columns, not a grid: cards keep their own height (a grid row stretched short items to the tallest one) */
.mas-fac__cards { margin: 0; padding: 0; list-style: none; column-gap: 1rem; }
@media (min-width: 768px) { .mas-fac__cards { column-count: 2; } }
@media (min-width: 1200px) { .mas-fac__cards { column-count: 3; } }
.mas-fac__card { break-inside: avoid; margin-bottom: 1rem; }
.mas-fac__card { display: flex; align-items: flex-start; gap: .75rem; padding: 1rem 1.25rem; border-radius: var(--mas-radius); background: var(--mas-white); }
.mas-fac__icon { flex: none; margin-top: .3rem; font-size: 1.125rem; color: var(--mas-green-700); }
.mas-fac__text { margin: 0; line-height: 1.6; color: var(--mas-text); }
.mas-fac__label { display: block; margin-bottom: .125rem; font-weight: 700; color: var(--mas-navy-800); }

/* Job placement additions (2026-11-06): intro heading, placed share on the programme cards, total row */
.home-style2 .mas-jp__intro .mas-jp__introtitle { margin: 0 0 1rem; font-size: 1.375rem; }
.mas-jp__cardpct { margin: 0; font-size: .875rem; font-weight: 700; color: var(--mas-green-700); }
.mas-jp__table tfoot th, .mas-jp__table tfoot td { padding: .75rem 1rem; border-top: 2px solid var(--mas-border); background: var(--mas-surface); color: var(--mas-navy-800); font-weight: 700; }
@media (max-width: 991.98px) { .mas-jp__table tfoot th, .mas-jp__table tfoot td { padding-left: .625rem; padding-right: .625rem; } }
@media (max-width: 575.98px) {
	.mas-jp__table tfoot { display: block; }
	.mas-jp__table tfoot tr { background: var(--mas-surface); border-top: 2px solid var(--mas-border); }
	.mas-jp__table tfoot th, .mas-jp__table tfoot td { padding: 0; border: 0; background: none; }
	.mas-jp__table tfoot .mas-jp__note { display: none; }
}


/* ---------------------------------------------------------------------------
 * 20. Student database (2026-11-06): batch tiles with students, course dates and status
 *     (addons/contents/student-database/batches.php); batch page summary, rank chips, name filter, previous / next
 *     batch (students.php). The older .mas-batches / .mas-roster rules above still apply where not overridden.
 * ------------------------------------------------------------------------- */
.mas-sdb__find { display: grid; gap: .375rem; max-width: 22rem; margin-bottom: 1.25rem; }
.mas-sdb__find label { margin: 0; font-size: .9375rem; font-weight: 600; color: var(--mas-navy-800); }
.mas-sdb__find--inline { margin-bottom: 0; }
.mas-sdb__findstatus { margin: -.5rem 0 1rem; font-size: .875rem; color: var(--mas-muted); }
.mas-sdb__findstatus:empty { display: none; }
.mas-sdb__summary .mas-sdb__findstatus { margin: 0; }
.home-style2 .mas-sdb__year { margin: 1.75rem 0 .75rem; font-family: var(--mas-font); font-size: 1.25rem; font-weight: 700; color: var(--mas-navy-800); }
.mas-sdb__year span { margin-left: .5rem; font-size: .875rem; font-weight: 400; color: var(--mas-muted); }
.mas-batchgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(11.5rem, 1fr)); gap: .75rem; margin: 0; padding: 0; list-style: none; }
.mas-batch { position: relative; display: flex; flex-direction: column; gap: .25rem; padding: 1rem 1.125rem; border: 1px solid transparent; border-top: 3px solid var(--mas-border); border-radius: var(--mas-radius); background: var(--mas-white); }
.mas-batch:hover { border-color: var(--mas-blue-600); }
.mas-batch:has(:focus-visible) { outline: 2px solid var(--mas-blue-600); outline-offset: 2px; }
.mas-batch--now { border-top-color: var(--mas-green-700); }
.mas-batch--soon { border-top-color: var(--mas-gold-400); }
.mas-batch__link { font-size: 1.125rem; font-weight: 700; line-height: 1.3; color: var(--mas-navy-800); text-decoration: none; }
.mas-batch__link:focus-visible { outline: none; }
.mas-batch:hover .mas-batch__link { color: var(--mas-blue-600); text-decoration: underline; text-underline-offset: 2px; }
.mas-batch__count { margin: 0; font-size: .9375rem; color: var(--mas-text); }
.mas-batch__dates { margin: 0; font-size: .875rem; color: var(--mas-muted); }
.mas-batch__status { align-self: flex-start; margin-top: .375rem; padding: .125rem .5rem; border-radius: var(--mas-radius-pill); background: var(--mas-tint); color: var(--mas-navy-800); font-size: .75rem; font-weight: 700; }
.mas-batch--now .mas-batch__status { background: #e3f3e8; color: #14532d; }
.mas-batch--soon .mas-batch__status { background: #fff4d6; color: #6b4e00; }
.mas-batch__status--inline { display: inline-block; margin: 0 0 0 .5rem; vertical-align: 1px; }
/* batch page */
.mas-sdb__summary { gap: 1rem; margin-bottom: 1rem; }
.mas-sdb__dates { margin: 0; color: var(--mas-text); }
.mas-sdb__label { display: inline-block; min-width: 7.5rem; font-size: .875rem; color: var(--mas-muted); }
.mas-sdb__ranks { display: flex; flex-wrap: wrap; gap: .5rem; }
.mas-sdb__rank { font: inherit; font-size: .875rem; font-weight: 600; cursor: pointer; }
.mas-sdb__rank[aria-pressed="true"] { border-color: var(--mas-navy-800); background: var(--mas-navy-800); color: var(--mas-white); }
.mas-sdb__rank[aria-pressed="true"] span { color: rgba(255, 255, 255, .8); }
.mas-sdb__rank:focus-visible { outline: 2px solid var(--mas-blue-600); outline-offset: 2px; }
.mas-roster__table tbody th { padding: .75rem 1.25rem; border-top: 1px solid var(--mas-border); background: none; color: var(--mas-navy-800); font-size: .9375rem; font-weight: 600; letter-spacing: 0; text-transform: none; }
.mas-roster__table tbody tr:hover { background: #f7f9fc; }
.mas-roster__table .mas-roster__no { width: 4.5rem; color: var(--mas-muted); font-variant-numeric: tabular-nums; }
.mas-roster__none { color: var(--mas-muted); }
.mas-roster__empty { margin: 0; padding: 1.25rem; color: var(--mas-muted); }
@media (max-width: 575.98px) {
	/* name on one line, rank under it */
	.mas-roster__table, .mas-roster__table tbody { display: block; }
	.mas-roster__table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
	.mas-roster__table tr { display: grid; grid-template-columns: 2.25rem minmax(0, 1fr); gap: 0 .5rem; padding: .625rem 1rem; border-top: 1px solid var(--mas-border); }
	.mas-roster__table tbody tr:first-child { border-top: 0; }
	.mas-roster__table tr[hidden] { display: none; }
	.mas-roster__table td, .mas-roster__table tbody th { width: auto; padding: 0; border: 0; }
	.mas-roster__table .mas-roster__no { grid-row: span 2; width: auto; }
	.mas-roster__table .mas-roster__rank { font-size: .875rem; color: var(--mas-muted); }
}
.mas-sdb__pager { display: flex; justify-content: space-between; gap: 1rem; margin-top: 1.25rem; }
.mas-sdb__pagelink { display: inline-flex; align-items: center; gap: .375rem; min-height: 44px; padding: .5rem 1rem; border-radius: var(--mas-radius); background: var(--mas-white); color: var(--mas-navy-800); font-weight: 600; text-decoration: none; }
.mas-sdb__pagelink:hover { color: var(--mas-blue-600); text-decoration: underline; text-underline-offset: 2px; }
.mas-sdb__pagelink--next { margin-left: auto; }

/* ---------------------------------------------------------------------------
 * 21. Facility pages (2026-11-06): Class Room, Sports, Library & Resources (addons/contents/facility.php) — text with
 *     photos on top and a lead paragraph; a menu of the other Facilities pages beside it from 992 px
 * ------------------------------------------------------------------------- */
.mas-facpage { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.5rem; align-items: start; }
@media (min-width: 992px) {
	.mas-facpage { grid-template-columns: minmax(0, 1fr) 18rem; }
	.mas-facpage--solo { grid-template-columns: minmax(0, 840px); justify-content: center; }
	.mas-facpage__nav { position: sticky; top: 1.5rem; }
}
.mas-facpage__main { max-width: 900px; }
.mas-facpage__photo { margin: 0 0 1.5rem; }
.mas-facpage__photo img { display: block; width: 100% !important; max-width: 100%; height: auto !important; border-radius: var(--mas-radius); }
.mas-facpage .mas-prose { font-size: 1.0625rem; }
.mas-facpage .mas-prose .mas-lead { max-width: none; font-size: 1.1875rem; line-height: 1.65; color: var(--mas-ink); }
@media (max-width: 575.98px) { .mas-facpage .mas-prose .mas-lead { font-size: 1.0625rem; } }
.home-style2 .mas-facpage .mas-prose h2 { margin: 2rem 0 .625rem; font-size: 1.375rem; }
.mas-facpage .mas-prose blockquote { margin: 1.5rem 0; padding: 1rem 1.5rem; border-left-color: var(--mas-blue-600); background: var(--mas-tint); font-size: 1.125rem; font-style: italic; line-height: 1.6; color: var(--mas-navy-800); }
.mas-facpage .mas-prose blockquote p:last-child { margin-bottom: 0; }
.mas-facpage__nav { gap: .25rem; padding-top: 1.25rem; padding-bottom: .75rem; }
.home-style2 .mas-facpage__navtitle { margin: 0 0 .25rem; font-family: var(--mas-font); font-size: .8125rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--mas-muted); }
.mas-facpage__nav .mas-linkrows a.is-current { color: var(--mas-blue-600); }
.mas-facpage__nav .mas-linkrows a.is-current span { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 4px; }
/* Section pages (2026-11-06): letter (Principal's Message), reasons (Why Choose Us), statement (Mission / Vision) */
@media (min-width: 992px) {
	.mas-facpage--message { grid-template-columns: 17rem minmax(0, 1fr); }
	.mas-facpage--message .mas-facpage__nav { position: static; }
}
.mas-letter__aside { display: grid; gap: 1.5rem; align-content: start; }
/* phones: portrait, then the letter, then the menu */
@media (max-width: 991.98px) { .mas-letter__aside { display: contents; } .mas-facpage--message .mas-facpage__main { order: 1; } .mas-facpage--message .mas-facpage__nav { order: 2; } }
.mas-letter__portrait { margin: 0; overflow: hidden; border-radius: var(--mas-radius); background: var(--mas-white); }
.mas-letter__portrait img { display: block; width: 100% !important; height: auto !important; aspect-ratio: 294 / 336; object-fit: cover; }
.mas-letter__portrait figcaption { display: grid; gap: .125rem; padding: .875rem 1.125rem 1rem; }
.mas-letter__portrait figcaption strong { font-size: 1.0625rem; line-height: 1.35; color: var(--mas-navy-800); }
.mas-letter__portrait figcaption span { font-size: .875rem; color: var(--mas-muted); }
@media (max-width: 991.98px) { .mas-letter__portrait { display: grid; grid-template-columns: 7.5rem minmax(0, 1fr); align-items: center; } }
.mas-letter__sign { display: grid; gap: .125rem; margin: 1.75rem 0 0; padding-top: 1.25rem; border-top: 1px solid var(--mas-border); color: var(--mas-muted); }
.mas-letter__sign-name { font-size: 1.125rem; font-weight: 700; color: var(--mas-navy-800); }
.mas-reasons { display: grid; grid-template-columns: minmax(0, 1fr); gap: .75rem; margin: 0; padding: 0; list-style: none; }
@media (min-width: 768px) { .mas-reasons { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.mas-reasons__item { display: flex; align-items: flex-start; gap: .75rem; padding: .875rem 1rem; border: 1px solid var(--mas-border); border-radius: var(--mas-radius); font-size: 1rem; line-height: 1.55; color: var(--mas-text); }
.mas-reasons__icon { flex: none; margin-top: .25rem; color: var(--mas-green-700); }
.mas-facpage__main--statement { display: flex; align-items: center; min-height: 14rem; }
.mas-statement { margin: 0; padding: .25rem 0 .25rem 1.5rem; border-left: 4px solid var(--mas-blue-600); font-size: clamp(1.375rem, 1.1rem + 1.2vw, 2rem); font-weight: 600; line-height: 1.35; color: var(--mas-navy-800); }

/* ---------------------------------------------------------------------------
 * 22. News / notice page (2026-11-06): addons/blog/details.php — date line, scanned pages with full-size links, photo
 *     grid, older / newer post, latest posts beside it
 * ------------------------------------------------------------------------- */
.mas-post__meta { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .875rem; margin: 0 0 1.25rem; font-size: .9375rem; color: var(--mas-muted); }
.mas-post__pages { display: grid; gap: 1.5rem; }
.mas-post .mas-prose + .mas-post__pages, .mas-post .mas-prose + .mas-post__photostitle { margin-top: 1.5rem; }
.mas-post__page { margin: 0; }
.mas-post__page img { display: block; width: 100% !important; height: auto !important; border: 1px solid var(--mas-border); border-radius: var(--mas-radius-sm); }
.mas-post__page figcaption { margin-top: .5rem; font-size: .9375rem; }
.mas-post__page figcaption a { font-weight: 600; color: var(--mas-blue-600); text-decoration: underline; text-underline-offset: 2px; }
.home-style2 .mas-post__photostitle { margin: 0 0 .75rem; font-family: var(--mas-font); font-size: 1.125rem; font-weight: 700; color: var(--mas-navy-800); }
.mas-post__photostitle span { margin-left: .375rem; font-size: .875rem; font-weight: 400; color: var(--mas-muted); }
@media (min-width: 1200px) { .mas-post__photos { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.mas-post__pager { display: grid; grid-template-columns: minmax(0, 1fr); gap: .75rem; margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid var(--mas-border); }
@media (min-width: 576px) { .mas-post__pager { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.mas-post__pagelink { display: grid; gap: .125rem; padding: .75rem 1rem; border: 1px solid var(--mas-border); border-radius: var(--mas-radius); color: var(--mas-navy-800); font-weight: 600; line-height: 1.4; text-decoration: none; }
.mas-post__pagelink:hover { border-color: var(--mas-blue-600); color: var(--mas-blue-600); }
.mas-post__pagelink--next { text-align: right; }
.mas-post__pagehint { font-size: .8125rem; font-weight: 400; color: var(--mas-muted); }
.mas-post__latest { gap: .5rem; }
.mas-post__latestlist { margin: 0; padding: 0; list-style: none; }
.mas-post__latestlist li { display: grid; gap: .125rem; padding: .75rem 0; border-top: 1px solid var(--mas-border); }
.mas-post__latestlist li:first-child { border-top: 0; padding-top: .25rem; }
.mas-post__latestlist a { font-weight: 600; line-height: 1.4; color: var(--mas-navy-800); }
.mas-post__latestlist a:hover { color: var(--mas-blue-600); text-decoration: underline; }
.mas-post__latestlist time { font-size: .8125rem; color: var(--mas-muted); }
/* =====================================================================================================================
   DARK MODE — tokens and hand-made rules (2026-11-06)
   Switched by html[data-theme="dark"] (set before the page paints by base/theme-init.php: the visitor's choice from the
   header button, else the system setting). Neutral tokens are redefined here; colours that have two jobs (navy, white,
   blue, red, green) are handled rule by rule in the generated block at the end (docs/tools/dark/build-dark.cjs).
   ===================================================================================================================== */
html { color-scheme: light; } /* the <meta name="color-scheme" content="light dark"> only covers the moment before this file loads */
html[data-theme="dark"] {
	color-scheme: dark;
	--mas-ink: #e8edf6;
	--mas-text: #c9d2e0;
	--mas-muted: #a3afc2;
	--mas-border: #2b3954;
	--mas-surface: #121b2c;
	--mas-canvas: #0b1220;
	--mas-tint: #15213a;
	--mas-blue-050: #1a2742;
	--mas-shadow: 0 4px 14px rgba(0, 0, 0, .45);
	--mas-shadow-lg: 0 12px 32px rgba(0, 0, 0, .55);
	/* used by the generated rules */
	--mas-d-heading: #e6edf8;
	--mas-d-link: #93bbff;
	--mas-d-red: #ff8f9f;
	--mas-d-green: #74d6a0;
	--mas-d-text: #c9d2e0;
	--mas-d-card: #121b2c;
	/* coloured notices keep their meaning: text, tinted background, border */
	--mas-d-amber: #f5c76a;
	--mas-d-red-bg: #3a1620;
	--mas-d-amber-bg: #33270f;
	--mas-d-green-bg: #10301e;
	--mas-d-blue-bg: #16233d;
	--mas-d-red-border: #7a2a36;
	--mas-d-amber-border: #6b5220;
	--mas-d-green-border: #23573a;
	--mas-d-blue-border: #2e4a7a;
}
html[data-theme="dark"] body { background-color: var(--mas-canvas); color: var(--mas-text); }
html[data-theme="dark"] a:not([class]) { color: var(--mas-d-link); }
html[data-theme="dark"] h1, html[data-theme="dark"] h2, html[data-theme="dark"] h3, html[data-theme="dark"] h4, html[data-theme="dark"] h5, html[data-theme="dark"] h6 { color: var(--mas-d-heading); }
/* logo: the light version on the dark header (both are in the markup; only one is shown) */
.mas-brand__logo--dark { display: none !important; }
html[data-theme="dark"] .mas-brand__logo--light { display: none !important; }
html[data-theme="dark"] .mas-brand__logo--dark { display: block !important; }
/* form controls (legacy Bootstrap 4 styles in theme-core.css are light) */
html[data-theme="dark"] .form-control, html[data-theme="dark"] .form-select, html[data-theme="dark"] select, html[data-theme="dark"] textarea,
html[data-theme="dark"] input[type="text"], html[data-theme="dark"] input[type="email"], html[data-theme="dark"] input[type="tel"], html[data-theme="dark"] input[type="search"], html[data-theme="dark"] input[type="number"] {
	background-color: #0f1828; color: var(--mas-ink); border-color: #3a4a68;
}
html[data-theme="dark"] .form-control::placeholder, html[data-theme="dark"] input::placeholder, html[data-theme="dark"] textarea::placeholder { color: #8d99ad; opacity: 1; }
/* text written in the editor: its colours and backgrounds were chosen for white pages */
html[data-theme="dark"] .mas-prose [style*="color"] { color: inherit !important; }
html[data-theme="dark"] .mas-prose [style*="background"] { background-color: transparent !important; }
html[data-theme="dark"] .mas-prose table, html[data-theme="dark"] .mas-prose th, html[data-theme="dark"] .mas-prose td { border-color: var(--mas-border) !important; }
html[data-theme="dark"] .mas-prose a { color: var(--mas-d-link); }
/* photos and scans: no change; a soft frame keeps white scans from glaring at the edge */
html[data-theme="dark"] .mas-prose img { box-shadow: 0 0 0 1px var(--mas-border); }
/* theme toggle in the top bar */
.mas-theme-toggle { display: inline-flex; align-items: center; gap: .4rem; padding: 0; margin: 0; font: inherit; color: inherit; background: none; border: 0; cursor: pointer; }
.mas-theme-toggle svg { width: 1em; height: 1em; flex: none; }
.mas-theme-toggle .mas-theme-toggle__sun { display: none; }
html[data-theme="dark"] .mas-theme-toggle .mas-theme-toggle__sun { display: inline; }
html[data-theme="dark"] .mas-theme-toggle .mas-theme-toggle__moon { display: none; }
.mas-theme-toggle__to-light { display: none; }
html[data-theme="dark"] .mas-theme-toggle__to-dark { display: none; }
html[data-theme="dark"] .mas-theme-toggle__to-light { display: inline; }
/* light buttons stay light (they sit on navy or photo backgrounds); "body" out-ranks the generated rules */
html[data-theme="dark"] body .mas-btn--light { background-color: #e3ebf8; color: #112958 !important; }
html[data-theme="dark"] body .mas-btn--light:hover { background-color: #fff; }
/* the selected rank chip on a Student Database batch page (out-ranks the generated .mas-chip--link rules) */
html[data-theme="dark"] body .mas-sdb__rank[aria-pressed="true"] { border-color: #e3ebf8; background-color: #e3ebf8; color: #112958; }
html[data-theme="dark"] body .mas-sdb__rank[aria-pressed="true"] span { color: #3e4a5e; }
/* the certificate number box on the navy verification block */
html[data-theme="dark"] .mas-verify__row .form-control { background-color: #0b1322; border: 1px solid #50638a; }
.mas-theme-toggle:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; border-radius: 2px; }
.mas-topbar .mas-theme-toggle { min-height: 32px; color: var(--mas-navy-800); white-space: nowrap; line-height: inherit; }
.mas-topbar .mas-theme-toggle:hover { color: var(--mas-red-600); }
.mas-topbar .mas-theme-toggle svg { color: var(--mas-blue-600); }
@media (max-width: 991.98px) {
	.mas-topbar .mas-theme-toggle { min-height: 44px; min-width: 44px; justify-content: center; }
}

/* === DARK MODE (generated by docs/tools/dark/build-dark.cjs — do not edit below this line) === */
html[data-theme="dark"] a { color: var(--mas-d-link); }
html[data-theme="dark"] a:active,
html[data-theme="dark"] a:hover { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-eyebrow { color: var(--mas-d-red); }
html[data-theme="dark"] .mas-title { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-btn--outline { color: var(--mas-d-link) !important; }
html[data-theme="dark"] .mas-btn--light { background-color: var(--mas-d-card); color: var(--mas-d-heading) !important; }
html[data-theme="dark"] .mas-link-arrow { color: var(--mas-d-link); }
html[data-theme="dark"] .mas-card { background-color: var(--mas-d-card); }
html[data-theme="dark"] .mas-card--hover:hover { border-color: var(--mas-d-blue-border); }
html[data-theme="dark"] .mas-date { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-stat__num { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-header { background-color: var(--mas-d-card); }
html[data-theme="dark"] .mas-nav-toggle { background-color: var(--mas-d-card); color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-ticker__track { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-ticker__pause { background-color: var(--mas-d-card); color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-footer__social a { background-color: var(--mas-d-card); }
html[data-theme="dark"] .mas-footer__social a:hover { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-footer__bottom { border-top-color: var(--mas-border); }
@media (min-width: 992px) {
	html[data-theme="dark"] .mas-submenu { background-color: var(--mas-d-card); }
	html[data-theme="dark"] .mas-submenu__link:hover,
	html[data-theme="dark"] .mas-submenu__link[aria-current="page"] { color: var(--mas-d-heading); }
}
@media (max-width: 991.98px) {
	html[data-theme="dark"] .mas-menu__item { border-bottom-color: var(--mas-border); }
}
html[data-theme="dark"] .mas-linklist a { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-panel { background-color: var(--mas-d-card); }
html[data-theme="dark"] .home-style2 .mas-panel__title { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-list__link:hover { color: var(--mas-d-link); }
html[data-theme="dark"] .mas-news__date { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-news__link:hover { color: var(--mas-d-link); }
html[data-theme="dark"] .mas-tile { background-color: var(--mas-d-card); color: var(--mas-d-heading) !important; }
html[data-theme="dark"] .mas-principal__person strong { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-feature { background-color: var(--mas-d-card); }
html[data-theme="dark"] .home-style2 .mas-feature__title { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-testimonials__head .mas-carousel__pause { background-color: var(--mas-d-card); color: var(--mas-d-heading); }
html[data-theme="dark"] .home-style2 h2.mas-eyebrow { color: var(--mas-d-red); }
html[data-theme="dark"] .mas-quote__person strong { color: var(--mas-d-heading); }
html[data-theme="dark"] .home-style2 .mas-pagehead__title { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-breadcrumb a { color: var(--mas-d-link); }
html[data-theme="dark"] .home-style2 .mas-prose h1,
html[data-theme="dark"] .home-style2 .mas-prose h2,
html[data-theme="dark"] .home-style2 .mas-prose h3,
html[data-theme="dark"] .home-style2 .mas-prose h4,
html[data-theme="dark"] .home-style2 .mas-prose h5,
html[data-theme="dark"] .home-style2 .mas-prose h6 { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-prose th,
html[data-theme="dark"] .mas-prose thead td { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-page .mas-verify-table th { color: var(--mas-d-heading); }
html[data-theme="dark"] .text-success { color: var(--mas-d-green) !important; }
html[data-theme="dark"] .text-primary { color: var(--mas-d-link) !important; }
html[data-theme="dark"] .text-info { color: var(--mas-d-link) !important; }
html[data-theme="dark"] .mas-error-summary { background-color: var(--mas-d-red-bg); color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-error-summary__title { color: var(--mas-d-red); }
html[data-theme="dark"] .mas-error-summary a { color: var(--mas-d-red); }
html[data-theme="dark"] .mas-field-error:not(:empty) { color: var(--mas-d-red); }
html[data-theme="dark"] .mas-sidebar { background-color: var(--mas-d-card); }
html[data-theme="dark"] .home-style2 .mas-sidebar__title { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-sidebar a:hover,
html[data-theme="dark"] .mas-sidebar a[aria-current="page"] { color: var(--mas-d-link); }
html[data-theme="dark"] .mas-page .rs-faq-part .content-part .accordion .card .card-header { background-color: var(--mas-d-card); }
html[data-theme="dark"] .mas-page .rs-faq-part .content-part .accordion .card .card-header .card-link.collapsed { background-color: var(--mas-d-card); color: var(--mas-d-heading); }
html[data-theme="dark"] .home-style2 .mas-member__name { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-member__role { color: var(--mas-d-red); }
html[data-theme="dark"] .home-style2 .mas-group-title { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-group-title a:hover { color: var(--mas-d-link); }
html[data-theme="dark"] .mas-postlist { background-color: var(--mas-d-card); }
html[data-theme="dark"] .mas-topbar a { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-topbar a:hover { color: var(--mas-d-red); }
html[data-theme="dark"] .mas-topbar .fa { color: var(--mas-d-link); }
@media (min-width: 992px) {
	html[data-theme="dark"] .mas-menu__item.is-active > .mas-menu__link,
	html[data-theme="dark"] .mas-menu__item.is-active > .mas-menu__toggle { background-color: var(--mas-d-card); color: var(--mas-d-heading) !important; }
}
html[data-theme="dark"] .mas-ticker__label { border-color: var(--mas-border); }
html[data-theme="dark"] .mas-ticker__pause { border-color: var(--mas-border); background-color: var(--mas-d-card); }
html[data-theme="dark"] .mas-ticker :focus-visible { outline-color: var(--mas-d-card) !important; }
html[data-theme="dark"] .mas-block { background-color: var(--mas-d-card); }
html[data-theme="dark"] .mas-block--tint .mas-block__head { border-bottom-color: var(--mas-d-blue-border); }
html[data-theme="dark"] .home-style2 .mas-block__title { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-verifyblock__links a { border-color: var(--mas-border); }
html[data-theme="dark"] .mas-verifyblock__links a:hover { border-color: var(--mas-border); background-color: var(--mas-d-card); }
html[data-theme="dark"] .mas-newslist__item:hover .mas-newslist__link,
html[data-theme="dark"] .mas-newslist__link:focus-visible { color: var(--mas-d-link); }
html[data-theme="dark"] .mas-noticeboard__item { background-color: var(--mas-d-card); }
html[data-theme="dark"] .mas-noticeboard__date { color: var(--mas-d-red); }
html[data-theme="dark"] .mas-noticeboard__item:hover .mas-noticeboard__link,
html[data-theme="dark"] .mas-noticeboard__link:focus-visible { color: var(--mas-d-link); }
html[data-theme="dark"] .mas-quickbar { background-color: var(--mas-d-card); }
html[data-theme="dark"] .mas-quickbar__link { color: var(--mas-d-heading) !important; }
html[data-theme="dark"] .home-style2 .mas-sechead__title { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-photocard { background-color: var(--mas-d-card); }
html[data-theme="dark"] .home-style2 .mas-photocard__title { color: var(--mas-d-heading); }
html[data-theme="dark"] .home-style2 .mas-spotlight__title { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-spotlight__person strong { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-mosaic__item { background-color: var(--mas-d-card); }
html[data-theme="dark"] .home-style2 .mas-mosaic__title { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-fact__num { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-testimonials .mas-carousel__pause { background-color: var(--mas-d-card); color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-quote { background-color: var(--mas-d-card); }
html[data-theme="dark"] .mas-quote__more { color: var(--mas-d-link); }
html[data-theme="dark"] .mas-pagehead { background-color: var(--mas-d-card); }
html[data-theme="dark"] .mas-sheet { background-color: var(--mas-d-card); }
html[data-theme="dark"] .mas-page .table,
html[data-theme="dark"] .mas-table-wrap { background-color: var(--mas-d-card); }
html[data-theme="dark"] .mas-footer__social a:hover { background-color: var(--mas-d-card); color: var(--mas-d-heading); }
@media (max-width: 767.98px) and (min-height: 501px) {
	html[data-theme="dark"] .mas-actionbar { background-color: var(--mas-d-card); }
	html[data-theme="dark"] .mas-actionbar a { color: var(--mas-d-heading); }
	html[data-theme="dark"] .mas-actionbar a:hover { color: var(--mas-d-heading); }
	html[data-theme="dark"] .mas-actionbar .fa { color: var(--mas-d-link); }
}
html[data-theme="dark"] .mas-courses__count strong { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-courses__filter .form-control { border-color: var(--mas-d-blue-border); background-color: var(--mas-d-card); }
html[data-theme="dark"] .mas-courses__none { background-color: var(--mas-d-card); }
html[data-theme="dark"] .mas-course { background-color: var(--mas-d-card); }
html[data-theme="dark"] .mas-course__meta { color: var(--mas-d-link); }
html[data-theme="dark"] .home-style2 .mas-course__title { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-chip { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-chip--fee { background-color: var(--mas-d-green-bg); color: var(--mas-d-green); }
html[data-theme="dark"] .mas-coursenote__facts strong { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-factlist dd { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-office .fa { color: var(--mas-d-link); }
html[data-theme="dark"] .mas-office__links a { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-office__links a:hover { color: var(--mas-d-red); }
html[data-theme="dark"] .mas-office__mapbtn { color: var(--mas-d-link); }
html[data-theme="dark"] .mas-form__field label { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-form .form-control { border-color: var(--mas-d-blue-border); background-color: var(--mas-d-card); }
html[data-theme="dark"] .mas-mappanel__placeholder .fa { color: var(--mas-d-link); }
html[data-theme="dark"] .mas-faq__item { background-color: var(--mas-d-card); }
html[data-theme="dark"] .mas-faq__q { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-faq__q:hover { color: var(--mas-d-red); }
html[data-theme="dark"] .mas-faq__num { color: var(--mas-d-link); }
html[data-theme="dark"] .mas-faq__sub { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-linkrows a { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-linkrows a:hover { color: var(--mas-d-red); }
html[data-theme="dark"] .mas-backlink { color: var(--mas-d-link); }
html[data-theme="dark"] .mas-batches a { background-color: var(--mas-d-card); }
html[data-theme="dark"] .mas-batches strong { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-batches a:hover,
html[data-theme="dark"] .mas-batches a:focus-visible { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-roster__table th { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-roster__table tbody tr:hover { background-color: var(--mas-d-blue-bg); }
html[data-theme="dark"] .mas-typebtn { border-color: var(--mas-d-blue-border); background-color: var(--mas-d-card); color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-notice__date { color: var(--mas-d-link); }
html[data-theme="dark"] .mas-notice__date strong { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-notice__link { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-notice:hover .mas-notice__link,
html[data-theme="dark"] .mas-notice__link:focus-visible { color: var(--mas-d-red); }
html[data-theme="dark"] .home-style2 .mas-newscard__title { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-newscard:hover .mas-newscard__title a,
html[data-theme="dark"] .mas-newscard__title a:focus-visible { color: var(--mas-d-red); }
html[data-theme="dark"] .mas-chip--link { border-color: var(--mas-d-blue-border); background-color: var(--mas-d-card); }
html[data-theme="dark"] .mas-chip--link:hover { color: var(--mas-d-heading); }
html[data-theme="dark"] .home-style2 .mas-person__name { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-person--link:hover .mas-person__name a,
html[data-theme="dark"] .mas-person__name a:focus-visible { color: var(--mas-d-red); }
html[data-theme="dark"] .mas-person__role { color: var(--mas-d-red); }
html[data-theme="dark"] .mas-people--wide .mas-person { background-color: var(--mas-d-card); }
html[data-theme="dark"] .mas-profile__role { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-profile__none { background-color: var(--mas-d-card); }
html[data-theme="dark"] .mas-admitform__alert { background-color: var(--mas-d-red-bg); color: var(--mas-d-red); }
html[data-theme="dark"] .mas-admitform .form-label { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-admitform .form-control { border-color: var(--mas-d-blue-border); background-color: var(--mas-d-card); }
html[data-theme="dark"] .mas-albumcard { background-color: var(--mas-d-card); }
html[data-theme="dark"] .home-style2 .mas-albumcard__title { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-albumcard:hover .mas-albumcard__title a,
html[data-theme="dark"] .mas-albumcard__title a:focus-visible { color: var(--mas-d-red); }
html[data-theme="dark"] .mas-videocard__btn::after { border-color: var(--mas-border); }
html[data-theme="dark"] .home-style2 .mas-videocard__title { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-prose .mas-emptypage__title { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-jp__legend { border-top-color: var(--mas-border); }
html[data-theme="dark"] .home-style2 .mas-jp__title { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-jp__cardtitle a { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-jp__card:hover .mas-jp__cardtitle a { color: var(--mas-d-link); }
html[data-theme="dark"] .mas-jp__cardnum strong { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-jp__table thead th { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-jp__table tbody th { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-jp__table td.mas-jp__placed { color: var(--mas-d-green); }
html[data-theme="dark"] .mas-jp__table tbody tr:hover { background-color: var(--mas-d-blue-bg); }
html[data-theme="dark"] .home-style2 .mas-allcourses__title { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-timeline__item::after { background-color: var(--mas-d-card); }
html[data-theme="dark"] .mas-timeline__year { color: var(--mas-d-heading); }
html[data-theme="dark"] .home-style2 .mas-career__pathtitle { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-ladder__num { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-ladder__title { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-bma__stats dd { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-bma__years th { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-bma__year > summary:hover .mas-bma__yearname { color: var(--mas-d-link); }
html[data-theme="dark"] .mas-bma__yearname { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-bma__table thead th { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-bma__table tbody th { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-bma__table tbody tr:hover { background-color: var(--mas-d-blue-bg); }
@media (min-width: 992px) {
	html[data-theme="dark"] .mas-acad__stat + .mas-acad__stat { border-top-color: var(--mas-border); }
}
html[data-theme="dark"] .home-style2 .mas-acad__aimtitle { color: var(--mas-d-link); }
html[data-theme="dark"] .mas-acad__aimtext { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-acad__row dd { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-acad__row dd a { color: var(--mas-d-link); }
html[data-theme="dark"] .mas-acad__row dd a:hover { color: var(--mas-d-heading); }
html[data-theme="dark"] .home-style2 .mas-acad__intaketitle { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-acad__intakenums strong { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-acad__num strong { color: var(--mas-d-heading); }
html[data-theme="dark"] .home-style2 .mas-acad__countname { color: var(--mas-d-heading); }
html[data-theme="dark"] .home-style2 .mas-adm__navtitle { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-adm__cardlink { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-adm__card:hover .mas-adm__cardlink { color: var(--mas-d-link); }
html[data-theme="dark"] .home-style2 .mas-adm__title { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-adm__body li::marker { color: var(--mas-d-link); }
html[data-theme="dark"] .mas-adm__top a { color: var(--mas-d-link); }
html[data-theme="dark"] .mas-prose ol.mas-steps > li::before { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-prose ol.mas-steps > li:last-child { color: var(--mas-d-heading); }
html[data-theme="dark"] .home-style2 .mas-fac__title { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-fac__card { background-color: var(--mas-d-card); }
html[data-theme="dark"] .mas-fac__icon { color: var(--mas-d-green); }
html[data-theme="dark"] .mas-fac__label { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-jp__cardpct { color: var(--mas-d-green); }
html[data-theme="dark"] .mas-jp__table tfoot th,
html[data-theme="dark"] .mas-jp__table tfoot td { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-sdb__find label { color: var(--mas-d-heading); }
html[data-theme="dark"] .home-style2 .mas-sdb__year { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-batch { background-color: var(--mas-d-card); }
html[data-theme="dark"] .mas-batch__link { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-batch:hover .mas-batch__link { color: var(--mas-d-link); }
html[data-theme="dark"] .mas-batch__status { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-batch--now .mas-batch__status { background-color: var(--mas-d-green-bg); color: var(--mas-d-green); }
html[data-theme="dark"] .mas-batch--soon .mas-batch__status { background-color: var(--mas-d-amber-bg); color: var(--mas-d-amber); }
html[data-theme="dark"] .mas-roster__table tbody th { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-roster__table tbody tr:hover { background-color: var(--mas-d-blue-bg); }
html[data-theme="dark"] .mas-sdb__pagelink { background-color: var(--mas-d-card); color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-sdb__pagelink:hover { color: var(--mas-d-link); }
html[data-theme="dark"] .mas-facpage .mas-prose blockquote { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-facpage__nav .mas-linkrows a.is-current { color: var(--mas-d-link); }
html[data-theme="dark"] .mas-letter__portrait { background-color: var(--mas-d-card); }
html[data-theme="dark"] .mas-letter__portrait figcaption strong { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-letter__sign-name { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-reasons__icon { color: var(--mas-d-green); }
html[data-theme="dark"] .mas-statement { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-post__page figcaption a { color: var(--mas-d-link); }
html[data-theme="dark"] .home-style2 .mas-post__photostitle { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-post__pagelink { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-post__pagelink:hover { color: var(--mas-d-link); }
html[data-theme="dark"] .mas-post__latestlist a { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-post__latestlist a:hover { color: var(--mas-d-link); }
html[data-theme="dark"] .mas-topbar .mas-theme-toggle { color: var(--mas-d-heading); }
html[data-theme="dark"] .mas-topbar .mas-theme-toggle:hover { color: var(--mas-d-red); }
html[data-theme="dark"] .mas-topbar .mas-theme-toggle svg { color: var(--mas-d-link); }
