/* ========================================================================
   NAS v2.1 — Joyful Discovery
   A brighter, more tactile layer across the full theme. Loads after v2.
   ======================================================================== */

:root {
  --as-paper: #fff9ef;
  --as-paper-deep: #f6efde;
  --as-blush: #ffe9d9;
  --as-gold-wash: #fff1b9;
  --as-leaf-wash: #e7f4d5;
  --as-monsoon-wash: #dff4f5;
  --as-petal-wash: #fce1e0;
  --as-clay-wash: #fde3d7;
  --as-ink: #17382e;
  --as-ink-soft: #4f625b;
  --as-line: #d9d4bf;
  --as-moss: #174a34;
  --as-moss-dark: #103827;
  --as-clay: #c9533b;
  --as-clay-dark: #ad412f;
  --as-clay-darker: #913525;
  --as-clay-ink: #9d3c2b;
  --as-sun: #f4b942;
  --as-leaf: #78a957;
  --as-monsoon: #5bb9c7;
  --as-petal: #e77e79;
  --as-lilac: #a98bc1;
  --as-blue-ink: #245c65;
  --as-purple-ink: #604975;
  --shadow-soft: 0 2px 4px rgba(23, 56, 46, .04), 0 12px 32px rgba(23, 56, 46, .08);
  --shadow-lift: 0 8px 18px rgba(23, 56, 46, .08), 0 30px 70px rgba(23, 56, 46, .14);
  --ease-play: cubic-bezier(.2, .9, .25, 1.15);
}

body {
  background: var(--as-paper);
  color: var(--as-ink);
}

::selection {
  background: var(--as-sun);
  color: var(--as-ink);
}

.nas-site-header::after {
  content: "";
  position: absolute;
  inset: auto 0 -1px;
  height: 3px;
  background: linear-gradient(90deg, var(--as-clay), var(--as-sun), var(--as-leaf), var(--as-monsoon), var(--as-lilac));
  transform: scaleX(var(--nas-scroll, 0));
  transform-origin: left;
  opacity: .78;
}

.nas-site-header.is-scrolled {
  background: rgba(255, 249, 239, .9);
}

.nas-btn {
  border-radius: 12px;
  min-height: 50px;
}

.nas-btn--accent {
  background: var(--as-clay-dark);
  box-shadow: 0 8px 0 rgba(145, 53, 37, .12);
}

.nas-btn--accent:hover {
  background: var(--as-clay-darker);
  transform: translateY(-2px);
}

.nas-btn--accent:active {
  transform: translateY(1px) scale(.98);
  box-shadow: 0 3px 0 rgba(145, 53, 37, .12);
}

.nas-btn--primary {
  background: var(--as-moss);
}

.nas-btn--ghost {
  background: rgba(255, 255, 255, .5);
  border-color: rgba(23, 74, 52, .28);
}

.nas-link::after {
  content: "↗";
}

/* Shared page energy ----------------------------------------------------- */
.nas-page-hero {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 91% 24%, rgba(244, 185, 66, .25) 0 9%, transparent 9.5%),
    radial-gradient(circle at 8% 76%, rgba(91, 185, 199, .18) 0 11%, transparent 11.5%),
    var(--as-paper);
}

.nas-page-hero::after {
  content: "";
  position: absolute;
  width: 220px;
  height: 48px;
  right: 5vw;
  bottom: 28px;
  background: repeating-linear-gradient(90deg, var(--as-clay) 0 18px, transparent 18px 31px);
  border-radius: 999px;
  transform: rotate(-4deg);
  opacity: .14;
  pointer-events: none;
}

.nas-page-hero--parent { background-color: var(--as-monsoon-wash); }
.nas-page-hero--admissions { background-color: var(--as-gold-wash); }
.nas-page-hero--curriculum { background-color: var(--as-leaf-wash); }
.nas-page-hero--faq { background-color: var(--as-petal-wash); }

.nas-content-card,
.nas-proof-card,
.nas-authority-card,
.nas-quicklook-grid article,
.nas-visual-card {
  border-color: rgba(23, 56, 46, .13);
  box-shadow: none;
}

.nas-content-card:nth-child(4n + 1),
.nas-proof-card:nth-child(4n + 1) { background: var(--as-gold-wash); }
.nas-content-card:nth-child(4n + 2),
.nas-proof-card:nth-child(4n + 2) { background: var(--as-monsoon-wash); }
.nas-content-card:nth-child(4n + 3),
.nas-proof-card:nth-child(4n + 3) { background: var(--as-petal-wash); }
.nas-content-card:nth-child(4n + 4),
.nas-proof-card:nth-child(4n + 4) { background: var(--as-leaf-wash); }

.nas-photo-story figure,
.nas-page-photo,
.nas-memory-photo {
  border-radius: 20px;
}

.nas-form-card {
  border-radius: 24px;
  border: 1px solid rgba(23, 56, 46, .14);
}

