.hero-copy {
  padding-left: clamp(32px, 6vw, 90px);
  padding-right: 24px;
}

.nsm-hero-slider { transition:background-image .85s ease; }
.nsm-hero-slider::before { content:""; position:absolute; inset:0; z-index:1; background:transparent; pointer-events:none; }
.hero-slider-controls { position:absolute; z-index:5; left:clamp(32px,8vw,110px); bottom:34px; display:flex; align-items:center; gap:12px; }
.hero-slider-controls button { border:1px solid rgba(255,255,255,.65); background:rgba(18,18,18,.48); color:#fff; cursor:pointer; }
.hero-slider-prev,.hero-slider-next { width:42px; height:42px; font-size:20px; }
.hero-slider-dots { display:flex; gap:8px; }
.hero-slider-dot { width:10px; height:10px; padding:0; border-radius:50%; }
.hero-slider-dot.is-active { background:var(--orange); border-color:var(--orange); }
@media (prefers-reduced-motion:reduce) { .nsm-hero-slider { transition:none; } }

.gallery-more {
  margin-top: 30px;
  text-align: center;
}

.nsm-lightbox-photo {
  cursor: zoom-in;
}

.full-gallery-page .page-hero p:last-child {
  max-width: 650px;
  color: var(--muted);
  line-height: 1.7;
}

.full-gallery-grid {
  grid-template-columns: repeat(3, 1fr);
  grid-auto-rows: 300px;
}

.full-gallery-grid .gallery-item:nth-child(n) {
  grid-column: auto;
  grid-row: auto;
}

.disclosure-page .nsm-wrap,
.disclosure-content,
.disclosure-block { min-width:0; }
.disclosure-page { padding-top:80px; background:#f6f2ec; color:var(--ink); }
.disclosure-intro { position:static; max-width:780px; margin:0 auto 34px; text-align:center; }
.disclosure-intro .eyebrow { color:var(--orange-dark); }
.disclosure-intro p:last-child { margin:18px auto 0; color:var(--muted); line-height:1.75; }
.disclosure-jump { display:grid; grid-template-columns:repeat(5,1fr); gap:10px; margin:0 0 28px; }
.disclosure-jump a { display:flex; min-height:76px; padding:15px; align-items:center; gap:12px; background:#fff; border:1px solid var(--line); font-size:12px; font-weight:800; }
.disclosure-jump span,.disclosure-block h3 span { display:inline-flex; flex:0 0 auto; align-items:center; justify-content:center; background:var(--orange); color:#fff; }
.disclosure-jump span { width:34px; height:34px; }
.disclosure-content .disclosure-block {
  margin-bottom: 22px;
  padding: 0 28px 28px;
  background: #fff;
  color: var(--ink);
  border:1px solid var(--line);
  scroll-margin-top:24px;
}

.disclosure-block h3 {
  display:flex;
  margin: 0 -28px 22px;
  padding:20px 28px;
  align-items:center;
  gap:12px;
  background:var(--ink);
  color:#fff;
  font: 400 24px Georgia, serif;
}
.disclosure-block h3 span { width:38px; height:38px; font:800 14px Arial,sans-serif; }

.disclosure-block .document-list {
  padding: 0;
}

.disclosure-table { table-layout:fixed; }
.disclosure-table th,.disclosure-table td { vertical-align: top; }
.disclosure-table thead th { background:#f1ebe3; color:var(--ink); font-size:11px; letter-spacing:.08em; text-transform:uppercase; }
.disclosure-table tbody tr:nth-child(even) { background:#fcfaf7; }
.disclosure-table tbody tr:hover { background:#fff4e8; }
.disclosure-info th:first-child,.disclosure-info td:first-child { width: 8%; }
.disclosure-info th:nth-child(2),.disclosure-info td:nth-child(2) { width:36%; }
.disclosure-info th:last-child,.disclosure-info td:last-child { width:56%; }
.disclosure-documents th:first-child,.disclosure-documents td:first-child { width: 8%; }
.disclosure-documents th:nth-child(2),.disclosure-documents td:nth-child(2) { width:74%; }
.disclosure-documents th:last-child,.disclosure-documents td:last-child { width: 18%; }
.disclosure-staff th:first-child,.disclosure-staff td:first-child { width: 8%; }
.disclosure-staff th:nth-child(2),.disclosure-staff td:nth-child(2) { width: 30%; }
.disclosure-staff th:nth-child(3),.disclosure-staff td:nth-child(3) { width: 15%; }
.disclosure-staff th:last-child,.disclosure-staff td:last-child { width: 47%; }
.disclosure-table a { color: var(--orange-dark); font-weight: 800; }

@media(max-width:780px){
  .disclosure-page { padding:58px 0; }
  .disclosure-jump { grid-template-columns:1fr 1fr; }
  .disclosure-jump a:last-child { grid-column:1/-1; }
  .disclosure-content .disclosure-block { padding:0 16px 18px; }
  .disclosure-block h3 { margin:0 -16px 16px; padding:16px; font-size:20px; }
  .disclosure-table { min-width:650px; table-layout:auto; }
  .disclosure-info th:first-child,.disclosure-info td:first-child,
  .disclosure-documents th:first-child,.disclosure-documents td:first-child { width:64px; }
  .disclosure-jump a { min-height:64px; padding:11px; }
}

/* Per-leader object-position (face-centring inside the circular avatar
   crop) is now computed in front-page.php from each photo's own aspect
   ratio and applied as an inline style, since leadership cards come from
   the dynamic "Management Team" post type (any number of people, each
   with their own photo) instead of a fixed 2-item array. */
.sub-menu { background:var(--orange); border-top-color:var(--orange-dark); }
.sub-menu li+li { border-top:1px solid rgba(255,255,255,.28); }
.sub-menu li a,.sub-menu li a:hover { color:var(--ink); }
.sub-menu li a:hover { background:#fff3; color:var(--ink); }
.leader-read-more { margin-top:18px; padding:0; border:0; background:transparent; color:var(--orange-dark); font-weight:800; cursor:pointer; }
body.leadership-modal-open { overflow:hidden; }
.leadership-modal { position:fixed; z-index:120; inset:0; display:none; align-items:center; justify-content:center; padding:24px; background:rgba(0,0,0,.78); }
.leadership-modal.is-open { display:flex; }
.leadership-modal-panel { position:relative; width:min(760px,92vw); max-height:88vh; overflow:auto; background:#fff; box-shadow:0 28px 70px rgba(0,0,0,.35); }
.leadership-modal-panel>div { padding:55px 48px; }
.leadership-modal-role { color:var(--orange-dark); font-size:11px; font-weight:800; letter-spacing:.16em; text-transform:uppercase; }
.leadership-modal-panel h2 { margin:24px 0; font:400 38px/1.15 Georgia,serif; }
.leadership { position:relative; overflow:hidden; background:linear-gradient(180deg,#fff 0%,#fffaf4 100%); }
.leadership:before { content:""; position:absolute; top:70px; right:-150px; width:360px; height:360px; border:1px solid rgba(237,123,18,.14); border-radius:50%; box-shadow:0 0 0 55px rgba(237,123,18,.035),0 0 0 110px rgba(237,123,18,.025); pointer-events:none; }
.leadership .nsm-wrap { position:relative; z-index:1; }
.leadership .section-head { margin-bottom:58px; }
.leadership .section-head>p { max-width:570px; }
.leadership-modal-message { color:var(--muted); font:italic 17px/1.8 Georgia,serif; white-space:pre-line; }
.leadership-modal-close { position:absolute; z-index:2; top:14px; right:14px; width:42px; height:42px; border:0; background:var(--orange); color:#fff; font-size:27px; cursor:pointer; }

.kindergarten-page-hero { position:relative; min-height:580px; overflow:hidden; background:var(--ink); }
.kindergarten-page-hero>img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 42%; }
.kindergarten-page-copy { position:relative; z-index:2; padding-top:130px; color:#fff; }
.kindergarten-page-copy h1 { max-width:720px; margin:0; font:400 clamp(48px,5.4vw,76px)/1.03 Georgia,serif; }
.kindergarten-page-copy>p:last-child { max-width:630px; font-size:17px; line-height:1.75; }
.kindergarten-method { background:#fff; }
.kindergarten-method-grid { display:grid; grid-template-columns:1.15fr .85fr; gap:60px; align-items:center; }
.kindergarten-method-grid img { width:100%; border-radius:22px; box-shadow:0 22px 55px rgba(37,27,18,.12); }
.kindergarten-method-grid h2 { margin:0 0 22px; font:400 clamp(38px,4vw,58px)/1.08 Georgia,serif; letter-spacing:-.035em; }
.kindergarten-method-grid p:last-child { color:var(--muted); font-size:17px; line-height:1.8; }
.kindergarten-features { background:var(--cream); }
.kindergarten-feature-grid { display:grid; grid-template-columns:repeat(3,1fr); }
.kindergarten-feature-grid article { padding:32px; border:1px solid var(--line); background:#fff; }
.kindergarten-feature-grid span { color:var(--orange-dark); font-weight:800; }
.kindergarten-feature-grid h3 { margin:35px 0 14px; font:400 25px Georgia,serif; }
.kindergarten-feature-grid p { color:var(--muted); font-size:14px; line-height:1.7; }
.kindergarten-page-gallery { display:grid; grid-template-columns:1.25fr .75fr .75fr; gap:14px; }
.kindergarten-page-gallery img { width:100%; height:330px; object-fit:cover; }
.info-hero { position:relative; min-height:560px; background-size:cover; background-position:center; }
.info-hero-academics { background-image:url('images/classroom-learning.jpeg'); }
.info-hero-admissions { background-image:url('images/kindergarten-activity.jpeg'); }
.info-hero-facilities { background-image:url('images/science-lab.jpeg'); }
.info-hero-copy { position:relative; z-index:2; max-width:720px; padding-top:135px; color:#fff; }
.info-hero-copy h1 { margin:0; font:400 clamp(48px,5vw,76px)/1.03 Georgia,serif; letter-spacing:-.04em; }
.info-hero-copy>p:last-child { max-width:610px; font-size:17px; line-height:1.75; }
.info-card-section { background:var(--cream); }
.info-card-grid { display:grid; grid-template-columns:repeat(3,1fr); }
.info-card-grid article { padding:36px; border:1px solid var(--line); background:#fff; }
.info-card-grid span,.process-grid span { color:var(--orange-dark); font-weight:800; }
.info-card-grid h3,.safety-grid h3,.process-grid h3 { margin:35px 0 14px; font:400 25px Georgia,serif; }
.info-card-grid p,.safety-grid p,.process-grid p { color:var(--muted); font-size:14px; line-height:1.7; }
.split-story { display:grid; grid-template-columns:1fr 1fr; padding:0; background:var(--ink); color:#fff; }
.split-story-image { min-height:540px; background-size:cover; background-position:center; }
.split-story-copy { padding:85px 8vw; }
.split-story-copy h2,.community-vision h2,.admissions-page h2,.process-section h2,.admissions-details h2,.safety-section h2,.voices-page h2,.student-voices h2 { margin:0; font:400 clamp(38px,4vw,58px)/1.08 Georgia,serif; }
.split-story-copy li,.admissions-detail-grid li { margin:14px 0; line-height:1.65; }
.community-vision { background:#fff; }
.community-vision h2 { max-width:850px; }
.vision-points { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:45px; }
.vision-points p { margin:0; padding:28px; border-top:3px solid var(--orange); background:var(--cream); line-height:1.65; }
.age-grid,.process-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.age-grid article { padding:30px; background:var(--cream); border-left:4px solid var(--orange); }
.age-grid strong,.age-grid span { display:block; }
.age-grid strong { font:400 26px Georgia,serif; }
.age-grid span { margin-top:10px; color:var(--muted); }
.process-section { background:var(--cream); }
.process-grid { margin:0; padding:0; list-style:none; }
.process-grid li { padding:34px; background:#fff; }
.admissions-detail-grid { display:grid; grid-template-columns:1fr 1fr; gap:30px; }
.admissions-detail-grid article { padding:42px; border:1px solid var(--line); }
.safety-section,.student-voices { background:var(--ink); color:#fff; }
.safety-section .section-head>p { color:#bbb; }
.safety-grid { display:grid; grid-template-columns:repeat(5,1fr); }
.safety-grid article { padding:28px; border:1px solid #444; }
.safety-grid p { color:#bbb; }
.voices-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:18px; }
.voices-grid blockquote { margin:0; padding:30px; border-top:3px solid var(--orange); background:#fff; }
.voices-grid p { margin:0 0 24px; font:italic 17px/1.75 Georgia,serif; }
.voices-grid cite { font-style:normal; font-weight:800; }
.voices-grid cite span { display:block; margin-top:5px; color:var(--muted); font-size:12px; }
.voices-grid-dark blockquote { background:#292929; border-color:var(--orange); }
.voices-grid-dark cite span { color:#bbb; }
.testimonial-track { display:grid; grid-auto-flow:column; grid-auto-columns:calc((100% - 40px)/3); gap:20px; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; }
.testimonial-track::-webkit-scrollbar { display:none; }
.testimonial-track blockquote { min-height:280px; margin:0; padding:34px; border-top:4px solid var(--orange); background:#fff; scroll-snap-align:start; }
.testimonial-track .voice-type { display:inline-block; padding:7px 10px; background:var(--cream); color:var(--orange-dark); font-size:10px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }
.testimonial-track p { font:italic 17px/1.75 Georgia,serif; }
.testimonial-track cite { display:block; margin-top:26px; font-style:normal; font-weight:800; }
.testimonial-track cite span { display:block; margin-top:5px; color:var(--muted); font-size:12px; }
.testimonial-controls { display:flex; align-items:center; gap:12px; margin-top:28px; }
.testimonial-controls button { width:46px; height:46px; border:1px solid var(--line); background:#fff; color:var(--orange-dark); font-size:20px; cursor:pointer; }
.testimonial-controls a { margin-left:auto; color:var(--orange-dark); font-weight:800; }
.testimonial-status { color:var(--muted); font-size:12px; }
@media(max-width:1050px) and (min-width:781px){.testimonial-track{grid-auto-columns:calc((100% - 20px)/2)}}
.footer-map { grid-column:1/-1; margin-top:8px; overflow:hidden; border-top:1px solid #3b3b3b; }
.footer-map iframe { display:block; width:100%; height:230px; border:0; opacity:.82; filter:saturate(.75); }

.facility-grid article {
  background: var(--orange);
  color: #fff;
  border-color: rgba(255, 255, 255, 0.35);
  transition: background 0.25s ease, transform 0.25s ease;
}

.facility-grid article > span,
.facility-grid article > p {
  color: #fff;
}

.facility-grid article:hover {
  background: var(--orange-dark);
  transform: translateY(-5px);
}

@media (max-width: 780px) {
  .hero-copy {
    padding-left: 24px;
    padding-right: 24px;
  }
  .hero-slider-controls { left:24px; bottom:22px; }

  .full-gallery-grid {
    grid-template-columns: 1fr;
  }
  .kindergarten-method-grid,.kindergarten-feature-grid,.kindergarten-page-gallery { grid-template-columns:1fr; }
  .info-hero { min-height:500px; }
  .info-hero-copy { padding-top:100px; }
  .info-hero-copy h1 { font-size:46px; }
  .info-card-grid,.split-story,.vision-points,.age-grid,.process-grid,.admissions-detail-grid,.safety-grid,.voices-grid { grid-template-columns:1fr; }
  .testimonial-track { grid-auto-columns:100%; }
  .testimonial-controls a { font-size:12px; }
  .split-story-image { min-height:360px; }
  .split-story-copy { padding:65px 8vw; }
  .admissions-detail-grid article { padding:30px; }
  .leadership-modal-panel>div { padding:34px 26px; }
  .kindergarten-page-copy { padding-top:90px; }
}

/* Gallery photo captions ("Science Laboratory" etc.) sit on a dark
   photo-overlay gradient (.gallery-item:after), but the caption text was
   never given a light colour, so it inherited the site's dark ink colour
   and was unreadable against the dark overlay. Force it white with a
   subtle text-shadow for contrast on lighter photos too. */
.gallery-item strong { color:#fff; text-shadow:0 1px 3px rgba(0,0,0,.6); }

/* Mandatory Public Disclosure link added to the always-visible orange top
   bar (next to CBSE Affiliation No. and the phone numbers) so CBSE
   officials/inspectors can find the disclosure page on every page without
   opening the main menu, per the CBSE compliance letter. On narrow screens
   there isn't room for a third item on one line with the other two, so it
   drops to its own centred line below them. */
.nsm-top a { color:#fff; font-weight:700; text-decoration:underline; text-underline-offset:2px; }
.nsm-top a:hover, .nsm-top a:focus { text-decoration:none; }
@media(max-width:780px){
  .nsm-top .nsm-wrap { flex-wrap:wrap; row-gap:4px; }
  .nsm-top a { flex-basis:100%; text-align:center; }
}

/* Sticky/fixed header: the top utility bar (with the CBSE Affiliation No.,
   phone and Mandatory Public Disclosure link) and the logo/nav bar are
   wrapped together in .nsm-sticky-wrap in header.php and kept pinned to
   the top of the viewport while scrolling, so the menu — and the
   disclosure link — stay reachable on long pages without scrolling back
   up. z-index stays below the mobile menu overlay (60) and drawer (61)
   so the off-canvas menu still displays correctly above it. A small
   shadow is added once the page has actually scrolled (.is-stuck, toggled
   in theme.js) to visually separate the pinned header from the content
   sliding underneath it. */
.nsm-sticky-wrap { position:sticky; top:0; z-index:55; }
.nsm-sticky-wrap.is-stuck .nsm-header { box-shadow:0 4px 14px rgba(0,0,0,.12); }
/* When logged into wp-admin, WordPress' own black admin toolbar is fixed at
   the very top (32px, or 46px on small screens) and sits above our sticky
   header, covering the top bar underneath it. Nudge the sticky offset down
   to match so the header still sticks fully in view for a logged-in editor.
   Site visitors (no admin bar) are unaffected. */
body.admin-bar .nsm-sticky-wrap { top:32px; }
@media screen and (max-width:782px){ body.admin-bar .nsm-sticky-wrap { top:46px; } }
/* In-page anchor links (About, Faculty, Downloads, Contact) would otherwise
   land right under the now-pinned header; push the scroll target down by
   roughly the header's own height so the section title clears it. */
#about, #faculty, #downloads, #contact { scroll-margin-top:132px; }
@media(max-width:1050px){
  #about, #faculty, #downloads, #contact { scroll-margin-top:80px; }
}

/* The 4-box stat strip under the hero slider only switches to a roomier
   2-column layout below 780px; from ~800px up to ~1250px it stays 4
   columns but the boxes are too narrow for the longest heading
   ("Pre-Nursery–XII") at the design's 24px font, so it wrapped onto 2-3
   lines. Widened the same 2-column layout the site already uses on
   mobile to cover that whole middle range too, so every heading
   (including the longest one) always renders on a single line. */
@media(max-width:1250px){
  .school-highlights { width:100%; margin-top:0; grid-template-columns:1fr 1fr; box-shadow:none; }
  .school-highlights div { padding:20px; }
}
/* Even 2 columns is too narrow for "Pre-Nursery–XII" on small phones, so
   below 560px stack all 4 stat boxes full-width in a single column
   instead. (This rule must stay after the 1250px one above so it wins at
   these narrower widths.) */
@media(max-width:560px){
  .school-highlights { grid-template-columns:1fr; }
}

/* Background photo for the new standalone Faculty page's header banner
   (matches the pattern already used for the Academics/Admissions/Facilities
   page headers) — reuses the same teacher photo shown in the faculty
   banner itself. */
.info-hero-faculty { background-image:url('images/teachers-and-student.jpeg'); }

/* Leadership/management cards redesign (Sept 2026) — compact white cards
   with a centred circular photo, name, small orange role label, a short
   trimmed message and a "Read More" trigger (opens the existing
   leadership-modal). Overrides the original large side-by-side
   photo+text layout defined in style.css's .leader-grid rules. Because
   this file loads after style.css, these unconditional rules also win
   over style.css's own 1050px/780px breakpoint overrides for the same
   selectors — no matching media queries needed here. */
.leader-grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 28px;
}
.leader-grid article {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: min(340px, 100%);
  min-height: 0;
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 4px 22px rgba(32, 28, 20, .1);
  padding: 34px 30px;
  text-align: center;
  overflow: visible;
}
.leader-grid .leader-photo {
  width: 120px;
  height: 120px;
  border-radius: 50%;
  object-fit: cover;
  background: #f5f3ef;
  border: 4px solid rgba(237, 123, 18, .18);
  margin-bottom: 18px;
}
.leader-grid article > div {
  padding: 0;
  width: 100%;
}
.leader-grid span {
  display: block;
  color: var(--orange-dark);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.leader-grid h3 {
  margin: 8px 0 12px;
  font: 700 19px/1.3 Arial, Helvetica, sans-serif;
  color: var(--ink);
}
.leader-grid blockquote {
  margin: 0 0 16px;
  font: 14px/1.7 Arial, Helvetica, sans-serif;
  font-style: normal;
  color: var(--muted);
}
.leader-grid .leader-read-more {
  display: inline-block;
  padding: 0;
  border: 0;
  background: none;
  color: var(--orange-dark);
  font-size: 13px;
  font-weight: 800;
  cursor: pointer;
}
.leader-grid .leader-read-more:hover {
  text-decoration: underline;
}
