/* ============================================================
   PAGE PATTERNS — hero, split layouts, page-specific tweaks
   ============================================================ */

.hero{
  padding-block:clamp(2.5rem, 2rem + 4vw, 5rem) var(--section-pad);
  position:relative;
  overflow:hidden;
}
.hero__grid{
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:var(--space-2xl);
  align-items:center;
}
.hero h1{ margin-block:var(--space-m); }
.hero h1 .line{ display:block; overflow:hidden; }
.hero h1 .line span{ display:inline-block; will-change:transform; }
.hero h1 em{ font-style:normal; color:var(--accent-strong); }
[data-theme="dark"] .hero h1 em{ color:var(--accent); }
.hero__actions{ display:flex; flex-wrap:wrap; gap:var(--space-s); margin-block:var(--space-l); }
.hero__aside{ display:flex; flex-direction:column; align-items:center; gap:var(--space-m); text-align:center; }
.hero__aside p{ font-size:.82rem; color:var(--muted); max-width:22ch; }

.hero-bg-grid{
  position:absolute; inset:0; z-index:-1;
  background-image:
    linear-gradient(var(--line) 1px, transparent 1px),
    linear-gradient(90deg, var(--line) 1px, transparent 1px);
  background-size:64px 64px;
  mask-image:radial-gradient(ellipse 70% 60% at 50% 0%, black, transparent);
  opacity:.5;
}

@media (max-width:980px){
  .hero__grid{ grid-template-columns:1fr; }
  .hero__aside{ order:-1; }
  .seal{ --seal-size:120px; }
}

/* ---------- Split section (image + text) ---------- */
.split{
  display:grid; grid-template-columns:1fr 1fr; gap:var(--space-2xl); align-items:center;
}
.split--reverse .split__media{ order:2; }
.split__media{ position:relative; }
.split__media img{ border-radius:var(--radius-l); width:100%; display:block; }
.split__frame{
  position:absolute; inset:16px -16px -16px 16px;
  border:1.5px solid var(--accent-strong);
  border-radius:var(--radius-l);
  z-index:-1;
}
[data-theme="dark"] .split__frame{ border-color:var(--accent); }
@media (max-width:900px){
  .split, .split--reverse{ grid-template-columns:1fr; }
  .split--reverse .split__media{ order:0; }
}

/* ---------- Full-bleed banner image (principal / CO pages) ---------- */
.banner-figure{
  border-radius:var(--radius-l);
  overflow:hidden;
  border:1px solid var(--line);
}
.banner-figure img{ width:100%; }

/* ---------- Program strip (index teaser) ---------- */
.program-strip{
  display:grid; grid-template-columns:repeat(3,1fr); gap:var(--space-l);
}
@media (max-width:900px){ .program-strip{ grid-template-columns:1fr; } }

/* ---------- Contact page ---------- */
.contact-layout{
  display:grid; grid-template-columns:.85fr 1.15fr; gap:var(--space-2xl); align-items:start;
}
@media (max-width:900px){ .contact-layout{ grid-template-columns:1fr; } }
.contact-info-list{ display:flex; flex-direction:column; gap:var(--space-m); margin-top:var(--space-l); }
.contact-info-item{ display:flex; gap:1em; align-items:flex-start; }
.contact-info-item .ico{
  width:42px; height:42px; border-radius:50%; flex-shrink:0;
  background:var(--surface-2); color:var(--accent-strong);
  display:flex; align-items:center; justify-content:center;
}
[data-theme="dark"] .contact-info-item .ico{ color:var(--accent); }
.contact-info-item .ico svg{ width:18px; height:18px; }
.contact-info-item h4{ font-size:var(--step-0); margin-bottom:.15em; }
.contact-info-item p{ color:var(--muted); font-size:var(--step--1); }

/* ---------- Blog post page ---------- */
.post-hero{ text-align:center; max-width:56rem; margin-inline:auto; }
.post-gallery{ display:grid; grid-template-columns:repeat(4,1fr); gap:var(--space-s); margin-block:var(--space-xl); }
.post-gallery figure{ margin:0; border-radius:var(--radius-m); overflow:hidden; aspect-ratio:1; }
.post-gallery img{ width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease-out); }
.post-gallery figure:hover img{ transform:scale(1.08); }
.post-body{ max-width:68ch; margin-inline:auto; color:var(--ink-soft); font-size:var(--step-0); line-height:1.85; }
.post-body ul{ list-style:disc; padding-left:1.4em; margin:1em 0; }
.post-body li{ margin-bottom:.4em; }
@media (max-width:760px){ .post-gallery{ grid-template-columns:repeat(2,1fr); } }

/* ---------- Testimonials page ---------- */
.testimonial-hero{ text-align:center; max-width:44rem; margin-inline:auto; }
.testimonial-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:var(--space-m); }
.testimonial-grid--3{ grid-template-columns:repeat(3,1fr); }
@media (max-width:1000px){ .testimonial-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .testimonial-grid{ grid-template-columns:1fr; } }

/* ---------- 404 / gated page centering ---------- */
.center-panel-page{
  min-height:60vh; display:flex; align-items:center; justify-content:center;
}
.center-panel-page .form-panel{ max-width:640px; width:100%; }

/* ---------- Admission success program overview page ---------- */
.overview-figure{ border-radius:var(--radius-l); overflow:hidden; border:1px solid var(--line); margin-bottom:var(--space-xl); }

/* ---------- Utility ---------- */
.text-center{ text-align:center; }
.mx-auto{ margin-inline:auto; }
.mt-l{ margin-top:var(--space-l); }
.mt-xl{ margin-top:var(--space-xl); }
.flow > * + *{ margin-top:var(--space-m); }