/* Hero ------------------------------------------------------------------ */
.nas-hero--joy {
  position: relative;
  isolation: isolate;
  display: block;
  overflow: hidden;
  min-height: min(930px, 100svh);
  padding-bottom: 0;
  background:
    radial-gradient(circle at 16% 25%, rgba(244, 185, 66, .24), transparent 23%),
    radial-gradient(circle at 84% 18%, rgba(91, 185, 199, .2), transparent 22%),
    radial-gradient(circle at 74% 85%, rgba(169, 139, 193, .16), transparent 22%),
    linear-gradient(135deg, #fffaf1 0%, #fff4dc 52%, #eff8e7 100%);
}

.nas-hero--joy .nas-hero__inner {
  width: min(calc(100% - 52px), 1180px);
  max-width: 1180px;
  margin-inline: auto;
  min-height: calc(min(880px, 100svh) - 120px);
  grid-template-columns: minmax(0, .94fr) minmax(0, 1.06fr);
  padding-bottom: 84px;
}

.nas-hero--joy .nas-hero__copy {
  position: relative;
  z-index: 3;
}

.nas-hero--joy .nas-eyebrow {
  color: var(--as-clay-ink);
}

.nas-hero--joy h1 {
  max-width: 13ch;
  font-size: clamp(3.25rem, 6vw, 6.7rem);
  line-height: .96;
  letter-spacing: -.045em;
}

.nas-hero--joy h1 em {
  color: var(--as-moss);
  white-space: normal;
}

.nas-hero--joy h1 em::after {
  height: .09em;
  bottom: -.02em;
  background: var(--as-sun);
  transform: rotate(-1deg) scaleX(0);
}

.nas-hero--joy .nas-lead {
  max-width: 50ch;
  font-size: clamp(1.1rem, 1.5vw, 1.35rem);
}

.nas-hero--joy .nas-trust-strip {
  gap: 20px;
  align-items: center;
}

.nas-hero--joy .nas-trust-strip li {
  color: var(--as-ink-soft);
}

.nas-hero--joy .nas-trust-strip li::before {
  background: var(--as-leaf);
}

.nas-hero__image--play {
  max-height: none;
  aspect-ratio: 4 / 5;
  overflow: visible;
  background: transparent;
  border-radius: 34% 66% 54% 46% / 47% 42% 58% 53%;
  box-shadow: none;
}

.nas-hero__image--play > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: inherit;
  box-shadow: var(--shadow-lift);
}

.nas-hero__image--play::before,
.nas-hero__image--play::after {
  content: "";
  position: absolute;
  z-index: -1;
  border-radius: 50%;
}

.nas-hero__image--play::before {
  width: 44%;
  aspect-ratio: 1;
  left: -14%;
  bottom: -7%;
  background: var(--as-monsoon);
  opacity: .62;
}

.nas-hero__image--play::after {
  width: 28%;
  aspect-ratio: 1;
  right: -7%;
  top: -6%;
  background: var(--as-sun);
  clip-path: polygon(50% 0, 62% 35%, 100% 24%, 71% 51%, 100% 76%, 62% 66%, 50% 100%, 38% 66%, 0 76%, 29% 51%, 0 24%, 38% 35%);
}

.nas-play-tile {
  position: absolute;
  z-index: 4;
  display: grid;
  min-width: 142px;
  padding: 15px 18px;
  border: 1px solid rgba(23, 56, 46, .13);
  border-radius: 18px;
  box-shadow: var(--shadow-soft);
  transform: rotate(var(--tile-rotate, -3deg));
  animation: nas-tile-float 6s var(--ease-in-out) infinite alternate;
}

.nas-play-tile small {
  font-weight: 800;
  color: rgba(23, 56, 46, .5);
  letter-spacing: .12em;
}

.nas-play-tile strong {
  font: 600 1.55rem/1.05 Fraunces, Georgia, serif;
  margin-top: 3px;
}

.nas-play-tile span {
  font-size: .78rem;
  font-weight: 700;
  margin-top: 3px;
}

.nas-play-tile--ask {
  --tile-rotate: -5deg;
  left: -12%;
  top: 13%;
  background: var(--as-gold-wash);
}

.nas-play-tile--try {
  --tile-rotate: 4deg;
  right: -8%;
  top: 47%;
  background: var(--as-monsoon-wash);
  animation-delay: -2s;
}

.nas-play-tile--grow {
  --tile-rotate: -2deg;
  right: 5%;
  bottom: -2%;
  background: var(--as-petal-wash);
  animation-delay: -4s;
}

@keyframes nas-tile-float {
  from { translate: 0 -3px; }
  to { translate: 0 7px; }
}

.nas-hero-scribble span {
  position: absolute;
  z-index: -1;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: var(--as-clay);
  opacity: .65;
}

.nas-hero-scribble span:nth-child(1) { left: 4%; top: 28%; }
.nas-hero-scribble span:nth-child(2) { left: 44%; top: 15%; background: var(--as-monsoon); width: 11px; height: 11px; }
.nas-hero-scribble span:nth-child(3) { left: 7%; bottom: 19%; background: var(--as-lilac); width: 26px; height: 26px; }
.nas-hero-scribble span:nth-child(4) { right: 3%; bottom: 27%; background: var(--as-leaf); width: 14px; height: 14px; }

.nas-joy-ribbon {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: clamp(12px, 2vw, 30px);
  width: 100%;
  min-height: 74px;
  padding: 16px 24px;
  background: var(--as-moss);
  color: #fff9ef;
  font-weight: 800;
  letter-spacing: .02em;
}

.nas-joy-ribbon i {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--as-sun);
  box-shadow: 16px 0 0 var(--as-petal), -16px 0 0 var(--as-monsoon);
}

/* Parent-controlled carousel -------------------------------------------- */
.nas-morning {
  overflow: hidden;
  background: #fffdf8;
}

.nas-morning__head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, .7fr);
  gap: 48px;
  align-items: end;
}

.nas-morning__head p:last-child {
  margin: 0;
}

.nas-moment-carousel {
  position: relative;
}

.nas-moment-carousel__controls {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 12px;
  margin-bottom: 22px;
}

