/* ==========================================================================
   MCS 2026 redesign — navy / teal / gold, editorial serif headlines.
   Loaded last in layout.tsx so it wins over legacy styles.
   ========================================================================== */

:root {
  --m-navy: #12355b;
  --m-navy-deep: #0d2a47;
  --m-ink: #15304d;
  --m-teal: #136f7c; /* darker teal so small text passes WCAG AA (4.5:1) */
  --m-teal-soft: #7fd3dc;
  --m-gold: #f5cf72;
  --m-gold-deep: #e9bb4d;
  --m-tint: #f1f7f9;
  --m-tint-2: #e8f2f5;
  --m-line: #dbe6ec;
  --m-muted: #5a6e82;
  --m-white: #ffffff;
  --m-serif: 'Source Serif 4', Georgia, 'Times New Roman', serif;
  --m-sans: 'Inter', 'DM Sans', system-ui, -apple-system, Arial, sans-serif;
  --m-radius: 12px;
  --m-shadow: 0 14px 34px rgba(13, 42, 71, 0.08);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--m-white); color: var(--m-ink); font-family: var(--m-sans); -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; }
h1, h2, h3, p { margin: 0; }
.ic { width: 1em; height: 1em; flex: 0 0 auto; }
.m-skip { position: absolute; left: 12px; top: -60px; z-index: 100; padding: 10px 16px; border-radius: 8px; background: var(--m-navy); color: #fff; font-weight: 700; }
.m-skip:focus { top: 12px; }
a:focus-visible, button:focus-visible, summary:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid var(--m-teal); outline-offset: 3px; }

.m-wrap { width: min(1180px, calc(100% - 48px)); margin: 0 auto; }


/* Safety nets for every browser: nothing wider than the screen, images never overflow, no accidental text zoom. */
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
html, body { max-width: 100%; overflow-x: clip; }
@supports not (overflow-x: clip) { html, body { overflow-x: hidden; } }
img, svg, video, iframe { max-width: 100%; height: auto; }
.m-wrap { box-sizing: border-box; }
table { max-width: 100%; }
a, p, li, td, h1, h2, h3 { overflow-wrap: anywhere; }

