:root {
  --mns-forest: #e7242a; /* Logo red / primary accent */
  --mns-forest-dark: #4e548c; /* Logo indigo */
  --mns-forest-soft: #686fa5;
  --mns-sage: #dfeee7; /* Logo mint tint */
  --mns-sage-light: #f4f8f6;
  --mns-gold: #868cbf; /* Logo lavender blue */
  --mns-gold-soft: #f0f0f7;
  --mns-cream: #faf9f7;
  --mns-ink: #24242b;
  --mns-muted: #6d6d75;
  --mns-border: #e8e6e3;
  --mns-white: #fff;
  --mns-danger: #b91f26;
  --mns-shadow-sm: 0 8px 24px rgba(36, 36, 43, .055);
  --mns-shadow: 0 18px 50px rgba(36, 36, 43, .075);
  --mns-radius-sm: 10px;
  --mns-radius: 18px;
  --mns-radius-lg: 28px;
  --mns-container: 1180px;
  --mns-header: 78px;
  --mns-serif: "Iowan Old Style", Baskerville, Georgia, serif;
  --mns-red-dark: #b91f26;
  --mns-indigo: #4e548c;
  --mns-lavender: #868cbf;
  --mns-sky: #b3d3e5;
  --mns-mint: #8ac7a6;
  --mns-surface: #f6f5f3;
  --mns-sans: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--mns-ink);
  background: var(--mns-white);
  font-family: var(--mns-sans);
  font-size: 16px;
  line-height: 1.72;
  -webkit-font-smoothing: antialiased;
}
body.admin-bar .site-header { top: 32px; }
img { max-width: 100%; height: auto; display: block; }
a { color: var(--mns-forest); text-decoration: none; }
a:hover { color: var(--mns-forest-dark); }
button, input, textarea, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button:focus-visible, a:focus-visible, input:focus-visible, summary:focus-visible {
  outline: 3px solid rgba(78,84,140,.38);
  outline-offset: 3px;
}
h1, h2, h3, h4, h5, h6 {
  color: var(--mns-ink);
  font-family: var(--mns-serif);
  line-height: 1.14;
  letter-spacing: -.025em;
  margin-top: 0;
}
h1 { font-size: clamp(2.5rem, 5vw, 4.8rem); }
h2 { font-size: clamp(2rem, 3.4vw, 3.2rem); }
h3 { font-size: clamp(1.25rem, 2vw, 1.6rem); }
p { margin-top: 0; }

.mns-container { width: min(calc(100% - 40px), var(--mns-container)); margin-inline: auto; }
.content-narrow { width: min(calc(100% - 40px), 800px); }
.section { padding: 88px 0; }
.section-soft { background: var(--mns-cream); }
.screen-reader-text {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}
.skip-link {
  position: fixed; top: 8px; left: 8px; z-index: 100000; background: var(--mns-white); color: var(--mns-forest);
  padding: 10px 14px; border-radius: 8px; transform: translateY(-150%);
}
.skip-link:focus { transform: none; }

.eyebrow {
  color: var(--mns-forest);
  font-size: .77rem;
  line-height: 1.3;
  letter-spacing: .14em;
  font-weight: 800;
  text-transform: uppercase;
  margin: 0 0 14px;
}
.section-heading { max-width: 720px; margin-bottom: 38px; }
.section-heading h2 { margin: 0 0 14px; }
.section-heading > p:last-child { color: var(--mns-muted); font-size: 1.08rem; max-width: 680px; }
.heading-with-link { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-bottom: 38px; }
.heading-with-link .section-heading { margin-bottom: 0; }
.heading-with-link.compact { align-items: start; margin-bottom: 24px; }
.heading-with-link.compact h2 { font-size: clamp(1.65rem, 2.5vw, 2.35rem); margin-bottom: 0; }