.nas-moment-carousel__controls button {
  width: 46px;
  height: 46px;
  border: 1px solid rgba(23, 56, 46, .18);
  border-radius: 50%;
  background: var(--as-paper);
  color: var(--as-moss);
  font-size: 1.25rem;
  cursor: pointer;
  transition: transform var(--dur-2) var(--ease-play), background var(--dur-2), color var(--dur-2);
}

.nas-moment-carousel__controls button:hover {
  transform: scale(1.08);
  background: var(--as-moss);
  color: var(--as-paper);
}

.nas-moment-carousel__controls span {
  min-width: 58px;
  text-align: center;
  font-size: .85rem;
  font-weight: 800;
  letter-spacing: .08em;
}

.nas-moment-carousel__track {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(310px, 39%);
  gap: 22px;
  padding: 4px max(0px, calc((100vw - min(100% - 52px, 1220px)) / 2)) 28px 0;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scroll-snap-type: inline mandatory;
  scrollbar-width: none;
}

.nas-moment-carousel__track::-webkit-scrollbar { display: none; }

.nas-moment-card {
  position: relative;
  display: grid;
  grid-template-rows: minmax(300px, 1fr) auto;
  min-height: 520px;
  overflow: hidden;
  border-radius: 28px;
  scroll-snap-align: start;
  background: var(--as-gold-wash);
  border: 1px solid rgba(23, 56, 46, .12);
}

.nas-moment-card:nth-child(2) { background: var(--as-leaf-wash); }
.nas-moment-card:nth-child(3) { background: var(--as-monsoon-wash); }
.nas-moment-card:nth-child(4) { background: var(--as-petal-wash); }
.nas-moment-card:nth-child(5) { background: #eee6f5; }

.nas-moment-card figure {
  margin: 0;
  overflow: hidden;
}

.nas-moment-card figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 700ms var(--ease-out-soft);
}

.nas-moment-card:hover figure img { transform: scale(1.035); }

.nas-moment-card > div {
  position: relative;
  padding: 26px 28px 30px;
}

.nas-moment-card > div span {
  position: absolute;
  right: 26px;
  top: 25px;
  font-weight: 900;
  color: rgba(23, 56, 46, .42);
}

.nas-moment-card h3 {
  font-size: clamp(2rem, 3.2vw, 3.4rem);
}

.nas-moment-card p { margin-top: 8px; }

/* Curiosity world -------------------------------------------------------- */
.nas-curiosity-world {
  position: relative;
  overflow: hidden;
  background: var(--as-moss);
  color: #fff9ef;
}

.nas-curiosity-world::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 12% 12%, rgba(244, 185, 66, .18), transparent 22%),
    radial-gradient(circle at 86% 82%, rgba(91, 185, 199, .16), transparent 24%);
  pointer-events: none;
}

.nas-curiosity-world__grid {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(320px, .8fr);
  gap: clamp(40px, 7vw, 90px);
  align-items: center;
}

.nas-curiosity-world__art {
  margin: 0;
  transform: rotate(-1.5deg);
}

.nas-curiosity-world__art img {
  width: 100%;
  border-radius: 32px 76px 32px 76px;
  box-shadow: 0 34px 80px rgba(0, 0, 0, .25);
}

.nas-curiosity-world__art figcaption {
  margin-top: 14px;
  color: rgba(255, 249, 239, .68);
  font-size: .78rem;
}

