/* MJS Digital Campus — front-end styles */
:root {
  --mjs-r-s: 10px; --mjs-r-m: 16px; --mjs-r-l: 28px;
  --mjs-ease: cubic-bezier(.2,.7,.2,1);
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
:where(img) { height: auto; }
::selection { background: #F1D27A; color: #6E0F3B; }
:focus-visible { outline: 3px solid #D4A93C; outline-offset: 2px; border-radius: 4px; }

/* ---------- Top bar & header ---------- */
.mjs-topbar a { color: #fff; text-decoration: none; }
.mjs-topbar a:hover { color: #F1D27A; }
.mjs-topbar p { margin: 0; }
.mjs-pulse { display: inline-block; width: .55rem; height: .55rem; border-radius: 50%; background: #F1D27A; margin-right: .25rem; box-shadow: 0 0 0 0 rgba(241,210,122,.7); animation: mjs-pulse 2s infinite; --animation-reduced: none; }
@keyframes mjs-pulse { 0% { box-shadow: 0 0 0 0 rgba(241,210,122,.6); } 70% { box-shadow: 0 0 0 10px rgba(241,210,122,0); } 100% { box-shadow: 0 0 0 0 rgba(241,210,122,0); } }

.mjs-site-header { position: sticky; top: 0; z-index: 50; }
.admin-bar .mjs-site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .mjs-site-header { top: 0; } }
.mjs-header { position: relative; z-index: 0; background: transparent; border-bottom: 1px solid rgba(200,20,106,.08); transition: box-shadow .3s var(--mjs-ease); }
/* Frosted background lives on a pseudo-element: backdrop-filter on the header itself
   would trap the fixed-position mobile menu overlay inside the header. */
.mjs-header::before { content: ""; position: absolute; inset: 0; z-index: -1; background: rgba(255,255,255,.88); -webkit-backdrop-filter: saturate(160%) blur(14px); backdrop-filter: saturate(160%) blur(14px); }
.mjs-scrolled .mjs-header { box-shadow: 0 6px 24px -12px rgba(110,15,59,.25); }
.mjs-header .wp-block-site-title a { text-decoration: none; }
.mjs-header .wp-block-site-logo img { border-radius: 50%; }
.mjs-nav a { text-decoration: none; }
.mjs-nav .wp-block-navigation-item__content { position: relative; padding-block: .35rem; }
.mjs-nav > .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content::after { content: ""; position: absolute; left: 0; right: 0; bottom: -2px; height: 2px; background: #D4A93C; transform: scaleX(0); transform-origin: left; transition: transform .25s var(--mjs-ease); }
.mjs-nav .wp-block-navigation-item:hover > .wp-block-navigation-item__content::after,
.mjs-nav .current-menu-item > .wp-block-navigation-item__content::after { transform: scaleX(1); }
.mjs-nav .wp-block-navigation__submenu-container { border-radius: var(--mjs-r-m); border: 1px solid #F1D3E2 !important; box-shadow: 0 20px 40px -16px rgba(110,15,59,.28); padding: .5rem !important; min-width: 240px !important; }
.mjs-nav .wp-block-navigation__submenu-container a { border-radius: 8px; padding: .55rem .75rem !important; }
.mjs-nav .wp-block-navigation__submenu-container a:hover { background: #FDE8F2; }
@media (max-width: 1100px) { .mjs-tagline { display: none; } }
@media (max-width: 600px) { .mjs-header-cta { display: none; } .mjs-topbar__contact { display: none; } }
.wp-block-navigation__responsive-container.is-menu-open { padding: 2rem 1.5rem; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { font-size: 1.2rem; }

/* ---------- Page banners ---------- */
.mjs-page-hero { position: relative; overflow: hidden; }
.mjs-page-hero::after { content: ""; position: absolute; inset: auto -10% -60% auto; width: 520px; height: 520px; border-radius: 50%; background: radial-gradient(circle, rgba(241,210,122,.28), transparent 65%); pointer-events: none; }
.mjs-page-hero p { color: #fbe3ef; max-width: 60ch; }

/* ---------- Landing hero ---------- */
.mjs-hero { position: relative; overflow: hidden; isolation: isolate; }
.mjs-hero::before { content: ""; position: absolute; inset: 0; background-image: radial-gradient(rgba(255,255,255,.08) 1px, transparent 1px); background-size: 22px 22px; z-index: -1; }
.mjs-hero .mjs-eyebrow { display: inline-flex; gap: .5rem; align-items: center; background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.2); padding: .35rem .9rem; border-radius: 999px; font-size: .85rem; color: #fff; }
.mjs-hero h1 { color: #fff; }
.mjs-hero h1 mark { background: none; color: #F1D27A; }
.mjs-hero-media { position: relative; }
.mjs-hero-media .wp-block-image img { border-radius: var(--mjs-r-l); box-shadow: 0 30px 60px -20px rgba(0,0,0,.45); aspect-ratio: 4/3; object-fit: cover; width: 100%; }
.mjs-float-card { position: absolute; background: #fff; color: #2A0E1C; border-radius: var(--mjs-r-m); padding: .8rem 1rem; box-shadow: 0 20px 40px -16px rgba(110,15,59,.35); font-size: .85rem; line-height: 1.35; }
.mjs-float-card strong { display: block; font-family: "Plus Jakarta Sans", sans-serif; font-size: 1.15rem; color: #C8146A; }
.mjs-float-card--a { left: -1.25rem; bottom: 1.5rem; }
.mjs-float-card--b { right: -1rem; top: 1.5rem; }
@media (max-width: 781px) { .mjs-float-card--a { left: .75rem; } .mjs-float-card--b { right: .75rem; } }
.is-style-mjs-ghost .wp-block-button__link, .wp-block-button.is-style-outline .wp-block-button__link { background: transparent; border: 2px solid currentColor; }

/* ---------- Cards & grids ---------- */
.mjs-card { background: #fff; border: 1px solid #F1D3E2; border-radius: var(--mjs-r-m); overflow: hidden; transition: transform .3s var(--mjs-ease), box-shadow .3s var(--mjs-ease), border-color .3s; height: 100%; }
.mjs-card:hover { transform: translateY(-4px); box-shadow: 0 20px 40px -16px rgba(110,15,59,.28); border-color: transparent; }
.mjs-card .wp-block-post-featured-image, .mjs-card > figure { margin: 0; }
.mjs-card img { width: 100%; object-fit: cover; }
.mjs-card h3 a, .mjs-card h3 { text-decoration: none; color: #6E0F3B; }
.mjs-card-pad { padding: 1.5rem; }
.mjs-icon { width: 3rem; height: 3rem; border-radius: 14px; display: grid; place-items: center; font-size: 1.5rem; line-height: 1; background: #FDE8F2; margin-bottom: .25rem; }
.mjs-icon--gold { background: #FFF6E3; } .mjs-icon--coral { background: #FDE8E1; } .mjs-icon--sky { background: #E3EEFA; }

/* Quick-access tiles (digital campus) */
.mjs-tiles { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 1rem; }
.mjs-tile { margin: 0 !important; }
.mjs-main .wp-block-group.is-layout-grid:not(.mjs-card-grid) { grid-template-columns: repeat(auto-fit, minmax(min(14rem, 100%), 1fr)); }
.mjs-stats .wp-block-group.is-layout-grid { grid-template-columns: repeat(auto-fit, minmax(min(10rem, 100%), 1fr)); }
.mjs-tile a { box-sizing: border-box; display: flex; flex-direction: column; gap: .5rem; height: 100%; padding: 1.15rem; border-radius: var(--mjs-r-m); background: #fff; border: 1px solid #F1D3E2; color: #2A0E1C; text-decoration: none; font-weight: 600; font-family: "Plus Jakarta Sans", sans-serif; transition: transform .25s var(--mjs-ease), background .25s, border-color .25s, box-shadow .25s; }
.mjs-tile a span.mjs-tile__icon { font-size: 1.6rem; }
.mjs-tile a small { font-weight: 400; color: #6E5563; font-family: Inter, sans-serif; font-size: .8rem; }
.mjs-tile a:hover { transform: translateY(-3px); border-color: #C8146A; box-shadow: 0 14px 30px -14px rgba(110,15,59,.35); }

/* Stats */
.mjs-stats { border-radius: var(--mjs-r-l); }
.mjs-stat { text-align: center; }
.mjs-stat strong { display: block; font-family: "Plus Jakarta Sans", sans-serif; font-size: clamp(2rem, 4vw, 2.8rem); line-height: 1; color: #F1D27A; letter-spacing: -.02em; }
.mjs-stat span { font-size: .9rem; color: #fbe3ef; }

/* Section heading eyebrow */
.mjs-kicker { text-transform: uppercase; letter-spacing: .14em; font-size: .78rem !important; font-weight: 700; color: #D4A93C; margin-bottom: -.5rem !important; }

/* Leadership */
.mjs-person img { border-radius: 50%; aspect-ratio: 1; object-fit: cover; width: 96px; border: 4px solid #FFF6E3; }
.mjs-quote { border-left: 4px solid #D4A93C !important; padding-left: 1.25rem !important; font-size: 1.15rem; font-style: italic; }
.mjs-arabic { font-family: "Noto Naskh Arabic", "Amiri", serif; direction: rtl; font-size: 1.35rem; color: #C8146A; }

/* Steps */
.mjs-steps { counter-reset: step; }
.mjs-step { position: relative; padding-left: 3.5rem !important; }
.mjs-step::before { counter-increment: step; content: counter(step); position: absolute; left: 0; top: 0; width: 2.5rem; height: 2.5rem; border-radius: 50%; background: #C8146A; color: #fff; display: grid; place-items: center; font-weight: 700; font-family: "Plus Jakarta Sans", sans-serif; }

/* Gallery */
.mjs-gallery.wp-block-gallery img { border-radius: 12px; transition: transform .4s var(--mjs-ease); }
.mjs-gallery.wp-block-gallery figure { overflow: hidden; border-radius: 12px; }
.mjs-gallery.wp-block-gallery figure:hover img { transform: scale(1.05); }

/* Tables */
.wp-block-table table { border-collapse: separate; border-spacing: 0; border: 1px solid #F1D3E2; border-radius: 12px; overflow: hidden; width: 100%; }
.wp-block-table th { background: #FDE8F2; color: #6E0F3B; text-align: left; font-family: "Plus Jakarta Sans", sans-serif; }
.wp-block-table td, .wp-block-table th { border: 0; border-bottom: 1px solid #F1D3E2; padding: .8rem 1rem; }
.wp-block-table tr:last-child td { border-bottom: 0; }

/* Details / accordions */
.wp-block-details { border: 1px solid #F1D3E2; border-radius: 12px; background: #fff; }
.wp-block-details + .wp-block-details { margin-top: .75rem; }
.wp-block-details summary { font-weight: 700; font-family: "Plus Jakarta Sans", sans-serif; color: #6E0F3B; cursor: pointer; }
.wp-block-details[open] summary { margin-bottom: .75rem; }

/* Callouts */
.mjs-callout { border-radius: var(--mjs-r-m); padding: 1.25rem 1.5rem !important; }
.mjs-chip a, .mjs-chip { text-decoration: none; background: #FDE8F2; color: #C8146A; border-radius: 999px; padding: .15rem .65rem; font-weight: 600; font-size: .8rem; }

/* Map */
.mjs-map iframe { width: 100%; min-height: 360px; border: 0; border-radius: var(--mjs-r-m); display: block; }

/* Footer */
.mjs-footer a { text-decoration: none; }
.mjs-footer a:hover { color: #F1D27A !important; }
.mjs-footer-links { list-style: none; padding-left: 0; }
.mjs-footer-links li { margin: .35rem 0; }
.mjs-footer-logo img { border-radius: 50%; background: #fff; }

/* Floating WhatsApp */
.mjs-wa { position: fixed; right: 1.1rem; bottom: 1.1rem; z-index: 60; width: 56px; height: 56px; border-radius: 50%; background: #25D366; display: grid; place-items: center; box-shadow: 0 12px 28px -8px rgba(0,0,0,.35); transition: transform .25s var(--mjs-ease); }
.mjs-wa:hover { transform: scale(1.08); }
.mjs-wa svg { width: 30px; height: 30px; fill: #fff; }

/* Forms (WPForms) */
.wpforms-container input[type=text], .wpforms-container input[type=email], .wpforms-container input[type=tel], .wpforms-container select, .wpforms-container textarea { border-radius: 10px !important; border: 1px solid #e9c3d6 !important; padding: .7rem .9rem !important; }
.wpforms-container button[type=submit] { background: #C8146A !important; color: #fff !important; border-radius: 999px !important; padding: .8rem 1.8rem !important; border: 0 !important; font-weight: 700; }

/* ---------- Scroll reveal (progressive enhancement) ---------- */
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    .mjs-reveal { animation: mjs-reveal linear both; animation-timeline: view(); animation-range: entry 0% entry 40%; }
    @keyframes mjs-reveal { from { opacity: 0; translate: 0 28px; } to { opacity: 1; translate: 0 0; } }
  }
}
@media (prefers-reduced-motion: reduce) { .mjs-pulse { animation: none; } }

/* ---------- Brand: uniform gingham & poster styling ---------- */
:root { --mjs-gingham: repeating-linear-gradient(0deg, rgba(216,27,119,.18) 0 8px, transparent 8px 16px), repeating-linear-gradient(90deg, rgba(216,27,119,.18) 0 8px, transparent 8px 16px); }
.mjs-gingham { background-color: #fff; background-image: var(--mjs-gingham); }
.mjs-topbar { position: relative; }
.mjs-topbar::after { content: ""; position: absolute; left: 0; right: 0; bottom: -6px; height: 6px; background-color:#fff; background-image: var(--mjs-gingham); }
.mjs-hero::before { background-image: radial-gradient(rgba(255,255,255,.10) 1px, transparent 1px); }
.mjs-hero::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 14px; background-color: #fff; background-image: var(--mjs-gingham); opacity: .9; }
.mjs-hero h1 mark { color: #FFD9EA; font-style: italic; }
.mjs-hero .wp-block-button:not(.is-style-outline) .wp-block-button__link { background: #fff; color: #A9125A; }
.mjs-hero .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover { background: #FFF6E3; color: #6E0F3B; }
.mjs-header-cta .wp-block-button__link { background: #C8146A; color: #fff; }
.mjs-kicker { color: #C8146A !important; }
.mjs-stat strong { color: #FFD9EA; }
.mjs-tagline-band { letter-spacing: .08em; text-transform: uppercase; font-weight: 800; }
.mjs-page-hero::after { background: radial-gradient(circle, rgba(255,217,234,.35), transparent 65%); }
.mjs-page-hero, .mjs-page-cover { border-bottom: 10px solid transparent; border-image: var(--mjs-gingham) 10; }
.wp-block-site-title a, h1, h2 { font-family: "Playfair Display", Georgia, serif; }
.mjs-header .wp-block-site-title a { font-family: "Playfair Display", Georgia, serif; color: #C8146A !important; letter-spacing: .01em; }
.mjs-quote p { font-family: "Playfair Display", Georgia, serif; }
.mjs-float-card strong { color: #C8146A; }

.mjs-poster img { border-radius: 20px; box-shadow: 0 30px 60px -24px rgba(110,15,59,.45); }

/* ---------- Mobile navigation ---------- */
@media (max-width: 600px) {
  .mjs-header-cta { display: none !important; }
  .mjs-topbar__notice { font-size: .78rem !important; }
  .mjs-brand .wp-block-site-title { font-size: 1.05rem !important; }
}
.wp-block-navigation__responsive-container-open { padding: .55rem; border-radius: 12px; background: #FDE8F2; color: #6E0F3B; }
.wp-block-navigation__responsive-container-open svg { width: 26px; height: 26px; }
.wp-block-navigation__responsive-container.is-menu-open { position: fixed; inset: 0; z-index: 100000; background: #fff !important; padding: 1.25rem 1.5rem 2rem !important; overflow-y: auto; }
.admin-bar .wp-block-navigation__responsive-container.is-menu-open { top: 46px; }
@media (min-width: 783px) { .admin-bar .wp-block-navigation__responsive-container.is-menu-open { top: 32px; } }
.wp-block-navigation__responsive-container.is-menu-open::before { content: "Mount Judi School"; display: block; font: 700 1.35rem "Playfair Display", Georgia, serif; color: #C8146A; padding: .35rem 0 1rem; border-bottom: 6px solid transparent; border-image: var(--mjs-gingham) 6; margin-bottom: .5rem; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { align-items: stretch !important; padding-top: 0 !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap: 0 !important; align-items: stretch !important; width: 100%; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { width: 100%; border-bottom: 1px solid #F1D3E2; font-size: 1.1rem; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { display: block; padding: .85rem .25rem !important; color: #2A0E1C; font-weight: 600; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content::after { display: none; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { border: 0 !important; box-shadow: none !important; padding: 0 0 .5rem 1rem !important; min-width: 0 !important; background: transparent !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item { border: 0; font-size: 1rem; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: .45rem .25rem !important; font-weight: 500; color: #6E5563; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-icon { display: none; }
.wp-block-navigation__responsive-container-close { top: 1.1rem !important; right: 1.1rem !important; padding: .5rem; border-radius: 12px; background: #FDE8F2; color: #6E0F3B; }
.mjs-mobile-cta { display: none; }
.is-menu-open .mjs-mobile-cta { display: block; }
.mjs-nav .mjs-nav-apply { display: none !important; }
.is-menu-open .mjs-nav-apply { display: block !important; border: 0 !important; margin-top: 1rem; }
.is-menu-open .mjs-nav-apply .wp-block-navigation-item__content { background: #C8146A; color: #fff !important; text-align: center; border-radius: 999px; padding: .9rem 1rem !important; }
.is-menu-open .mjs-nav-call { margin-top: .6rem; }
.is-menu-open .mjs-nav-call .wp-block-navigation-item__content { background: #FDE8F2; color: #6E0F3B !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { align-items: flex-start !important; justify-content: flex-start !important; text-align: left !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { width: 100%; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog { position: relative; margin-top: 0 !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close { position: absolute !important; top: -3.95rem !important; right: 0 !important; }
body:has(.is-menu-open) .mjs-wa { display: none; }