.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 44px; padding: 11px 18px; border-radius: 999px; border: 1px solid transparent;
  font-size: .92rem; line-height: 1; font-weight: 750; transition: .18s ease; cursor: pointer;
}
.btn:hover { transform: translateY(-1px); }
.btn-lg { min-height: 50px; padding: 14px 22px; }
.btn-primary { background: var(--mns-forest); color: var(--mns-white); box-shadow: 0 8px 20px rgba(231,36,42,.14); }
.btn-primary:hover { background: var(--mns-forest-dark); color: var(--mns-white); }
.btn-light { background: var(--mns-white); color: var(--mns-forest-dark); }
.btn-light:hover { background: var(--mns-cream); color: var(--mns-forest-dark); }
.btn-ghost { background: transparent; border-color: var(--mns-border); color: var(--mns-forest-dark); }
.btn-ghost:hover { background: var(--mns-sage-light); border-color: #ddd9d6; }
.btn-outline-light { border-color: rgba(255,255,255,.48); color: var(--mns-white); }
.btn-outline-light:hover { background: rgba(255,255,255,.10); color: var(--mns-white); }
.btn-block { width: 100%; }
.text-link { display: inline-flex; gap: 8px; align-items: center; font-weight: 760; font-size: .92rem; }
.text-link span { transition: transform .18s ease; }
.text-link:hover span { transform: translateX(3px); }
.text-link-large { font-size: 1rem; }

/* Header */
.site-header {
  position: sticky; top: 0; z-index: 999; background: rgba(255,255,255,.94); backdrop-filter: blur(16px);
  border-bottom: 1px solid rgba(232,230,227,.92);
}
.header-inner { height: var(--mns-header); display: flex; align-items: center; gap: 28px; }
.site-brand { display: inline-flex; align-items: center; gap: 11px; flex: 0 0 auto; color: var(--mns-ink); }
.site-brand:hover { color: var(--mns-ink); }
.site-logo-image, .custom-logo { width: auto; max-width: 190px; max-height: 54px; object-fit: contain; }
.custom-logo-link { display: inline-flex; }
.site-logo-mark {
  width: 42px; height: 42px; border-radius: 13px; background: var(--mns-forest); color: var(--mns-white);
  display: grid; place-items: center; font-family: var(--mns-serif); font-size: 1.55rem; font-weight: 700;
}
.site-logo-copy { display: flex; flex-direction: column; line-height: 1.08; }
.site-logo-copy strong { font-family: var(--mns-serif); font-size: 1.27rem; }
.site-logo-copy small { margin-top: 4px; color: var(--mns-muted); font-size: .64rem; letter-spacing: .06em; text-transform: uppercase; }
.primary-nav { margin-left: auto; }
.primary-menu, .primary-menu ul { list-style: none; margin: 0; padding: 0; }
.primary-menu { display: flex; align-items: center; gap: 4px; }
.primary-menu > li { position: relative; }
.primary-menu > li > a { display: block; padding: 11px 12px; color: var(--mns-ink); font-size: .9rem; font-weight: 680; border-radius: 10px; }
.primary-menu > li > a:hover, .primary-menu .current-menu-item > a, .primary-menu .current-menu-ancestor > a { background: var(--mns-sage-light); color: var(--mns-forest-dark); }
.primary-menu .sub-menu {
  position: absolute; min-width: 230px; top: calc(100% + 10px); left: 0; background: var(--mns-white); padding: 9px;
  border: 1px solid var(--mns-border); border-radius: 14px; box-shadow: var(--mns-shadow); opacity: 0; visibility: hidden; transform: translateY(5px); transition: .16s ease;
}
.primary-menu li:hover > .sub-menu, .primary-menu li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.primary-menu .sub-menu a { display: block; padding: 9px 10px; border-radius: 8px; color: var(--mns-ink); font-size: .9rem; }
.primary-menu .sub-menu a:hover { background: var(--mns-sage-light); color: var(--mns-forest); }
.header-actions { display: flex; align-items: center; gap: 8px; }
.menu-toggle { display: none; width: 44px; height: 44px; padding: 10px; background: transparent; border: 0; border-radius: 10px; }
.menu-toggle span:not(.screen-reader-text) { display: block; width: 22px; height: 2px; margin: 4px auto; background: var(--mns-ink); border-radius: 4px; transition: .18s ease; }
.mobile-panel { border-top: 1px solid var(--mns-border); background: var(--mns-white); }
.mobile-panel[hidden] { display: none !important; }
.mobile-panel > .mns-container { padding: 18px 0 24px; }
.mobile-menu-list, .mobile-menu-list ul, .mobile-panel .primary-menu { list-style: none; padding: 0; margin: 0; display: block; }
.mobile-menu-list > li > a, .mobile-panel .primary-menu > li > a { display: block; padding: 11px 5px; color: var(--mns-ink); font-weight: 720; border-bottom: 1px solid #efeeec; }
.mobile-menu-list .sub-menu, .mobile-panel .sub-menu { padding: 5px 0 8px 16px; }
.mobile-menu-list .sub-menu a, .mobile-panel .sub-menu a { display: block; padding: 7px 0; color: var(--mns-muted); }
.mobile-panel-actions { display: flex; gap: 10px; padding-top: 18px; }

/* Breadcrumbs */
.breadcrumbs { background: #fafbf9; border-bottom: 1px solid #efeeec; font-size: .78rem; color: var(--mns-muted); }
.breadcrumbs .mns-container { min-height: 40px; display: flex; align-items: center; flex-wrap: wrap; gap: 7px; }
.breadcrumbs a { color: var(--mns-muted); }
.breadcrumbs a:hover { color: var(--mns-forest); }

/* Hero */
.hero-home, .unit-hero {
  position: relative; overflow: hidden; background:
    radial-gradient(circle at 85% 20%, rgba(200,146,46,.28), transparent 26%),
    radial-gradient(circle at 66% 80%, rgba(255,255,255,.10), transparent 30%),
    linear-gradient(125deg, var(--mns-forest-dark), var(--mns-forest));
  color: var(--mns-white);
}
.hero-home { min-height: 650px; display: flex; align-items: stretch; }
.hero-home.has-image, .unit-hero.has-image { background-image: var(--hero-image); background-size: cover; background-position: center; }
.hero-overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(10,45,34,.95) 0%, rgba(14,51,40,.82) 45%, rgba(14,51,40,.25) 80%, rgba(14,51,40,.10)); }
.hero-grid { position: relative; z-index: 1; min-height: 650px; display: grid; grid-template-columns: minmax(0, 1fr) 300px; align-items: end; gap: 50px; padding-top: 90px; padding-bottom: 74px; }
.hero-copy { max-width: 760px; align-self: center; }
.hero-eyebrow, .hero-home .eyebrow, .unit-hero .eyebrow, .admission-cta .eyebrow { color: #d9e9df; }
.hero-copy h1, .unit-hero h1 { color: var(--mns-white); margin: 0 0 20px; text-wrap: balance; }
.hero-lead { font-size: clamp(1.05rem, 1.8vw, 1.24rem); line-height: 1.68; color: rgba(255,255,255,.86); max-width: 690px; margin-bottom: 30px; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 11px; }
.hero-note {
  align-self: end; display: flex; gap: 14px; align-items: center; padding: 18px 20px; border-radius: 16px;
  background: rgba(255,255,255,.11); border: 1px solid rgba(255,255,255,.2); backdrop-filter: blur(12px);
}
.hero-note-number { font-family: var(--mns-serif); font-size: 2.4rem; line-height: 1; color: #f2dba9; }
.hero-note div { display: flex; flex-direction: column; }
.hero-note strong { font-size: .92rem; color: var(--mns-white); }
.hero-note small { color: rgba(255,255,255,.68); line-height: 1.4; margin-top: 3px; }

/* Unit cards */
.unit-grid { display: grid; grid-template-columns: repeat(5, minmax(0,1fr)); gap: 18px; }
.unit-card { background: var(--mns-white); border: 1px solid var(--mns-border); border-radius: var(--mns-radius); overflow: hidden; transition: .2s ease; min-width: 0; }
.unit-card:hover { transform: translateY(-4px); box-shadow: var(--mns-shadow); border-color: #ddd9d6; }
.unit-card-media, .news-card-media, .facility-card-media, .generic-card-image { display: block; overflow: hidden; background: var(--mns-sage-light); }
.unit-card-media { aspect-ratio: 1.15 / 1; }
.unit-card-media img, .news-card-media img, .facility-card-media img, .generic-card-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.unit-card:hover img, .news-card:hover img, .facility-card:hover img, .generic-card:hover img { transform: scale(1.035); }
.media-placeholder { min-height: 100%; width: 100%; display: grid; place-items: center; background: linear-gradient(135deg, var(--mns-sage-light), var(--mns-gold-soft)); color: var(--mns-forest); }
.media-placeholder span { font-family: var(--mns-serif); font-size: 1.25rem; font-weight: 700; }
.unit-card-body { padding: 19px; }
.unit-card h3 { font-size: 1.35rem; margin: 12px 0 7px; }
.unit-card h3 a, .news-card h3 a, .facility-card h3 a, .generic-card h2 a { color: var(--mns-ink); }
.unit-card p { color: var(--mns-muted); font-size: .9rem; line-height: 1.6; }
.unit-tagline { color: var(--mns-forest) !important; font-weight: 730; margin-bottom: 8px; }
.badge { display: inline-flex; align-items: center; min-height: 25px; padding: 4px 8px; border-radius: 999px; background: var(--mns-sage-light); color: var(--mns-forest); font-size: .68rem; line-height: 1; font-weight: 800; letter-spacing: .02em; }
.badge-unit { background: #f1f3f1; color: #59645f; }
.badge-upcoming { background: #e7f0ea; color: var(--mns-forest); }
.badge-current { background: #fff0ce; color: #815c14; }
.badge-past { background: #eef0ef; color: #6a726e; }
.badge-penting { background: #fff0ce; color: #815c14; }
.badge-darurat { background: #fbe6e6; color: var(--mns-danger); }
.card-meta-row { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; color: var(--mns-muted); font-size: .75rem; }
.small-meta { color: var(--mns-muted); font-size: .78rem; }

/* Why */
.section-why { background: var(--mns-forest-dark); color: rgba(255,255,255,.78); }
.section-why h2, .section-why h3 { color: var(--mns-white); }
.section-why .eyebrow { color: #cbded2; }
.section-why .section-heading > p:last-child { color: rgba(255,255,255,.68); }
.section-why .text-link { color: #edd8aa; }
.why-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: 72px; align-items: start; }
.pillar-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.pillar-card { min-height: 230px; padding: 26px; border-radius: 18px; border: 1px solid rgba(255,255,255,.13); background: rgba(255,255,255,.055); }
.pillar-card > span { display: block; color: #d6b56d; font-size: .75rem; font-weight: 800; margin-bottom: 42px; }
.pillar-card h3 { margin-bottom: 10px; }
.pillar-card p { color: rgba(255,255,255,.66); margin-bottom: 0; font-size: .92rem; }

/* Schedule */
.section-day { background: #f2f6f3; }
.schedule-tabs { display: grid; grid-template-columns: 220px minmax(0,1fr); gap: 40px; }
.tab-list { display: flex; flex-direction: column; gap: 7px; }
.tab-list button { border: 1px solid var(--mns-border); background: var(--mns-white); color: var(--mns-ink); padding: 12px 14px; border-radius: 10px; text-align: left; cursor: pointer; font-weight: 700; }
.tab-list button:hover, .tab-list button.is-active { background: var(--mns-forest); color: var(--mns-white); border-color: var(--mns-forest); }
.schedule-panel[hidden] { display: none; }
.timeline { position: relative; }
.timeline-item { display: grid; grid-template-columns: 100px minmax(0,1fr); gap: 24px; padding: 0 0 27px; position: relative; }
.timeline-item:not(:last-child)::before { content: ""; position: absolute; left: 89px; top: 28px; bottom: 0; width: 1px; background: #cfdcd4; }
.timeline-item time { color: var(--mns-forest); font-weight: 800; font-size: .87rem; padding-top: 3px; }
.timeline-item > div { position: relative; padding-left: 24px; }
.timeline-item > div::before { content: ""; position: absolute; width: 9px; height: 9px; border-radius: 50%; background: var(--mns-gold); left: -16px; top: 8px; box-shadow: 0 0 0 5px #e7efe9; }
.timeline-item h3 { font-family: var(--mns-sans); font-size: 1rem; letter-spacing: -.01em; margin: 0 0 5px; }
.timeline-item p { color: var(--mns-muted); font-size: .9rem; margin: 0; }
.split-heading-content { display: grid; grid-template-columns: .75fr 1.25fr; gap: 75px; align-items: start; }

/* Facilities / News */
.facility-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 18px; }
.facility-card, .news-card { background: var(--mns-white); border-radius: var(--mns-radius); border: 1px solid var(--mns-border); overflow: hidden; min-width: 0; }
.facility-card-media, .news-card-media { aspect-ratio: 1.45 / 1; }
.facility-card-body, .news-card-body { padding: 18px; }
.facility-card h3, .news-card h3 { margin: 10px 0 8px; font-size: 1.28rem; }
.facility-card p, .news-card p { color: var(--mns-muted); font-size: .88rem; line-height: 1.58; }
.news-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; }

/* Information home */
.section-information { background: var(--mns-white); }
.information-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 64px; }
.news-list-compact { border-top: 1px solid var(--mns-border); }
.news-list-compact article { padding: 20px 0; border-bottom: 1px solid var(--mns-border); }
.news-list-compact time { color: var(--mns-muted); font-size: .75rem; }
.news-list-compact h3 { font-family: var(--mns-sans); letter-spacing: -.015em; margin: 5px 0 7px; font-size: 1.15rem; }
.news-list-compact h3 a { color: var(--mns-ink); }
.news-list-compact p { color: var(--mns-muted); margin-bottom: 0; font-size: .9rem; }
.agenda-home-panel { background: var(--mns-cream); border-radius: var(--mns-radius-lg); padding: 30px; }
.agenda-stack { display: grid; gap: 12px; }
.agenda-card { display: grid; grid-template-columns: 64px minmax(0,1fr); gap: 15px; padding: 15px; background: var(--mns-white); border: 1px solid var(--mns-border); border-radius: 14px; }
.agenda-date-box { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 64px; background: var(--mns-sage-light); border-radius: 11px; color: var(--mns-forest); line-height: 1; }
.agenda-date-box strong { font-family: var(--mns-serif); font-size: 1.55rem; }
.agenda-date-box span { margin-top: 5px; font-size: .66rem; font-weight: 800; text-transform: uppercase; }
.agenda-card h3 { font-family: var(--mns-sans); font-size: 1rem; margin: 7px 0 4px; letter-spacing: -.01em; }
.agenda-card h3 a { color: var(--mns-ink); }
.agenda-card p { margin: 0; }
.archive-agenda-stack { max-width: 880px; }
.archive-agenda-stack .agenda-card { grid-template-columns: 82px minmax(0,1fr); padding: 22px; }
.archive-agenda-stack .agenda-date-box { min-height: 82px; }
.archive-agenda-stack .agenda-card h3 { font-size: 1.2rem; }

/* Locations */
.section-locations { background: var(--mns-sage-light); }
.location-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.location-grid-large { grid-template-columns: repeat(2,minmax(0,1fr)); }
.location-card { background: var(--mns-white); border: 1px solid #e1dedb; border-radius: var(--mns-radius); padding: 26px; }
.location-card h2, .location-card h3 { margin: 12px 0 10px; }
.location-card p { color: var(--mns-muted); }
.location-pin { color: var(--mns-gold); }
.card-actions { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 18px; }

/* CTA */
.admission-cta { background: var(--mns-forest); color: rgba(255,255,255,.78); }
.admission-inner { display: flex; align-items: center; justify-content: space-between; gap: 50px; }
.admission-inner h2 { color: var(--mns-white); margin-bottom: 12px; }
.admission-inner p:not(.eyebrow) { max-width: 700px; margin-bottom: 0; }
.cta-actions { display: flex; gap: 10px; flex-wrap: wrap; flex: 0 0 auto; }

/* Unit detail */
.unit-hero { min-height: 560px; display: flex; align-items: center; }
.unit-hero-inner { position: relative; z-index: 1; padding: 105px 0 92px; }
.unit-hero-copy { max-width: 750px; }
.unit-hero-tagline { color: #efd89f; font-weight: 760; font-size: 1.05rem; margin: -8px 0 14px; }
.quick-facts-wrap { background: var(--mns-white); border-bottom: 1px solid var(--mns-border); }
.quick-facts { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); }
.quick-fact { padding: 22px 18px; border-right: 1px solid var(--mns-border); }
.quick-fact:first-child { padding-left: 0; }
.quick-fact:last-child { border-right: 0; }
.quick-fact span { display: block; color: var(--mns-muted); font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.quick-fact strong { display: block; color: var(--mns-ink); font-size: .96rem; margin-top: 3px; }
.lead-content { font-size: 1.14rem; }
.academic-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.academic-card { padding: 28px; background: var(--mns-white); border: 1px solid var(--mns-border); border-radius: var(--mns-radius); }
.academic-card h3 { font-size: 1.28rem; margin-bottom: 11px; }
.academic-card p:last-child { color: var(--mns-muted); margin-bottom: 0; }
.program-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.program-card { min-height: 220px; padding: 25px; border: 1px solid var(--mns-border); border-radius: var(--mns-radius); background: var(--mns-white); }
.program-number { display: block; color: var(--mns-gold); font-weight: 800; margin-bottom: 48px; font-size: .78rem; }
.program-card h3 { margin-bottom: 9px; }
.program-card p { color: var(--mns-muted); font-size: .9rem; }
.profile-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 15px; }
.profile-card { padding: 25px; border-radius: var(--mns-radius); background: var(--mns-forest-dark); color: rgba(255,255,255,.7); min-height: 220px; }
.profile-card > span { display: inline-grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: rgba(255,255,255,.1); color: #e7c983; margin-bottom: 44px; }
.profile-card h3 { color: var(--mns-white); font-size: 1.25rem; }
.profile-card p { margin-bottom: 0; font-size: .88rem; }
.section-boarding { background: var(--mns-forest-dark); color: rgba(255,255,255,.7); }
.section-boarding h2, .section-boarding h3 { color: var(--mns-white); }
.section-boarding .eyebrow { color: #d6b56d; }
.section-boarding .section-heading > p:last-child { color: rgba(255,255,255,.65); }
.boarding-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; }
.boarding-grid article { border: 1px solid rgba(255,255,255,.13); border-radius: 16px; padding: 23px; background: rgba(255,255,255,.045); }
.boarding-grid h3 { font-family: var(--mns-sans); font-size: 1rem; }
.boarding-grid p { font-size: .88rem; margin-bottom: 0; }
.people-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; }
.person-card { border: 1px solid var(--mns-border); border-radius: var(--mns-radius); padding: 18px; display: grid; grid-template-columns: 82px minmax(0,1fr); gap: 17px; }
.person-photo { width: 82px; height: 82px; border-radius: 15px; overflow: hidden; background: var(--mns-sage-light); display: grid; place-items: center; color: var(--mns-forest); font-family: var(--mns-serif); font-size: 2rem; }
.person-photo img { width: 100%; height: 100%; object-fit: cover; }
.person-card h3 { font-family: var(--mns-sans); font-size: 1rem; margin: 3px 0 4px; }
.person-position { color: var(--mns-forest) !important; font-weight: 700; }
.person-card p { color: var(--mns-muted); font-size: .8rem; margin-bottom: 4px; line-height: 1.5; }
.faq-layout, .faq-page-grid { display: grid; grid-template-columns: .7fr 1.3fr; gap: 70px; align-items: start; }
.faq-list { border-top: 1px solid var(--mns-border); }
.faq-item { border-bottom: 1px solid var(--mns-border); }
.faq-item summary { list-style: none; padding: 18px 0; cursor: pointer; font-weight: 740; display: flex; justify-content: space-between; gap: 15px; color: var(--mns-ink); }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary span { color: var(--mns-forest); font-size: 1.2rem; transition: transform .18s ease; }
.faq-item[open] summary span { transform: rotate(45deg); }
.faq-answer { color: var(--mns-muted); padding: 0 28px 20px 0; font-size: .94rem; }
.faq-answer > *:last-child { margin-bottom: 0; }
.faq-side { position: sticky; top: calc(var(--mns-header) + 25px); background: var(--mns-cream); border-radius: var(--mns-radius); padding: 25px; }
.faq-side h2 { font-size: 1.6rem; }
.faq-side p { color: var(--mns-muted); }
.gallery-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; }
.gallery-grid img { width: 100%; height: 100%; aspect-ratio: 1.25/1; object-fit: cover; border-radius: 12px; }
.section-location-detail { background: var(--mns-sage-light); }
.location-detail-grid { display: grid; grid-template-columns: 1fr .8fr; gap: 55px; align-items: center; }
.location-detail-grid h2 { margin-bottom: 12px; }
.location-address { color: var(--mns-muted); font-size: 1.05rem; }
.location-callout { background: var(--mns-white); border: 1px solid #e1dedb; border-radius: var(--mns-radius); padding: 26px; }
.location-callout strong { font-family: var(--mns-serif); font-size: 1.3rem; }
.location-callout p { color: var(--mns-muted); margin: 8px 0 14px; }
.mobile-sticky-actions { display: none; }

/* Archive / page */
.archive-hero, .page-hero, .detail-hero, .article-header { background: var(--mns-cream); padding: 78px 0 62px; }
.archive-hero h1, .page-hero h1, .detail-hero h1, .article-header h1 { max-width: 900px; margin: 0 0 15px; font-size: clamp(2.35rem,4.2vw,4.2rem); }
.archive-hero p:not(.eyebrow), .article-deck { color: var(--mns-muted); max-width: 760px; font-size: 1.08rem; }
.page-intro { color: var(--mns-muted); font-size: 1.04rem; }
.generic-card-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; }
.generic-card { border: 1px solid var(--mns-border); border-radius: var(--mns-radius); overflow: hidden; background: var(--mns-white); }
.generic-card-image { aspect-ratio: 1.5/1; }
.generic-card > div { padding: 20px; }
.generic-card h2 { font-size: 1.35rem; margin: 11px 0 8px; }
.generic-card p { color: var(--mns-muted); font-size: .9rem; }
.empty-state { text-align: center; padding: 60px 20px; background: var(--mns-cream); border-radius: var(--mns-radius); }
.empty-state h2 { margin-bottom: 8px; }
.empty-state p { color: var(--mns-muted); }
.pagination { display: flex; flex-wrap: wrap; justify-content: center; gap: 7px; margin-top: 42px; }
.pagination .page-numbers { min-width: 38px; height: 38px; padding: 0 10px; display: inline-grid; place-items: center; border-radius: 9px; border: 1px solid var(--mns-border); color: var(--mns-ink); }
.pagination .current, .pagination a:hover { background: var(--mns-forest); color: var(--mns-white); border-color: var(--mns-forest); }

/* Article */
.article-featured { margin-top: 40px; }
.article-featured img { width: 100%; max-height: 680px; object-fit: cover; border-radius: var(--mns-radius-lg); }
.article-content { padding-top: 55px; padding-bottom: 80px; font-size: 1.03rem; }
.entry-content > * { max-width: 100%; }
.entry-content h2 { margin-top: 2.1em; font-size: 2rem; }
.entry-content h3 { margin-top: 1.8em; }
.entry-content p, .entry-content li { color: #414148; }
.entry-content a { text-decoration: underline; text-decoration-thickness: .08em; text-underline-offset: .15em; }
.entry-content blockquote { margin: 32px 0; padding: 8px 0 8px 24px; border-left: 4px solid var(--mns-gold); font-family: var(--mns-serif); font-size: 1.28rem; color: var(--mns-forest-dark); }
.entry-content figure { margin: 36px 0; }
.entry-content table { width: 100%; border-collapse: collapse; }
.entry-content td, .entry-content th { border: 1px solid var(--mns-border); padding: 10px; }
.detail-facts { display: flex; flex-wrap: wrap; gap: 14px 28px; color: var(--mns-muted); }
.detail-layout { display: grid; grid-template-columns: minmax(0,1fr) 300px; gap: 70px; padding-top: 62px; padding-bottom: 88px; }
.detail-sidebar { align-self: start; position: sticky; top: calc(var(--mns-header) + 25px); border: 1px solid var(--mns-border); border-radius: var(--mns-radius); padding: 22px; background: var(--mns-white); }
.detail-sidebar h2 { font-size: 1.35rem; }
.detail-sidebar > div { padding: 13px 0; border-top: 1px solid var(--mns-border); }
.detail-sidebar span, .detail-sidebar small { display: block; color: var(--mns-muted); font-size: .72rem; }
.detail-sidebar strong { display: block; font-size: .9rem; margin: 2px 0; }
.detail-sidebar .btn { margin-top: 18px; }
.download-box { margin-top: 38px; padding: 18px; border: 1px solid var(--mns-border); background: var(--mns-cream); border-radius: 14px; display: flex; align-items: center; justify-content: space-between; gap: 15px; }
.download-box div { display: flex; flex-direction: column; }
.download-box small { color: var(--mns-muted); }
.document-list { display: grid; gap: 12px; }
.document-row { display: flex; align-items: center; justify-content: space-between; gap: 24px; border: 1px solid var(--mns-border); border-radius: 14px; padding: 20px; }
.document-row h2 { font-family: var(--mns-sans); font-size: 1.04rem; margin: 8px 0 5px; }

/* Search */
.search-large { display: flex; gap: 8px; margin-top: 25px; max-width: 650px; }
.search-large input { flex: 1; min-width: 0; height: 48px; border: 1px solid var(--mns-border); border-radius: 999px; padding: 0 18px; background: var(--mns-white); }
.search-results { display: grid; gap: 0; }
.search-result { padding: 24px 0; border-bottom: 1px solid var(--mns-border); }
.search-result h2 { font-family: var(--mns-sans); font-size: 1.25rem; margin: 9px 0 7px; }
.search-result h2 a { color: var(--mns-ink); }
.search-result p { color: var(--mns-muted); margin: 0; }
.error-page { min-height: 70vh; display: grid; place-items: center; padding: 90px 0; text-align: center; background: var(--mns-cream); }
.error-code { font-family: var(--mns-serif); color: #d8c9a6; font-size: clamp(5rem,14vw,11rem); line-height: .7; margin-bottom: 45px; }
.error-page h1 { font-size: clamp(2.2rem,4.5vw,4rem); }
.error-page > div > p:not(.eyebrow,.error-code) { color: var(--mns-muted); max-width: 650px; margin-inline: auto; }
.error-page .hero-actions { justify-content: center; margin-top: 28px; }

/* Footer */
.site-footer { background: #0b2d23; color: rgba(255,255,255,.66); padding: 70px 0 0; }
.site-footer a { color: rgba(255,255,255,.78); }
.site-footer a:hover { color: var(--mns-white); }
.footer-grid { display: grid; grid-template-columns: 1.35fr .8fr .9fr 1fr; gap: 46px; padding-bottom: 55px; }
.site-brand-footer { color: var(--mns-white) !important; }
.site-brand-footer .site-logo-copy strong { color: var(--mns-white); }
.site-brand-footer .site-logo-copy small { color: rgba(255,255,255,.48); }
.site-brand-footer .site-logo-mark { background: #d9e9df; color: var(--mns-forest-dark); }
.footer-brand p { margin: 20px 0 0; max-width: 360px; font-size: .9rem; }
.footer-title { font-family: var(--mns-sans); font-size: .8rem; text-transform: uppercase; letter-spacing: .1em; color: var(--mns-white); margin-bottom: 17px; }
.footer-menu, .footer-menu ul, .footer-contact { list-style: none; margin: 0; padding: 0; }
.footer-menu .sub-menu { display: none; }
.footer-menu li, .footer-contact li { margin: 7px 0; font-size: .88rem; }
.social-links { display: flex; flex-wrap: wrap; gap: 7px 12px; font-size: .86rem; }
.footer-spmb { margin-top: 22px; }
.footer-bottom { min-height: 70px; border-top: 1px solid rgba(255,255,255,.1); display: flex; align-items: center; justify-content: space-between; gap: 20px; font-size: .76rem; }
.footer-bottom p { margin: 0; }

@media (max-width: 1120px) {
  .unit-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .facility-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .primary-nav { display: none; }
  .header-portal { display: none; }
  .menu-toggle { display: inline-block; }
  .header-actions { margin-left: auto; }
  .footer-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 900px) {
  body.admin-bar .site-header { top: 46px; }
  .section { padding: 68px 0; }
  .hero-grid { grid-template-columns: 1fr; min-height: 590px; padding-top: 70px; }
  .hero-note { max-width: 340px; }
  .why-grid, .information-grid, .split-heading-content, .faq-layout, .faq-page-grid, .location-detail-grid, .detail-layout { grid-template-columns: 1fr; gap: 40px; }
  .academic-grid { grid-template-columns: 1fr; }
  .program-grid, .people-grid, .generic-card-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .profile-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .boarding-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .quick-facts { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .quick-fact:nth-child(3) { border-right: 0; }
  .quick-fact:nth-child(n+4) { border-top: 1px solid var(--mns-border); }
  .faq-side, .detail-sidebar { position: static; }
  .news-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .footer-grid { gap: 36px; }
}

@media (max-width: 680px) {
  :root { --mns-header: 66px; }
  .mns-container, .content-narrow { width: min(calc(100% - 28px), var(--mns-container)); }
  .section { padding: 56px 0; }
  .site-logo-image, .custom-logo { max-height: 44px; max-width: 150px; }
  .site-logo-copy small { display: none; }
  .site-logo-mark { width: 38px; height: 38px; border-radius: 11px; }
  .site-logo-copy strong { font-size: 1.13rem; }
  .header-spmb { min-height: 39px; padding: 9px 14px; }
  .header-inner { gap: 8px; }
  .mobile-panel-actions { flex-direction: column; }
  .hero-home { min-height: 620px; }
  .hero-grid { min-height: 620px; padding-top: 65px; padding-bottom: 48px; }
  .hero-overlay { background: linear-gradient(180deg, rgba(10,45,34,.92), rgba(14,51,40,.77)); }
  .hero-copy h1 { font-size: clamp(2.6rem,12vw,4rem); }
  .hero-note { display: none; }
  .hero-actions, .cta-actions { flex-direction: column; align-items: stretch; }
  .hero-actions .btn, .cta-actions .btn { width: 100%; }
  .unit-grid, .facility-grid, .news-grid, .program-grid, .people-grid, .generic-card-grid, .location-grid, .location-grid-large, .boarding-grid, .profile-grid, .pillar-grid { grid-template-columns: 1fr; }
  .unit-card { display: grid; grid-template-columns: 112px minmax(0,1fr); }
  .unit-card-media { aspect-ratio: auto; height: 100%; }
  .unit-card-body { padding: 16px; }
  .unit-card h3 { font-size: 1.16rem; }
  .unit-card p { display: none; }
  .unit-card .text-link { margin-top: 6px; }
  .why-grid { gap: 30px; }
  .pillar-card { min-height: auto; }
  .pillar-card > span { margin-bottom: 24px; }
  .schedule-tabs { grid-template-columns: 1fr; gap: 25px; }
  .tab-list { flex-direction: row; overflow-x: auto; padding-bottom: 5px; scrollbar-width: thin; }
  .tab-list button { white-space: nowrap; }
  .timeline-item { grid-template-columns: 68px minmax(0,1fr); gap: 12px; }
  .timeline-item:not(:last-child)::before { left: 62px; }
  .timeline-item > div { padding-left: 17px; }
  .timeline-item > div::before { left: -11px; }
  .heading-with-link { align-items: start; flex-direction: column; gap: 8px; }
  .agenda-home-panel { padding: 18px; }
  .agenda-card, .archive-agenda-stack .agenda-card { grid-template-columns: 56px minmax(0,1fr); padding: 12px; }
  .agenda-date-box, .archive-agenda-stack .agenda-date-box { min-height: 58px; }
  .admission-inner { flex-direction: column; align-items: stretch; gap: 25px; }
  .unit-hero { min-height: 520px; }
  .unit-hero-inner { padding: 75px 0 70px; }
  .quick-facts { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .quick-fact { border-right: 1px solid var(--mns-border) !important; border-top: 1px solid var(--mns-border); padding: 15px 12px; }
  .quick-fact:nth-child(odd) { padding-left: 0; }
  .quick-fact:nth-child(even) { border-right: 0 !important; }
  .quick-fact:nth-child(-n+2) { border-top: 0; }
  .person-card { grid-template-columns: 70px minmax(0,1fr); }
  .person-photo { width: 70px; height: 70px; }
  .gallery-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .archive-hero, .page-hero, .detail-hero, .article-header { padding: 55px 0 45px; }
  .article-featured { width: calc(100% - 28px); margin-top: 20px; }
  .article-featured img { border-radius: 16px; }
  .article-content { padding-top: 38px; padding-bottom: 58px; }
  .document-row { align-items: flex-start; flex-direction: column; }
  .search-large { flex-direction: column; }
  .search-large input, .search-large .btn { width: 100%; }
  .footer-grid { grid-template-columns: 1fr; }
  .footer-bottom { flex-direction: column; align-items: flex-start; justify-content: center; padding: 18px 0; }
  .mobile-sticky-actions {
    position: fixed; z-index: 950; left: 10px; right: 10px; bottom: 10px; display: grid; grid-template-columns: repeat(3,minmax(0,1fr));
    background: rgba(255,255,255,.96); border: 1px solid var(--mns-border); box-shadow: 0 14px 40px rgba(15,48,38,.20); border-radius: 16px; padding: 7px; backdrop-filter: blur(12px);
  }
  .mobile-sticky-actions a { min-height: 44px; display: grid; place-items: center; border-radius: 11px; color: var(--mns-forest); font-size: .76rem; font-weight: 800; }
  .mobile-sticky-actions a.is-primary { background: var(--mns-forest); color: var(--mns-white); }
  body.single-mns_unit .site-footer { padding-bottom: 76px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
}

/* === Minsani Web 1.1 refinements === */
.primary-menu > li > .nav-parent-toggle {
  appearance: none; border: 0; background: transparent; color: var(--mns-ink); cursor: pointer;
  display: flex; align-items: center; gap: 6px; padding: 11px 12px; border-radius: 10px;
  font-size: .9rem; line-height: 1.2; font-weight: 680;
}
.primary-menu > li > .nav-parent-toggle:hover,
.primary-menu > li > .nav-parent-toggle:focus-visible,
.primary-menu > li.is-open > .nav-parent-toggle { background: var(--mns-sage-light); color: var(--mns-forest-dark); }
.nav-caret { display: inline-block; margin-left: 2px; font-size: .84em; transition: transform .16s ease; }
.primary-menu li:hover > a .nav-caret,
.primary-menu li:hover > .nav-parent-toggle .nav-caret,
.primary-menu li:focus-within > a .nav-caret,
.primary-menu li:focus-within > .nav-parent-toggle .nav-caret,
.primary-menu li.is-open > .nav-parent-toggle .nav-caret { transform: rotate(180deg); }
.primary-menu li.is-open > .sub-menu { opacity: 1; visibility: visible; transform: none; }

.mobile-menu-list > li > .nav-parent-toggle {
  appearance: none; width: 100%; border: 0; border-bottom: 1px solid #efeeec; background: transparent;
  color: var(--mns-ink); display: flex; align-items: center; justify-content: space-between;
  padding: 11px 5px; font-weight: 720; text-align: left; cursor: pointer;
}
.mobile-menu-list .sub-menu { display: block; }
.mobile-menu-list .nav-caret { margin-left: auto; }

/* Homepage news */
.information-grid-enhanced { grid-template-columns: minmax(0,1.25fr) minmax(320px,.75fr); align-items: start; gap: 42px; }
.home-news-panel { min-width: 0; }
.home-news-featured { display: grid; grid-template-columns: minmax(230px,.9fr) minmax(0,1.1fr); min-height: 310px; background: var(--mns-cream); border: 1px solid var(--mns-border); border-radius: var(--mns-radius-lg); overflow: hidden; }
.home-news-featured-media { min-height: 310px; overflow: hidden; background: var(--mns-sage-light); }
.home-news-featured-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.home-news-featured:hover .home-news-featured-media img { transform: scale(1.025); }
.home-news-featured-body { padding: 30px; display: flex; flex-direction: column; justify-content: center; }
.home-news-featured-body h3 { margin: 14px 0 11px; font-size: clamp(1.55rem,2.4vw,2.2rem); }
.home-news-featured-body h3 a { color: var(--mns-ink); }
.home-news-featured-body p { color: var(--mns-muted); font-size: .93rem; }
.home-news-list { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); border-top: 1px solid var(--mns-border); margin-top: 18px; }
.home-news-list article { padding: 18px 18px 0 0; min-width: 0; }
.home-news-list article + article { padding-left: 18px; border-left: 1px solid var(--mns-border); }
.home-news-list time { color: var(--mns-muted); font-size: .72rem; }
.home-news-list h3 { font-family: var(--mns-sans); letter-spacing: -.015em; font-size: .96rem; line-height: 1.4; margin: 6px 0 9px; }
.home-news-list h3 a { color: var(--mns-ink); }
.home-news-list .text-link { font-size: .78rem; }

/* News archive */
.news-archive-hero { padding: 82px 0 72px; }
.news-archive-hero-grid { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(340px,.85fr); gap: 64px; align-items: end; }
.news-search { background: var(--mns-white); border: 1px solid var(--mns-border); border-radius: var(--mns-radius); padding: 20px; box-shadow: var(--mns-shadow-sm); }
.news-search label { display: block; color: var(--mns-ink); font-weight: 750; font-size: .82rem; margin-bottom: 9px; }
.news-search > div { display: flex; gap: 8px; }
.news-search input { min-width: 0; flex: 1; height: 46px; padding: 0 15px; border: 1px solid var(--mns-border); border-radius: 999px; background: #fcfdfc; }
.news-filter-bar { border-bottom: 1px solid var(--mns-border); background: var(--mns-white); }
.news-filter-inner { min-height: 70px; display: flex; align-items: center; gap: 18px; overflow: hidden; }
.news-filter-label { flex: 0 0 auto; font-size: .75rem; color: var(--mns-muted); font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.news-filter-chips { display: flex; gap: 8px; overflow-x: auto; padding: 10px 0; scrollbar-width: thin; }
.news-filter-chip { flex: 0 0 auto; padding: 8px 13px; border: 1px solid var(--mns-border); border-radius: 999px; color: var(--mns-ink); font-size: .79rem; font-weight: 700; background: var(--mns-white); }
.news-filter-chip:hover, .news-filter-chip.is-active { background: var(--mns-forest); color: var(--mns-white); border-color: var(--mns-forest); }
.news-archive-section { padding-top: 70px; }
.news-result-summary { display: flex; align-items: end; justify-content: space-between; gap: 30px; padding-bottom: 28px; }
.news-result-summary h2 { font-size: clamp(1.6rem,2.5vw,2.25rem); margin: 0; }
.news-lead-card { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(360px,.85fr); min-height: 470px; border-radius: var(--mns-radius-lg); overflow: hidden; background: var(--mns-forest-dark); margin-bottom: 38px; box-shadow: var(--mns-shadow-sm); }
.news-lead-media { overflow: hidden; background: var(--mns-sage-light); min-height: 470px; }
.news-lead-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.news-lead-card:hover .news-lead-media img { transform: scale(1.025); }
.news-lead-body { padding: clamp(30px,4vw,56px); display: flex; flex-direction: column; justify-content: center; color: rgba(255,255,255,.72); }
.news-lead-body .card-meta-row { color: rgba(255,255,255,.68); }
.news-lead-body .badge { background: rgba(255,255,255,.12); color: #f1d79d; }
.news-lead-body h2 { margin: 15px 0 16px; font-size: clamp(2rem,3.3vw,3.2rem); }
.news-lead-body h2 a { color: var(--mns-white); }
.news-lead-body p { font-size: 1rem; line-height: 1.7; }
.news-lead-body .btn { align-self: flex-start; margin-top: 12px; background: var(--mns-white); color: var(--mns-forest-dark); box-shadow: none; }
.news-lead-body .btn:hover { background: var(--mns-gold-soft); color: var(--mns-forest-dark); }
.news-archive-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
.news-card { transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.news-card:hover { transform: translateY(-4px); box-shadow: var(--mns-shadow-sm); border-color: #ddd9d6; }
.news-card-body { padding: 20px; }
.news-card h3 { font-size: 1.32rem; line-height: 1.3; }
.news-card-footer { margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--mns-border); display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 38px; }
.news-card-footer .text-link { margin-left: auto; }

/* Article detail */
.article-header-enhanced { padding: 76px 0 66px; }
.article-kicker { display: flex; flex-wrap: wrap; align-items: center; gap: 9px 14px; color: var(--mns-muted); font-size: .78rem; margin-bottom: 20px; }
.article-header-enhanced h1 { max-width: 860px; font-size: clamp(2.55rem,5vw,4.8rem); }
.article-byline { display: flex; flex-wrap: wrap; align-items: center; gap: 11px; margin-top: 26px; padding-top: 22px; border-top: 1px solid rgba(78,84,140,.12); }
.article-byline-mark { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 50%; background: var(--mns-forest); color: var(--mns-white); font-family: var(--mns-serif); font-weight: 700; }
.article-byline > div { display: flex; flex-direction: column; margin-right: 8px; line-height: 1.3; }
.article-byline strong { font-size: .84rem; }
.article-byline small { color: var(--mns-muted); font-size: .7rem; }
.article-body-grid { display: grid; grid-template-columns: 170px minmax(0,760px); gap: 60px; justify-content: center; align-items: start; padding-top: 55px; padding-bottom: 90px; }
.article-side-meta { position: sticky; top: calc(var(--mns-header) + 28px); display: flex; flex-direction: column; padding-top: 7px; }
.article-side-meta span { color: var(--mns-muted); font-size: .7rem; text-transform: uppercase; letter-spacing: .07em; font-weight: 760; margin-top: 16px; }
.article-side-meta span:first-child { margin-top: 0; }
.article-side-meta strong { font-size: .83rem; margin-top: 2px; }
.article-side-meta a { margin-top: 26px; font-size: .8rem; font-weight: 760; }
.article-body-grid .article-content { width: auto; padding: 0; font-size: 1.07rem; }
.article-content > p:first-child { font-size: 1.16rem; color: #494951; }
.article-content h2 { margin-top: 2.2em; font-size: clamp(1.75rem,3vw,2.55rem); }
.article-content h3 { margin-top: 1.8em; font-family: var(--mns-sans); font-size: 1.3rem; letter-spacing: -.015em; }
.article-content blockquote { margin: 34px 0; padding: 24px 28px; border-left: 4px solid var(--mns-gold); background: var(--mns-cream); border-radius: 0 14px 14px 0; font-family: var(--mns-serif); font-size: 1.22rem; }
.article-content figure { margin-block: 32px; }
.article-content figure img { border-radius: 14px; }
.article-content figcaption { color: var(--mns-muted); font-size: .78rem; margin-top: 8px; }

/* Locations with live map */
.section-locations { background: linear-gradient(180deg, var(--mns-sage-light), #f7faf8); }
.location-heading { align-items: end; }
.location-showcase { display: grid; grid-template-columns: minmax(0,1.45fr) minmax(340px,.55fr); gap: 22px; align-items: stretch; }
.location-map-frame { position: relative; min-height: 520px; border-radius: var(--mns-radius-lg); overflow: hidden; background: #eceff3; border: 1px solid #dfdde0; box-shadow: var(--mns-shadow-sm); }
.location-map-frame iframe { width: 100%; height: 100%; min-height: 520px; border: 0; display: block; }
.map-placeholder { min-height: 520px; display: grid; place-items: center; color: var(--mns-muted); }
.map-caption { position: absolute; left: 18px; bottom: 18px; max-width: calc(100% - 36px); padding: 9px 13px; border-radius: 999px; background: rgba(11,45,35,.9); color: var(--mns-white); font-size: .76rem; font-weight: 750; backdrop-filter: blur(10px); }
.location-selector { display: grid; gap: 12px; align-content: start; }
.location-selector-card { border: 1px solid #dfdde0; border-radius: var(--mns-radius); background: rgba(255,255,255,.82); overflow: hidden; transition: .18s ease; }
.location-selector-card.is-active { background: var(--mns-white); border-color: var(--mns-forest); box-shadow: var(--mns-shadow-sm); }
.location-select-button { width: 100%; appearance: none; border: 0; background: transparent; display: grid; grid-template-columns: 36px minmax(0,1fr) 24px; gap: 13px; align-items: start; padding: 21px; text-align: left; cursor: pointer; color: var(--mns-ink); }
.location-index { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; background: var(--mns-sage-light); color: var(--mns-forest); font-size: .7rem; font-weight: 850; }
.location-selector-card.is-active .location-index { background: var(--mns-forest); color: var(--mns-white); }
.location-select-copy { display: flex; flex-direction: column; gap: 6px; }
.location-select-copy strong { font-family: var(--mns-serif); font-size: 1.15rem; line-height: 1.25; }
.location-select-copy small { color: var(--mns-muted); line-height: 1.55; font-size: .78rem; }
.location-arrow { color: var(--mns-forest); font-size: 1rem; padding-top: 4px; }
.location-card-actions { display: flex; flex-wrap: wrap; gap: 12px; padding: 0 21px 17px 70px; }
.location-card-actions a { font-size: .75rem; font-weight: 760; }
.location-showcase.is-compact .location-map-frame,
.location-showcase.is-compact .location-map-frame iframe,
.location-showcase.is-compact .map-placeholder { min-height: 450px; }

/* Contact page */
.contact-hero-grid { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(300px,.55fr); gap: 70px; align-items: end; }
.contact-quick-card { background: var(--mns-white); border: 1px solid var(--mns-border); border-radius: var(--mns-radius); padding: 24px; display: flex; flex-direction: column; gap: 8px; box-shadow: var(--mns-shadow-sm); }
.contact-quick-card > span { color: var(--mns-muted); font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; font-weight: 800; }
.contact-quick-card > a:not(.btn) { color: var(--mns-ink); font-size: .93rem; font-weight: 700; }
.contact-quick-card .btn { margin-top: 10px; }
.contact-help-section { background: var(--mns-white); }
.contact-help-grid { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(280px,.5fr); gap: 70px; align-items: center; }
.contact-help-grid h2 { max-width: 720px; }
.contact-help-grid p { color: var(--mns-muted); max-width: 720px; }
.contact-help-actions { display: flex; flex-direction: column; gap: 10px; }

@media (max-width: 1000px) {
  .information-grid-enhanced, .news-archive-hero-grid, .contact-hero-grid, .contact-help-grid { grid-template-columns: 1fr; gap: 36px; }
  .news-lead-card { grid-template-columns: 1fr; }
  .news-lead-media { min-height: 380px; max-height: 520px; }
  .location-showcase { grid-template-columns: 1fr; }
  .location-selector { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .article-body-grid { grid-template-columns: 1fr; max-width: 800px; }
  .article-side-meta { position: static; display: flex; flex-direction: row; flex-wrap: wrap; gap: 8px 20px; padding-bottom: 18px; border-bottom: 1px solid var(--mns-border); }
  .article-side-meta span, .article-side-meta strong, .article-side-meta a { margin: 0; }
}

@media (max-width: 680px) {
  .mobile-menu-list .sub-menu { padding-left: 12px; }
  .home-news-featured { grid-template-columns: 1fr; min-height: 0; }
  .home-news-featured-media { min-height: 220px; }
  .home-news-featured-body { padding: 22px; }
  .home-news-list { grid-template-columns: 1fr; }
  .home-news-list article { padding: 15px 0; }
  .home-news-list article + article { padding-left: 0; border-left: 0; border-top: 1px solid var(--mns-border); }
  .news-archive-hero { padding: 58px 0 48px; }
  .news-search > div { flex-direction: column; }
  .news-search input, .news-search .btn { width: 100%; }
  .news-filter-inner { align-items: flex-start; flex-direction: column; gap: 0; padding: 12px 0; }
  .news-filter-chips { width: 100%; }
  .news-lead-card { min-height: 0; }
  .news-lead-media { min-height: 240px; }
  .news-lead-body { padding: 25px; }
  .news-lead-body h2 { font-size: 2rem; }
  .news-archive-grid { grid-template-columns: 1fr; }
  .news-result-summary { align-items: flex-start; flex-direction: column; gap: 8px; }
  .article-header-enhanced { padding: 52px 0 42px; }
  .article-body-grid { padding-top: 36px; padding-bottom: 60px; gap: 28px; }
  .article-side-meta { display: none; }
  .article-body-grid .article-content { font-size: 1rem; }
  .location-map-frame, .location-map-frame iframe, .map-placeholder,
  .location-showcase.is-compact .location-map-frame,
  .location-showcase.is-compact .location-map-frame iframe,
  .location-showcase.is-compact .map-placeholder { min-height: 330px; }
  .location-selector { grid-template-columns: 1fr; }
  .location-select-button { padding: 17px; grid-template-columns: 32px minmax(0,1fr) 20px; }
  .location-index { width: 30px; height: 30px; }
  .location-card-actions { padding: 0 17px 15px 62px; }
  .map-caption { left: 12px; bottom: 12px; max-width: calc(100% - 24px); }
}


/* ==========================================================================
   Minsani Brand Minimal 1.2
   Logo-derived palette: red #E7242A, indigo #4E548C, lavender #868CBF,
   sky #B3D3E5, mint #8AC7A6. White/neutral surfaces remain dominant.
   ========================================================================== */

/* Brand interactions */
a { color: var(--mns-forest); }
a:hover { color: var(--mns-red-dark); }
.btn-primary { background: var(--mns-forest); color: var(--mns-white); }
.btn-primary:hover { background: var(--mns-red-dark); color: var(--mns-white); }
.text-link { color: var(--mns-forest); }
.eyebrow { color: var(--mns-forest); }

/* Header stays intentionally neutral so the full-color logo is the focal point. */
.site-header { background: rgba(255,255,255,.96); }
.site-logo-mark { background: var(--mns-forest); }
.primary-menu > li > a:hover,
.primary-menu .current-menu-item > a,
.primary-menu .current-menu-ancestor > a { background: #fff3f3; color: var(--mns-red-dark); }
.primary-menu .sub-menu a:hover { background: #fff5f5; color: var(--mns-red-dark); }

/* Hero: photography first. Without a photo, use a bright neutral canvas instead of a solid brand field. */
.hero-home:not(.has-image),
.unit-hero:not(.has-image) {
  background:
    radial-gradient(circle at 85% 18%, rgba(179,211,229,.42), transparent 27%),
    radial-gradient(circle at 70% 82%, rgba(138,199,166,.20), transparent 24%),
    var(--mns-cream);
  color: var(--mns-ink);
}
.hero-home:not(.has-image) .hero-overlay,
.unit-hero:not(.has-image) .hero-overlay { display: none; }
.hero-home:not(.has-image) h1,
.unit-hero:not(.has-image) h1 { color: var(--mns-ink); }
.hero-home:not(.has-image) .hero-eyebrow,
.hero-home:not(.has-image) .eyebrow,
.unit-hero:not(.has-image) .eyebrow { color: var(--mns-forest); }
.hero-home:not(.has-image) .hero-lead,
.unit-hero:not(.has-image) .hero-lead { color: var(--mns-muted); }
.unit-hero:not(.has-image) .unit-hero-tagline { color: var(--mns-indigo); }
.hero-home:not(.has-image) .hero-note {
  background: rgba(255,255,255,.78); border-color: var(--mns-border); color: var(--mns-ink);
  box-shadow: var(--mns-shadow-sm);
}
.hero-home:not(.has-image) .hero-note strong { color: var(--mns-ink); }
.hero-home:not(.has-image) .hero-note small { color: var(--mns-muted); }
.hero-home:not(.has-image) .hero-note-number { color: var(--mns-indigo); }
.hero-home:not(.has-image) .btn-light,
.unit-hero:not(.has-image) .btn-light {
  border-color: var(--mns-border);
  color: var(--mns-indigo);
  background: rgba(255,255,255,.92);
}
.hero-home:not(.has-image) .btn-light:hover,
.unit-hero:not(.has-image) .btn-light:hover { background: var(--mns-white); color: var(--mns-red-dark); }

/* Photo hero uses logo indigo as a restrained readability overlay, not green. */
.hero-home.has-image .hero-overlay,
.unit-hero.has-image .hero-overlay {
  display: block;
  background: linear-gradient(90deg, rgba(38,39,67,.88) 0%, rgba(54,57,93,.72) 46%, rgba(54,57,93,.22) 82%, rgba(54,57,93,.08));
}
.hero-home.has-image .hero-eyebrow,
.unit-hero.has-image .eyebrow { color: #f2d6d8; }
.hero-home.has-image .hero-note-number { color: #f5c7ca; }

/* Large homepage sections remain light. */
.section-why {
  background: #f7f6f4;
  color: var(--mns-muted);
  border-top: 1px solid var(--mns-border);
  border-bottom: 1px solid var(--mns-border);
}
.section-why h2,
.section-why h3 { color: var(--mns-ink); }
.section-why .eyebrow { color: var(--mns-forest); }
.section-why .section-heading > p:last-child { color: var(--mns-muted); }
.section-why .text-link { color: var(--mns-forest); }
.pillar-card {
  background: var(--mns-white);
  border: 1px solid var(--mns-border);
  box-shadow: none;
}
.pillar-card span { color: var(--mns-lavender); }
.pillar-card p { color: var(--mns-muted); }
.pillar-card:nth-child(2) span { color: var(--mns-mint); }
.pillar-card:nth-child(3) span { color: var(--mns-sky); }
.pillar-card:nth-child(4) span { color: var(--mns-forest); }

/* Cards use almost no chromatic fill; brand appears in small details only. */
.media-placeholder { background: linear-gradient(135deg, #f4f3f2, #eef1f6); color: var(--mns-indigo); }
.unit-tagline,
.person-position,
.timeline-item time,
.faq-item summary span { color: var(--mns-forest) !important; }
.badge { background: #f2f1f7; color: var(--mns-indigo); }
.badge-upcoming { background: #eef7f2; color: #467a61; }
.timeline-item > div::before { background: var(--mns-forest); box-shadow: 0 0 0 5px #fff0f1; }
.agenda-home-panel { background: #f7f6f4; }
.agenda-date-box { background: #f1f1f7; color: var(--mns-indigo); }
.program-number { color: var(--mns-lavender); }

/* Graduate-profile cards are light with four tiny logo-derived accents. */
.profile-card {
  background: var(--mns-white);
  color: var(--mns-muted);
  border: 1px solid var(--mns-border);
  box-shadow: none;
  position: relative;
  overflow: hidden;
}
.profile-card::before { content: ""; position: absolute; inset: 0 0 auto; height: 3px; background: var(--mns-indigo); }
.profile-card:nth-child(2)::before { background: var(--mns-mint); }
.profile-card:nth-child(3)::before { background: var(--mns-sky); }
.profile-card:nth-child(4)::before { background: var(--mns-forest); }
.profile-card > span { background: #f3f2f7; color: var(--mns-indigo); }
.profile-card h3 { color: var(--mns-ink); }
.profile-card p { color: var(--mns-muted); }

/* Pesantren retains one darker editorial section using logo indigo. */
.section-boarding { background: #414677; }
.section-boarding .eyebrow { color: #f4c8cb; }
.section-boarding .section-heading > p:last-child { color: rgba(255,255,255,.72); }

/* Location/map becomes a neutral information zone. */
.section-locations { background: #f7f7f8; }
.location-selector-card { border-color: #e2e0df; background: rgba(255,255,255,.86); }
.location-selector-card.is-active { border-color: var(--mns-indigo); }
.location-index { background: #f0f0f7; color: var(--mns-indigo); }
.location-selector-card.is-active .location-index { background: var(--mns-indigo); color: var(--mns-white); }
.location-arrow { color: var(--mns-forest); }
.map-caption { background: rgba(47,49,74,.9); }
.section-location-detail { background: #f7f7f8; }

/* SPMB CTA: restrained indigo surface with a red action button. */
.admission-cta { background: #444a7d; color: rgba(255,255,255,.78); }
.admission-cta .eyebrow { color: #f4c8cb; }
.admission-cta .btn-primary { background: var(--mns-forest); }
.admission-cta .btn-primary:hover { background: var(--mns-red-dark); }

/* News feature uses indigo instead of green, while standard articles stay white. */
.news-lead-card { background: #444a7d; }
.news-lead-body .badge { background: rgba(255,255,255,.12); color: #e4e5f1; }
.news-lead-body .btn:hover { background: #f3f2f7; color: var(--mns-indigo); }

/* Pagination and active controls use logo red only as a small state accent. */
.pagination .current,
.pagination a:hover,
.tab-list button:hover,
.tab-list button.is-active { background: var(--mns-forest); color: var(--mns-white); border-color: var(--mns-forest); }

/* Article accents */
.article-byline-mark { background: var(--mns-indigo); }
.article-content blockquote { border-left-color: var(--mns-forest); background: #faf7f7; }

/* Footer: deep neutral-indigo instead of green. */
.site-footer { background: #30334f; }

@media (max-width: 680px) {
  .hero-home:not(.has-image), .unit-hero:not(.has-image) { background: var(--mns-cream); }
}

/* 1.3 — Education / Pesantren structure */
.section-pesantren-teaser { background: var(--mns-surface, #faf9f7); border-top: 1px solid var(--mns-border, #e8e6e3); border-bottom: 1px solid var(--mns-border, #e8e6e3); }
.pesantren-teaser-grid { display: grid; grid-template-columns: minmax(0,1.7fr) minmax(280px,.8fr); gap: clamp(28px,5vw,72px); align-items: center; }
.pesantren-teaser-grid h2 { max-width: 760px; }
.pesantren-teaser-grid > div:first-child > p:not(.eyebrow) { max-width: 720px; color: var(--mns-muted, #6d6d75); }
.pesantren-teaser-note { background: #fff; border: 1px solid var(--mns-border, #e8e6e3); border-radius: 18px; padding: 28px; box-shadow: 0 14px 40px rgba(36,36,43,.05); }
.pesantren-teaser-note .program-number { display: inline-flex; margin-bottom: 20px; color: var(--mns-primary, #e7242a); }
.pesantren-teaser-note strong { display: block; font-size: 1.1rem; margin-bottom: 8px; color: var(--mns-text, #24242b); }
.pesantren-teaser-note p { margin: 0; color: var(--mns-muted, #6d6d75); }
@media (max-width: 820px) { .pesantren-teaser-grid { grid-template-columns: 1fr; } }

/* 1.4 — Pesantren as an integrated boarding system */
.pesantren-hero { position:relative; overflow:hidden; padding:clamp(86px,10vw,150px) 0; background:linear-gradient(135deg,#faf9f7 0%,#f2f0f5 100%); }
.pesantren-hero.has-image { background-image:linear-gradient(90deg,rgba(28,27,38,.88),rgba(28,27,38,.55)),var(--hero-image); background-size:cover; background-position:center; color:#fff; }
.pesantren-hero.has-image h1,.pesantren-hero.has-image .eyebrow { color:#fff; }
.pesantren-hero.has-image p { color:rgba(255,255,255,.82); }
.pesantren-hero-copy { position:relative; z-index:2; margin-left:max(0px,calc((100% - 1180px)/2)); }
.pesantren-hero h1 { max-width:880px; }
.pesantren-hero p { max-width:760px; font-size:clamp(1rem,1.6vw,1.18rem); }
.boarding-path-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; margin-top:36px; }
.boarding-path-card { overflow:hidden; border:1px solid var(--mns-border); border-radius:20px; background:#fff; }
.boarding-path-media { position:relative; aspect-ratio:16/8; background:#f2f0ee; overflow:hidden; }
.boarding-path-media img { width:100%; height:100%; object-fit:cover; }
.boarding-path-media .badge { position:absolute; top:16px; left:16px; }
.boarding-path-body { padding:28px; }
.boarding-path-body h2 { margin-top:4px; }
.boarding-policy { padding-top:16px; border-top:1px solid var(--mns-border); color:var(--mns-text); }
.boarding-life-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin-top:34px; }
.boarding-life-grid article { padding:24px; border:1px solid var(--mns-border); border-radius:16px; background:#fff; }
.boarding-life-grid article > span { color:var(--mns-primary); }
.boarding-life-grid h3 { margin:12px 0 8px; font-family:var(--mns-sans); font-size:1rem; }
.boarding-life-grid p { margin:0; font-size:.92rem; }
@media (max-width:760px) { .boarding-path-grid,.boarding-life-grid { grid-template-columns:1fr; } .pesantren-hero-copy { margin-left:0; } }

/* 1.5 — Pesantren is a kepesantrenan landing page, not a second school archive. */
.pesantren-page { background: var(--mns-white); }
.pesantren-hero {
  position: relative;
  overflow: hidden;
  padding: clamp(84px, 9vw, 132px) 0 clamp(78px, 8vw, 118px);
  background:
    radial-gradient(circle at 86% 18%, rgba(179,211,229,.38), transparent 28%),
    radial-gradient(circle at 72% 86%, rgba(138,199,166,.20), transparent 30%),
    var(--mns-cream);
  color: var(--mns-ink);
}
.pesantren-hero.has-image {
  background-image: var(--hero-image);
  background-size: cover;
  background-position: center;
  color: var(--mns-white);
}
.pesantren-hero-shade {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(36,36,43,.84) 0%, rgba(48,51,79,.68) 52%, rgba(48,51,79,.18) 100%);
}
.pesantren-hero-inner { position: relative; z-index: 2; }
.pesantren-hero-copy { width: min(100%, 780px); margin: 0; }
.pesantren-hero .eyebrow { color: var(--mns-forest); }
.pesantren-hero h1 {
  max-width: 760px;
  margin: 0 0 24px;
  font-size: clamp(2.65rem, 5vw, 4.65rem);
  line-height: 1.04;
  text-wrap: balance;
}
.pesantren-lead { max-width: 720px; margin-bottom: 30px; color: var(--mns-muted); font-size: clamp(1.02rem,1.4vw,1.16rem); }
.pesantren-hero.has-image .eyebrow { color: #f4c8cb; }
.pesantren-hero.has-image h1 { color: var(--mns-white); }
.pesantren-hero.has-image .pesantren-lead { color: rgba(255,255,255,.84); }
.pesantren-hero.has-image .btn-ghost { color: var(--mns-white); border-color: rgba(255,255,255,.46); background: rgba(255,255,255,.06); }
.pesantren-hero.has-image .btn-ghost:hover { background: var(--mns-white); color: var(--mns-indigo); }

.pesantren-values .section-heading { max-width: 790px; }
.pesantren-pillar-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 18px; margin-top: 38px; }
.pesantren-pillar { padding: 26px 24px 28px; border: 1px solid var(--mns-border); border-radius: 18px; background: var(--mns-white); }
.pesantren-pillar > span { display: inline-block; margin-bottom: 26px; color: var(--mns-forest); font-size: .75rem; font-weight: 850; letter-spacing: .12em; }
.pesantren-pillar h3 { margin-bottom: 10px; font-family: var(--mns-sans); font-size: 1.02rem; letter-spacing: -.01em; }
.pesantren-pillar p { margin: 0; color: var(--mns-muted); font-size: .91rem; line-height: 1.65; }
.pesantren-pillar:nth-child(2) > span { color: var(--mns-indigo); }
.pesantren-pillar:nth-child(3) > span { color: #568c70; }
.pesantren-pillar:nth-child(4) > span { color: #638aa0; }

.pesantren-life-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
.pesantren-life-card { min-height: 210px; }
.pesantren-life-card.is-pending { background: rgba(255,255,255,.58); }
.pesantren-life-card.is-pending p { color: var(--mns-muted); }
.pesantren-editor-note { margin: 22px 0 0; color: var(--mns-muted); font-size: .82rem; }

.pesantren-policy-section { border-top: 1px solid var(--mns-border); border-bottom: 1px solid var(--mns-border); }
.pesantren-policy-layout { display: grid; grid-template-columns: minmax(260px,.78fr) minmax(0,1.22fr); gap: clamp(42px,7vw,96px); align-items: start; }
.pesantren-policy-layout > div:first-child { position: sticky; top: calc(var(--mns-header) + 30px); }
.pesantren-policy-layout > div:first-child p:last-child { color: var(--mns-muted); }
.pesantren-policy-list details { background: var(--mns-white); }

.pesantren-facilities { background: var(--mns-white); }
.pesantren-madrasah-link { background: #f5f5f8; }
.pesantren-madrasah-layout { display: grid; grid-template-columns: minmax(0,1.08fr) minmax(320px,.92fr); gap: clamp(42px,7vw,90px); align-items: center; }
.pesantren-madrasah-layout > div:first-child > p:last-child { max-width: 650px; color: var(--mns-muted); }
.pesantren-school-links { display: grid; gap: 12px; }
.pesantren-school-links a { position: relative; display: grid; grid-template-columns: 48px 1fr auto; grid-template-rows: auto auto; column-gap: 15px; padding: 19px 20px; border: 1px solid var(--mns-border); border-radius: 15px; background: var(--mns-white); color: var(--mns-ink); }
.pesantren-school-links a:hover { border-color: rgba(78,84,140,.35); box-shadow: var(--mns-shadow-sm); color: var(--mns-ink); }
.pesantren-school-links span { grid-row: 1 / 3; align-self: center; display: grid; width: 42px; height: 42px; place-items: center; border-radius: 50%; background: #f0f0f7; color: var(--mns-indigo); font-size: .75rem; font-weight: 850; }
.pesantren-school-links strong { align-self: end; font-size: .96rem; }
.pesantren-school-links small { color: var(--mns-muted); font-size: .76rem; }
.pesantren-school-links b { grid-column: 3; grid-row: 1 / 3; align-self: center; color: var(--mns-forest); font-size: 1.15rem; }

.pesantren-cta { background: #444a7d; }
.pesantren-cta .btn-primary { background: var(--mns-forest); color: var(--mns-white); }

@media (max-width: 980px) {
  .pesantren-pillar-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .pesantren-life-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .pesantren-policy-layout, .pesantren-madrasah-layout { grid-template-columns: 1fr; }
  .pesantren-policy-layout > div:first-child { position: static; }
}
@media (max-width: 680px) {
  .pesantren-hero { padding: 72px 0 68px; }
  .pesantren-hero h1 { font-size: clamp(2.35rem,11vw,3.2rem); }
  .pesantren-hero .hero-actions { flex-direction: column; }
  .pesantren-pillar-grid, .pesantren-life-grid { grid-template-columns: 1fr; }
  .pesantren-school-links a { grid-template-columns: 42px 1fr auto; padding: 16px; }
}


/* ==========================================================================\n   Minsani Web 1.6 — People directory & FAQ directory\n   ========================================================================== */
.directory-hero { background: var(--mns-cream); padding: 78px 0 58px; border-bottom: 1px solid var(--mns-border); }
.directory-hero h1 { max-width: 920px; margin-bottom: 16px; }
.directory-hero p:not(.eyebrow) { max-width: 760px; color: var(--mns-muted); font-size: 1.08rem; }
.directory-filters { background: var(--mns-white); border-bottom: 1px solid var(--mns-border); position: sticky; top: var(--mns-header); z-index: 25; }
.directory-filter-form { display: flex; gap: 12px; align-items: end; padding: 18px 0; flex-wrap: wrap; }
.directory-filter-field { display: grid; gap: 6px; min-width: 210px; }
.directory-filter-field label { font-size: .72rem; text-transform: uppercase; letter-spacing: .11em; font-weight: 800; color: var(--mns-muted); }
.directory-filter-field select { min-height: 46px; border: 1px solid var(--mns-border); border-radius: 10px; padding: 0 40px 0 13px; background: var(--mns-white); color: var(--mns-ink); font: inherit; }
.directory-filter-actions { display: flex; gap: 9px; }
.people-section + .people-section { border-top: 1px solid var(--mns-border); }
.people-directory-grid { display: grid; grid-template-columns: repeat(3,minmax(260px,330px)); gap: 24px; justify-content: start; align-items: start; }
.person-directory-card { border: 1px solid var(--mns-border); background: var(--mns-white); border-radius: 18px; overflow: hidden; min-width: 0; }
.person-directory-photo { aspect-ratio: 4/5; background: var(--mns-soft-blue); display: grid; place-items: center; overflow: hidden; }
.person-directory-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 18%; display: block; }
.person-directory-photo span { font-family: var(--mns-serif); font-size: 4rem; color: var(--mns-indigo); opacity: .7; }
.person-directory-body { padding: 22px; }
.person-directory-body h3 { margin: 3px 0 5px; font-size: 1.28rem; }
.person-directory-position { color: var(--mns-indigo); font-weight: 780; margin-bottom: 12px; }
.person-directory-meta { display: grid; gap: 5px; margin: 12px 0 0; color: var(--mns-muted); font-size: .86rem; }
.unit-badges { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 14px; }
.unit-badge, .faq-meta-badge { display: inline-flex; align-items: center; min-height: 27px; padding: 4px 9px; border-radius: 999px; background: var(--mns-cream); border: 1px solid var(--mns-border); color: var(--mns-muted); font-size: .72rem; font-weight: 740; }
.person-profile-grid { display: grid; grid-template-columns: minmax(260px,360px) minmax(0,1fr); gap: 54px; align-items: start; }
.person-profile-photo { border-radius: 20px; overflow: hidden; background: var(--mns-soft-blue); aspect-ratio: 4/5; }
.person-profile-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 18%; display: block; }
.person-profile-details { display: grid; gap: 20px; }
.person-profile-facts { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.person-profile-fact { border: 1px solid var(--mns-border); border-radius: 14px; padding: 16px; }
.person-profile-fact span { display:block; color:var(--mns-muted); font-size:.72rem; text-transform:uppercase; letter-spacing:.08em; margin-bottom:5px; }
.faq-directory { display: grid; grid-template-columns: minmax(230px,.55fr) minmax(0,1.45fr); gap: 60px; align-items: start; }
.faq-directory-summary { position: sticky; top: calc(var(--mns-header) + 96px); }
.faq-directory-summary p { color: var(--mns-muted); }
.faq-directory .faq-item summary { padding: 22px 0; font-size: 1.02rem; }
.faq-item-meta { display:flex; flex-wrap:wrap; gap:6px; margin-top:-6px; padding-bottom:14px; }
.faq-single-back { margin-top: 32px; }
.empty-directory { padding: 42px; border: 1px dashed var(--mns-border); border-radius: 18px; text-align: center; background: var(--mns-cream); }
.empty-directory p { color: var(--mns-muted); }
@media (max-width: 980px) {
  .people-directory-grid { grid-template-columns: repeat(2,minmax(240px,330px)); }
  .faq-directory, .person-profile-grid { grid-template-columns: 1fr; gap: 36px; }
  .faq-directory-summary { position: static; }
}
@media (max-width: 680px) {
  .directory-hero { padding: 58px 0 42px; }
  .directory-filters { position: static; }
  .directory-filter-form, .directory-filter-actions { align-items: stretch; }
  .directory-filter-field, .directory-filter-actions, .directory-filter-actions .btn { width: 100%; }
  .people-directory-grid, .person-profile-facts { grid-template-columns: 1fr; }
}

/* 1.6.3 — standardized educator portraits */
@media (max-width: 680px) {
  .people-directory-grid { grid-template-columns: minmax(0,1fr); }
  .person-directory-card { width: 100%; max-width: 360px; }
}


/* Minsani Web 1.7 — Layanan Minsani */
.section-services { background: var(--mns-ivory, #faf9f7); }
.service-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  max-width: 980px;
  margin-top: 34px;
}
.service-card {
  background: #fff;
  border: 1px solid var(--mns-border, #e8e6e3);
  border-radius: 18px;
  overflow: hidden;
  display: grid;
  grid-template-columns: minmax(160px, .8fr) minmax(0, 1.2fr);
  min-height: 270px;
}
.service-card-media { min-height: 270px; background: #f2f1ee; overflow: hidden; }
.service-card-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.service-card-body { padding: 30px; align-self: center; }
.service-card-body h3 { margin: 4px 0 8px; font-size: clamp(1.45rem, 2vw, 2rem); }
.service-card-body > p:not(.eyebrow):not(.service-tagline) { color: var(--mns-muted, #6d6d75); }
.service-tagline { font-weight: 600; color: var(--mns-indigo, #4e548c); margin: 0 0 12px; }
.footer-services-title { margin-top: 28px; }
@media (max-width: 900px) {
  .service-grid { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
  .service-card { grid-template-columns: 1fr; }
  .service-card-media { min-height: 220px; aspect-ratio: 16/9; }
  .service-card-body { padding: 24px; }
}
/* Homepage Manager 1.8 */
.life-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:32px}.life-grid figure{margin:0;border-radius:16px;overflow:hidden;aspect-ratio:4/5;background:#f2f1ee}.life-grid img{width:100%;height:100%;object-fit:cover;display:block}.people-home-inner{display:flex;align-items:center;justify-content:space-between;gap:40px;padding:44px 0}.people-home-inner>div{max-width:720px}.post-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:30px}.simple-home-card{background:#fff;border:1px solid var(--mns-border);border-radius:16px;overflow:hidden}.simple-home-card img{width:100%;aspect-ratio:4/3;object-fit:cover}.simple-home-card>div{padding:20px}.simple-home-card h3{margin:0 0 8px}@media(max-width:800px){.life-grid{grid-template-columns:repeat(2,1fr)}.post-grid{grid-template-columns:1fr}.people-home-inner{display:block}.people-home-inner .btn{margin-top:20px}}@media(max-width:480px){.life-grid{grid-template-columns:1fr 1fr;gap:8px}}

/* Minsani Web 1.9 — Pesantren Manager */
.pesantren-page-intro .section-intro { color: var(--mns-muted); font-size: 1.08rem; line-height: 1.75; margin-bottom: 24px; }
.pesantren-schedule { background: #fff; }
.pesantren-schedule .timeline { margin-top: 8px; }


/* ==========================================================================
   Minsani Web 1.9.1 — Pesantren layout refinement
   ========================================================================== */

/* The Pesantren page should read like an editorial institutional page,
   not a sequence of full-screen presentation slides. */
.pesantren-page .section {
  padding-top: clamp(64px, 6vw, 88px);
  padding-bottom: clamp(64px, 6vw, 88px);
}

/* Compact hero: keeps the whole opening statement visible below the sticky header. */
.pesantren-hero {
  min-height: 0;
  padding-top: clamp(64px, 6vw, 88px);
  padding-bottom: clamp(64px, 6vw, 88px);
}
.pesantren-hero-inner {
  min-height: 0;
  display: flex;
  align-items: center;
}
.pesantren-hero-copy {
  max-width: 820px;
}
.pesantren-hero h1 {
  max-width: 820px;
  font-size: clamp(2.7rem, 4.4vw, 4.45rem);
  line-height: 1.02;
  margin-bottom: 20px;
}
.pesantren-lead {
  max-width: 760px;
  line-height: 1.72;
  margin-bottom: 26px;
}

/* The intro no longer consumes almost an entire viewport. */
.pesantren-page-intro {
  padding-top: clamp(62px, 5vw, 78px) !important;
  padding-bottom: clamp(62px, 5vw, 78px) !important;
}
.pesantren-page-intro .content-narrow {
  max-width: 900px;
  margin-left: auto;
  margin-right: auto;
}
.pesantren-page-intro h2 {
  max-width: 780px;
  margin-bottom: 22px;
  font-size: clamp(2.25rem, 3.4vw, 3.45rem);
  line-height: 1.08;
}
.pesantren-page-intro .section-intro {
  max-width: 780px;
  margin-bottom: 0;
}
.pesantren-page-intro .lead-content {
  max-width: 780px;
  margin-top: 24px;
}

/* Keep the next section visually connected to the introduction. */
.pesantren-values {
  padding-top: clamp(58px, 5vw, 76px) !important;
}
.pesantren-pillar-grid {
  margin-top: 30px;
}
.pesantren-pillar {
  min-height: 230px;
}

/* Life cards should be informative but compact. */
.pesantren-life-card {
  min-height: 190px;
}
.pesantren-life-grid {
  gap: 18px;
  margin-top: 30px;
}

/* Full-width policy accordion is easier to scan than an unbalanced sticky split. */
.pesantren-policy-layout-full {
  display: block;
  max-width: 980px;
}
.pesantren-policy-layout-full > div:first-child {
  position: static;
  max-width: 760px;
  margin-bottom: 30px;
}
.pesantren-policy-layout-full .pesantren-policy-list {
  max-width: 980px;
}

/* When only MTs is active, integration becomes one balanced horizontal callout. */
.pesantren-madrasah-layout.is-single {
  grid-template-columns: minmax(0, 1.25fr) minmax(320px, .75fr);
  align-items: center;
}
.pesantren-madrasah-layout.is-single .pesantren-school-links {
  max-width: 460px;
  width: 100%;
  justify-self: end;
}
.pesantren-madrasah-layout.is-single .pesantren-school-links a {
  padding: 24px;
}

/* Anchor targets should never hide underneath the sticky header. */
#kehidupan-santri,
.pesantren-page section[id] {
  scroll-margin-top: calc(var(--mns-header) + 24px);
}

@media (max-width: 980px) {
  .pesantren-madrasah-layout.is-single {
    grid-template-columns: 1fr;
  }
  .pesantren-madrasah-layout.is-single .pesantren-school-links {
    max-width: none;
    justify-self: stretch;
  }
}

@media (max-width: 680px) {
  .pesantren-page .section {
    padding-top: 52px;
    padding-bottom: 52px;
  }
  .pesantren-hero {
    padding-top: 52px;
    padding-bottom: 54px;
  }
  .pesantren-hero h1 {
    font-size: clamp(2.25rem, 10.5vw, 3.05rem);
    line-height: 1.04;
  }
  .pesantren-page-intro {
    padding-top: 50px !important;
    padding-bottom: 50px !important;
  }
  .pesantren-page-intro h2 {
    font-size: clamp(2rem, 9vw, 2.75rem);
  }
  .pesantren-values {
    padding-top: 50px !important;
  }
  .pesantren-pillar {
    min-height: 0;
  }
  .pesantren-life-card {
    min-height: 0;
  }
}