.nas-curiosity-world__copy h2,
.nas-curiosity-world__copy h3,
.nas-curiosity-world__copy p,
.nas-curiosity-world__copy .nas-link { color: #fff9ef; }

.nas-curiosity-world__copy > p:not(.nas-eyebrow) {
  margin-top: 20px;
  color: rgba(255, 249, 239, .76);
}

.nas-curiosity-world__copy .nas-eyebrow { color: #ffcb61; }
.nas-curiosity-world__copy .nas-link { background-image: linear-gradient(var(--as-sun), var(--as-sun)); }

.nas-curiosity-notes {
  display: grid;
  gap: 0;
  margin-top: 34px;
}

.nas-curiosity-notes article {
  display: grid;
  grid-template-columns: 48px 1fr;
  gap: 14px;
  align-items: start;
  padding: 18px 0;
  border-top: 1px solid rgba(255, 249, 239, .18);
}

.nas-curiosity-notes article > span {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border-radius: 12px;
  background: var(--as-sun);
  color: var(--as-ink);
  font-weight: 900;
}

.nas-curiosity-notes article:nth-child(2) > span { background: var(--as-monsoon); }
.nas-curiosity-notes article:nth-child(3) > span { background: var(--as-petal); }
.nas-curiosity-notes p { margin-top: 2px; font-size: .92rem; }

/* Programme tabs --------------------------------------------------------- */
.nas-journey--joy {
  background:
    linear-gradient(180deg, #fff9ef 0%, #fff9ef 55%, #f5efe1 55%, #f5efe1 100%);
}

.nas-journey--joy .nas-journey-path article {
  background: #fff;
  border-radius: 22px;
  border: 2px solid transparent;
  overflow: hidden;
  transition: transform var(--dur-2) var(--ease-play), border-color var(--dur-2), box-shadow var(--dur-2);
}

.nas-journey--joy .nas-journey-path article:nth-child(1) { background: var(--as-monsoon-wash); }
.nas-journey--joy .nas-journey-path article:nth-child(2) { background: var(--as-petal-wash); }
.nas-journey--joy .nas-journey-path article:nth-child(3) { background: var(--as-gold-wash); }
.nas-journey--joy .nas-journey-path article:nth-child(4) { background: var(--as-leaf-wash); }
.nas-journey--joy .nas-journey-path article:nth-child(5) { background: #eee6f5; }

.nas-journey--joy .nas-journey-path article:hover,
.nas-journey--joy .nas-journey-path article.is-active {
  transform: translateY(-6px) rotate(-.4deg);
  border-color: var(--as-moss);
  box-shadow: var(--shadow-lift);
}

.nas-journey--joy .nas-journey-path img {
  height: 150px;
  border-radius: 16px;
}

.nas-journey--joy .nas-stage-detail {
  border-radius: 28px;
  background: var(--as-moss);
  color: #fff9ef;
}

.nas-journey--joy .nas-stage-detail h3,
.nas-journey--joy .nas-stage-detail p,
.nas-journey--joy .nas-stage-detail summary,
.nas-journey--joy .nas-stage-detail li,
.nas-journey--joy .nas-stage-detail .nas-link { color: #fff9ef; }

.nas-journey--joy .nas-stage-detail .nas-eyebrow { color: #ffcb61; }
.nas-journey--joy .nas-stage-dropdown { border-color: rgba(255, 249, 239, .2); }

/* Real campus proof ------------------------------------------------------ */
.nas-proof-visit {
  background: var(--as-monsoon-wash);
}

.nas-proof-visit__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(340px, .9fr);
  gap: clamp(42px, 7vw, 92px);
  align-items: center;
}

.nas-proof-visit__photo {
  position: relative;
  margin: 0;
}

.nas-proof-visit__photo::before {
  content: "";
  position: absolute;
  z-index: 0;
  width: 42%;
  height: 24%;
  right: -7%;
  bottom: -8%;
  border-radius: 50%;
  background: var(--as-sun);
  opacity: .8;
}

.nas-proof-visit__photo img {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  height: auto;
  border-radius: 26px 72px 26px 72px;
  box-shadow: var(--shadow-lift);
}

.nas-proof-visit__photo figcaption {
  position: relative;
  z-index: 2;
  width: max-content;
  max-width: 86%;
  margin: -22px 0 0 22px;
  padding: 11px 16px;
  border-radius: 12px;
  background: var(--as-paper);
  box-shadow: var(--shadow-soft);
  font-size: .76rem;
  font-weight: 800;
}

.nas-proof-visit__copy > p:not(.nas-eyebrow) { margin-top: 18px; }

.nas-visit-checks {
  display: grid;
  gap: 0;
  padding: 0;
  margin: 30px 0 0;
  list-style: none;
}

.nas-visit-checks li {
  display: grid;
  grid-template-columns: 42px 1fr;
  gap: 14px;
  padding: 18px 0;
  border-top: 1px solid rgba(23, 56, 46, .18);
}

.nas-visit-checks li > span {
  color: var(--as-blue-ink);
  font-weight: 900;
}

.nas-visit-checks p { margin-top: 3px; font-size: .92rem; }

/* Archive --------------------------------------------------------------- */
.nas-memory--joy {
  background: #211f1a;
  color: #fff9ef;
}

.nas-memory--joy h2,
.nas-memory--joy p,
.nas-memory--joy .nas-link { color: #fff9ef; }
.nas-memory--joy .nas-eyebrow { color: #ffcb61; }
.nas-memory--joy .nas-section-head > p:not(.nas-eyebrow) { color: rgba(255, 249, 239, .68); }

.nas-memory--joy .nas-memory-photo {
  border-color: rgba(255, 249, 239, .16);
}

.nas-memory--joy .nas-memory-card {
  background: var(--as-clay-dark);
  color: #fff;
  border: 0;
}

.nas-memory--joy .nas-memory-card strong {
  color: #fffdf8;
}

.nas-memory--joy .nas-memory-card span {
  color: rgba(255, 253, 248, .9);
  font-size: .94rem;
  font-weight: 750;
  line-height: 1.5;
}

.nas-memory-year {
  display: block;
  color: var(--as-sun);
  font-size: .7rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}

/* Admission + FAQ ------------------------------------------------------- */
.nas-admission-preview--joy {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 8% 18%, rgba(244, 185, 66, .46), transparent 18%),
    radial-gradient(circle at 92% 82%, rgba(231, 126, 121, .25), transparent 19%),
    var(--as-gold-wash);
}

.nas-admission-preview--joy .nas-form-card {
  position: relative;
  background: #fffdf9;
  box-shadow: var(--shadow-lift);
}

.nas-form-card__spark {
  position: absolute;
  right: -18px;
  top: -18px;
  width: 72px;
  height: 72px;
  background: var(--as-petal);
  clip-path: polygon(50% 0, 61% 34%, 100% 25%, 72% 52%, 100% 78%, 62% 67%, 50% 100%, 38% 67%, 0 78%, 28% 52%, 0 25%, 39% 34%);
  transform: rotate(8deg);
}

.nas-reassurance {
  display: inline-block;
  margin-top: 26px;
  padding: 10px 14px;
  border-radius: 12px;
  background: rgba(255, 255, 255, .6);
  font-weight: 800;
}

.nas-faq-preview--joy {
  background: #eee6f5;
}

.nas-faq-preview--joy .nas-faq-list article {
  background: rgba(255, 255, 255, .68);
  border-radius: 16px;
  margin-bottom: 10px;
  border: 1px solid rgba(96, 73, 117, .16);
}

.nas-faq-preview--joy .nas-faq-list button {
  padding-inline: 20px;
}

.nas-faq-preview--joy .nas-faq-list article > div p {
  padding-inline: 20px;
  padding-bottom: 20px;
}

/* Footer and mobile conversion ----------------------------------------- */
.nas-footer {
  background:
    radial-gradient(circle at 12% 18%, rgba(244, 185, 66, .13), transparent 19%),
    radial-gradient(circle at 88% 82%, rgba(91, 185, 199, .12), transparent 18%),
    var(--as-moss-dark);
}

.nas-mobile-conversion {
  display: none;
}

/* Motion safety --------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  .nas-play-tile { animation: none; }
  .nas-site-header::after { transition: none; }
  .nas-moment-carousel__track { scroll-behavior: auto; }
}

/* Responsive ------------------------------------------------------------ */
@media (max-width: 1050px) {
  .nas-hero--joy .nas-hero__inner,
  .nas-curiosity-world__grid,
  .nas-proof-visit__grid {
    grid-template-columns: 1fr;
  }

  .nas-hero--joy {
    min-height: 0;
  }

  .nas-hero--joy .nas-hero__inner {
    width: min(calc(100% - 42px), 760px);
    padding-top: 44px;
  }

  .nas-hero--joy h1 { max-width: 15ch; }

  .nas-hero__image--play {
    width: min(86vw, 650px);
    margin-inline: auto;
  }

  .nas-curiosity-world__copy,
  .nas-proof-visit__copy { max-width: 720px; }

  .nas-morning__head {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .nas-moment-carousel__track { grid-auto-columns: minmax(310px, 55%); }
}

@media (max-width: 720px) {
  body { padding-bottom: 68px; }

  .nas-hero--joy .nas-hero__inner {
    width: min(calc(100% - 34px), 760px);
    padding-top: 76px;
    padding-inline: 0;
    padding-bottom: 58px;
  }

  .nas-hero--joy h1 {
    font-size: clamp(3rem, 14vw, 4.7rem);
    max-width: 12ch;
  }

  .nas-hero--joy .nas-actions {
    display: grid;
  }

  .nas-hero--joy .nas-btn { width: 100%; }

  .nas-hero__image--play {
    position: relative;
    inset: auto;
    width: 88vw;
    height: auto;
    min-height: 0;
    max-height: none;
    margin-top: 22px;
    opacity: 1;
    aspect-ratio: 4 / 5;
  }

  .nas-play-tile {
    min-width: 116px;
    padding: 11px 13px;
  }

  .nas-play-tile strong { font-size: 1.22rem; }
  .nas-play-tile span { font-size: .68rem; }
  .nas-play-tile--ask { left: -5%; top: 8%; }
  .nas-play-tile--try { right: -4%; top: 52%; }
  .nas-play-tile--grow { left: auto; right: 5%; bottom: -3%; }

  .nas-joy-ribbon {
    justify-content: flex-start;
    overflow-x: auto;
    white-space: nowrap;
    scrollbar-width: none;
  }

  .nas-joy-ribbon::-webkit-scrollbar { display: none; }

  .nas-moment-carousel__controls { justify-content: space-between; }
  .nas-moment-carousel__track { grid-auto-columns: 84%; }
  .nas-moment-card { min-height: 470px; grid-template-rows: 300px auto; }

  .nas-curiosity-world__art img,
  .nas-proof-visit__photo img { border-radius: 22px 48px 22px 48px; }

  .nas-curiosity-world__grid,
  .nas-proof-visit__grid { gap: 42px; }

  .nas-journey--joy .nas-journey-path {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: 72%;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    padding-bottom: 20px;
    scrollbar-width: none;
  }

  .nas-journey--joy .nas-journey-path article { scroll-snap-align: start; }

  .nas-proof-visit__photo figcaption { width: auto; max-width: calc(100% - 34px); }

  .nas-mobile-conversion {
    position: fixed;
    z-index: 140;
    display: grid;
    grid-template-columns: 1.25fr 1fr 1fr;
    left: 10px;
    right: 10px;
    bottom: 8px;
    min-height: 56px;
    padding: 5px;
    border: 1px solid rgba(23, 56, 46, .15);
    border-radius: 18px;
    background: rgba(255, 249, 239, .94);
    box-shadow: 0 16px 50px rgba(23, 56, 46, .2);
    backdrop-filter: blur(16px);
  }

  .nas-mobile-conversion a {
    display: grid;
    place-items: center;
    border-radius: 13px;
    color: var(--as-moss);
    font-size: .78rem;
    font-weight: 900;
  }

  .nas-mobile-conversion a:first-child {
    background: var(--as-clay-dark);
    color: white;
  }

  .nas-whatsapp { display: none; }
}

@media (max-width: 430px) {
  .nas-hero--joy h1 { font-size: 3.2rem; }
  .nas-play-tile--try { right: -2%; }
  .nas-moment-carousel__track { grid-auto-columns: 88%; }
  .nas-moment-card { min-height: 430px; grid-template-rows: 260px auto; }
  .nas-joy-ribbon { font-size: .82rem; }
}

/* ========================================================================
   NAS v2.1.1 — final refinement system
   One deliberate rhythm for every page. This layer normalises the older
   theme generations without changing the v2.1 visual direction.
   ======================================================================== */

:root {
  /* 8-point spacing scale */
  --space-1: 8px;
  --space-2: 16px;
  --space-3: 24px;
  --space-4: 32px;
  --space-5: 48px;
  --space-6: 64px;
  --space-7: 80px;
  --space-8: 96px;
  --space-9: 120px;

  /* responsive type roles */
  --type-caption: .8125rem;
  --type-small: .9rem;
  --type-body: clamp(1rem, .97rem + .14vw, 1.1rem);
  --type-lead: clamp(1.125rem, 1.04rem + .35vw, 1.3rem);
  --type-h4: clamp(1.2rem, 1.12rem + .3vw, 1.35rem);
  --type-h3: clamp(1.45rem, 1.25rem + .75vw, 1.9rem);
  --type-h2: clamp(2.25rem, 1.8rem + 2vw, 3.25rem);
  --type-h1: clamp(2.85rem, 2.1rem + 3.1vw, 4.5rem);
  --type-display: clamp(3.25rem, 2.1rem + 4.8vw, 5.75rem);

  /* layout and component geometry */
  --nas-container: 1120px;
  --nas-measure: 64ch;
  --nas-measure-narrow: 52ch;
  --section-y: var(--space-8);
  --radius-sm: 12px;
  --radius: 18px;
  --radius-lg: 24px;
  --radius-pill: 999px;
  --shadow-soft: 0 1px 2px rgba(23, 56, 46, .04), 0 10px 28px rgba(23, 56, 46, .07);
  --shadow-lift: 0 8px 22px rgba(23, 56, 46, .08), 0 28px 64px rgba(23, 56, 46, .12);
}

html {
  overflow-x: clip;
  scroll-padding-top: 88px;
}

body {
  overflow-x: clip;
  font-size: var(--type-body);
  line-height: 1.65;
}

h1,
h2,
h3,
h4 {
  margin: 0;
  font-family: Fraunces, Georgia, "Times New Roman", serif;
  font-weight: 600;
  text-wrap: balance;
}

h1 {
  font-size: var(--type-h1);
  line-height: 1.02;
  letter-spacing: -.035em;
}

h2 {
  font-size: var(--type-h2);
  line-height: 1.08;
  letter-spacing: -.025em;
}

h3 {
  font-size: var(--type-h3);
  line-height: 1.14;
  letter-spacing: -.018em;
}

h4 {
  font-size: var(--type-h4);
  line-height: 1.2;
  letter-spacing: -.012em;
}

p { text-wrap: pretty; }

.nas-hero--joy h1 {
  font-size: var(--type-display);
  line-height: .98;
}

.nas-lead {
  max-width: var(--nas-measure-narrow);
  margin-top: var(--space-3);
  font-size: var(--type-lead);
  line-height: 1.55;
}

.nas-eyebrow {
  margin-bottom: var(--space-2);
  font-size: var(--type-caption);
  font-weight: 750;
  line-height: 1.2;
  letter-spacing: .14em;
}

.nas-shell,
.nas-hero--joy .nas-hero__inner {
  width: min(calc(100% - 48px), var(--nas-container));
  max-width: var(--nas-container);
  margin-inline: auto;
  padding-inline: 0;
}

.nas-section { padding-block: var(--section-y); }
.nas-parent-band { padding-block: var(--space-7); }
.nas-photo-story { padding-block: var(--space-6); }
.nas-page-quicklook { padding-block: var(--space-6); }
.nas-visual-learning--compact { padding-block: var(--space-7); }
.nas-story-divider { min-height: var(--space-5); }

.nas-section-head { margin-bottom: var(--space-5); }

.nas-section-head > p:not(.nas-eyebrow),
.nas-page-hero .nas-lead,
.nas-proof-visit__copy > p:not(.nas-eyebrow) {
  max-width: var(--nas-measure-narrow);
  margin-top: var(--space-3);
}

.nas-section-head--center {
  width: min(100%, 800px);
  margin-inline: auto;
  text-align: center;
}

.nas-section-head--center p:not(.nas-eyebrow) {
  max-width: 58ch;
  margin-inline: auto;
}

.nas-rich-text p,
.nas-section p:not(.nas-lead):not([class*="__"]) {
  max-width: var(--nas-measure);
}

/* Header ---------------------------------------------------------------- */
.nas-site-header__inner {
  min-height: 72px;
  gap: var(--space-3);
}

.nas-brand {
  min-width: 220px;
  gap: 12px;
}

.nas-brand img,
.custom-logo-link img { height: 40px; }

.nas-brand__text { gap: 4px; }

.nas-brand__text strong {
  font-size: 1rem;
  line-height: 1;
}

.nas-brand__text small {
  margin-top: 0;
  font-size: .6rem;
  line-height: 1.1;
  letter-spacing: .16em;
}

.nas-nav__list { gap: 20px; }

.nas-nav__list a {
  position: relative;
  padding: 10px 0 8px;
  font-size: .9rem;
  font-weight: 650;
}

.nas-nav__list a[aria-current="page"],
.nas-nav__list .current-menu-item > a {
  color: var(--as-moss);
  background-size: 100% 2px;
}

.nas-site-header.is-scrolled {
  background: rgba(255, 249, 239, .94);
  border-bottom-color: rgba(23, 56, 46, .12);
  box-shadow: 0 8px 30px rgba(23, 56, 46, .055);
}

.nas-header-actions .nas-btn {
  min-height: 44px;
  padding: 12px 18px;
}

.nas-menu-button {
  width: 46px;
  height: 46px;
  border-radius: var(--radius-sm);
}

/* Hero and page introductions ------------------------------------------ */
.nas-hero--joy .nas-hero__inner {
  min-height: calc(min(860px, 100svh) - 112px);
  gap: var(--space-6);
  align-items: start;
  padding-bottom: var(--space-7);
}

.nas-hero--joy {
  padding-top: calc(72px + var(--space-4));
}

.nas-page-hero {
  padding-top: calc(72px + var(--space-4));
  padding-bottom: var(--space-6);
}

.nas-page-hero__grid,
.nas-split {
  gap: var(--space-6);
}

.nas-page-hero__grid {
  align-items: start;
}

.nas-page-hero__aside { border-radius: var(--radius-lg); }

/* Buttons, links, focus and disabled states ---------------------------- */
.nas-btn {
  min-height: 52px;
  padding: 15px 24px;
  border-radius: 14px;
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0;
}

.nas-btn--small {
  min-height: 44px;
  padding: 12px 18px;
  font-size: .925rem;
}

.nas-btn:hover { transform: translateY(-2px); }
.nas-btn:active { transform: translateY(0) scale(.98); }

.nas-btn:disabled,
.nas-btn[aria-disabled="true"],
button:disabled {
  cursor: not-allowed;
  opacity: .48;
  transform: none;
  box-shadow: none;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[role="button"]:focus-visible,
summary:focus-visible {
  outline: 3px solid var(--as-sun);
  outline-offset: 3px;
  box-shadow: 0 0 0 2px var(--as-moss);
}

.nas-link {
  margin-top: var(--space-3);
  gap: var(--space-1);
  font-weight: 700;
}

/* Cards and grids ------------------------------------------------------- */
.nas-three-cards,
.nas-guide-grid,
.nas-proof-grid,
.nas-icon-board,
.nas-authority-related-grid,
.nas-authority-topic-grid,
.nas-quicklook-grid,
.nas-parent-band__grid {
  gap: var(--space-3);
}

.nas-content-card,
.nas-proof-card,
.nas-authority-card,
.nas-visual-card,
.nas-note-card,
.nas-letter-card,
.nas-form-card,
.nas-year-card,
.nas-campus-card,
.nas-authority-related-card,
.nas-quicklook-grid article {
  border-radius: var(--radius);
  border-color: rgba(23, 56, 46, .14);
}

.nas-content-card,
.nas-proof-card,
.nas-authority-card,
.nas-visual-card,
.nas-year-card,
.nas-campus-card {
  padding: var(--space-4);
}

.nas-note-card,
.nas-letter-card,
.nas-quicklook-grid article { padding: var(--space-3); }

.nas-form-card { padding: var(--space-5); }

.nas-note-card h2,
.nas-content-card h2,
.nas-proof-card h2,
.nas-authority-card h2,
.nas-visual-card h2,
.nas-year-card h2,
.nas-form-card h2,
.nas-letter-card h2 {
  font-size: var(--type-h3);
  line-height: 1.14;
}

.nas-content-card p,
.nas-proof-card p,
.nas-authority-card p,
.nas-visual-card p,
.nas-note-card p,
.nas-letter-card p {
  margin-top: 12px;
}

.nas-content-card:hover,
.nas-authority-card:hover,
.nas-proof-card:hover,
.nas-visual-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow-soft);
}

/* Photography ---------------------------------------------------------- */
.nas-page-photo,
.nas-page-photo img,
.nas-photo-story figure,
.nas-photo-story img,
.nas-memory-photo,
.nas-moment-card {
  border-radius: var(--radius-lg);
}

.nas-page-photo img {
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: cover;
}

.nas-photo-story__grid { gap: var(--space-3); }

.nas-photo-story img {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.nas-photo-story figcaption {
  min-height: 66px;
  padding: 14px 16px 16px;
  font-size: var(--type-small);
  line-height: 1.5;
}

.nas-journey--joy .nas-journey-path article { border-radius: var(--radius); }
.nas-journey--joy .nas-journey-path img { border-radius: 14px; }
.nas-journey--joy .nas-stage-detail { border-radius: var(--radius-lg); }

/* Accordions and forms ------------------------------------------------- */
.nas-faq-list {
  margin-top: var(--space-5);
  border-top: 0;
}

.nas-faq-list article {
  overflow: hidden;
  margin-bottom: 12px;
  border: 1px solid rgba(23, 56, 46, .14);
  border-radius: 16px;
  background: rgba(255, 255, 255, .54);
}

.nas-faq-list article.is-open {
  border-color: rgba(23, 74, 52, .32);
  background: rgba(255, 255, 255, .78);
}

.nas-faq-list button,
.nas-faq-list summary {
  min-height: 56px;
  padding: 18px 20px;
  font-size: clamp(1.1rem, 1rem + .45vw, 1.35rem);
}

.nas-faq-list article > div > p {
  max-width: var(--nas-measure);
  padding: 0 20px 20px;
}

.nas-field { gap: var(--space-1); }

.nas-field label {
  font-size: .85rem;
  font-weight: 650;
  line-height: 1.35;
  letter-spacing: .02em;
  text-transform: none;
}

.nas-field input,
.nas-field select,
.nas-field textarea,
.nas-form input,
.nas-form select,
.nas-form textarea {
  min-height: 52px;
  padding: 13px 16px;
  border-radius: var(--radius-sm);
  border-color: rgba(23, 56, 46, .22);
}

.nas-field textarea,
.nas-form textarea { min-height: 132px; }

.nas-field input::placeholder,
.nas-field textarea::placeholder { color: #6f7c76; }

/* Footer --------------------------------------------------------------- */
.nas-footer { padding: var(--space-7) 0 var(--space-4); }
.nas-footer__grid { gap: var(--space-5); }
.nas-footer__brand p { margin-top: var(--space-2); }
.nas-footer ul { gap: 10px; margin-top: var(--space-2); }
.nas-footer__subhead { margin-top: var(--space-4); }
.nas-footer__bottom { margin-top: var(--space-6); padding-top: var(--space-3); }

.nas-note-card--compact {
  padding: var(--space-2) var(--space-3);
  font-size: var(--type-small);
}

.nas-search-alias { margin-top: var(--space-3); }

/* Programme journey legibility ----------------------------------------- */
.nas-journey--joy .nas-journey-path {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.nas-journey--joy .nas-journey-path em {
  min-height: 34px;
  padding: 8px 12px;
  background: rgba(255, 253, 247, .94);
  border-color: rgba(23, 56, 46, .2);
  color: var(--as-moss-dark);
  font-size: .82rem;
  font-weight: 850;
  letter-spacing: .075em;
  line-height: 1.25;
}

.nas-journey--joy .nas-journey-path h3 {
  color: var(--as-moss-dark);
  font-size: 1.32rem;
  line-height: 1.18;
}

.nas-stage-detail [data-nas-stage-panel][hidden] {
  display: none !important;
}

.nas-journey--joy .nas-stage-detail article {
  background:
    radial-gradient(circle at 8% 16%, rgba(244, 185, 66, .16), transparent 24%),
    linear-gradient(135deg, #fffaf1 0%, #edf4e6 100%);
}

.nas-journey--joy .nas-stage-detail h3,
.nas-journey--joy .nas-stage-detail p,
.nas-journey--joy .nas-stage-detail summary,
.nas-journey--joy .nas-stage-detail li {
  color: var(--as-ink);
}

.nas-journey--joy .nas-stage-detail .nas-eyebrow {
  color: var(--as-clay-ink);
}

.nas-journey--joy .nas-stage-detail .nas-link {
  color: var(--as-moss-dark);
}

.nas-journey--joy .nas-stage-dropdown {
  border-color: rgba(23, 56, 46, .2);
  background: rgba(255, 253, 247, .78);
}

.nas-journey--joy .nas-stage-dropdown[open] {
  background: #fffdf7;
}

@media (max-width: 1120px) {
  :root { --section-y: var(--space-7); }

  .nas-shell,
  .nas-hero--joy .nas-hero__inner {
    width: min(calc(100% - 48px), var(--nas-container));
  }

  .nas-page-hero__aside { width: min(100%, 720px); }
  .nas-hero--joy .nas-hero__inner { gap: var(--space-5); }
}

@media (min-width: 721px) and (max-width: 1050px) {
  .nas-hero__image--play {
    width: min(70vw, 620px);
    aspect-ratio: 1 / 1;
  }
}

@media (max-width: 820px) {
  :root { --section-y: 72px; }

  body { font-size: 1rem; }

  .nas-hero--joy { padding-top: 68px; }

  .nas-hero--joy .nas-hero__inner { padding-top: var(--space-4); }

  .nas-shell,
  .nas-hero--joy .nas-hero__inner {
    width: min(calc(100% - 40px), var(--nas-container));
  }

  .nas-site-header__inner { min-height: 68px; }

  .nas-page-hero {
    padding-top: calc(68px + var(--space-4));
    padding-bottom: var(--space-6);
  }

  .nas-page-hero__grid,
  .nas-split { gap: var(--space-5); }

  .nas-section-head { margin-bottom: var(--space-4); }
  .nas-content-card,
  .nas-proof-card,
  .nas-authority-card,
  .nas-visual-card,
  .nas-year-card,
  .nas-campus-card,
  .nas-form-card { padding: 28px; }

  .nas-photo-story { padding-block: var(--space-5); }
  .nas-photo-story figcaption { min-height: auto; }
  .nas-footer { padding-top: var(--space-6); }
}

@media (max-width: 720px) {
  .nas-journey--joy .nas-journey-path { grid-template-columns: none; }
}

@media (max-width: 560px) {
  :root { --section-y: var(--space-6); }

  .nas-shell,
  .nas-hero--joy .nas-hero__inner {
    width: min(calc(100% - 32px), var(--nas-container));
  }

  .nas-page-hero {
    padding-top: calc(68px + var(--space-3));
    padding-bottom: 56px;
  }

  .nas-hero--joy .nas-hero__inner {
    padding-top: var(--space-4);
    padding-bottom: var(--space-6);
  }

  .nas-actions { gap: 12px; }
  .nas-actions .nas-btn { width: 100%; }

  .nas-section-head > p:not(.nas-eyebrow),
  .nas-page-hero .nas-lead { margin-top: var(--space-2); }

  .nas-content-card,
  .nas-proof-card,
  .nas-authority-card,
  .nas-visual-card,
  .nas-year-card,
  .nas-campus-card,
  .nas-form-card,
  .nas-note-card,
  .nas-letter-card { padding: var(--space-3); }

  .nas-parent-band,
  .nas-visual-learning--compact { padding-block: var(--space-6); }

  .nas-photo-story { padding-block: var(--space-5); }
  .nas-footer__grid { gap: var(--space-4); }
  .nas-footer__bottom { margin-top: var(--space-5); }
}

@media (max-width: 380px) {
  :root { --section-y: 56px; }

  .nas-shell,
  .nas-hero--joy .nas-hero__inner {
    width: min(calc(100% - 28px), var(--nas-container));
  }

  .nas-hero--joy h1 { font-size: 3rem; }
  .nas-page-hero h1 { font-size: 2.55rem; }
  .nas-btn { min-height: 50px; padding-inline: 18px; }
  .nas-faq-list button { padding-inline: var(--space-2); }
  .nas-faq-list article > div > p { padding-inline: var(--space-2); }
}
