/* Interior pages share the home page's photography, type and quiet surfaces.
   Page styles still own their data views, forms, galleries and interactions. */
body.site-interior {
  --interior-width: 72rem;
  --interior-space: clamp(3.5rem, 7vw, 6.5rem);
  --text-dark: var(--color-ink);
  --text-light: var(--color-ink-muted);
  --primary-blue-start: var(--color-link);
  --glass-bg: var(--color-surface);
  --glass-border-color: var(--color-line);
  --glass-blur: none;
  --glass-saturate: none;
  --border-radius: 1.2rem;
  --soft-shadow: none;
  --soft-shadow-hover: none;
  background: var(--color-bg);
  color: var(--color-ink);
  font-family: var(--font-sans);
  font-size: 1.0625rem;
  line-height: 1.85;
}

/* Photography leads into the page, with the same navy tint as the home. */
html body.site-interior :is(.hero, .students-hero) {
  position: relative;
  isolation: isolate;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 32rem;
  margin: 0;
  padding: 5rem var(--gutter) 7rem;
  overflow: clip;
  border: 0;
  border-radius: 0;
  background: #173653;
  box-shadow: none;
  color: #fff;
  text-align: center;
}
html.site-js body.site-interior.site-hero-top :is(.hero, .students-hero) {
  min-height: clamp(34rem, 48vw, 42rem);
  padding-top: calc(var(--site-header-space) + clamp(3rem, 6vw, 5.5rem));
  padding-bottom: clamp(5rem, 9vw, 8rem);
}
html body.site-interior :is(.hero, .students-hero)::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(180deg, #102e48db 0%, #102e48b3 36%, #102e4870 68%, var(--color-bg) 100%);
  pointer-events: none;
}
html body.site-interior :is(.hero, .students-hero)::after { content: none; }
.site-interior .hero-bg { inset: 0; width: 100%; height: 100%; background-position: center; }
.site-interior .hero-bg :is(picture, img) { display: block; width: 100%; height: 100%; object-fit: cover; }
html body.site-interior :is(.hero-layout, .students-hero__layout) {
  position: relative;
  z-index: 2;
  display: block;
  width: 100%;
  max-width: 64rem;
  min-height: 0;
  margin: 0 auto;
  padding: 0;
}
html body.site-interior :is(.hero-content, .students-hero__content) {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.35rem;
  width: 100%;
  max-width: 56rem;
  margin: 0 auto;
  padding: 0;
}
html body.site-interior :is(.hero, .students-hero) h1 {
  max-width: 100%;
  margin: 0;
  color: #fff;
  background: none;
  -webkit-text-fill-color: currentColor;
  font-family: var(--font-sans);
  font-size: clamp(2.25rem, 2rem + 2.4vw, 4.5rem);
  font-weight: 700;
  line-height: 1.32;
  letter-spacing: -.045em;
  word-break: normal;
  overflow-wrap: anywhere;
  text-wrap: balance;
  text-shadow: 0 2px 24px #08233b33;
  animation: none;
}
html body.site-interior :is(.hero, .students-hero) p {
  max-width: 42rem;
  margin: 0 auto;
  color: #eff5fc;
  font-size: clamp(1rem, .95rem + .25vw, 1.125rem);
  line-height: 1.9;
  letter-spacing: .015em;
  opacity: 1;
  animation: none;
  text-wrap: pretty;
}
html body.site-interior :is(.hero, .students-hero) :is(.hero-kicker, .seiun-hero-kicker) {
  display: block;
  padding: 0;
  border: 0;
  background: none;
  color: #cce4ff;
  font-size: .8125rem;
  font-weight: 600;
  letter-spacing: .14em;
}
html body.site-interior .hero-divider { margin: .5rem 0 -.65rem; color: #cce0f3; font-size: .8125rem; }
html body.site-interior :is(.hero-actions, .students-hero__actions) {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .75rem;
  width: auto;
  margin: .5rem 0 0;
}
html body.site-interior :is(.hero-btn, .students-hero__button) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  min-height: 3.25rem;
  margin: 0;
  padding: .8rem 1.4rem;
  border: 1px solid #ffffff66;
  border-radius: .85rem;
  background: #102e4859;
  color: #fff;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  font-size: .9375rem;
  font-weight: 650;
  line-height: 1.5;
  text-decoration: none;
  transition: background .2s, transform .2s;
}
html body.site-interior :is(.hero-btn--primary, .students-hero__button--primary) { background: #fff; color: #16599a; border-color: #fff; }
html body.site-interior :is(.hero-btn, .students-hero__button):hover { transform: translateY(-2px); background: #e9f3ff; color: #16599a; box-shadow: none; }

/* Use the page background for narrative sections. Cards are for distinct items. */
html body.site-interior :is(.main-content, .page-main, .info-story, .life-page, .event-page, .contact-page, .download-shell) {
  width: 100%;
  max-width: none;
  min-width: 0;
  margin: 0 auto;
  padding: 0;
  gap: 0;
}
html body.site-interior > :is(.main-content, .page-main) {
  width: min(calc(100% - 2 * var(--gutter)), var(--interior-width));
  margin: 0 auto;
  padding: 0 0 var(--interior-space);
}
.site-interior .content-area { min-width: 0; width: 100%; gap: 0; }
html body.site-interior :is(.content-section, .page-panel, .contact-panel, .download-section, .surface, .cost-section) {
  margin: 0;
  padding: var(--interior-space) 0;
  border: 0;
  border-bottom: 1px solid var(--color-line);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  transform: none;
  animation: none;
}
html body.site-interior :is(.content-section, .page-panel, .contact-panel, .cost-section):hover { transform: none; box-shadow: none; }
.site-interior :is(.content-section, .page-panel, .contact-panel) > :last-child { margin-bottom: 0; }
html body.site-interior :is(.section-title, .page-section-title, .contact-display, .contact-section-title, .download-heading, .cost-section__intro h2) {
  display: block;
  max-width: 44rem;
  margin: 0 0 1.35rem;
  padding: 0;
  border: 0;
  background: none;
  -webkit-text-fill-color: currentColor;
  color: var(--color-ink);
  font-size: clamp(1.65rem, 1.25rem + 1.5vw, 2.75rem);
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: -.04em;
  text-wrap: pretty;
}
html body.site-interior .section-title::before,
html body.site-interior .section-title::after { content: none; }
html body.site-interior :is(.content-text, .section-lead, .page-lead, .page-section-lead, .section-copy, .contact-lead) {
  color: var(--color-ink-muted);
  font-size: 1.0625rem;
  line-height: 1.95;
}
.site-interior :is(main p, main li) { word-break: normal; overflow-wrap: anywhere; }
.site-interior :is(.section-kicker, .contact-kicker, .life-kicker, .info-kicker, .event-kicker, .page-kicker, .page-card__eyebrow) {
  color: var(--color-link);
  font-size: .8125rem;
  letter-spacing: .12em;
  font-weight: 650;
}
html body.site-interior :is(.page-panel__header, .section-head, .life-section-head, .event-section-head, .section-heading) { margin-bottom: 2.25rem; }
html body.site-interior :is(.image-container, .info-figure, .info-photo, .info-history__photo, .life-photo, .event-figure) {
  border: 0;
  border-radius: 1.2rem;
  background: transparent;
  box-shadow: none;
}
html body.site-interior :is(.image-container, .info-figure, .info-photo, .life-photo, .event-figure) img { transform: none; box-shadow: none; }
.site-interior :is(.info-figure, .info-photo, .info-history__photo, .event-figure) img { border-radius: 1.2rem; }
html body.site-interior :is(.info-intro, .info-detail, .life-intro, .life-detail, .event-overview__layout, .event-feature, .content-with-image) { gap: clamp(2rem, 5vw, 5rem); }
.site-interior :is(.info-detail__body, .life-detail__body, .event-feature__copy) { min-width: 0; }

/* Quiet title sections for information that does not need a background photo. */
html body.site-interior :is(.page-top-card, .parents-hero, .faq-hero, .cost-top-card, .page-hero, .page-header-bar) {
  margin: 0;
  padding: clamp(3.5rem, 7vw, 6.5rem) 0;
  border: 0;
  border-bottom: 1px solid var(--color-line);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
  animation: none;
}
html body.site-interior :is(.page-hero, .page-header-bar)::after { content: none; }
html body.site-interior :is(.page-top-card__inner, .parents-hero__inner, .faq-hero__inner, .cost-top-card__inner) {
  max-width: 54rem;
  margin: 0 auto;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  text-align: center;
}
html body.site-interior :is(.page-title, .parents-hero__title, .faq-hero__title, .cost-top-card__title, .page-header-title, .catalog-title) {
  margin: 1rem 0 1.5rem;
  padding: 0;
  color: var(--color-ink);
  background: none;
  -webkit-text-fill-color: currentColor;
  font-size: clamp(2.1rem, 1.65rem + 2.3vw, 4rem);
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: -.045em;
  word-break: normal;
  text-wrap: balance;
}
html body.site-interior :is(.parents-hero__lead, .faq-hero__lead, .cost-top-card__lead, .page-header-subtitle, .catalog-lead) {
  max-width: 42rem;
  margin: 0 auto;
  font-size: 1.0625rem;
  line-height: 1.95;
  color: var(--color-ink-muted);
}
.site-interior .page-breadcrumbs { flex-wrap: wrap; font-size: .875rem; }
html body.site-interior :is(.page-top-card__picker, .parents-topic-picker, .faq-topic-picker) {
  margin-top: 2.25rem;
  padding: 1.75rem 0 0;
  border: 0;
  border-top: 1px solid var(--color-line);
  border-radius: 0;
  background: none;
  box-shadow: none;
}
html body.site-interior :is(.page-top-card__link, .parents-topic-link, .faq-topic-link, .page-chip) {
  width: auto;
  min-width: 0;
  min-height: 44px;
  padding: .6rem 1rem;
  border: 1px solid var(--color-line);
  border-radius: 999px;
  background: var(--color-surface);
  box-shadow: none;
  color: var(--color-ink);
  font-size: .9375rem;
  line-height: 1.6;
}
html body.site-interior :is(.page-top-card__picker-list, .parents-topic-picker__list, .faq-topic-picker__list) {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .65rem;
}
.site-interior :is(.page-grid, .facilities-grid, .features-grid, .info-overview__grid, .life-overview__grid, .stat-grid) { gap: 1.25rem; }
html body.site-interior :is(.page-card, .facility-card, .feature-item, .info-pillar, .life-pillar, .event-lens__item, .stat-card, .route-card, .contact-channel-card, .contact-ai-card, .contact-scenario, .parents-visual-card) {
  padding: clamp(1.25rem, 2.5vw, 2rem);
  border: 1px solid var(--color-line);
  border-radius: 1.2rem;
  background: var(--color-surface);
  color: var(--color-ink);
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
html body.site-interior :is(.page-card, .facility-card, .feature-item, .info-pillar, .life-pillar, .stat-card):hover { transform: none; box-shadow: none; background: var(--color-surface); }
.site-interior :is(.page-card, .facility-card, .feature-item, .info-pillar, .life-pillar) h3 { font-size: 1.25rem; line-height: 1.65; color: var(--color-ink); }
html body.site-interior :is(.info-summary, .info-note, .info-history__aside, .life-note-card, .life-fit, .page-note, .contact-rail-block, .privacy-contact-box) {
  border: 1px solid var(--color-line);
  border-radius: 1rem;
  background: var(--color-bg-soft);
  color: var(--color-ink);
  box-shadow: none;
}
html body.site-interior :is(.page-button, .cta-button, .action-link, .submit-button) {
  min-height: 3rem;
  padding: .8rem 1.4rem;
  border-radius: .85rem;
  box-shadow: none;
  font-size: .9375rem;
  font-weight: 650;
  line-height: 1.5;
}
html body.site-interior :is(.page-button--primary, .cta-button:not(.secondary), .action-link--primary, .submit-button) { background: var(--color-action); color: #fff; border-color: transparent; }
html body.site-interior :is(.page-button--secondary, .cta-button.secondary) { background: var(--color-surface); color: var(--color-link); border: 1px solid var(--color-line); }

/* Dense information keeps enough contrast in both color schemes. */
html body.site-interior main :is(th, td) { border-color: var(--color-line); }
html body.site-interior main th { background: var(--color-bg-soft); color: var(--color-ink); }
html body.site-interior main td { color: var(--color-ink); }
.site-interior :is(.page-table, .cost-compare-table, .cost-matrix, .cost-market-table) { background: var(--color-surface); font-size: 1rem; }
.site-interior :is(.table-scroll, .cost-table-wrap, .cost-compare-wrap) { border-radius: 1rem; border-color: var(--color-line); }
html body.site-interior :is(.faq-item, .scholarship-accordion, .year-accordion) {
  border: 1px solid var(--color-line);
  border-radius: 1rem;
  background: var(--color-surface);
  box-shadow: none;
}
html body.site-interior :is(.faq-item, .scholarship-accordion) summary {
  padding: 1.3rem 1.5rem;
  background: transparent;
  color: var(--color-ink);
  font-size: 1.0625rem;
  line-height: 1.75;
}
html body.site-interior :is(.faq-item, .scholarship-accordion) summary:hover { background: var(--color-bg-soft); }
html body.site-interior .scholarship-content { background: transparent; color: var(--color-ink); }
.site-interior .faq-group { gap: .8rem; }
.site-interior .page-stat { border-radius: 1rem; box-shadow: none; background: var(--color-surface); border: 1px solid var(--color-line); }
.site-interior .page-stat__value { color: var(--color-link); }

/* The FAQ is a single reading list rather than a stack of cards. */
html body.site-interior:is(.faq-page, .parents-page) .faq-group { gap: 0; }
html body.site-interior:is(.faq-page, .parents-page) .faq-item,
html body.site-interior:is(.faq-page, .parents-page) .faq-item[open] { margin: 0; padding: 0; border: 0; border-bottom: 1px solid var(--color-line); border-radius: 0; background: transparent; box-shadow: none; backdrop-filter: none; -webkit-backdrop-filter: none; }
html body.site-interior:is(.faq-page, .parents-page) .faq-item summary { padding: 1.1rem .15rem; background: transparent; }
html body.site-interior:is(.faq-page, .parents-page) .faq-item summary:hover { background: transparent; color: var(--color-link); }
html body.site-interior:is(.faq-page, .parents-page) .faq-item summary::after { background: none; color: var(--color-link); }
html body.site-interior:is(.faq-page, .parents-page) .faq-item p { margin: 0; padding: 0 2.5rem 1.2rem .15rem; font-size: 1rem; }

/* The overview closes with the same blue invitation used on the home page. */
html body.site-interior.site-page-info #next-action { padding: clamp(2rem, 5vw, 3rem); border: 0; border-radius: .5rem; background: linear-gradient(135deg, #0066cc, #004499); text-align: center; }
html body.site-interior.site-page-info #next-action :is(.section-title,.section-intro,.section-label) { color: #fff; }

/* Fees, visits and the inquiry form keep their original functionality. */
body.site-interior.cost-page {
  color-scheme: light dark;
  --cost-ink: var(--color-ink);
  --cost-muted: var(--color-ink-muted);
  --cost-subtle: var(--color-ink-muted);
  --cost-surface: var(--color-surface);
  --cost-surface-strong: var(--color-surface);
  --cost-line: var(--color-line);
  --cost-shadow: none;
  --cost-shadow-soft: none;
  --cost-panel-radius: 1.2rem;
}
html body.site-interior.cost-page[data-cost-theme] { background: var(--color-bg); --cost-accent-solid: var(--color-link); }
html body.site-interior.cost-page[data-cost-theme] :is(.cost-top-card__inner, .cost-section) { background: transparent; box-shadow: none; }
html body.site-interior.cost-page[data-cost-theme] :is(.cost-summary, .cost-card, .cost-closing, .cost-chart) { background: var(--color-surface); box-shadow: none; backdrop-filter: none; border-radius: 1.2rem; }
html body.site-interior.cost-page[data-cost-theme] .page-button { box-shadow: none; }
.site-interior .cost-summary--hero { margin: var(--interior-space) 0 0; }
.site-interior .cost-section__intro { margin-bottom: 2.5rem; }
.site-interior .contact-channel-strip { margin: 0; padding: 2rem 0; }
.site-interior .contact-scenarios { margin: 0; padding: 0 0 2rem; }
.site-interior .contact-channel-card--accent { border-color: var(--color-link); }
html body.site-interior .contact-form-panel { border-radius: 1.2rem; background: var(--color-surface); border: 1px solid var(--color-line); box-shadow: none; padding: clamp(1.25rem, 3vw, 2.5rem); }
html body.site-interior .contact-form :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
  min-height: 3rem;
  border: 1px solid var(--color-line);
  border-radius: .7rem;
  background: var(--color-bg);
  color: var(--color-ink);
  font-size: 1rem;
  box-shadow: none;
}
.site-interior .contact-form textarea { line-height: 1.8; }

/* Catalogs and long articles share a readable editorial rhythm. */
html body.site-interior .latest-articles { margin: 0; padding: var(--interior-space) 0 0; background: none; border: 0; box-shadow: none; }
.site-interior .catalog-title { text-align: center; }
html body.site-interior .catalog-lead { margin-bottom: 2.5rem; text-align: center; }
html body.site-interior :is(.article-grid, .guide-grid) { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; }
html body.site-interior :is(.article-card, .guide-card) { border: 1px solid var(--color-line); border-radius: 1.2rem; background: var(--color-surface); box-shadow: none; overflow: hidden; }
html body.site-interior :is(.article-card, .guide-card):hover { transform: translateY(-3px); box-shadow: 0 12px 28px #08233b12; }
.site-interior :is(.article-card-image, .guide-card__media) { aspect-ratio: 16 / 10; height: auto; }
.site-interior :is(.article-card-image img, .guide-card__media img) { width: 100%; height: 100%; object-fit: cover; }
.site-interior :is(.article-card-content, .guide-card__body) { padding: 1.5rem; }
html body.site-interior :is(.article-card-title, .guide-card h3) { color: var(--color-ink); font-size: 1.25rem; line-height: 1.65; letter-spacing: -.02em; }
.site-interior .guide-search-panel { border-radius: 1rem; box-shadow: none; }
html body.site-interior .sidebar { margin-top: var(--interior-space); padding: 1.5rem; background: var(--color-bg-soft); border: 1px solid var(--color-line); border-radius: 1.2rem; box-shadow: none; transform: none; }
html body.site-interior .backnumber-sidebar h3 { background: var(--color-bg-soft); color: var(--color-ink-muted); border-bottom-color: var(--color-line); }
html body.site-interior .news-article { max-width: 48rem; margin: 0 auto; padding: 0; background: none; border: 0; box-shadow: none; }
html body.site-interior .article-title { margin: 1rem 0 2rem; font-size: clamp(1.8rem, 1.3rem + 1.75vw, 3rem); line-height: 1.5; letter-spacing: -.04em; background: none; color: var(--color-ink); -webkit-text-fill-color: currentColor; }
.site-interior .article-date { color: var(--color-link); font-size: .9375rem; }
html body.site-interior .news-article p { font-size: 1.0625rem; line-height: 2; color: var(--color-ink-muted); margin-bottom: 1.5rem; }
.site-interior .article-image img { border-radius: 1.2rem; box-shadow: none; }
.site-interior .article-image figcaption { font-size: .9375rem; color: var(--color-ink-muted); }
html body.site-interior :is(.instagram-cta, .article-footer) {
  display: grid;
  justify-items: center;
  gap: 1.25rem;
  margin: 3rem 0 0;
  padding: clamp(1.5rem, 3vw, 2.5rem) clamp(1rem, 3vw, 2.5rem);
  background: var(--color-bg-soft);
  border: 1px solid var(--color-line);
  border-radius: 1.2rem;
  text-align: center;
}
html body.site-interior :is(.instagram-cta, .article-footer) > :is(h3, p) { min-width: 0; max-width: 100%; margin: 0; }
html body.site-group-univ .hero h1 { font-size: clamp(2rem, 1.5rem + 2.4vw, 3.7rem); }
.site-interior :is(.about-story, .privacy-story) { max-width: 54rem; margin: 0 auto; }
.site-interior .privacy-story .content-section > h2 { margin: 3rem 0 1rem; color: var(--color-ink); font-size: 1.4rem; line-height: 1.6; }
.site-interior .privacy-story .content-section > h2:first-child { margin-top: 0; }
.site-interior .seiun-local-nav__frame { box-shadow: none; }
.site-interior .seiun-lead { max-width: 42rem; margin-inline: auto; color: var(--color-ink-muted); }

/* The late-admission landing page uses the same exterior photo and spacing. */
.site-interior .lp-hero {
  padding: clamp(4rem, 7vw, 6rem) var(--gutter) clamp(5rem, 9vw, 8rem);
  background: linear-gradient(180deg, #102e48de 0%, #102e489e 60%, var(--color-bg) 100%), url('/info/img/Hero1.jpeg') center / cover;
}
.site-interior .lp-hero::before, .site-interior .lp-hero::after { content: none; }
.site-interior .lp-hero-inner { max-width: 54rem; }
.site-interior .lp-hero-title { font-size: clamp(2rem, 1.6rem + 2.4vw, 4rem); line-height: 1.45; letter-spacing: -.04em; font-weight: 700; }
.site-interior .lp-hero-title em { color: #cce4ff; background: none; -webkit-text-fill-color: currentColor; }
.site-interior .lp-hero-sub { max-width: 42rem; margin: 1.5rem auto 2rem; font-size: 1.0625rem; line-height: 1.9; opacity: 1; }
.site-interior .lp-body { width: min(calc(100% - 2 * var(--gutter)), 64rem); max-width: none; margin: 0 auto; padding: 0 0 var(--interior-space); }
.site-interior .lp-section { padding: var(--interior-space) 0; border-bottom: 1px solid var(--color-line); }
.site-interior .lp-section-title { font-size: clamp(1.6rem, 1.25rem + 1.5vw, 2.5rem); line-height: 1.6; letter-spacing: -.04em; font-weight: 700; }
.site-interior .lp-section-lead { font-size: 1.0625rem; line-height: 1.9; }
.site-interior :is(.lp-feature, .lp-info-box, .lp-cost-card, .lp-announce) { background: var(--color-surface); border-color: var(--color-line); border-radius: 1.2rem; box-shadow: none; }
.site-interior .lp-btn { box-shadow: none; min-height: 3rem; border-radius: .85rem; }
.site-interior .lp-btn-label { font-size: .8125rem; opacity: .9; }
.site-interior .lp-final { border-radius: 1.2rem; background: #173653; }

@media (min-width: 960px) {
  .site-interior :is(.info-intro, .info-detail, .life-intro, .life-detail, .event-overview__layout, .event-feature) { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; }
  html body.site-interior > .main-content:has(> .sidebar) { grid-template-columns: minmax(13rem, 17rem) minmax(0, 1fr); column-gap: clamp(2rem, 4vw, 4rem); }
}
@media (max-width: 959px) {
  html body.site-interior > .main-content:has(> .sidebar) { grid-template-columns: minmax(0, 1fr); }
  html body.site-interior > .main-content > .sidebar { order: 2; }
  html body.site-interior > .main-content > .content-area { order: 1; }
  html body.site-interior :is(.info-intro, .info-detail, .life-intro, .life-detail, .event-overview__layout, .event-feature, .content-with-image, .page-hero__layout, .parents-visual-band) { grid-template-columns: minmax(0, 1fr); }
  html body.site-interior :is(.article-grid, .guide-grid) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  html body.site-interior :is(.info-overview__grid, .life-overview__grid, .event-lens, .page-grid, .stat-grid) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .site-interior .sidebar { position: static; }
}
@media (max-width: 639px) {
  html.site-js body.site-interior.site-hero-top :is(.hero, .students-hero) { min-height: 33rem; padding-top: calc(var(--site-header-space) + 3.5rem); padding-bottom: 5rem; }
  html body.site-interior :is(.hero, .students-hero) h1 { font-size: clamp(2rem, 7.8vw, 2.9rem); line-height: 1.45; }
  html body.site-interior :is(.hero-actions, .students-hero__actions) { gap: .6rem; }
  html body.site-interior :is(.hero-btn, .students-hero__button) { padding: .8rem 1rem; font-size: .875rem; }
  html body.site-interior :is(.section-title, .page-section-title, .contact-display, .contact-section-title, .download-heading) { font-size: 1.75rem; line-height: 1.6; }
  html body.site-interior :is(.info-overview__grid, .life-overview__grid, .event-lens, .page-grid, .stat-grid, .page-stat-grid, .contact-scenarios, .article-grid, .guide-grid) { grid-template-columns: minmax(0, 1fr); }
  .site-interior :is(.page-actions, .info-action-cluster, .life-action-cluster) { flex-wrap: wrap; }
  .site-interior :is(.page-button, .cta-button) { max-width: 100%; }
  html body.site-interior :is(.faq-item, .scholarship-accordion) summary { padding: 1.2rem; }
  .site-interior .article-card-image { aspect-ratio: 16 / 9; }
}
@media (prefers-reduced-motion: reduce) {
  html body.site-interior :is(.hero-bg, .article-card, .guide-card, .hero-btn, .students-hero__button) { transition: none; }
}

/* Related-page content sits directly on the page in every width and scheme. */
html body.site-interior:is(.parents-page, .faq-page, .access-page) :is(.page-card, .page-note, .page-stat, .parents-visual-card, .stat-card, .route-card, .facility-card, .timeline-step, .sidebar) {
  background: none;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  transform: none;
  padding: 1.25rem 0;
}
html body.site-interior:is(.parents-page, .faq-page, .access-page) :is(.page-card, .page-note, .page-stat, .stat-card, .route-card, .facility-card, .timeline-step) { border-bottom: 1px solid var(--color-line); }
html body.site-interior:is(.parents-page, .faq-page, .access-page) :is(.page-card, .page-note, .parents-visual-card, .page-panel)::before,
html body.site-interior:is(.parents-page, .faq-page, .access-page) :is(.page-card, .page-note, .parents-visual-card, .page-panel)::after { content: none; }
html body.site-interior:is(.parents-page, .faq-page, .access-page) .page-card__eyebrow { padding: 0; background: none; border: 0; border-radius: 0; }
html body.site-interior.parents-page :is(.page-grid, .page-split) { gap: 1.5rem 2.5rem; }
html body.site-interior.parents-page .parents-visual-card { padding: 0; margin-bottom: 1.25rem; }
html body.site-interior.parents-page .timeline { gap: 0; }
html body.site-interior.parents-page .timeline-step { display: grid; grid-template-columns: 2.25rem minmax(0, 1fr); gap: 1rem; align-items: start; }
html body.site-interior.parents-page .timeline-step__index { width: auto; height: auto; background: none; border-radius: 0; box-shadow: none; color: var(--color-link); font: 700 1.5rem/1.5 var(--font-sans); }
html body.site-interior.parents-page .timeline-step__title { margin: 0 0 .4rem; font: 650 1.15rem/1.6 var(--font-sans); }
html body.site-interior.parents-page .timeline-step__body { margin: 0; color: var(--color-ink-muted); }

/* Keep chart marks and controls, but remove the nested panel backgrounds. */
html body.site-interior.cost-page[data-cost-theme] :is(.cost-summary, .cost-section, .cost-closing, .cost-card, .cost-chart, .cost-callout, .cost-market-callout, .cost-table-wrap, .cost-prose-card, .cost-source-card, .cost-glance-card, .cost-market-card, .cost-composition-card, .cost-method-card, .cost-top-metric, .cost-stat-pair__item, .cost-data-point, .cost-step-list__item) {
  background: none;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  padding-inline: 0;
}
html body.site-interior.cost-page[data-cost-theme] :is(.cost-summary, .cost-section, .cost-closing) { padding-block: var(--interior-space); border-bottom: 1px solid var(--color-line); }
html body.site-interior.cost-page[data-cost-theme] .cost-summary--hero { margin-top: 0; }
html body.site-interior.cost-page[data-cost-theme] :is(.cost-card, .cost-chart) { padding-block: 1.5rem; }
html body.site-interior.cost-page[data-cost-theme] .cost-market-callout { padding-block: 1.25rem; border-block: 1px solid var(--color-line); }
html body.site-interior.cost-page[data-cost-theme] :is(.cost-summary, .cost-section, .cost-closing, .cost-card, .cost-composition-card)::before,
html body.site-interior.cost-page[data-cost-theme] :is(.cost-summary, .cost-section, .cost-closing, .cost-card, .cost-composition-card)::after { content: none; }
html body.site-interior.cost-page[data-cost-theme] :is(.cost-matrix, .cost-market-table),
html body.site-interior.cost-page[data-cost-theme] :is(.cost-matrix, .cost-market-table) :is(tbody, tr, tbody th, td) { background: none; box-shadow: none; }
html body.site-interior.cost-page[data-cost-theme] .cost-source-list a { padding: .8rem 0; background: none; border: 0; border-bottom: 1px solid var(--color-line); border-radius: 0; box-shadow: none; color: var(--color-link); text-decoration: underline; text-underline-offset: .2em; }
html body.site-interior.cost-page[data-cost-theme] .cost-breakdown__tab { background: none; border: 0; border-bottom: 2px solid transparent; border-radius: 0; padding: .85rem .5rem; box-shadow: none; color: var(--color-ink-muted); }
html body.site-interior.cost-page[data-cost-theme] .cost-breakdown__tab.is-active { border-bottom-color: var(--color-link); color: var(--color-link); }
html body.site-interior.cost-page[data-cost-theme] .cost-breakdown__tab.is-active .cost-breakdown__tab-sub { opacity: 1; color: var(--color-link); }
html body.site-interior.cost-page[data-cost-theme] .cost-breakdown__tab:hover { color: var(--color-link); }
@media (max-width: 640px) {
  html body.site-interior.cost-page[data-cost-theme] :is(.cost-matrix, .cost-market-table) tbody { gap: 0; }
  html body.site-interior.cost-page[data-cost-theme] :is(.cost-matrix, .cost-market-table) tr { padding: 1.25rem 0; border: 0; border-bottom: 1px solid var(--color-line); border-radius: 0; }
}

/* The light photo tint stays blue, with enough depth behind the white copy. */
@media (prefers-color-scheme: light) {
  html body.site-interior :is(.hero, .students-hero) { background-color: #d4efff; color: var(--hero-light-ink); }
  html body.site-interior :is(.hero, .students-hero)::before { background: var(--hero-light-overlay); }
  html body.site-interior :is(.hero, .students-hero) h1 { color: var(--hero-light-ink); text-shadow: none; }
  html body.site-interior :is(.hero, .students-hero) p { color: var(--hero-light-muted); }
  html body.site-interior :is(.hero, .students-hero) :is(.hero-kicker, .seiun-hero-kicker, .hero-divider) { color: #e3f4ff; }
  html body.site-interior :is(.hero-btn, .students-hero__button) { background: #ffffffd9; border-color: #0070c4; color: var(--color-link); }
  html body.site-interior :is(.hero-btn--primary, .students-hero__button--primary) { background: var(--color-action); border-color: var(--color-action); color: #fff; }
  html body.site-interior :is(.hero-btn, .students-hero__button):hover { background: #fff; color: var(--color-link); }
  html body.site-interior :is(.hero, .students-hero) :is(.hero-btn, .students-hero__button) { background: #0756813d; border-color: #ffffffbf; color: #fff; }
  html body.site-interior :is(.hero, .students-hero) :is(.hero-btn--primary, .students-hero__button--primary) { background: #fff; border-color: #fff; color: var(--color-link); }
  html body.site-interior :is(.hero, .students-hero) :is(.hero-btn, .students-hero__button):hover { background: #fff; color: var(--color-link); }
  html body.site-interior.site-page-info #next-action { background: #e3f4fe; }
  html body.site-interior.site-page-info #next-action :is(.section-title, .section-intro, .section-label) { color: var(--color-ink); }
}