/* ---------- Type ---------- */
.m-eyebrow { margin: 0 0 14px; color: var(--m-teal); font: 700 11px/1.2 var(--m-sans); letter-spacing: .16em; text-transform: uppercase; }
.m-eyebrow-light { color: var(--m-teal-soft); }
.m-title { margin: 0; color: var(--m-navy); font: 700 clamp(34px, 4vw, 52px)/1.04 var(--m-serif); letter-spacing: -.02em; }
.m-title em { color: var(--m-teal); font-style: italic; font-weight: 600; }
.m-title-light { color: #fff; }
.m-title-light em { color: var(--m-teal-soft); }
.m-title-sm { font-size: clamp(30px, 3.2vw, 42px); }
.m-title .m-italic-navy { color: var(--m-navy); }
.m-copy { max-width: 520px; margin: 18px 0 26px; color: var(--m-muted); font-size: 15.5px; line-height: 1.7; }
.m-copy-light { color: #cfdbe6; }
.m-link { display: inline-flex; align-items: center; gap: 8px; color: var(--m-navy); font-weight: 700; font-size: 14px; transition: gap .2s ease, color .2s ease; }
.m-link:hover { gap: 12px; color: var(--m-teal); }

/* ---------- Buttons (house button: pill, soft gradient, gentle lift) ---------- */
.m-btn { display: inline-flex; align-items: center; justify-content: center; gap: 9px; padding: .85rem 1.9rem; border: 1px solid #cfe0ee; border-radius: 999px; background: linear-gradient(180deg, #ffffff, #eef5fb); color: var(--m-navy); font: 800 1.05rem/1.1 var(--m-sans); white-space: nowrap; cursor: pointer; box-shadow: inset 0 1px 0 rgba(255,255,255,.8), 0 6px 18px -10px rgba(13,42,71,.55); transition: transform .2s ease, box-shadow .2s ease, background .2s ease, color .2s ease, border-color .2s ease; }
.m-btn svg { width: 18px; height: 18px; }
.m-btn:hover { transform: translateY(-2px); box-shadow: inset 0 1px 0 rgba(255,255,255,.8), 0 10px 22px -10px rgba(13,42,71,.6); }
.m-btn:active { transform: translateY(0) scale(.985); box-shadow: inset 0 2px 4px rgba(13,42,71,.18), 0 3px 10px -8px rgba(13,42,71,.5); transition-duration: .08s; }
.m-btn:focus-visible, .m-nav a:focus-visible, .m-step-card:focus-visible, .m-news-list a:focus-visible { outline: 3px solid var(--m-teal-soft); outline-offset: 3px; }
.m-btn:hover svg { transform: translateX(2px); } .m-btn svg { transition: transform .2s ease; }
/* Gold: the house call-to-action, from the MCS palette */
.m-btn-gold { border-color: #d9ab3c; background: linear-gradient(180deg, #f9dd8f, #e9bb4d); color: var(--m-navy-deep); box-shadow: inset 0 1px 0 rgba(255,255,255,.55), 0 6px 18px -10px rgba(233,187,77,.95); }
.m-btn-gold:hover { background: linear-gradient(180deg, #fbe39d, #e2b13f); box-shadow: inset 0 1px 0 rgba(255,255,255,.55), 0 10px 22px -10px rgba(233,187,77,1); }
.m-btn-gold:active { box-shadow: inset 0 2px 4px rgba(120,80,0,.25), 0 3px 10px -8px rgba(233,187,77,.8); }
/* Navy: solid button on light backgrounds */
.m-btn-navy { border-color: #0d2a47; background: linear-gradient(180deg, #1f4f7e, #12355b); color: #fff; box-shadow: inset 0 1px 0 rgba(255,255,255,.22), 0 6px 18px -10px rgba(18,53,91,.95); }
.m-btn-navy:hover { background: linear-gradient(180deg, #245a8e, #0f2f52); box-shadow: inset 0 1px 0 rgba(255,255,255,.22), 0 10px 22px -10px rgba(18,53,91,1); }
.m-btn-navy:active { box-shadow: inset 0 2px 5px rgba(0,0,0,.35), 0 3px 10px -8px rgba(18,53,91,.8); }
/* Teal: eye-catching glass button on photos (second hero button) */
.m-btn-teal { border-color: #5fc3cf; background: linear-gradient(180deg, #3fb5c4, #1a8696); color: #fff; box-shadow: inset 0 1px 0 rgba(255,255,255,.4), 0 6px 18px -10px rgba(26,134,150,1), 0 0 0 3px rgba(127,211,220,.25); }
.m-btn-teal:hover { background: linear-gradient(180deg, #4cc3d2, #157a89); box-shadow: inset 0 1px 0 rgba(255,255,255,.4), 0 10px 24px -10px rgba(26,134,150,1), 0 0 0 4px rgba(127,211,220,.35); }
.m-btn-teal:active { box-shadow: inset 0 2px 5px rgba(0,0,0,.3), 0 3px 10px -8px rgba(26,134,150,.8); }
/* Ghost: glass on dark photos */
.m-btn-ghost { border-color: rgba(255,255,255,.75); background: linear-gradient(180deg, rgba(255,255,255,.14), rgba(255,255,255,.04)); color: #fff; box-shadow: inset 0 1px 0 rgba(255,255,255,.3), 0 6px 18px -10px rgba(0,0,0,.6); backdrop-filter: blur(6px); }
.m-btn-ghost:hover { border-color: #fff; background: rgba(255,255,255,.2); }
.m-btn-ghost:active { background: rgba(255,255,255,.1); box-shadow: inset 0 2px 4px rgba(0,0,0,.3); }
.m-btn-outline { color: var(--m-navy); }
.m-btn-sm { padding: .6rem 1.2rem; font-size: .92rem; }

/* ---------- Header ---------- */
.m-header-shell { position: sticky; top: 0; z-index: 50; }
.m-utility { background: var(--m-white); border-bottom: 1px solid var(--m-line); color: var(--m-muted); font-size: 12px; }
.m-utility .m-wrap { display: flex; justify-content: space-between; align-items: center; gap: 16px; min-height: 36px; }
.m-utility a, .m-utility-address { display: inline-flex; align-items: center; gap: 6px; color: var(--m-muted); }
.m-utility a:hover { color: var(--m-teal); }
.m-utility svg { width: 13px; height: 13px; color: var(--m-teal); }
.m-utility-links { display: inline-flex; align-items: center; gap: 20px; }
.m-header { background: rgba(255,255,255,.96); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border-bottom: 1px solid var(--m-line); box-shadow: 0 6px 18px rgba(13,42,71,.04); }
.m-navrow { display: flex; align-items: center; gap: 24px; min-height: 76px; }
.m-brand { display: inline-flex; align-items: center; gap: 12px; flex: 0 0 auto; color: var(--m-navy); }
.m-brand img { width: 50px; height: 50px; object-fit: contain; }
.m-brand span { display: flex; flex-direction: column; font: 800 15px/1.05 var(--m-sans); letter-spacing: .02em; text-transform: uppercase; }
.m-brand small { font-size: 10.5px; font-weight: 700; letter-spacing: .14em; color: var(--m-muted); }
.m-brand-light { color: #fff; }
.m-brand-light small { color: #b9cad9; }
.m-brand-light img { background: #fff; border-radius: 50%; padding: 3px; }
.m-nav { display: flex; align-items: center; justify-content: center; gap: 4px; flex: 1; min-width: 0; }
.m-nav a { position: relative; padding: 10px 10px; color: var(--m-ink); font: 500 13.5px/1 var(--m-sans); white-space: nowrap; transition: color .2s ease; }
.m-nav a::after { content: ''; position: absolute; left: 10px; right: 10px; bottom: 2px; height: 2px; border-radius: 2px; background: var(--m-teal); transform: scaleX(0); transform-origin: left; transition: transform .25s ease; }
.m-nav a:hover, .m-nav a[aria-current="page"] { color: var(--m-teal); }
.m-nav a:hover::after, .m-nav a[aria-current="page"]::after { transform: scaleX(1); }
.m-nav-tools { display: flex; align-items: center; gap: 10px; flex: 0 0 auto; }
.m-menu { position: relative; display: none; } /* solo cuando el menú principal se esconde */
.m-menu summary { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 8px; color: var(--m-navy); cursor: pointer; list-style: none; transition: background .2s ease; }
.m-menu summary::-webkit-details-marker { display: none; }
.m-menu summary:hover { background: var(--m-tint); }
.m-menu summary svg { width: 22px; height: 22px; }
.m-menu .m-menu-close, .m-menu[open] .m-menu-open { display: none; }
.m-menu[open] .m-menu-close { display: block; }
.m-menu-panel { position: absolute; right: 0; top: calc(100% + 12px); display: grid; min-width: 260px; padding: 10px; border: 1px solid var(--m-line); border-radius: var(--m-radius); background: #fff; box-shadow: 0 24px 48px rgba(13,42,71,.16); }
.m-menu-panel > a { padding: 11px 12px; border-radius: 8px; color: var(--m-ink); font-size: 14px; font-weight: 500; }
.m-menu-panel > a:hover { background: var(--m-tint); color: var(--m-teal); }
.m-menu-lang { display: none; padding: 10px 12px 4px; border-top: 1px solid var(--m-line); margin-top: 6px; }

/* Language switch (shared component) */
.m-lang { display: inline-flex; gap: 2px; padding: 2px; border: 1px solid var(--m-line); border-radius: 999px; background: var(--m-tint); }
.m-lang a { display: inline-grid; place-items: center; min-width: 30px; height: 22px; padding: 0 8px; border-radius: 999px; color: var(--m-muted); font-size: 11px; font-weight: 700; letter-spacing: .04em; transition: transform .15s ease, background .15s ease, color .15s ease; }
.m-lang a:hover { background: #fff; color: var(--m-navy); }
.m-lang a:active { transform: scale(.94); }
.m-lang a.active { background: linear-gradient(180deg, #1f4f7e, #12355b); color: #fff; box-shadow: inset 0 1px 0 rgba(255,255,255,.25); }

/* ---------- Hero ---------- */
.m-hero { position: relative; overflow: hidden; min-height: clamp(520px, 72vh, 680px); display: flex; align-items: center; background: var(--m-navy-deep); color: #fff; }
.m-slide { position: absolute; inset: 0; display: flex; align-items: center; opacity: 0; visibility: hidden; transition: opacity .7s ease, visibility .7s; }
.m-slide.is-active { position: relative; opacity: 1; visibility: visible; width: 100%; min-height: inherit; }
.m-hero-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 62% center; }
.m-slide.is-active .m-hero-img { animation: m-hero-in 1.1s ease both; }
.m-slide.is-active .m-hero-copy { animation: m-rise .8s .1s ease both; }
.m-hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(10,32,56,.92) 0%, rgba(10,32,56,.78) 34%, rgba(10,32,56,.25) 62%, rgba(10,32,56,.05) 100%); }
.m-slide.is-poster .m-hero-img { object-fit: contain; object-position: right center; background: #f4f6f8; }
.m-slide.is-poster .m-hero-shade { background: linear-gradient(90deg, rgba(10,32,56,.96) 0%, rgba(10,32,56,.9) 40%, rgba(10,32,56,0) 58%); }
.m-hero-content { position: relative; z-index: 1; padding: 80px 0 104px; }
.m-hero-copy { max-width: 560px; }
.m-hero-title { margin: 0; color: #fff; font: 700 clamp(44px, 5.6vw, 72px)/1.02 var(--m-serif); letter-spacing: -.025em; }
.m-hero-title em { color: var(--m-teal-soft); font-style: italic; font-weight: 600; }
.m-hero-lede { max-width: 440px; margin: 22px 0 32px; color: #dbe6ef; font-size: 16.5px; line-height: 1.65; }
.m-actions { display: flex; flex-wrap: wrap; gap: 14px; }
.m-hero-controls { position: absolute; z-index: 2; left: 50%; bottom: 26px; transform: translateX(-50%); display: flex; align-items: center; gap: 14px; }
.m-hero-arrow { display: grid; place-items: center; width: 36px; height: 36px; border: 1px solid rgba(255,255,255,.6); border-radius: 50%; background: linear-gradient(180deg, rgba(255,255,255,.22), rgba(255,255,255,.06)); color: #fff; font-size: 15px; cursor: pointer; box-shadow: inset 0 1px 0 rgba(255,255,255,.35), 0 6px 14px -8px rgba(0,0,0,.7); backdrop-filter: blur(6px); transition: transform .2s ease, background .2s ease, box-shadow .2s ease; }
.m-hero-arrow:hover { transform: translateY(-2px); background: rgba(255,255,255,.26); }
.m-hero-arrow:active { transform: translateY(0) scale(.95); background: rgba(255,255,255,.12); box-shadow: inset 0 2px 4px rgba(0,0,0,.35); }
.m-hero-dots { display: flex; gap: 8px; }
.m-hero-dots { gap: 0 !important; }
.m-hero-dots button { width: 25px; height: 24px; padding: 0; border: 0; background: transparent; cursor: pointer; display: grid; place-items: center; transition: width .25s ease; }
.m-hero-dots button::before { content: ''; display: block; width: 9px; height: 9px; border-radius: 999px; background: rgba(255,255,255,.45); transition: width .25s ease, background .25s ease; }
.m-hero-dots button.active { width: 42px; } .m-hero-dots button.active::before { width: 26px; background: var(--m-gold); }
@keyframes m-hero-in { from { opacity: .3; transform: scale(1.04); } to { opacity: 1; transform: scale(1); } }
@keyframes m-rise { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }

/* ---------- Trust strip ---------- */
.m-trust { background: var(--m-tint); border-bottom: 1px solid var(--m-line); }
.m-trust .m-wrap { display: flex; justify-content: space-between; align-items: center; gap: 14px; min-height: 64px; flex-wrap: wrap; padding: 12px 0; }
.m-trust span { text-transform: uppercase; display: inline-flex; align-items: center; gap: 8px; color: var(--m-navy); font-size: 11.5px; font-weight: 700; letter-spacing: .07em; white-space: nowrap; }
@media (max-width: 1179px) { .m-trust .m-wrap { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 18px; } .m-trust span { white-space: normal; } }
.m-trust svg { width: 20px; height: 20px; color: var(--m-teal); stroke-width: 1.7; }

/* ---------- Sections ---------- */
.m-section { padding: 96px 0; background: #fff; }
.m-section.m-tint { background: var(--m-tint); }
.m-section-tight { padding: 56px 0; }
.m-section-last { padding-bottom: 96px; }
.m-split { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; }
.m-split-steps { grid-template-columns: .85fr 1.15fr; }
.m-split-head { align-items: end; }
.m-split-head .m-copy { margin-top: 0; }
.m-split-pay { grid-template-columns: .8fr 1.2fr; }

/* Next-step cards */
.m-step-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.m-step-card { position: relative; display: flex; flex-direction: column; min-height: 230px; padding: 24px 22px 54px; border: 1px solid var(--m-line); border-radius: var(--m-radius); background: #fff; box-shadow: var(--m-shadow); transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.m-step-card:hover { transform: translateY(-6px); border-color: rgba(26,134,150,.35); box-shadow: 0 22px 40px rgba(13,42,71,.12); }
.m-step-card small { color: var(--m-teal); font-size: 11px; font-weight: 700; letter-spacing: .1em; }
.m-step-icon { width: 30px; height: 30px; margin: 18px 0 14px; color: var(--m-teal); stroke-width: 1.5; }
.m-step-card strong { color: var(--m-navy); font: 700 21px/1.15 var(--m-serif); }
.m-step-card span { margin-top: 10px; color: var(--m-muted); font-size: 13.5px; line-height: 1.55; }
.m-step-arrow { position: absolute; right: 20px; bottom: 20px; width: 18px; height: 18px; color: var(--m-navy); transition: transform .25s ease; }
.m-step-card:hover .m-step-arrow { transform: translateX(4px); color: var(--m-teal); }

/* Pillars */
.m-pillars { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 56px; border-top: 1px solid var(--m-line); }
.m-pillars article { padding: 36px 28px 8px; border-left: 1px solid var(--m-line); }
.m-pillars article:first-child { border-left: 0; padding-left: 0; }
.m-icon-badge { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 50%; background: var(--m-tint-2); color: var(--m-teal); }
.m-icon-badge svg { width: 21px; height: 21px; stroke-width: 1.8; }
.m-pillars h3 { margin: 18px 0 8px; color: var(--m-navy); font: 700 16px/1.3 var(--m-sans); letter-spacing: 0; }
.m-pillars p { margin: 0; color: var(--m-muted); font-size: 14px; line-height: 1.6; }

/* Navy band */
.m-band { position: relative; overflow: hidden; padding: 84px 0; background: linear-gradient(115deg, var(--m-navy-deep), var(--m-navy) 60%, #164a6f); color: #fff; }
.m-band::after { content: ''; position: absolute; right: -120px; top: -160px; width: 420px; height: 420px; border-radius: 50%; border: 60px solid rgba(127,211,220,.06); }
.m-band .m-copy { margin-top: 0; }
.m-band .m-wrap { position: relative; z-index: 1; }

/* Scholarship partner */
.m-inline-actions { display: flex; align-items: center; gap: 28px; flex-wrap: wrap; }
.m-partner { height: 56px; width: auto; }

/* Photo band */
.m-photo-band { position: relative; overflow: hidden; display: flex; align-items: center; min-height: 460px; background: var(--m-navy-deep); }
.m-photo-band-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 92% center; }
.m-photo-band-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(10,32,56,.94) 0%, rgba(10,32,56,.8) 38%, rgba(10,32,56,.15) 72%); }
.m-photo-band-copy { position: relative; z-index: 1; padding: 80px 0; }
.m-photo-band-copy .m-copy { max-width: 420px; }

/* News list */
.m-news-head { display: flex; justify-content: space-between; align-items: end; gap: 24px; margin-bottom: 36px; }
.m-news-list { border-top: 1px solid var(--m-line); }
.m-news-list a { display: grid; grid-template-columns: 110px 1fr auto; gap: 24px; align-items: center; padding: 22px 6px; border-bottom: 1px solid var(--m-line); transition: background .2s ease, padding .2s ease; }
.m-news-list a:hover { background: var(--m-tint); padding-left: 14px; padding-right: 14px; }
.m-news-list b { text-transform: uppercase; color: var(--m-teal); font-size: 12px; font-weight: 700; letter-spacing: .1em; }
.m-news-list strong { display: block; color: var(--m-navy); font-size: 15.5px; font-weight: 700; }
.m-news-list span { display: block; margin-top: 4px; color: var(--m-muted); font-size: 13.5px; }
.m-news-list svg { width: 20px; height: 20px; color: var(--m-teal); transition: transform .2s ease; }
.m-news-list a:hover svg { transform: translate(3px, -3px); }

/* Feature / MCS Connect */
.m-feature { display: grid; grid-template-columns: 1.05fr 1fr; gap: 56px; align-items: center; padding: 40px; border-radius: 18px; background: var(--m-tint); }
.m-media-card { position: relative; display: block; overflow: hidden; aspect-ratio: 16 / 10; border: 6px solid #fff; border-radius: 12px; box-shadow: var(--m-shadow); background: var(--m-navy); }
.m-media-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 20% 85%; transition: transform .6s ease; }
.m-media-card:hover .m-media-img { transform: scale(1.04); }
.m-media-card::after { content: none; }
.m-play { position: absolute; z-index: 1; left: 50%; top: 45%; transform: translate(-50%, -50%); display: grid; place-items: center; width: 62px; height: 62px; border-radius: 50%; background: rgba(255,255,255,.92); color: var(--m-navy); box-shadow: 0 10px 26px rgba(0,0,0,.25); transition: transform .25s ease; }
.m-play svg { width: 22px; height: 22px; margin-left: 3px; fill: currentColor; }
.m-media-card:hover .m-play { transform: translate(-50%, -50%) scale(1.08); }
.m-media-caption { position: absolute; z-index: 1; left: 0; right: 0; bottom: 0; padding: 12px 18px; background: rgba(13,42,71,.94); color: #fff; }
.m-media-caption strong { display: block; font: 700 18px/1.2 var(--m-serif); }
.m-media-caption span { color: #cfdbe6; font-size: 12px; }

/* Payments */
.m-pay-grid { display: grid; grid-template-columns: repeat(3, 1fr); }
.m-pay-grid a { display: flex; flex-direction: column; gap: 8px; padding: 6px 26px; border-left: 1px solid var(--m-line); transition: color .2s ease; }
.m-pay-grid svg { width: 22px; height: 22px; color: var(--m-teal); stroke-width: 1.7; margin-bottom: 6px; }
.m-pay-grid strong { color: var(--m-navy); font-size: 14.5px; }
.m-pay-grid span { color: var(--m-muted); font-size: 13px; line-height: 1.55; overflow-wrap: anywhere; }
.m-pay-grid a:hover strong { color: var(--m-teal); }

/* Contact panel */
.m-contact { display: grid; grid-template-columns: 1fr 1fr auto; gap: 40px; align-items: center; padding: 44px 48px; border-radius: 18px; background: var(--m-tint); }
.m-contact-lines { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
.m-contact-lines li { display: flex; align-items: flex-start; gap: 12px; color: var(--m-ink); font-size: 14px; line-height: 1.5; }
.m-contact-lines svg { flex: 0 0 auto; width: 17px; height: 17px; margin-top: 2px; color: var(--m-teal); }
.m-contact-lines a:hover { color: var(--m-teal); }

/* ---------- Footer ---------- */
footer.m-footer { position: relative; overflow: hidden; padding: 72px 0 0; background: var(--m-navy-deep); color: #c9d6e2; }
footer.m-footer::after { content: ''; position: absolute; right: -180px; top: -220px; width: 520px; height: 520px; border-radius: 50%; background: radial-gradient(circle, rgba(127,211,220,.10), rgba(127,211,220,0) 70%); opacity: 1; }
.m-footer-grid { position: relative; z-index: 1; display: grid; grid-template-columns: 1.3fr .9fr .9fr 1.6fr; gap: 36px; padding-bottom: 52px; }
.m-footer-hours span { white-space: nowrap; }
/* «Get the app» strip — site palette only: navy, teal, gold. */
.m-app-strip { position: relative; z-index: 1; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 14px 18px; margin-bottom: 28px; padding: 18px 22px; border: 1px solid rgba(127,211,220,.2); border-radius: 22px; background: radial-gradient(circle at 0% 100%, rgba(127,211,220,.12), transparent 45%), radial-gradient(circle at 100% 0%, rgba(127,211,220,.10), transparent 40%), var(--m-navy); }
.m-app-strip-label { display: inline-flex; align-items: center; gap: 10px; color: #fff; font-size: 16px; font-weight: 700; }
.m-app-strip-label .ic { width: 22px; height: 22px; color: var(--m-teal-soft); }
.m-app-strip-links { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 10px; }
.m-app-btn { display: inline-flex; align-items: center; gap: 9px; padding: 11px 18px; border: 1px solid rgba(255,255,255,.22); border-radius: 999px; color: #fff; font-size: 14.5px; font-weight: 700; text-decoration: none; transition: transform .15s, background .15s, border-color .15s; }
.m-app-btn .ic { width: 18px; height: 18px; }
.m-app-btn.is-direct { border-color: var(--m-gold); background: linear-gradient(180deg, var(--m-gold), var(--m-gold-deep)); color: var(--m-navy-deep); box-shadow: inset 0 1px 0 rgba(255,255,255,.45), 0 10px 24px -14px rgba(245,207,114,.9); }
a.m-app-btn:hover { transform: translateY(-1px); border-color: var(--m-teal-soft); }
a.m-app-btn.is-direct:hover { border-color: var(--m-gold-deep); }
.m-app-btn.is-soon { border-style: dashed; border-color: rgba(127,211,220,.35); color: #c9d6e2; cursor: default; }
.m-app-soon { padding: 3px 9px; border-radius: 999px; background: rgba(127,211,220,.16); color: var(--m-teal-soft); font-size: 10.5px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
@media (max-width: 640px) { .m-app-strip { padding: 16px; border-radius: 18px; } .m-app-btn { padding: 10px 14px; font-size: 13.5px; } }
@media (prefers-reduced-motion: reduce) { .m-app-btn { transition: none; } }
a.m-utility-address:hover, a.m-footer-contact:hover { color: var(--m-gold); }
.m-contact-lines a { color: inherit; border-radius: 6px; transition: color .2s ease, background .2s ease; }
.m-contact-lines a:hover { color: var(--m-teal); }
.m-footer-brand p { max-width: 300px; margin: 18px 0 20px; font-size: 14px; line-height: 1.65; }
.m-footer-h { margin: 4px 0 18px; color: #fff; font: 700 13px/1 var(--m-sans); letter-spacing: .08em; text-transform: uppercase; }
.m-footer-grid > div > a:not(.m-brand) { display: block; margin-bottom: 11px; color: #c9d6e2; font-size: 14px; transition: color .2s ease; }
.m-footer-grid a:hover { color: var(--m-gold); }
.m-footer-contact, .m-footer-grid > div > a.m-footer-contact { display: flex; align-items: flex-start; gap: 10px; margin: 0 0 12px; font-size: 14px; line-height: 1.5; overflow-wrap: anywhere; }
.m-footer-contact svg { flex: 0 0 auto; width: 15px; height: 15px; margin-top: 3px; color: var(--m-teal-soft); }
.m-social { display: flex; gap: 10px; }
.m-social a { display: grid; place-items: center; width: 36px; height: 36px; border: 1px solid rgba(255,255,255,.28); border-radius: 50%; color: #fff; font: 700 15px/1 Arial, sans-serif; transition: background .2s ease, border-color .2s ease, transform .2s ease; }
.m-social a:hover { background: rgba(255,255,255,.12); border-color: #fff; transform: translateY(-3px); }
.m-social svg { width: 15px; height: 15px; }
.m-footer-bottom { position: relative; z-index: 1; display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding: 22px 0 26px; border-top: 1px solid rgba(255,255,255,.12); color: #9fb2c4; font-size: 12.5px; }
.m-footer-bottom em { color: var(--m-teal-soft); }
.m-footer-bottom span:last-child { display: inline-flex; gap: 18px; }
.m-footer-bottom a:hover { color: #fff; }


/* ---------- Inner pages ---------- */
.m-page-hero { position: relative; overflow: hidden; padding: 96px 0 88px; background: linear-gradient(115deg, var(--m-navy-deep), var(--m-navy) 60%, #164a6f); color: #fff; }
.m-page-hero::after { content: ''; position: absolute; right: -140px; top: -180px; width: 460px; height: 460px; border-radius: 50%; border: 64px solid rgba(127,211,220,.06); }
.m-page-hero .m-wrap { position: relative; z-index: 1; }
.m-page-title { font-size: clamp(40px, 5vw, 64px); }
.m-page-hero .m-copy { margin-bottom: 0; }
.m-page-hero .m-btn { margin-top: 28px; }
.m-card-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 8px; }
.m-card { padding: 30px 28px; border: 1px solid var(--m-line); border-radius: var(--m-radius); background: #fff; box-shadow: var(--m-shadow); }
.m-card h2 { margin: 20px 0 10px; color: var(--m-navy); font: 700 22px/1.2 var(--m-serif); }
.m-card p { color: var(--m-muted); font-size: 14.5px; line-height: 1.65; overflow-wrap: anywhere; }
.m-card p a { color: var(--m-navy); font-weight: 600; }
.m-card p a:hover { color: var(--m-teal); }
.m-icon-badge-lg { width: 54px; height: 54px; }
.m-icon-badge-lg svg { width: 24px; height: 24px; }
.m-icon-badge-lg img { width: 26px; height: 26px; object-fit: contain; }
.m-card-logo { display: inline-block; }
.m-card-logo img { height: 54px; width: auto; }
.m-pill { display: inline-block; margin-top: 14px; padding: 7px 12px; border-radius: 999px; background: var(--m-tint-2); color: var(--m-navy); font-size: 12.5px; font-weight: 600; overflow-wrap: anywhere; }
.m-cta { display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; margin-top: 56px; padding: 44px 48px; border-radius: 18px; background: linear-gradient(115deg, var(--m-navy-deep), var(--m-navy)); }
.m-cta .m-eyebrow { margin-bottom: 10px; }

/* ---------- Contact form ---------- */
.m-form-panel { display: grid; grid-template-columns: .85fr 1.15fr; gap: 0; margin-top: 56px; overflow: hidden; border-radius: 18px; box-shadow: var(--m-shadow); }
.m-form-intro { padding: 44px 40px; background: linear-gradient(140deg, var(--m-navy-deep), var(--m-navy)); }
.m-form-phone { display: inline-flex; align-items: center; gap: 10px; color: #fff; font-weight: 700; font-size: 17px; }
.m-form-phone svg { width: 20px; height: 20px; color: var(--m-gold); }
.m-form { display: grid; grid-template-columns: 1fr 1fr; gap: 16px 18px; padding: 40px; background: #fff; border: 1px solid var(--m-line); border-left: 0; border-radius: 0 18px 18px 0; }
.m-form label { display: grid; gap: 7px; color: var(--m-navy); font-size: 13px; font-weight: 600; }
.m-form label span { color: var(--m-muted); font-weight: 400; }
.m-form input, .m-form select, .m-form textarea { width: 100%; min-height: 46px; padding: 11px 13px; border: 1px solid #c9d7e0; border-radius: 8px; background: #fbfdfe; color: var(--m-ink); font: 400 15px/1.4 var(--m-sans); }
.m-form textarea { min-height: 140px; resize: vertical; }
.m-form input:focus, .m-form select:focus, .m-form textarea:focus { border-color: var(--m-teal); background: #fff; outline: 3px solid rgba(26,134,150,.18); outline-offset: 0; }
.m-form-wide, .m-form .m-btn, .m-form-status { grid-column: 1 / -1; }
.m-form .m-btn { justify-self: start; border: 0; }
.m-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.m-form-status { padding: 12px 14px; border-radius: 8px; font-size: 14px; font-weight: 600; }
.m-form-status.is-sent { background: #e6f6ee; color: #135c3a; }
.m-form-status.is-error { background: #fdecec; color: #8a1f1f; }

/* ---------- Calendar ---------- */
.m-news-list article { display: grid; grid-template-columns: 110px 1fr; gap: 24px; align-items: center; padding: 20px 6px; border-bottom: 1px solid var(--m-line); }
.m-news-list article b { color: var(--m-teal); font-size: 12px; font-weight: 700; letter-spacing: .1em; }
.m-news-list article strong { display: block; color: var(--m-navy); font-size: 15.5px; }
.m-news-list article span { display: block; margin-top: 4px; color: var(--m-muted); font-size: 13.5px; }

/* ---------- Standards document ---------- */
.m-doc { max-width: 860px; }
.standards-document { margin-bottom: 40px; padding: 40px 44px; border: 1px solid var(--m-line); border-radius: 18px; background: #fff; box-shadow: var(--m-shadow); }
.standards-doc-header { margin-bottom: 24px; padding-bottom: 24px; border-bottom: 1px solid var(--m-line); }
.standards-doc-header .eyebrow { margin-bottom: 12px; color: var(--m-teal); font-size: 11px; font-weight: 700; letter-spacing: .16em; }
.standards-doc-header h2 { color: var(--m-navy); font: 700 clamp(30px, 3.4vw, 42px)/1.1 var(--m-serif); }
.standards-doc-header h2 em { color: var(--m-teal); }
.standards-doc-header p:last-child { margin-top: 14px; color: var(--m-muted); line-height: 1.6; }
.standards-document section + section { margin-top: 30px; }
.standards-document h3 { margin-bottom: 12px; color: var(--m-navy); font: 700 22px/1.25 var(--m-serif); }
.standards-document h4 { margin: 20px 0 6px; color: var(--m-navy); font-size: 15px; }
.standards-document p, .standards-document li { color: #3d5266; font-size: 15px; line-height: 1.7; }
.standards-document ol { margin: 10px 0 0; padding-left: 22px; }
.standards-document li + li { margin-top: 8px; }
.standards-document a { overflow-wrap: anywhere; }
.standards-contacts { margin: 18px 0; padding: 18px 20px; border-radius: 12px; background: var(--m-tint); }
.standards-contacts p + p { margin-top: 8px; }

/* Links inside texts: no underline; a soft teal chip with an arrow (↗ when it opens another site), filled on hover. */
.m-check-list a, .standards-document a, .m-chat-msg a:not(.m-chat-btn), .m-a11y-note a { display: inline; padding: 2px 8px; border-radius: 7px; background: rgba(19,111,124,.09); color: var(--m-teal); font-weight: 700; text-decoration: none; -webkit-box-decoration-break: clone; box-decoration-break: clone; transition: background .18s ease, color .18s ease; }
.m-check-list a::after, .standards-document a::after, .m-chat-msg a:not(.m-chat-btn)::after { content: '→'; display: inline-block; margin-left: 5px; font-weight: 700; transition: transform .18s ease; }
.m-check-list a[target="_blank"]::after, .standards-document a[target="_blank"]::after, .m-chat-msg a[target="_blank"]:not(.m-chat-btn)::after { content: '↗'; }
.m-check-list a:hover, .standards-document a:hover, .m-chat-msg a:not(.m-chat-btn):hover, .m-a11y-note a:hover { background: var(--m-teal); color: #fff; }
.m-check-list a:hover::after, .standards-document a:hover::after, .m-chat-msg a:not(.m-chat-btn):hover::after { transform: translateX(2px); }

.m-tipwrap { position: relative; display: inline-block; }
.m-tip { position: absolute; left: 0; bottom: calc(100% + 8px); z-index: 20; width: max-content; min-width: 220px; max-width: min(340px, calc(100vw - 32px)); white-space: normal; padding: 10px 12px; border: 1px solid var(--m-line); border-radius: 10px; background: #fff; color: var(--m-ink); font-size: 13.5px; font-weight: 500; line-height: 1.45; box-shadow: 0 14px 30px rgba(13,42,71,.18); opacity: 0; visibility: hidden; transform: translateY(4px); transition: opacity .15s ease, transform .15s ease, visibility 0s linear .15s; user-select: text; -webkit-user-select: text; cursor: text; }
.m-tip::after { content: ''; position: absolute; left: 18px; top: 100%; border: 7px solid transparent; border-top-color: #fff; }
.m-tipwrap.is-flip .m-tip { left: auto; right: 0; } .m-tipwrap.is-flip .m-tip::after { left: auto; right: 18px; }
.m-tipwrap:hover .m-tip, .m-tipwrap:focus-within .m-tip, .m-tip:hover { opacity: 1; visibility: visible; transform: translateY(0); transition-delay: 0s; }
@media (hover: none) { .m-tipwrap { display: inline; } .m-tipwrap .m-tip { position: static; display: block; width: auto; min-width: 0; max-width: 100%; margin: 4px 0 6px; padding: 6px 10px; opacity: 1; visibility: visible; transform: none; box-shadow: none; background: #fff; font-size: 13px; } .m-tip::after { display: none; } }

/* Click feedback shared by all buttons (works on touch too): a quick press plus a soft ripple */
.m-btn, .m-hero-arrow, .m-lang a, .m-chat-bubble, .m-chat-quick button, .m-banner-close, .cal-bar, .m-step-card { position: relative; overflow: hidden; -webkit-tap-highlight-color: transparent; }
.m-btn::after, .m-hero-arrow::after, .m-chat-bubble::after, .m-chat-quick button::after, .m-step-card::after { content: ''; position: absolute; left: var(--rx, 50%); top: var(--ry, 50%); width: 10px; height: 10px; border-radius: 50%; background: rgba(255,255,255,.55); transform: translate(-50%, -50%) scale(0); opacity: 0; pointer-events: none; }
.is-pressed::after { animation: m-ripple .45s ease-out; }
@keyframes m-ripple { 0% { transform: translate(-50%, -50%) scale(0); opacity: .7; } 100% { transform: translate(-50%, -50%) scale(40); opacity: 0; } }
.is-pressed { transform: translateY(1px) scale(.96) !important; filter: brightness(.92); transition-duration: .08s !important; }
.m-btn:hover { filter: brightness(1.04); }
.m-btn.is-busy { opacity: .75; pointer-events: none; }
.m-btn.is-busy svg { animation: m-spin .8s linear infinite; }
@keyframes m-spin { to { transform: rotate(360deg); } }
.m-step-card { transition: transform .2s ease, box-shadow .2s ease; }
.m-step-card:active { transform: scale(.98); }

/* Google reviews */
.m-reviews { background: var(--m-tint); }
.m-reviews-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 28px; flex-wrap: wrap; margin-bottom: 30px; }
.m-reviews-head .m-copy { margin-top: 12px; max-width: 520px; }
.m-rating { display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto; column-gap: 14px; align-items: center; padding: 16px 20px; border: 1px solid #cfe0ee; border-radius: 16px; background: linear-gradient(180deg, #fff, #eef5fb); color: var(--m-navy); box-shadow: inset 0 1px 0 rgba(255,255,255,.8), 0 10px 24px -14px rgba(13,42,71,.6); transition: transform .2s ease; }
.m-rating:hover { transform: translateY(-2px); }
.m-rating b { grid-row: span 2; font: 800 40px/1 var(--m-serif); }
.m-rating small { color: var(--m-muted); font-size: 12.5px; font-weight: 600; }
.m-stars { display: inline-flex; gap: 2px; }
.m-star { position: relative; width: 18px; height: 18px; background: #d9e1e8; -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01z'/%3E%3C/svg%3E"); -webkit-mask-position: center; mask-position: center; -webkit-mask-size: contain; mask-size: contain; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; }
.m-star.is-full { background: #f2b924; }
.m-star.is-half { background: linear-gradient(90deg, #f2b924 50%, #d9e1e8 50%); }
.m-review-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.m-review { display: flex; flex-direction: column; gap: 12px; padding: 22px; border: 1px solid var(--m-line); border-radius: 16px; background: #fff; box-shadow: var(--m-shadow); }
.m-review p { flex: 1; margin: 0; color: var(--m-ink); font-size: 14.5px; line-height: 1.6; display: -webkit-box; -webkit-line-clamp: 7; -webkit-box-orient: vertical; overflow: hidden; }
.m-review footer { display: grid; gap: 2px; padding-top: 10px; border-top: 1px solid var(--m-line); }
.m-review footer strong { color: var(--m-navy); font-size: 14px; }
.m-review footer small { color: var(--m-muted); font-size: 12.5px; }
.m-reviews .m-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 28px; }
@media (max-width: 980px) { .m-review-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 720px) { .m-review-grid { grid-template-columns: 1fr; } .m-rating { width: 100%; } }

/* Announcement bar */
.m-banner { position: relative; z-index: 60; color: #fff; font-size: 14.5px; font-weight: 600; }
.m-banner .m-wrap { display: flex; align-items: center; gap: 12px; padding-top: 10px; padding-bottom: 10px; }
.m-banner .ic { width: 20px; height: 20px; flex: 0 0 auto; }
.m-banner p { margin: 0; flex: 1; line-height: 1.4; }
.m-banner a { display: inline-block; margin-left: 6px; padding: 2px 10px; border-radius: 999px; background: rgba(255,255,255,.22); color: inherit; font-weight: 800; white-space: nowrap; transition: background .18s ease; }
.m-banner a:hover { background: rgba(255,255,255,.38); }
.m-banner-close { display: grid; place-items: center; width: 32px; height: 32px; border: 1px solid rgba(255,255,255,.5); border-radius: 50%; background: rgba(255,255,255,.14); color: #fff; cursor: pointer; transition: transform .15s ease, background .15s ease; }
.m-banner-close:hover { background: rgba(255,255,255,.28); transform: translateY(-1px); }
.m-banner-close:active { transform: scale(.94); }
.m-banner-close .ic { width: 16px; height: 16px; }
.m-banner-info { background: linear-gradient(90deg, #12355b, #1a8696); }
.m-banner-important { background: linear-gradient(90deg, #e9bb4d, #f5cf72); color: #0d2a47; }
.m-banner-important a { background: rgba(13,42,71,.1); } .m-banner-important a:hover { background: rgba(13,42,71,.2); }
.m-banner-important .m-banner-close { border-color: rgba(13,42,71,.35); background: rgba(255,255,255,.35); color: #0d2a47; }
.m-banner-urgent { background: linear-gradient(90deg, #b3261e, #d33a30); }
.m-banner.is-hidden { display: none; }

/* Assistant chat */
.m-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.m-chat { position: fixed; right: 18px; bottom: 18px; z-index: 90; font-family: var(--m-sans); }
.m-chat-bubble { display: inline-flex; align-items: center; gap: 8px; padding: 12px 18px; border: 1px solid #0d2a47; border-radius: 999px; background: linear-gradient(180deg, #1f4f7e, #12355b); color: #fff; font: 800 15px var(--m-sans); cursor: pointer; box-shadow: inset 0 1px 0 rgba(255,255,255,.22), 0 12px 28px -12px rgba(13,42,71,.9); transition: transform .2s ease, box-shadow .2s ease; }
.m-chat-bubble .ic { width: 20px; height: 20px; }
.m-chat-bubble:hover { transform: translateY(-2px); } .m-chat-bubble:active { transform: translateY(0) scale(.97); }
.m-chat.is-open .m-chat-bubble { display: none; }
.m-chat-panel { display: flex; flex-direction: column; width: min(380px, calc(100vw - 24px)); height: min(560px, calc(100vh - 36px)); border: 1px solid var(--m-line); border-radius: 18px; background: #fff; box-shadow: 0 30px 60px rgba(13,42,71,.28); overflow: hidden; }
.m-chat-head { display: flex; align-items: center; gap: 10px; padding: 12px 14px; background: linear-gradient(115deg, var(--m-navy-deep), var(--m-navy)); color: #fff; }
.m-chat-head img { border-radius: 50%; background: #fff; padding: 2px; }
.m-chat-head div { flex: 1; display: grid; line-height: 1.2; } .m-chat-head small { color: #b9cad9; font-size: 11.5px; }
.m-chat-close { display: grid; place-items: center; width: 32px; height: 32px; border: 1px solid rgba(255,255,255,.4); border-radius: 50%; background: rgba(255,255,255,.12); color: #fff; cursor: pointer; }
.m-chat-close .ic { width: 16px; height: 16px; }
.m-chat-log { flex: 1; overflow-y: auto; padding: 14px; display: grid; gap: 10px; align-content: start; background: var(--m-tint); }
.m-chat-msg { max-width: 88%; padding: 10px 13px; border-radius: 14px; font-size: 14.5px; line-height: 1.5; white-space: pre-wrap; overflow-wrap: anywhere; }
.m-chat-msg.is-bot { justify-self: start; background: #fff; border: 1px solid var(--m-line); border-bottom-left-radius: 4px; color: var(--m-ink); }
.m-chat-msg.is-user { justify-self: end; background: linear-gradient(180deg, #1f4f7e, #12355b); color: #fff; border-bottom-right-radius: 4px; }
.m-chat-msg.is-wait { color: var(--m-muted); font-style: italic; }

.m-chat-msg.is-user a { color: #fff; }
.m-chat-msg a.m-chat-btn { display: inline-flex; align-items: center; gap: 6px; margin: 6px 4px 2px 0; padding: 8px 14px; border: 1px solid #d9ab3c; border-radius: 999px; background: linear-gradient(180deg, #f9dd8f, #e9bb4d); color: var(--m-navy-deep); font: 700 13.5px var(--m-sans); text-decoration: none; box-shadow: inset 0 1px 0 rgba(255,255,255,.55), 0 6px 14px -8px rgba(233,187,77,.95); transition: transform .15s ease; }
.m-chat-msg a.m-chat-btn:hover { transform: translateY(-1px); } .m-chat-msg a.m-chat-btn:active { transform: scale(.97); }
.m-chat-msg a.m-chat-btn::after { content: '→'; }
.m-chat-msg.is-staff { justify-self: start; background: #e6f6f8; border: 1px solid #bfe3e8; border-bottom-left-radius: 4px; color: var(--m-ink); display: grid; gap: 4px; }
.m-chat-msg.is-staff small { color: var(--m-teal); font-size: 11.5px; font-weight: 700; }
.m-chat-head small::before { content: ''; display: inline-block; width: 8px; height: 8px; margin-right: 6px; border-radius: 50%; background: #94a3b8; vertical-align: 1px; }
.m-chat.is-online .m-chat-head small::before { background: #34d399; box-shadow: 0 0 0 3px rgba(52,211,153,.3); }
.m-chat.is-live .m-chat-head { background: linear-gradient(115deg, #0f6b78, var(--m-teal)); }
.m-chat-handoff p strong { color: var(--m-navy); font-size: 15px; }
.m-chat-foot { display: flex; gap: 14px; justify-content: center; }
.m-chat-quick { display: grid; gap: 6px; padding: 8px 12px 2px; max-height: 40%; overflow-y: auto; }
.m-chat-quick button { width: 100%; text-align: left; white-space: normal; display: flex; align-items: center; gap: 8px; padding: 8px 12px; }
.m-chat-quick button::before { content: '›'; color: var(--m-teal); font-weight: 800; }
.m-chat-quick button { padding: 6px 11px; border: 1px solid #cfe0ee; border-radius: 999px; background: linear-gradient(180deg, #fff, #eef5fb); color: var(--m-navy); font: 600 12.5px var(--m-sans); cursor: pointer; box-shadow: inset 0 1px 0 rgba(255,255,255,.8), 0 4px 10px -8px rgba(13,42,71,.6); transition: transform .15s ease; }
.m-chat-quick button:hover { transform: translateY(-1px); } .m-chat-quick button:active { transform: scale(.97); }
.m-chat-form { display: flex; gap: 8px; padding: 10px 12px; border-top: 1px solid var(--m-line); }
.m-chat-form input { flex: 1; min-width: 0; padding: 10px 12px; border: 1px solid var(--m-line); border-radius: 12px; font: 14.5px var(--m-sans); }
.m-chat-form input:focus { outline: 3px solid var(--m-teal-soft); outline-offset: 1px; border-color: var(--m-teal); }
.m-chat-form .m-btn { padding: 0 14px; }
.m-chat [hidden] { display: none !important; }
.m-chat-handoff { display: grid; gap: 8px; padding: 12px; border-top: 1px solid var(--m-line); background: #fff; }
.m-chat-handoff p { font-size: 13.5px; color: var(--m-muted); }
.m-chat-handoff input, .m-chat-handoff textarea { padding: 9px 11px; border: 1px solid var(--m-line); border-radius: 10px; font: 14px var(--m-sans); }
.m-chat-handoff-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.m-chat-foot { margin: 0; padding: 6px 12px 10px; text-align: center; }
.m-chat-link { border: 0; padding: 4px 10px; border-radius: 999px; background: rgba(19,111,124,.09); color: var(--m-teal); font: 700 13px var(--m-sans); cursor: pointer; } .m-chat-link:hover { background: var(--m-teal); color: #fff; }
@media (max-width: 720px) { .m-chat { right: 10px; bottom: 10px; } .m-chat-bubble span { display: none; } .m-chat-bubble { padding: 14px; } .m-chat.is-open { inset: 8px; } .m-chat-panel { width: 100%; height: 100%; } }

/* ---------- Responsive ---------- */
@media (max-width: 1400px) {
  .m-nav { display: none; }
  .m-menu { display: block; }
  .m-menu-lang { display: block; }
}
@media (max-width: 980px) {
  .m-card-grid { grid-template-columns: 1fr; }
  .m-form-panel { grid-template-columns: 1fr; }
  .m-form { border-left: 1px solid var(--m-line); border-top: 0; border-radius: 0 0 18px 18px; }
  .m-split, .m-split-steps, .m-split-pay, .m-feature { grid-template-columns: 1fr; gap: 36px; }
  .m-pillars { grid-template-columns: repeat(2, 1fr); }
  .m-pillars article:nth-child(3) { border-left: 0; padding-left: 0; }
  .m-contact { grid-template-columns: 1fr 1fr; }
  .m-contact .m-btn { grid-column: 1 / -1; justify-self: start; }
  .m-footer-grid { grid-template-columns: 1fr 1fr; }
  .m-section { padding: 72px 0; }
  .m-section-tight { padding: 44px 0; }
}
@media (max-width: 720px) {
  .m-slide { align-items: flex-end; }
  .m-page-hero { padding: 64px 0 56px; }
  .m-cta { padding: 30px 24px; }
  .m-form, .m-form-intro { padding: 28px 22px; }
  .m-form { grid-template-columns: 1fr; }
  .m-news-list article { grid-template-columns: 1fr; gap: 6px; }
  .standards-document { padding: 26px 20px; }
  .m-wrap { width: calc(100% - 32px); }
  .m-utility-address, .m-utility-mail { display: none !important; }
  .m-utility .m-wrap { justify-content: flex-end; }
  .m-navrow { min-height: 66px; gap: 12px; }
  .m-brand img { width: 42px; height: 42px; }
  .m-brand span { font-size: 13px; }
  .m-nav-tools .m-btn { display: none; }
  .m-hero { min-height: 560px; align-items: flex-end; }
  .m-hero-img { object-position: 58% center; }
  .m-hero-shade { background: linear-gradient(180deg, rgba(10,32,56,.15) 0%, rgba(10,32,56,.7) 45%, rgba(10,32,56,.95) 100%); }
  .m-hero-content { padding: 140px 0 84px; }
  .m-slide.is-poster .m-hero-img { object-fit: cover; object-position: center; }
  .m-trust .m-wrap { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
  .m-trust span { font-size: 10.5px; letter-spacing: .08em; }
  .m-step-grid { grid-template-columns: 1fr; }
  .m-step-card { min-height: 0; }
  .m-pillars { grid-template-columns: 1fr; }
  .m-pillars article, .m-pillars article:nth-child(3) { border-left: 0; padding: 26px 0 0; }
  .m-news-head { flex-direction: column; align-items: flex-start; }
  .m-news-list a { grid-template-columns: 1fr auto; gap: 8px 16px; }
  .m-news-list b { grid-column: 1 / -1; }
  .m-news-list svg { grid-row: 2; grid-column: 2; }
  .m-feature { padding: 22px; }
  .m-pay-grid { grid-template-columns: 1fr; gap: 18px; }
  .m-pay-grid a { border-left: 0; padding: 0 0 18px; border-bottom: 1px solid var(--m-line); }
  .m-contact { grid-template-columns: 1fr; padding: 30px 24px; gap: 26px; }
  /* Footer on phones: brand on top, the two link lists side by side, contact as a card, centered bottom line. */
  footer.m-footer { padding-top: 44px; }
  footer.m-footer::after { display: none; }
  .m-footer-grid { grid-template-columns: 1fr 1fr; gap: 26px 20px; padding-bottom: 30px; }
  .m-footer-brand { grid-column: 1 / -1; text-align: center; }
  .m-footer-brand .m-brand { justify-content: center; }
  .m-footer-brand p { max-width: none; margin: 14px auto 12px; }
  .m-footer-brand .m-social { justify-content: center; }
  .m-footer-h { margin-bottom: 12px; }
  .m-footer-grid > div > a:not(.m-brand) { margin-bottom: 9px; font-size: 14.5px; }
  .m-footer-grid > div:last-child { grid-column: 1 / -1; padding: 18px 18px 8px; border: 1px solid rgba(255,255,255,.14); border-radius: 14px; background: rgba(255,255,255,.05); }
  .m-footer-grid > div:last-child .m-footer-h { margin-top: 0; }
  .m-footer-contact, .m-footer-grid > div > a.m-footer-contact { margin-bottom: 10px; font-size: 14px; }
  .m-footer-hours span { white-space: normal; }
  .m-footer-notice { text-align: center; }
  .m-footer-bottom { flex-direction: column; align-items: center; gap: 10px; padding: 18px 0 22px; text-align: center; }
  .m-footer-bottom span:last-child { justify-content: center; }
  .m-photo-band-shade { background: linear-gradient(90deg, rgba(10,32,56,.92), rgba(10,32,56,.7)); }
  .m-photo-band-img { object-position: 85% center; }
}
@media (prefers-reduced-motion: reduce) {
  .m-slide, .m-slide.is-active .m-hero-img, .m-slide.is-active .m-hero-copy { animation: none; transition: none; }
  .m-btn, .m-btn svg, .m-step-card, .m-media-img { transition: none; }
}

/* Lists, footer extras */
.m-list-block { margin-top: 56px; padding: 40px 44px; border-radius: 18px; background: var(--m-tint); }
.m-check-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 32px; margin: 24px 0 0; padding: 0; list-style: none; }
.m-check-list li { display: flex; gap: 10px; align-items: flex-start; color: var(--m-ink); font-size: 15px; line-height: 1.5; }
.m-check-list li > span { flex: 1 1 auto; min-width: 0; }
.m-check-list li { gap: 12px; }
.m-li-dot { flex: 0 0 auto; width: 8px; height: 8px; margin-top: 9px; border-radius: 50%; background: var(--m-teal); box-shadow: 0 0 0 4px rgba(26,134,150,.14); }
.m-li-num { flex: 0 0 auto; display: grid; place-items: center; width: 28px; height: 28px; margin-top: -2px; border-radius: 50%; background: linear-gradient(180deg, #2aa6b7, #1a8696); color: #fff; font: 700 14px/1 var(--m-sans); box-shadow: inset 0 1px 0 rgba(255,255,255,.35), 0 4px 10px -4px rgba(26,134,150,.7); }
.m-footer-church { margin-top: -8px !important; font-size: 13.5px; }
.m-footer-church a { color: var(--m-teal-soft); font-weight: 700; } .m-footer-church a:hover { color: #fff; }
.m-footer-notice { position: relative; z-index: 1; margin-bottom: 18px; color: #8ea3b6; font-size: 12px; line-height: 1.55; }
@media (max-width: 720px) {
  .m-list-block { padding: 28px 22px; }
  .m-check-list { grid-template-columns: 1fr; }
}

@media (max-width: 720px) {
  .m-actions .m-btn, .m-cta .m-btn, .m-band .m-btn, .m-form .m-btn, .m-contact .m-btn, .m-news-head .m-btn { width: 100%; }
}
.m-menu-panel > a.m-menu-enroll { display: none; align-items: center; gap: 8px; margin-top: 6px; background: linear-gradient(180deg, #f9dd8f, #e9bb4d); color: var(--m-navy-deep); font-weight: 800; }
@media (max-width: 720px) { .m-menu-panel > a.m-menu-enroll { display: flex; } }

/* iPhone/Safari: a field smaller than 16px makes the phone zoom in when tapped and the layout shifts; keep every field at 16px on phones. */
@media (max-width: 720px) {
  input, select, textarea, .m-chat-form input, .m-chat-handoff input, .m-chat-handoff textarea { font-size: 16px !important; }
  .m-chat.is-open { inset: 0; }
  .m-chat-panel { width: 100vw; max-width: 100vw; height: 100%; height: 100dvh; border-radius: 0; padding-bottom: env(safe-area-inset-bottom); padding-top: env(safe-area-inset-top); box-sizing: border-box; }
  .m-chat-bubble { margin-bottom: env(safe-area-inset-bottom); }
  @media (orientation: landscape) and (max-height: 500px) { .m-chat-head small { display: none; } .m-chat-quick { display: none; } }
  .m-chat-log { overscroll-behavior: contain; }
}
@media (max-width: 720px) { .standards-document { padding: 24px 18px; } .standards-document h3 { font-size: 20px; } }
/* Second header button (ethical standards): glass outline next to «Enroll now». */
.m-ethics { margin-right: 8px; border-color: #c9d8e4; background: linear-gradient(180deg, #fff, #eef4f8); color: var(--m-navy); box-shadow: inset 0 1px 0 rgba(255,255,255,.9), 0 6px 16px -10px rgba(13,42,71,.6); }
.m-ethics:hover { border-color: var(--m-teal); color: var(--m-teal); }
/* Between 981 and 1400 px the menu is tight: show only the shield icon. On phones the button lives in the ☰ menu. */
/* The label «Ethical standards» is always visible (important for the school). */
@media (max-width: 720px) { .m-ethics { display: none; } }
.m-menu-panel > a.m-menu-ethics { background: linear-gradient(180deg, #fff, #eef4f8); color: var(--m-navy); border: 1px solid #c9d8e4; }
/* Contact page: phone / fax / emails / hours as icon rows */
.m-contact-rows { display: grid; gap: 10px; margin: 14px 0 0; padding: 0; list-style: none; }
.m-contact-rows li { display: flex; align-items: flex-start; gap: 10px; color: var(--m-muted); font-size: 15px; line-height: 1.5; overflow-wrap: anywhere; }
.m-contact-rows .ic { flex: 0 0 auto; width: 18px; height: 18px; margin-top: 3px; color: var(--m-teal); }
.m-contact-rows a { color: var(--m-navy); font-weight: 400; }
.m-contact-rows a:hover { color: var(--m-teal); }
.m-contact-rows small { display: block; width: 100%; margin-left: 28px; color: var(--m-muted); font-size: 12.5px; }
.m-contact-rows li:has(small) { flex-wrap: wrap; }
/* Desktop (1401 px and up): tighter menu so «Ethical standards» and «Enroll now» always fit with their labels. */
@media (min-width: 1401px) {
  .m-navrow { gap: 10px; }
  .m-nav a { padding: 10px 5px; font-size: 13px; }
  .m-brand span { font-size: 15px; }
  .m-ethics, .m-nav-tools .m-enroll { padding: .6rem .95rem; font-size: 13.5px; }
  .m-ethics { margin-right: 4px; }
}
/* Staff directory */
.m-staff-group + .m-staff-group { margin-top: 44px; }
.m-staff-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.m-staff-card { padding: 22px 20px 24px; border: 1px solid var(--m-line); border-radius: var(--m-radius); background: #fff; box-shadow: var(--m-shadow); text-align: center; transition: transform .2s ease, box-shadow .2s ease; }
.m-staff-card:hover { transform: translateY(-3px); box-shadow: 0 20px 40px rgba(13,42,71,.12); }
.m-staff-photo { display: block; width: 132px; height: 132px; margin: 0 auto 14px; border-radius: 50%; object-fit: cover; border: 4px solid var(--m-tint-2); background: var(--m-tint); }
.m-staff-initials { display: grid; place-items: center; color: var(--m-teal); font: 700 36px/1 var(--m-serif); }
.m-staff-card h2 { margin: 0; color: var(--m-navy); font: 700 19px/1.25 var(--m-serif); }
.m-staff-role { margin: 4px 0 0; color: var(--m-teal); font-size: 13px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.m-staff-bio { margin: 10px 0 0; color: var(--m-muted); font-size: 14px; line-height: 1.6; }
.m-staff-mail { display: inline-flex; align-items: center; gap: 6px; margin-top: 10px; color: var(--m-navy); font-size: 13px; overflow-wrap: anywhere; }
.m-staff-mail .ic { width: 15px; height: 15px; color: var(--m-teal); }
@media (max-width: 980px) { .m-staff-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .m-staff-grid { grid-template-columns: 1fr; } }
/* Phone number bubble on the footer call button (computers) */
.m-has-bubble { position: relative; overflow: visible !important; }
.m-copy-bubble { position: absolute; left: 50%; bottom: calc(100% + 10px); transform: translateX(-50%) translateY(4px); padding: 7px 11px; border-radius: 8px; background: #fff; color: var(--m-navy); font: 700 13px/1 var(--m-sans); white-space: nowrap; box-shadow: 0 10px 24px rgba(0,0,0,.25); opacity: 0; visibility: hidden; transition: opacity .15s ease, transform .15s ease; pointer-events: none; }
.m-copy-bubble::after { content: ''; position: absolute; left: 50%; top: 100%; margin-left: -6px; border: 6px solid transparent; border-top-color: #fff; }
.m-has-bubble:hover .m-copy-bubble, .m-has-bubble:focus-visible .m-copy-bubble, .m-has-bubble.is-copied .m-copy-bubble { opacity: 1; visibility: visible; transform: translateX(-50%) translateY(0); }
.m-has-bubble.is-copied .m-copy-bubble { background: var(--m-gold); }
/* Footer link lists with icons (same style as the contact column) */
.m-footer-grid > div > a.m-footer-link { display: flex; align-items: center; gap: 10px; }
.m-footer-link svg { flex: 0 0 auto; width: 15px; height: 15px; color: var(--m-teal-soft); }
/* Leave room for the floating «Questions?» button so it never covers the footer's last links. */
.m-footer-bottom { padding-right: 230px; }
@media (max-width: 720px) { .m-footer-bottom { padding-right: 0; padding-bottom: 84px; } }
.m-check-list li > .m-li-num, .m-check-list li > .m-li-dot { flex: 0 0 auto; }
/* In a step list, the extra notes go on their own full-width line under the steps. */
.m-check-list:has(.is-step) li:not(.is-step) { grid-column: 1 / -1; order: 99; padding-top: 6px; color: var(--m-muted); }

/* ---------- Accessibility menu ---------- */
.m-a11y { position: fixed; bottom: 18px; z-index: 89; font-family: var(--m-sans); }
.m-a11y-left { left: 18px; } .m-a11y-right { right: 18px; bottom: 84px; }
.m-a11y-btn { display: grid; place-items: center; width: 52px; height: 52px; border: 2px solid #fff; border-radius: 50%; background: linear-gradient(180deg, #2aa6b7, #1a8696); color: #fff; cursor: pointer; box-shadow: 0 12px 26px -10px rgba(13,42,71,.8); transition: transform .2s ease; }
.m-a11y-btn .ic { width: 28px; height: 28px; }
.m-a11y-btn:hover { transform: scale(1.06); } .m-a11y-btn:active { transform: scale(.96); }
.m-a11y-btn.is-active::after { content: ''; position: absolute; top: 2px; right: 2px; width: 12px; height: 12px; border: 2px solid #fff; border-radius: 50%; background: var(--m-gold); }
.m-a11y-panel { position: absolute; bottom: 64px; width: min(340px, calc(100vw - 24px)); padding: 16px; border: 1px solid var(--m-line); border-radius: 18px; background: #fff; color: var(--m-ink); box-shadow: 0 30px 60px rgba(13,42,71,.3); }
.m-a11y-left .m-a11y-panel { left: 0; } .m-a11y-right .m-a11y-panel { right: 0; }
.m-a11y [hidden] { display: none !important; }
.m-a11y-panel header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.m-a11y-panel header strong { color: var(--m-navy); font: 700 18px var(--m-serif); }
.m-a11y-close { display: grid; place-items: center; width: 32px; height: 32px; border: 1px solid var(--m-line); border-radius: 50%; background: #fff; color: var(--m-navy); cursor: pointer; }
.m-a11y-close .ic { width: 16px; height: 16px; }
.m-a11y-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.m-a11y-opt { display: grid; justify-items: center; gap: 6px; min-height: 84px; padding: 12px 8px; border: 1px solid var(--m-line); border-radius: 12px; background: var(--m-tint); color: var(--m-navy); font: 600 13px/1.25 var(--m-sans); text-align: center; cursor: pointer; transition: background .15s ease, border-color .15s ease; }
.m-a11y-opt:hover { border-color: var(--m-teal); }
.m-a11y-opt[aria-pressed="true"] { border-color: var(--m-teal); background: #dff3f5; box-shadow: inset 0 0 0 1px var(--m-teal); }
.m-a11y-glyph { color: var(--m-teal); line-height: 0; } .m-a11y-glyph .ic { width: 24px; height: 24px; }
.m-a11y-steps { display: flex; gap: 4px; } .m-a11y-steps i { width: 14px; height: 4px; border-radius: 2px; background: #c9d8e4; } .m-a11y-steps i.on { background: var(--m-teal); }
.m-a11y-reset { width: 100%; margin-top: 10px; padding: 10px; border: 1px solid var(--m-line); border-radius: 12px; background: #fff; color: var(--m-navy); font: 700 14px var(--m-sans); cursor: pointer; }
.m-a11y-reset:hover { border-color: var(--m-teal); color: var(--m-teal); }
.m-a11y-note { margin: 10px 0 0; color: var(--m-muted); font-size: 12px; line-height: 1.5; } 
@media (max-width: 720px) { .m-a11y-left { left: 10px; bottom: 10px; } .m-a11y-right { right: 10px; bottom: 76px; } .m-a11y-btn { width: 48px; height: 48px; } }
/* The footer's last line leaves room for the button on the left too. */
.m-footer-bottom { padding-left: 0; }
@media (min-width: 721px) { html:has(.m-a11y-left) .m-footer-bottom { padding-left: 74px; } }

/* Effects (classes on <html>) */
html.a11y-text-1 body { zoom: 1.12; } html.a11y-text-2 body { zoom: 1.25; } html.a11y-text-3 body { zoom: 1.4; }
html.a11y-spacing p, html.a11y-spacing li, html.a11y-spacing dd, html.a11y-spacing .m-copy, html.a11y-spacing .m-chat-msg { line-height: 1.95 !important; letter-spacing: .04em !important; word-spacing: .12em !important; }
html.a11y-readable body, html.a11y-readable body *:not(svg):not(path) { font-family: Verdana, Tahoma, Arial, sans-serif !important; font-style: normal !important; }
html.a11y-links a:not(.m-btn):not(.m-a11y-btn) { text-decoration: underline !important; text-underline-offset: 3px !important; text-decoration-thickness: 2px !important; font-weight: 700 !important; }
html.a11y-links a.m-btn, html.a11y-links .m-nav a { outline: 3px solid #f5cf72 !important; outline-offset: 2px; }
html.a11y-contrast main, html.a11y-contrast .m-header-shell, html.a11y-contrast footer, html.a11y-contrast .m-banner { --a11y-c: contrast(1.45) saturate(1.15); }
html.a11y-gray main, html.a11y-gray .m-header-shell, html.a11y-gray footer, html.a11y-gray .m-banner { --a11y-g: grayscale(1); }
html.a11y-contrast main, html.a11y-contrast .m-header-shell, html.a11y-contrast footer, html.a11y-contrast .m-banner,
html.a11y-gray main, html.a11y-gray .m-header-shell, html.a11y-gray footer, html.a11y-gray .m-banner { filter: var(--a11y-c, contrast(1)) var(--a11y-g, grayscale(0)); }
html.a11y-contrast .m-copy, html.a11y-contrast .m-muted, html.a11y-contrast p { color: inherit; }
html.a11y-motion *, html.a11y-motion *::before, html.a11y-motion *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
html.a11y-cursor, html.a11y-cursor * { cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='44' height='44' viewBox='0 0 24 24'%3E%3Cpath d='M4 2l15 9-7 1.5L8.5 20z' fill='%23000' stroke='%23fff' stroke-width='1.5' stroke-linejoin='round'/%3E%3C/svg%3E") 4 2, auto !important; }

/* Desktop menu: breathing room between the school name and «Home». */
@media (min-width: 1401px) { .m-nav { margin-left: 20px; } .m-ethics { margin-right: 2px; } }

/* ---------- Status pages: 404 / 403 / 429 / 500, section in maintenance, whole site closed ---------- */
.m-status { position: relative; overflow: hidden; padding: 56px 0 64px; background: linear-gradient(180deg, #f4fafd 0%, #eef7fc 100%); }
.m-status::after { content: ''; position: absolute; left: -10%; right: -10%; bottom: -60px; height: 120px; border-radius: 50%; background: #fff; opacity: .7; }
.m-status-grid { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 24px; align-items: center; }
.m-status-copy { padding-bottom: 0; }
.m-status-eyebrow { display: inline-flex; align-items: center; gap: 12px; font-size: 13px; letter-spacing: .2em; }
.m-status-dot { display: inline-grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: var(--m-teal); color: #fff; font: 800 13px/1 var(--m-sans); letter-spacing: 0; }
.m-status-dot .ic { width: 13px; height: 13px; }
.m-status-title { font-size: clamp(38px, 5vw, 64px); line-height: 1.02; }
.m-status-title em { display: block; color: #1a8696; font-style: italic; }
.m-status-text { max-width: 470px; margin: 22px 0 26px; font-size: 17px; }
.m-status-note, .m-status-until { display: flex; gap: 10px; align-items: flex-start; max-width: 520px; margin: 0 0 14px; padding: 12px 16px; border-radius: 12px; background: #fff; color: var(--m-ink); font-size: 15px; line-height: 1.55; }
.m-status-until { background: #fff7e0; }
.m-status-note .ic, .m-status-until .ic { width: 18px; height: 18px; margin-top: 2px; color: var(--m-teal); }
.m-status-actions { display: flex; flex-wrap: wrap; gap: 14px; }
.m-status-actions .m-btn-outline { background: transparent; border-color: var(--m-navy); box-shadow: none; }
.m-status-verse { display: grid; grid-template-columns: auto 1fr; gap: 4px 12px; max-width: 520px; margin: 30px 0 0; padding: 14px 18px; border-left: 3px solid var(--m-gold-deep); border-radius: 0 12px 12px 0; background: rgba(255,255,255,.75); }
.m-status-verse > .ic { grid-row: span 2; width: 22px; height: 22px; margin-top: 2px; color: var(--m-teal); }
.m-status-verse blockquote { margin: 0; }
.m-status-verse p { color: var(--m-navy); font: italic 600 16.5px/1.5 var(--m-serif); }
.m-status-verse figcaption { color: var(--m-teal); font: 700 12px/1.3 var(--m-sans); letter-spacing: .1em; text-transform: uppercase; }
.m-status-visual { position: relative; display: grid; place-items: center; }
.m-status-visual picture { display: block; width: 100%; max-width: 820px; }
.m-status-photo { display: block; width: 100%; max-width: 820px; height: auto; }
.m-status-art { width: min(100%, 360px); height: auto; }
.m-status-code { position: absolute; bottom: -10px; right: 6%; color: var(--m-navy); font: 700 clamp(48px, 7vw, 84px)/1 var(--m-serif); letter-spacing: -.03em; opacity: .12; }
.m-status-links { padding: 56px 0 72px; background: linear-gradient(180deg, #fff, #f4fafd); }
.m-status-links-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 40px; align-items: center; }
.m-status-links-eyebrow { display: flex; align-items: center; gap: 12px; }
.m-status-links-eyebrow::after { content: ''; width: 80px; height: 1px; background: var(--m-teal-soft); }
.m-status-links .m-title { font-size: clamp(30px, 3vw, 42px); }
.m-status-links .m-copy { margin-bottom: 0; }
.m-status-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 0; padding: 0; list-style: none; }
.m-status-cards a { display: flex; align-items: center; gap: 14px; height: 100%; min-height: 76px; padding: 16px 18px; border: 1px solid var(--m-line); border-radius: 14px; background: #fff; box-shadow: 0 8px 22px -18px rgba(13,42,71,.5); transition: transform .2s, box-shadow .2s, border-color .2s; }
.m-status-cards a:hover { transform: translateY(-3px); border-color: var(--m-teal-soft); box-shadow: var(--m-shadow); }
.m-status-card-ic .ic { width: 30px; height: 30px; color: #1a8696; }
.m-status-card-txt { display: grid; gap: 3px; flex: 1; min-width: 0; }
.m-status-card-txt strong { color: var(--m-navy); font-size: 16px; }
.m-status-card-txt small { color: var(--m-muted); font-size: 13px; }
.m-status-card-go { width: 18px; height: 18px; color: #1a8696; transition: transform .2s; }
.m-status-cards a:hover .m-status-card-go { transform: translateX(3px); }
@media (max-width: 1080px) { .m-status-links-grid { grid-template-columns: 1fr; gap: 24px; } }
@media (max-width: 860px) {
  .m-status { padding: 36px 0 40px; }
  .m-status-grid { grid-template-columns: 1fr; gap: 8px; }
  .m-status-copy { padding-bottom: 8px; }
  .m-status-visual { order: 2; }
  .m-status-art { width: min(70%, 240px); }
  .m-status-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 520px) { .m-status-cards { grid-template-columns: 1fr; } .m-status-actions .m-btn { width: 100%; } }

/* Whole-site page (no menu) */
.m-status-body { min-height: 100vh; min-height: 100dvh; display: flex; flex-direction: column; align-items: center; background: linear-gradient(150deg, var(--m-navy-deep), var(--m-navy) 55%, #164a6f); color: #fff; }
.m-status-top { display: flex; align-items: center; justify-content: space-between; gap: 16px; width: min(1080px, calc(100% - 32px)); padding: 22px 0; }
.m-status-top .m-lang { background: rgba(255,255,255,.1); border-color: rgba(255,255,255,.25); }
.m-status-top .m-lang a { color: #fff; }
.m-status-top .m-lang a.active { background: #fff; color: var(--m-navy); }
.m-status-card { width: min(680px, calc(100% - 32px)); margin: auto 0; padding: 40px clamp(20px, 5vw, 48px) 36px; border-radius: 24px; background: #fff; color: var(--m-ink); text-align: center; box-shadow: 0 30px 80px -30px rgba(0,0,0,.55); }
.m-status-card .m-status-art { width: min(80%, 260px); margin: -4px auto 8px; display: block; }
.m-status-card .m-status-title em { display: inline; }
.m-status-card .m-status-verse { margin: 22px auto 0; text-align: left; }
.m-status-card .m-eyebrow { display: inline-flex; align-items: center; gap: 8px; justify-content: center; }
.m-status-card .m-eyebrow .ic { width: 16px; height: 16px; }
.m-status-card .m-status-text { margin: 16px auto 22px; }
.m-status-card .m-status-note, .m-status-card .m-status-until { margin: 0 auto 12px; text-align: left; }
.m-status-card .m-status-actions { justify-content: center; }
.m-status-title-2 { margin-top: 26px; font-size: clamp(26px, 3.2vw, 36px); }
.m-btn-outline-light { border-color: var(--m-line); }
.m-status-facts { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 22px; margin: 26px 0 0; padding: 20px 0 0; border-top: 1px solid var(--m-line); list-style: none; color: var(--m-muted); font-size: 14.5px; }
.m-status-facts li, .m-status-facts a { display: inline-flex; align-items: center; gap: 8px; }
.m-status-facts a:hover { color: var(--m-teal); }
.m-status-facts .ic { width: 17px; height: 17px; color: var(--m-teal); }
.m-status-foot { padding: 22px 16px 28px; color: #b9cad9; font-size: 13.5px; text-align: center; }
@media (max-width: 520px) { .m-status-top .m-brand span { font-size: 15px; } .m-status-card .m-status-actions .m-btn { width: 100%; white-space: normal; } }

/* Notice bar for signed-in staff while something is closed to visitors */
.m-staffbar { position: relative; z-index: 61; background: #fff3cd; border-bottom: 1px solid #f0d58a; color: #5c4300; font-size: 14px; }
.m-staffbar .m-wrap { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; padding: 10px 0; }
.m-staffbar p { flex: 1 1 320px; display: flex; gap: 8px; align-items: flex-start; }
.m-staffbar .ic { width: 18px; height: 18px; flex: 0 0 auto; margin-top: 1px; }
.m-staffbar a { padding: 3px 10px; border-radius: 999px; background: rgba(92,67,0,.1); font-weight: 700; } .m-staffbar a:hover { background: #5c4300; color: #fff; }

/* Whole-site page with photo (construction / maintenance) */
.m-status-body { position: relative; overflow-x: clip; background: radial-gradient(ellipse at 85% 0%, #17466f 0%, transparent 55%), linear-gradient(160deg, #0d2a47, #12355b 60%, #103a5e); }
.m-status-leaves { position: fixed; bottom: -10px; z-index: 0; width: min(26vw, 300px); height: auto; pointer-events: none; }
.m-status-leaves-l { left: -30px; } .m-status-leaves-r { right: -30px; }
.m-status-top, .m-status-card, .m-status-foot { position: relative; z-index: 1; }
.m-status-top { width: min(1050px, calc(100% - 32px)); }
.m-status-card-photo { width: min(1000px, calc(100% - 32px)); padding: 14px; text-align: center; }
.m-status-hero { overflow: hidden; border-radius: 16px; background: var(--m-tint); }
.m-status-hero picture, .m-status-hero img { display: block; width: 100%; height: auto; object-fit: cover; }
.m-status-body-in { padding: 18px clamp(12px, 5vw, 64px) 22px; }
.m-status-divider { display: flex; align-items: center; justify-content: center; gap: 14px; color: #d29a1f; }
.m-status-divider span { width: 52px; height: 2px; border-radius: 2px; background: #e9bb4d; }
.m-status-divider .ic { width: 28px; height: 28px; }
.m-status-card-photo .m-status-title { margin-top: 10px; font-size: clamp(34px, 5.2vw, 60px); line-height: 1.05; }
.m-status-card-photo .m-status-title em { display: block; }
.m-status-card-photo .m-status-text { max-width: 520px; margin: 18px auto 24px; color: #2b5b86; font-size: 17px; }
.m-status-card-photo .m-status-actions { justify-content: center; gap: 16px; }
.m-status-card-photo .m-status-actions .m-btn { min-width: 250px; }
.m-status-card-photo .m-btn-outline-light { background: #fff; border-color: #c9d9ea; color: #12355b; }
.m-status-card-photo .m-status-verse { max-width: 690px; margin: 30px auto 0; padding: 16px 22px; border-left: 3px solid #e9bb4d; border-radius: 0 14px 14px 0; background: #edf6f9; text-align: left; }
.m-status-card-photo .m-status-facts { gap: 10px 0; margin-top: 22px; }
.m-status-card-photo .m-status-facts li { padding: 0 22px; color: #12355b; }
.m-status-card-photo .m-status-facts li + li { border-left: 1px solid var(--m-line); }
.m-status-card-photo .m-status-facts .ic { color: #12355b; }
@media (max-width: 640px) {
  .m-status-card-photo .m-status-actions .m-btn { min-width: 0; width: 100%; padding-left: 1rem; padding-right: 1rem; font-size: 15px; overflow-wrap: anywhere; }
  .m-status-hero picture, .m-status-hero img { aspect-ratio: 16 / 10; object-position: 45% center; }
  .m-status-card-photo .m-status-facts { flex-direction: column; align-items: center; }
  .m-status-card-photo .m-status-facts li + li { border-left: 0; }
  .m-status-leaves { width: 40vw; opacity: .5; }
}

/* Maintenance variant (label divider, one-line title, stacked buttons, plain verse) */
.m-status-divider-label { margin: 6px 0 0; color: #1a8696; font: 700 13px/1.2 var(--m-sans); letter-spacing: .16em; text-transform: uppercase; }
.m-status-divider-label span { width: 46px; height: 1px; background: #9fc9d3; }
.m-status-divider-label .ic { width: 18px; height: 18px; margin-right: -4px; color: #1a8696; }
.m-status-body-maintenance .m-status-card-photo { width: min(970px, calc(100% - 32px)); }
.m-status-body-maintenance .m-status-card-photo .m-status-title em { display: inline; }
.m-status-body-maintenance .m-status-card-photo .m-status-actions { flex-direction: column; align-items: center; gap: 14px; }
.m-status-body-maintenance .m-status-card-photo .m-status-actions .m-btn-gold { min-width: 320px; }
.m-status-body-maintenance .m-status-card-photo .m-status-actions .m-btn-outline-light { min-width: 0; padding-left: 2.2rem; padding-right: 2.2rem; font-weight: 600; background: linear-gradient(180deg, #fff, #f1f7fc); }
.m-status-body-maintenance .m-status-card-photo .m-status-verse { background: transparent; padding: 6px 22px; border-radius: 0; }
.m-status-body-maintenance .m-status-card-photo .m-status-verse p { font-size: 19px; }
@media (max-width: 640px) { .m-status-body-maintenance .m-status-card-photo .m-status-actions .m-btn-gold { min-width: 0; } .m-status-hero picture, .m-status-hero img { aspect-ratio: 16 / 10; } }
.m-status-body-maintenance .m-status-card-photo .m-status-text { max-width: 600px; font-size: 19px; }
/* Wide screens: the header uses more width so the nine menu items fit with both buttons. */
@media (min-width: 1401px) { .m-header .m-wrap, .m-utility .m-wrap { width: min(1360px, calc(100% - 40px)); } }
.m-status-photo-module { max-width: 600px; margin: 0 auto; }
.m-status-dot .ic { width: 14px; height: 14px; }
.m-status-module .m-status-dot { width: 30px; height: 30px; } .m-status-module .m-status-dot .ic { width: 17px; height: 17px; }

/* One section in maintenance: same photo card as the maintenance page, inside the normal site */
.m-status-section { padding: 48px 16px 56px; background: radial-gradient(ellipse at 85% 0%, #17466f 0%, transparent 55%), linear-gradient(160deg, #0d2a47, #12355b 60%, #103a5e); }
.m-status-card-section { margin: 0 auto; }
.m-status-card-section .m-status-title em { display: inline; }
.m-status-card-section .m-status-actions { flex-direction: column; align-items: center; gap: 14px; }
.m-status-card-section .m-status-actions .m-btn { min-width: 320px; }
.m-status-card-section .m-status-note { max-width: 600px; margin: 0 auto 18px; text-align: left; background: #edf6f9; }
.m-status-card-section .m-status-verse { background: transparent; padding: 6px 22px; border-radius: 0; }
.m-status-card-section .m-status-verse p { font-size: 19px; }
.m-status-card-section .m-status-text { max-width: 600px; font-size: 18px; }
@media (max-width: 640px) { .m-status-section { padding: 24px 12px 32px; } .m-status-card-section .m-status-actions .m-btn { min-width: 0; width: 100%; } }
.m-status-card .m-status-art-photo { width: min(100%, 420px); border-radius: 14px; }

/* Employment application (Join Our Team) */
.m-job-panel { grid-template-columns: .7fr 1.3fr; }
.m-job-steps { display: grid; gap: 12px; margin: 22px 0 26px; padding: 0; list-style: none; }
.m-job-steps li { display: flex; gap: 10px; align-items: flex-start; color: #dbe8f5; font-size: 14.5px; line-height: 1.5; }
.m-job-steps .ic { width: 20px; height: 20px; flex: 0 0 auto; margin-top: 1px; color: var(--m-gold); }
.m-job-h { display: flex; align-items: center; gap: 8px; margin: 10px 0 0; padding-top: 14px; border-top: 1px solid var(--m-line); color: var(--m-navy); font: 700 16px/1.2 var(--m-sans); }
.m-job-h:first-of-type { border-top: 0; padding-top: 0; }
.m-job-h .ic { width: 20px; height: 20px; color: var(--m-teal); }
.m-job-legend { display: flex; align-items: center; gap: 6px; color: var(--m-muted); font-size: 13px; }
.m-job-legend .ic { width: 15px; height: 15px; color: var(--m-teal); }
.m-req { color: #c0392b; font-weight: 800; }
.m-form .is-invalid { border-color: #c0392b !important; background: #fff6f5 !important; }
.m-job-file input { padding: 9px; background: var(--m-tint); }
.m-check-line { display: flex !important; flex-direction: row; align-items: flex-start; gap: 10px !important; font-weight: 500 !important; line-height: 1.5; }
.m-check-line input { width: 20px !important; min-height: 20px !important; height: 20px; flex: 0 0 auto; margin-top: 2px; accent-color: var(--m-teal); }
.m-check-line span { color: var(--m-ink) !important; }
.m-check-line a { color: var(--m-teal); font-weight: 700; }
.m-job-thanks { display: grid; align-content: center; justify-items: start; gap: 12px; min-height: 360px; }
.m-job-thanks h3 { margin: 0; color: var(--m-navy); font: 700 26px/1.2 var(--m-serif); }
.m-job-thanks p { margin: 0; color: var(--m-muted); line-height: 1.6; }
@media (max-width: 900px) { .m-job-panel { grid-template-columns: 1fr; } }
.m-form label:not(.m-check-line) { display: block; }
.m-form label:not(.m-check-line) > input, .m-form label:not(.m-check-line) > select, .m-form label:not(.m-check-line) > textarea { display: block; margin-top: 7px; }
.m-form label > span { font-size: 12.5px; }
/* Modern file picker */
.m-job-file-label { display: block; margin-bottom: 7px; color: var(--m-navy); font-size: 13px; font-weight: 600; }
.m-job-file-label span { color: var(--m-muted); font-weight: 400; font-size: 12.5px; }
.m-file { position: relative; display: flex !important; align-items: center; gap: 14px; padding: 16px 18px; border: 2px dashed #b9d3de; border-radius: 14px; background: linear-gradient(180deg, #f8fcfd, #f1f7f9); cursor: pointer; transition: border-color .2s, background .2s, box-shadow .2s; }
.m-file:hover, .m-file.is-drag { border-color: var(--m-teal); background: #eaf6f8; box-shadow: 0 0 0 4px rgba(19,111,124,.08); }
.m-file:focus-within { border-color: var(--m-teal); box-shadow: 0 0 0 4px rgba(19,111,124,.18); }
.m-file.is-invalid { border-color: #c0392b; background: #fff6f5; }
.m-file input { position: absolute !important; inset: 0; width: 100% !important; height: 100% !important; min-height: 0 !important; margin: 0 !important; padding: 0 !important; opacity: 0; cursor: pointer; }
.m-file-ic { display: grid; place-items: center; flex: 0 0 auto; width: 46px; height: 46px; border-radius: 12px; background: #fff; color: var(--m-teal); box-shadow: 0 4px 12px -6px rgba(13,42,71,.35); }
.m-file-ic .ic { width: 22px; height: 22px; }
.m-file-text { display: grid; gap: 3px; flex: 1; min-width: 0; }
.m-file-text strong { color: var(--m-navy); font-size: 14.5px; overflow-wrap: anywhere; }
.m-file-text small { color: var(--m-muted); font-size: 12.5px; font-weight: 400; }
.m-file-btn { flex: 0 0 auto; padding: 9px 16px; border-radius: 999px; background: linear-gradient(180deg, #1f4f7e, #12355b); color: #fff; font-weight: 700; font-size: 13.5px; }
.m-file.has-file { border-style: solid; border-color: #6cc3a0; background: #f0faf5; }
.m-file.has-file .m-file-ic { color: #1d7a46; }
@media (max-width: 520px) { .m-file { flex-wrap: wrap; } .m-file-btn { width: 100%; text-align: center; } }
.m-form .m-file .m-file-btn { color: #fff; font-weight: 700; } .m-form .m-file .m-file-text small { color: var(--m-muted); }
/* Our Staff: the leader centered on top, everyone else below, centered */
.m-staff-group-title { text-align: center; display: flex; align-items: center; justify-content: center; gap: 14px; }
.m-staff-group-title::before, .m-staff-group-title::after { content: ''; width: 48px; height: 1px; background: var(--m-teal-soft); }
.m-staff-grid { display: flex; flex-wrap: wrap; justify-content: center; }
.m-staff-grid > .m-staff-card { flex: 0 1 calc((100% - 60px) / 4); }
.m-staff-card.is-leader { flex: 0 1 420px; max-width: 100%; padding: 30px 28px 32px; border-top: 4px solid var(--m-gold-deep); }
.m-staff-grid-lead { row-gap: 26px; }
.m-staff-grid-lead .is-leader + .m-staff-card { margin-left: 0; }
.m-staff-card.is-leader .m-staff-photo { width: 170px; height: 170px; border-width: 5px; }
.m-staff-card.is-leader h2 { font-size: 24px; }
.m-staff-lead + .m-staff-group { margin-top: 28px; }
@media (max-width: 980px) { .m-staff-grid > .m-staff-card, .m-staff-grid-lead > .m-staff-card { flex-basis: calc((100% - 20px) / 2); } .m-staff-card.is-leader { flex-basis: 100%; } }
@media (max-width: 520px) { .m-staff-grid > .m-staff-card { flex-basis: 100%; } }

/* Organizational chart (Our Staff) */
.m-org { margin: 0 0 64px; padding: 44px 24px 36px; border-radius: 22px; background: radial-gradient(circle at 0 0, #e5f0f8 0, transparent 30%), linear-gradient(180deg, #fbfdfe, #f4f9fc); border: 1px solid var(--m-line); text-align: center; }
.m-org-title { margin: 0; color: var(--m-navy); font: 700 clamp(32px, 4.4vw, 54px)/1.05 var(--m-serif); letter-spacing: -.01em; }
.m-org-rule { display: flex; justify-content: center; align-items: center; gap: 8px; margin: 18px auto 34px; }
.m-org-rule span { height: 2px; width: 120px; background: #9fc9d3; border-radius: 2px; }
.m-org-rule span:nth-child(2) { height: 4px; width: 200px; background: var(--m-gold-deep); }
.m-org-top { display: grid; justify-items: center; }
.m-org-node { display: inline-flex; align-items: center; gap: 16px; padding: 18px 28px; border-radius: 22px; background: linear-gradient(180deg, #1f4f7e, #12355b); color: #fff; text-align: left; box-shadow: 0 14px 30px -18px rgba(13,42,71,.8); }
.m-org-node .ic { width: 34px; height: 34px; flex: 0 0 auto; opacity: .95; }
.m-org-node span { display: grid; gap: 3px; }
.m-org-node strong { font: 700 21px/1.2 var(--m-sans); }
.m-org-node small { color: #d8e6f1; font-size: 14.5px; }
.m-org-node em { color: var(--m-gold); font-size: 12.5px; font-style: normal; }
.m-org-board, .m-org-lead { min-width: min(100%, 370px); }
.m-org-lead { background: linear-gradient(180deg, #1f9aa8, #17808d); }
.m-org-v { width: 2px; height: 34px; background: #7fb5c6; }
.m-org-leadrow { position: relative; display: flex; align-items: center; justify-content: center; }
.m-org-dash { position: absolute; left: calc(50% + 190px); width: 120px; border-top: 2px dashed #8cbccc; }
.m-org-spirit { position: absolute; left: calc(50% + 316px); padding: 14px 22px; border-radius: 999px; background: #e8f3fa; color: var(--m-navy); box-shadow: none; white-space: nowrap; }
.m-org-spirit strong { font-size: 17px; } .m-org-spirit small { color: var(--m-muted); font-size: 13px; } .m-org-spirit .ic { width: 28px; height: 28px; color: var(--m-navy); }
.m-org-cols { position: relative; display: flex; justify-content: center; gap: 22px; margin: 0; padding: 34px 0 0; list-style: none; }
.m-org-cols::before { content: ''; position: absolute; top: 0; left: 10%; right: 10%; height: 2px; background: #7fb5c6; }
.m-org-col { position: relative; flex: 1 1 0; max-width: 290px; min-width: 0; }
.m-org-col::before { content: ''; position: absolute; top: -34px; left: 50%; width: 2px; height: 34px; background: #7fb5c6; }
.m-org-head { display: flex; width: 100%; padding: 16px 18px; gap: 12px; border-radius: 18px; }
.m-org-head.is-teal { background: linear-gradient(180deg, #1f9aa8, #17808d); }
.m-org-head .ic { width: 30px; height: 30px; }
.m-org-head strong { font-size: 16.5px; } .m-org-head small { font-size: 12.5px; }
.m-org-items { position: relative; display: grid; gap: 10px; margin: 14px 0 0; padding: 0 0 0 26px; list-style: none; text-align: center; }
.m-org-items::before { content: ''; position: absolute; left: 10px; top: 0; bottom: 22px; width: 2px; background: #a9cbd8; border-radius: 2px; }
.m-org-items li { position: relative; display: grid; gap: 2px; padding: 11px 12px; border-radius: 14px; background: #e8f3fa; color: var(--m-navy); font-size: 14.5px; font-weight: 600; }
.m-org-items li::before { content: ''; position: absolute; left: -16px; top: 50%; width: 12px; height: 2px; background: #a9cbd8; }
.m-org-items small { color: var(--m-muted); font-size: 12.5px; font-weight: 400; }
.m-org-motto { display: flex; align-items: center; justify-content: center; gap: 22px; margin: 40px 0 0; color: var(--m-navy); font: italic 600 clamp(18px, 2vw, 24px)/1.4 var(--m-serif); }
.m-org-motto::before, .m-org-motto::after { content: ''; flex: 0 0 80px; height: 1px; background: #8cbccc; }
@media (max-width: 1180px) { .m-org-cols { flex-wrap: wrap; } .m-org-col { flex: 1 1 calc(33% - 22px); max-width: none; } .m-org-cols::before { display: none; } .m-org-col::before { display: none; } }
@media (max-width: 1080px) { .m-org-leadrow { flex-direction: column; } .m-org-dash { position: static; width: 2px; height: 22px; border-top: 0; border-left: 2px dashed #8cbccc; } .m-org-spirit { position: static; } .m-org-leadrow { gap: 0; } }
@media (max-width: 700px) { .m-org { padding: 30px 14px 26px; } .m-org-col { flex-basis: 100%; } .m-org-node { padding: 14px 18px; } .m-org-node strong { font-size: 18px; } .m-org-spirit { white-space: normal; } .m-org-motto::before, .m-org-motto::after { flex-basis: 30px; } }
/* Our Staff: compact cards */
.m-staff-grid { gap: 16px; }
.m-staff-grid > .m-staff-card { flex: 0 1 230px; padding: 18px 16px 20px; }
.m-staff-photo { width: 96px; height: 96px; margin-bottom: 10px; border-width: 3px; }
.m-staff-initials { font-size: 28px; }
.m-staff-card h2 { font-size: 17px; }
.m-staff-role { font-size: 12px; }
.m-staff-card.is-leader { flex: 0 1 270px; padding: 22px 18px 22px; border-top-width: 3px; }
.m-staff-card.is-leader .m-staff-photo { width: 116px; height: 116px; border-width: 4px; }
.m-staff-card.is-leader h2 { font-size: 19px; }
.m-staff-lead + .m-staff-lead { margin-top: 26px; }
.m-staff-group + .m-staff-group { margin-top: 32px; }
@media (max-width: 520px) { .m-staff-grid > .m-staff-card, .m-staff-card.is-leader { flex-basis: 100%; max-width: 320px; } }
/* Organizational chart: more compact boxes */
.m-org-node { gap: 12px; padding: 13px 22px; border-radius: 18px; }
.m-org-node .ic { width: 26px; height: 26px; }
.m-org-node strong { font-size: 17px; }
.m-org-node small { font-size: 13px; }
.m-org-board, .m-org-lead { min-width: min(100%, 300px); }
.m-org-dash { left: calc(50% + 160px); width: 90px; }
.m-org-spirit { left: calc(50% + 256px); padding: 10px 18px; }
.m-org-spirit strong { font-size: 15px; } .m-org-spirit .ic { width: 22px; height: 22px; }
.m-org-head { padding: 12px 14px; border-radius: 15px; }
.m-org-head .ic { width: 24px; height: 24px; }
.m-org-head strong { font-size: 15px; }
.m-org-col { max-width: 240px; }
.m-org-items li { padding: 8px 10px; font-size: 13.5px; border-radius: 12px; }
.m-org-v { height: 26px; }
.m-org-cols { padding-top: 26px; } .m-org-col::before { top: -26px; height: 26px; }

/* Modern date picker */
.m-dp { position: relative; display: block; }
.m-dp input { padding-right: 52px !important; }
.m-dp.is-open input, .m-dp input:focus { border-color: #8fc3ee !important; background: #fff !important; outline: 3px solid rgba(76,154,222,.22) !important; outline-offset: 0 !important; }
.m-dp-btn { position: absolute; right: 8px; top: 50%; transform: translateY(-50%); display: grid; place-items: center; width: 38px; height: 38px; border: 0; border-radius: 10px; background: transparent; color: var(--m-navy); cursor: pointer; transition: background .15s, color .15s; }
.m-dp-btn:hover, .m-dp.is-open .m-dp-btn { background: var(--m-tint); color: var(--m-teal); }
.m-dp-pop { position: absolute; z-index: 40; top: calc(100% + 8px); left: 0; width: 330px; max-width: calc(100vw - 32px); padding: 16px 16px 14px; border: 1px solid #e3ecf2; border-radius: 20px; background: #fff; box-shadow: 0 28px 60px -22px rgba(13,42,71,.45); animation: m-dp-in .16s ease-out; }
@keyframes m-dp-in { from { opacity: 0; transform: translateY(-6px); } }
@media (prefers-reduced-motion: reduce) { .m-dp-pop { animation: none; } }
.m-dp-head { display: flex; align-items: center; justify-content: space-between; gap: 6px; margin-bottom: 10px; }
.m-dp-nav { display: grid; place-items: center; width: 36px; height: 36px; border: 0; border-radius: 50%; background: transparent; color: var(--m-navy); cursor: pointer; }
.m-dp-nav:hover { background: var(--m-tint); }
.m-dp-title { padding: 6px 12px; border: 0; border-radius: 10px; background: transparent; color: var(--m-navy); font: 700 17px/1.2 var(--m-sans); cursor: pointer; }
.m-dp-title:hover, .m-dp-title[aria-expanded="true"] { background: var(--m-tint); }
.m-dp-picker { display: flex; gap: 8px; margin: 0 0 10px; }
.m-dp .m-dp-pop select.m-dp-sel { flex: 1 1 0; min-width: 0; width: auto; min-height: 36px !important; height: 36px !important; margin: 0 !important; padding: 0 26px 0 12px !important; border: 0 !important; border-radius: 10px !important; background: var(--m-tint) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2312355b' stroke-width='2.5'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 9px center !important; color: var(--m-navy) !important; font: 700 14px/1 var(--m-sans) !important; -webkit-appearance: none; appearance: none; box-shadow: none !important; cursor: pointer; }
.m-dp-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px 4px; }
.m-dp-dow { padding: 4px 0 8px; border-bottom: 1px solid #edf2f6; margin-bottom: 6px; color: var(--m-navy); font-size: 13.5px; font-weight: 600; text-align: center; }
.m-dp-day { aspect-ratio: 1; display: grid; place-items: center; width: 100%; max-width: 38px; margin: 0 auto; border: 0; border-radius: 50%; background: transparent; color: var(--m-ink); font: 500 15px/1 var(--m-sans); cursor: pointer; transition: background .12s, color .12s; }
.m-dp-day.is-out { color: #a7b4c0; }
.m-dp-day:hover:not([disabled]) { background: var(--m-tint-2); color: var(--m-navy); }
.m-dp-day.is-today:not(.is-sel) { box-shadow: inset 0 0 0 2px var(--m-teal-soft); }
.m-dp-day.is-sel { background: #1a8696; color: #fff; font-weight: 700; box-shadow: 0 6px 14px -8px rgba(26,134,150,.9); }
.m-dp-day[disabled] { color: #d3dce3; cursor: default; }
.m-dp-day:focus-visible, .m-dp-nav:focus-visible, .m-dp-title:focus-visible, .m-dp-todaybtn:focus-visible { outline: 3px solid var(--m-teal-soft); outline-offset: 1px; }
.m-dp-todaybtn { display: block; width: 100%; margin-top: 10px; padding: 11px; border: 0; border-radius: 12px; background: #f1f6f9; color: var(--m-teal); font: 700 15px var(--m-sans); cursor: pointer; }
.m-dp-todaybtn:hover { background: var(--m-tint-2); }

/* Contact page (design 2026) */
.m-ct-hero { position: relative; overflow: hidden; min-height: 300px; padding: 56px 0 60px; background: linear-gradient(110deg, #0d2a47 0%, #12355b 55%, #164a6f 100%); }
.m-ct-hero-grid { position: relative; z-index: 2; }
.m-ct-hero-copy { max-width: 560px; }
.m-ct-hero .m-page-title { font-size: clamp(38px, 5vw, 62px); line-height: 1.02; }
.m-ct-hero .m-page-title em { display: block; color: #7fd3dc; }
.m-ct-hero .m-copy { max-width: 540px; margin-bottom: 0; color: #e3edf5; font-size: 16.5px; }
.m-ct-hero-photo { position: absolute; z-index: 1; top: 0; right: 0; bottom: 0; width: 44%; clip-path: ellipse(100% 140% at 100% 50%); }
.m-ct-hero-photo::before { content: ''; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, rgba(18,53,91,.55), transparent 35%); }
.m-ct-hero-photo::after { content: ''; position: absolute; z-index: 2; top: 0; bottom: 0; left: 0; width: 10px; background: linear-gradient(180deg, transparent, #1a8696 70%); clip-path: ellipse(100% 140% at 100% 50%); }
.m-ct-hero-photo picture, .m-ct-hero-photo img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 30% center; }
.m-ct-body { position: relative; overflow: hidden; padding: 40px 0 120px; background: #f4f9fc; }
.m-ct-grid { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); gap: 28px; align-items: start; }
.m-ct-info { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.m-ct-card { display: flex; gap: 16px; padding: 20px; border: 1px solid #e3edf3; border-radius: 18px; background: rgba(255,255,255,.85); box-shadow: 0 14px 30px -24px rgba(13,42,71,.45); }
.m-ct-ic { display: grid; place-items: center; flex: 0 0 auto; width: 48px; height: 48px; border-radius: 50%; background: #d8eff3; color: var(--m-navy); }
.m-ct-ic .ic { width: 22px; height: 22px; }
.m-ct-card h2 { margin: 4px 0 6px; color: var(--m-navy); font: 700 18px/1.2 var(--m-serif); }
.m-ct-card p { margin: 0; color: var(--m-ink); font-size: 14.5px; line-height: 1.55; overflow-wrap: anywhere; }
.m-ct-card p a:hover { color: var(--m-teal); }
.m-ct-sub { display: flex; align-items: center; gap: 6px; margin-top: 6px !important; color: var(--m-muted) !important; }
.m-ct-sub .ic { width: 15px; height: 15px; }
.m-ct-muted { color: var(--m-muted) !important; }
.m-ct-more { display: inline-flex; align-items: center; gap: 6px; margin-top: 6px; color: #1a8696; font-size: 14px; font-weight: 700; }
.m-ct-more::after { content: '→'; transition: transform .15s; } .m-ct-more:hover::after { transform: translateX(3px); }
.m-ct-map { position: relative; grid-column: 1 / -1; display: block; overflow: hidden; border: 5px solid #fff; border-radius: 18px; box-shadow: 0 14px 30px -24px rgba(13,42,71,.45); }
.m-ct-map picture, .m-ct-map img { display: block; width: 100%; height: 180px; object-fit: cover; transition: transform .4s; }
.m-ct-map:hover img { transform: scale(1.03); }
.m-ct-map-btn { position: absolute; right: 18px; bottom: 18px; display: inline-flex; align-items: center; gap: 8px; padding: 10px 18px; border-radius: 999px; background: #fff; color: var(--m-navy); font-weight: 700; font-size: 14px; box-shadow: 0 8px 20px -10px rgba(13,42,71,.5); }
.m-ct-map-btn .ic { width: 16px; height: 16px; }
.m-ct-form-card { padding: 26px 26px 28px; border: 1px solid #e3edf3; border-radius: 20px; background: #fff; box-shadow: 0 24px 50px -32px rgba(13,42,71,.5); }
.m-ct-form-head { display: flex; gap: 14px; margin-bottom: 20px; }
.m-ct-form-head h2 { margin: 2px 0 6px; color: var(--m-navy); font: 700 24px/1.2 var(--m-serif); }
.m-ct-form-head p { margin: 0; color: var(--m-muted); font-size: 14.5px; line-height: 1.55; }
.m-ct-form { padding: 0 !important; border: 0 !important; border-radius: 0 !important; background: transparent !important; gap: 14px 18px !important; }
.m-ct-form .m-btn { justify-self: start; gap: 10px; }
.m-ct-form .m-btn .ic { width: 17px; height: 17px; }
.m-ct-form textarea { min-height: 120px; }
.m-ct-sent { display: grid; justify-items: start; gap: 12px; padding: 20px 0; }
.m-ct-sent p { margin: 0; color: var(--m-ink); font-size: 16px; }
.m-ct-wave { position: absolute; z-index: 0; left: 0; bottom: 0; width: min(46vw, 560px); height: auto; }
@media (max-width: 1080px) { .m-ct-grid { grid-template-columns: 1fr; } .m-ct-hero-photo { width: 40%; opacity: .55; } }
@media (max-width: 700px) {
  .m-ct-hero { padding: 40px 0 46px; }
  .m-ct-hero-photo { display: none; }
  .m-ct-info { grid-template-columns: 1fr; }
  .m-ct-form-card { padding: 20px 16px 22px; }
  .m-ct-form { grid-template-columns: 1fr !important; }
  .m-ct-map-btn { right: 10px; bottom: 10px; }
}
.m-ct-card { padding: 18px 16px; gap: 14px; } .m-ct-card p { font-size: 14px; overflow-wrap: normal; } .m-ct-card p a { word-break: normal; overflow-wrap: anywhere; }
@media (min-width: 1081px) { .m-ct-grid { grid-template-columns: minmax(0, 1.12fr) minmax(0, .88fr); } .m-ct-info .m-ct-card:nth-child(3) p { font-size: 13.5px; } }
.m-ct-mails a { display: block; overflow-wrap: normal !important; word-break: keep-all; font-size: 13.5px; } .m-ct-card > div { min-width: 0; }

/* Curriculum page (design 2026) */
.m-cur-hero .m-page-title em { color: #4fc3d4; }
.m-cur-rule { display: block; width: 64px; height: 4px; margin: 22px 0 18px; border-radius: 4px; background: var(--m-gold-deep); }
.m-cur-hero .m-copy { font-family: var(--m-serif); font-size: 18px; line-height: 1.55; }
.m-cur-hero .m-ct-hero-photo { width: 40%; }
.m-cur-hero .m-ct-hero-photo img { object-position: 45% center; }
.m-cur-body { padding-bottom: 80px; }
.m-cur-grid { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 1.05fr); gap: 20px; align-items: stretch; }
.m-cur-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.m-cur-card { display: flex; flex-direction: column; align-items: flex-start; padding: 20px 22px 22px; border: 1px solid #e3edf3; border-radius: 18px; background: #fff; box-shadow: 0 14px 30px -26px rgba(13,42,71,.5); transition: transform .2s, box-shadow .2s; }
.m-cur-card:hover { transform: translateY(-3px); box-shadow: 0 20px 40px -26px rgba(13,42,71,.55); }
.m-cur-card .m-ct-ic { width: 56px; height: 56px; color: #136f7c; }
.m-cur-card .m-ct-ic .ic { width: 26px; height: 26px; }
.m-cur-card h2 { margin: 14px 0 6px; color: var(--m-navy); font: 700 19px/1.25 var(--m-serif); }
.m-cur-card p { margin: 0 0 12px; color: var(--m-muted); font-size: 14.5px; line-height: 1.55; }
.m-cur-card .m-ct-more { margin-top: auto; }
.m-cur-side { position: relative; overflow: hidden; display: flex; flex-direction: column; align-items: flex-start; gap: 14px; padding: 24px 22px 26px; border-radius: 20px; background: linear-gradient(180deg, #eaf5fa, #e2f1f7); }
.m-cur-side-head { display: flex; align-items: center; gap: 14px; }
.m-cur-doc { width: 58px; height: 58px; background: #fff; color: #136f7c; }
.m-cur-doc .ic { width: 28px; height: 28px; }
.m-cur-side h2 { margin: 0; color: var(--m-navy); font: 700 19px/1.25 var(--m-serif); }
.m-cur-side > p { margin: 0; color: var(--m-muted); font-size: 14.5px; line-height: 1.55; }
.m-cur-side .m-btn { gap: 10px; padding: .75rem 1.4rem; font-size: 15px; }
.m-cur-verse { margin: auto 0 0; padding: 22px 70px 0 0; }
.m-cur-verse blockquote { margin: 0; color: #1d4f8a; font: italic 600 19px/1.45 var(--m-serif); }
.m-cur-verse figcaption { margin-top: 12px; color: #1a8696; font-size: 12.5px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.m-cur-leaves { position: absolute; right: -6px; bottom: -6px; width: 110px; height: auto; }
.m-cur-more { position: relative; z-index: 1; margin-top: 56px; }
.m-cur-lead { max-width: 900px; font-size: 16px; }
.m-cur-mini { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 22px 0 30px; }
.m-cur-mini > div { padding: 18px 20px; border-left: 3px solid var(--m-teal-soft); border-radius: 0 14px 14px 0; background: #fff; }
.m-cur-mini h3 { margin: 0 0 6px; color: var(--m-navy); font: 700 16.5px/1.3 var(--m-serif); }
.m-cur-mini p { margin: 0; color: var(--m-muted); font-size: 14px; line-height: 1.55; }
.m-cur-subj-title { margin: 0 0 14px; color: var(--m-navy); font: 700 20px/1.2 var(--m-serif); }
.m-cur-subjects { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; margin: 0 0 40px; padding: 0; list-style: none; }
.m-cur-subjects li { display: flex; align-items: center; gap: 10px; padding: 12px 14px; border: 1px solid #e3edf3; border-radius: 12px; background: #fff; color: var(--m-ink); font-size: 14.5px; font-weight: 600; }
.m-cur-subjects .ic { width: 18px; height: 18px; flex: 0 0 auto; color: #1a8696; }
@media (max-width: 1180px) { .m-cur-grid { grid-template-columns: 1fr; } .m-cur-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 700px) { .m-cur-cards, .m-cur-mini { grid-template-columns: 1fr; } }

/* Admissions page hero (design 2026): photo on the right with a teal and gold curve */
.m-adm-hero { padding: 72px 0 80px; }
.m-adm-hero .m-ct-hero-copy { max-width: 620px; }
.m-adm-hero .m-copy { max-width: 600px; }
.m-adm-hero .m-btn { margin-top: 28px; }
.m-adm-hero .m-ct-hero-photo { width: 46%; box-shadow: none; }
.m-adm-hero .m-ct-hero-photo img { object-position: 40% 20%; }
.m-adm-hero .m-ct-hero-photo::after { width: 14px; background: linear-gradient(180deg, #e9bb4d 0, #e9bb4d 40%, #1a8696 100%); }
@media (max-width: 1080px) { .m-adm-hero .m-ct-hero-photo { width: 40%; } }
@media (max-width: 760px) {
  .m-adm-hero { display: flex; flex-direction: column-reverse; padding: 0 0 44px; }
  .m-adm-hero .m-ct-hero-grid { padding-top: 30px; }
  .m-adm-hero .m-ct-hero-photo { display: block; position: relative; width: 100%; height: 260px; opacity: 1; clip-path: ellipse(120% 100% at 50% 0%); }
  .m-adm-hero .m-ct-hero-photo::before, .m-adm-hero .m-ct-hero-photo::after { display: none; }
}
/* Scholarships hero (design 2026) */
.m-scholarships-hero .m-cur-rule { margin: 20px 0 18px; }
.m-scholarships-hero .m-ct-hero-photo img { object-position: 30% 15%; }
.m-sch-wave { position: absolute; z-index: 1; left: 0; bottom: 0; width: min(20vw, 290px); height: auto; pointer-events: none; }
.m-page-intro { max-width: 820px; margin: -4px 0 22px; }
@media (max-width: 760px) { .m-sch-wave { display: none; } }
/* Events hero (design 2026): copy, mini month card and photo */
.m-events-hero { padding: 64px 0 72px; }
.m-events-hero .m-ct-hero-photo { width: 40%; }
.m-events-hero .m-ct-hero-photo img { object-position: 35% 20%; }
.m-ev-hero-grid { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 36px; align-items: center; max-width: 1180px; }
.m-events-hero .m-ct-hero-copy { max-width: 540px; }
.m-events-hero .m-cur-rule { margin: 20px 0 18px; }
.m-ev-mini { position: relative; z-index: 3; padding: 20px 18px 16px; border-radius: 22px; background: #fff; color: var(--m-navy); box-shadow: 0 30px 60px -24px rgba(0,0,0,.45); }
.m-ev-mini-head { display: flex; align-items: center; justify-content: space-between; margin: 0 4px 12px; }
.m-ev-mini-head strong { font-size: 17px; font-weight: 700; }
.m-ev-mini-head a { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; color: var(--m-navy); text-decoration: none; transition: background .15s; }
.m-ev-mini-head a:hover, .m-ev-mini-head a:focus-visible { background: #e3f3f7; }
.m-ev-mini-head .ic { width: 18px; height: 18px; }
.m-ev-mini-grid { display: grid; grid-template-columns: repeat(7, 1fr); row-gap: 4px; text-align: center; }
.m-ev-mini-dn { padding-bottom: 6px; font-size: 11.5px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--m-navy); }
.m-ev-mini-d { position: relative; display: grid; place-items: center; width: 38px; height: 38px; margin: 0 auto; border-radius: 50%; color: var(--m-navy); font-size: 14.5px; font-weight: 600; text-decoration: none; }
.m-ev-mini-d.is-out { color: #a3b1bf; font-weight: 500; }
.m-ev-mini-d.is-today { background: #c6ecf2; color: #0e5a66; font-weight: 800; }
a.m-ev-mini-d:hover, a.m-ev-mini-d:focus-visible { background: #e3f3f7; }
.m-ev-mini-dots { position: absolute; left: 0; right: 0; bottom: 2px; display: flex; justify-content: center; gap: 2px; }
.m-ev-mini-dots .cal-dot { width: 6px; height: 6px; }
.m-ev-mini-legend { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 12px; margin: 14px 0 0; padding: 12px 14px; border-radius: 14px; background: #f1f7fa; list-style: none; font-size: 12.5px; color: #34495e; }
.m-ev-mini-legend li { display: flex; align-items: center; gap: 8px; }
.m-ev-mini-empty { margin: 14px 0 0; padding: 12px 14px; border-radius: 14px; background: #f1f7fa; font-size: 13px; color: #4a5f73; }
@media (max-width: 1280px) { .m-events-hero .m-ct-hero-photo { width: 34%; } .m-ev-hero-grid { grid-template-columns: minmax(0, 1fr) 330px; } }
@media (max-width: 1080px) { .m-ev-hero-grid { grid-template-columns: 1fr; } .m-ev-mini { display: none; } .m-events-hero .m-ct-hero-photo { width: 40%; } }
/* keep the mini card between the text and the photo (never over the face) */
@media (min-width: 1181px) {
  .m-events-hero .m-ct-hero-photo { width: 34%; }
  .m-events-hero .m-ev-hero-grid { width: auto; max-width: none; margin-left: max(24px, calc((100vw - 1180px) / 2)); margin-right: calc(34vw - 14px); grid-template-columns: minmax(0, 1fr) 340px; gap: 32px; padding: 0; }
  .m-events-hero .m-page-title { font-size: clamp(38px, 3.5vw, 58px); }
}
@media (max-width: 1180px) { .m-ev-hero-grid { grid-template-columns: 1fr; } .m-ev-mini { display: none; } .m-events-hero .m-ct-hero-photo { width: 40%; } }
/* Payments hero (design 2026) */
.m-payments-hero .m-cur-rule { margin: 20px 0 18px; }
.m-payments-hero .m-ct-hero-photo img { object-position: 40% 20%; }
/* Our Staff hero and team heading (design 2026) */
.m-staff-hero { min-height: 340px; padding: 56px 0 60px; }
.m-staff-hero .m-ct-hero-photo { width: 50%; }
.m-staff-hero .m-ct-hero-photo img { object-position: 60% 25%; }
.m-staff-hero .m-ct-hero-copy { max-width: 600px; }
.m-staff-hero .m-cur-rule { margin: 18px 0 16px; }
.m-staff-body { padding-top: 48px; }
.m-staff-head { position: relative; max-width: 760px; margin: 0 auto 28px; text-align: center; }
.m-staff-h { display: flex; align-items: center; justify-content: center; gap: 22px; margin: 0 0 12px; color: var(--m-navy); font: 700 clamp(32px, 3.4vw, 48px)/1.1 var(--m-serif); }
.m-staff-h::before, .m-staff-h::after { content: ''; width: 52px; height: 2px; border-radius: 2px; background: #4fc3d4; }
.m-staff-head .m-copy { margin: 0 auto; color: var(--m-muted); font-size: 15.5px; }
.m-staff-script { position: absolute; left: -230px; top: 40px; margin: 0; transform: rotate(-8deg); color: #1a8696; font: 600 34px/1.05 Caveat, 'Segoe Script', cursive; max-width: 200px; text-align: left; }
.m-staff-script::after { content: ''; display: block; width: 64px; height: 3px; margin-top: 8px; border-radius: 3px; background: #e9bb4d; transform: rotate(-4deg); }
@media (max-width: 1240px) { .m-staff-script { position: static; transform: rotate(-4deg); margin: 0 auto 6px; text-align: center; max-width: none; font-size: 28px; } .m-staff-script::after { margin: 6px auto 0; } }
@media (max-width: 1080px) { .m-staff-hero .m-ct-hero-photo { width: 44%; } }
.m-staff-hero .m-page-title { font-size: clamp(36px, 3.3vw, 54px); }
@media (min-width: 1081px) { .m-staff-hero .m-ct-hero-photo { width: 47%; } .m-staff-hero .m-ct-hero-copy { max-width: min(600px, 48vw); } }
/* phones: every photo hero shows its photo full width on top (must stay last) */
@media (max-width: 760px) { .m-adm-hero.m-ct-hero .m-ct-hero-photo { width: 100%; height: 240px; opacity: 1; } .m-staff-hero .m-ct-hero-photo img { object-position: 55% 30%; } }
/* Join Our Team hero (design 2026) */
.m-join-hero .m-cur-rule { margin: 20px 0 18px; }
.m-join-hero .m-ct-hero-photo { width: 48%; }
.m-join-hero .m-ct-hero-photo img { object-position: 30% 40%; }
@media (max-width: 1080px) { .m-join-hero .m-ct-hero-photo { width: 40%; } }
@media (max-width: 760px) { .m-adm-hero.m-join-hero .m-ct-hero-photo { width: 100%; } .m-join-hero .m-ct-hero-photo img { object-position: 45% 40%; } }
/* Staff-only link on closed pages */
.m-status-peek { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 6px; margin: 18px auto 0; padding: 8px 14px; max-width: 520px; border: 1px dashed #c7d5e3; border-radius: 12px; background: #f6f9fc; color: #475569; font-size: 13px; }
.m-status-peek .ic { width: 15px; height: 15px; }
.m-status-peek a { color: #12355b; font-weight: 700; }

/* Organization chart (people): pastors on top, principal in the center, secretary under her, then the team by area */
.m-org-tree .m-org-node strong { font-size: 18px; }
.m-org-tree .m-org-node small { font-size: 13.5px; }
.m-org-pair { display: flex; align-items: center; justify-content: center; width: 100%; gap: 0; }
.m-org-pair .m-org-board { flex: 0 1 300px; min-width: 0; }
.m-org-join { width: 48px; height: 2px; background: #7fb5c6; }
.m-org-tree .m-org-lead { min-width: min(100%, 340px); padding: 20px 30px; box-shadow: 0 18px 34px -20px rgba(23,128,141,.9); }
.m-org-tree .m-org-lead strong { font-size: 21px; }
.m-org-second { min-width: min(100%, 280px); background: #fff; color: var(--m-navy); border: 2px solid #9fd0d9; box-shadow: 0 12px 26px -20px rgba(13,42,71,.5); }
.m-org-second small { color: var(--m-muted) !important; }
.m-org-second .ic { color: #17808d; }
.m-org-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 22px 20px; align-items: start; padding-top: 34px; border-top: 2px solid #b9d9e2; }
.m-org-grid::before, .m-org-grid .m-org-col::before { display: none; }
.m-org-grid .m-org-col { max-width: none; }
.m-org-grid .m-org-items li strong { color: var(--m-navy); font-size: 14.5px; font-weight: 700; }
@media (max-width: 700px) {
  .m-org-pair { flex-direction: column; } .m-org-pair .m-org-board { flex-basis: auto; } .m-org-join { width: 2px; height: 22px; }
  .m-org-tree .m-org-node { width: 100%; } .m-org-grid { grid-template-columns: 1fr; }
}

/* Organization chart: small photo (or initials) per person; the card grows on hover, focus or tap */
.m-org-grid .m-org-items li { display: flex; align-items: center; gap: 12px; padding: 9px 12px; text-align: left; cursor: default; transition: transform .2s ease, box-shadow .2s ease, background .2s ease; transform-origin: left center; }
.m-org-grid .m-org-items li > span:last-child { display: grid; gap: 1px; min-width: 0; }
.m-org-av { position: relative; display: grid; place-items: center; flex: 0 0 auto; width: 40px; height: 40px; overflow: hidden; border: 2px solid #fff; border-radius: 50%; background: linear-gradient(180deg, #dff1f5, #c6e3ea); color: #17808d; font-size: 13px; font-weight: 800; letter-spacing: .02em; box-shadow: 0 4px 10px -6px rgba(13,42,71,.5); transition: width .2s ease, height .2s ease, font-size .2s ease; }
.m-org-av picture, .m-org-av img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 25%; }
.m-org-grid .m-org-items li:hover, .m-org-grid .m-org-items li:focus-visible, .m-org-grid .m-org-items li:active { z-index: 2; background: #fff; transform: scale(1.07); box-shadow: 0 16px 30px -16px rgba(13,42,71,.55); outline: none; }
.m-org-grid .m-org-items li:hover .m-org-av, .m-org-grid .m-org-items li:focus-visible .m-org-av, .m-org-grid .m-org-items li:active .m-org-av { width: 64px; height: 64px; font-size: 18px; }
.m-org-grid .m-org-items li:focus-visible { box-shadow: 0 0 0 3px var(--m-teal-soft), 0 16px 30px -16px rgba(13,42,71,.55); }
.m-org-person { transition: transform .2s ease, box-shadow .2s ease; }
.m-org-person .m-org-av { width: 72px; height: 72px; border-width: 3px; border-color: rgba(255,255,255,.9); box-shadow: 0 8px 18px -8px rgba(0,0,0,.45); }
.m-org-tree .m-org-lead .m-org-av { width: 84px; height: 84px; }
.m-org-person:hover, .m-org-person:focus-visible { transform: scale(1.05); box-shadow: 0 20px 36px -18px rgba(13,42,71,.7); outline: none; }
.m-org-person:hover .m-org-av, .m-org-person:focus-visible .m-org-av { width: 96px; height: 96px; }
@media (max-width: 700px) { .m-org-person .m-org-av, .m-org-tree .m-org-lead .m-org-av { width: 60px; height: 60px; } }
.m-org-person:focus-visible { box-shadow: 0 0 0 3px var(--m-teal-soft), 0 20px 36px -18px rgba(13,42,71,.7); }
@media (prefers-reduced-motion: reduce) {
  .m-org-grid .m-org-items li, .m-org-av, .m-org-person { transition: none; }
  .m-org-grid .m-org-items li:hover, .m-org-person:hover { transform: none; }
}
/* Default avatar (school logo) for people without a photo yet */
.m-org-av.is-logo { background: #fff; }
.m-org-av.is-logo picture, .m-org-av.is-logo img { object-fit: contain; object-position: center; padding: 3px; }
