.brand img {
  width: 185px;
}

/* Keep each section on one consistent grid and give the brand colours room to work. */
:root { --page-width: 1240px; }
section { scroll-margin-top: 86px; }
.nav { gap: 22px; padding-inline: max(24px, calc((100vw - var(--page-width)) / 2)); }
.nav nav { flex-wrap: wrap; justify-content: center; row-gap: 8px; }
.nav nav a { white-space: nowrap; }
.nav a:focus-visible, .nav button:focus-visible, .btn:focus-visible, .text-link:focus-visible,
input:focus-visible, textarea:focus-visible { outline: 3px solid var(--teal); outline-offset: 3px; }
.hero { height: min(760px, calc(100svh - 84px)); min-height: 600px; }
.hero-img { object-position: center 42%; }
.hero-copy { left: max(7vw, calc((100vw - var(--page-width)) / 2)); max-width: 650px; }
.hero h1 { font-size: clamp(3.4rem, 6.7vw, 6rem); line-height: 1.04; }
.hero p { color: #fff; }
.hero-logo { width: 220px; margin-bottom: 16px; }
.scribble { pointer-events: none; }
.intro, .split, .facility, .register, .contact, .team { gap: clamp(32px, 5vw, 80px); }
.intro, .pillars, .split, .programs, .team, .gallery, .facility, .admissions, .register, .contact { padding-block: clamp(72px, 8vw, 110px); }
.section-head { margin-bottom: 36px; }
.cards article, .program-grid > div { min-width: 0; }
.cards article { border-top: 5px solid var(--teal); }
.cards article:nth-child(2) { border-color: var(--green); }
.cards article:nth-child(3) { border-color: var(--yellow); }
.cards h3, .program-grid h3 { margin-top: 16px; }
.mosaic img { display: block; }
.contact-details { overflow-wrap: anywhere; }
.btn { text-align: center; transition: transform .18s ease, background-color .18s ease; }
.btn.ghost:hover, .btn.outline:hover { background: rgba(255,255,255,.13); }

.nav nav {
  gap: 18px;
}

.hero-logo {
  display: block;
  width: min(310px, 60vw);
  margin-bottom: 22px;
  padding: 12px 18px;
  background: rgba(255, 255, 255, 0.96);
  border-radius: 20px;
  box-shadow: 0 14px 35px rgba(0, 0, 0, 0.18);
}

.team {
  padding: 110px 8vw;
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
  gap: 7vw;
  align-items: center;
  background: #fffaf1;
}

.team-photo img {
  display: block;
  width: 100%;
  height: 650px;
  object-fit: cover;
  border-radius: 38px;
}

.team-values {
  display: grid;
  gap: 14px;
  margin-top: 30px;
}

.founder-profile {
  margin-top: 28px;
  padding: 28px;
  background: #fff;
  border-radius: 24px;
  box-shadow: 0 14px 38px rgba(41, 52, 58, 0.08);
  display: grid;
  grid-template-columns: minmax(100px, 150px) minmax(0, 1fr);
  gap: 24px;
  align-items: start;
}

.founder-portrait {
  display: block;
  width: 150px;
  aspect-ratio: 1 / 1.18;
  object-fit: cover;
  object-position: center 18%;
  border-radius: 20px;
  box-shadow: 0 10px 24px rgba(41, 52, 58, 0.14);
}

.founder-role {
  color: var(--orange);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 1.8px;
}

.founder-profile h3 {
  margin: 8px 0 16px;
  font-size: 30px;
}

.founder-profile p {
  margin: 0 0 12px;
}

.founder-profile blockquote {
  margin: 22px 0 0;
  padding: 18px 0 0 20px;
  border-top: 1px solid #e8ecec;
  border-left: 5px solid var(--yellow);
  color: var(--ink);
  font-size: 18px;
  font-weight: 600;
  line-height: 1.55;
}

.team-values article {
  padding: 20px 22px;
  background: #fff;
  border-left: 5px solid var(--teal);
  border-radius: 16px;
}

.team-values article:nth-child(2) {
  border-left-color: var(--orange);
}

.team-values article:nth-child(3) {
  border-left-color: var(--purple);
}

.team-values strong {
  font-size: 18px;
}

.team-values p {
  margin: 5px 0 0;
}

.contact-details a {
  color: var(--teal);
  font-weight: 600;
}

.contact-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 8px;
}

.contact-actions .btn {
  margin-left: 0;
}

.about {
  align-items: start;
}

.about-lead {
  max-width: 660px;
  font-size: 19px;
}

.about-content > p:first-child {
  margin-top: 0;
}

.about-facts {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin-top: 30px;
}

.about-facts div {
  padding: 20px 16px;
  background: #fff;
  border-radius: 18px;
}

.about-facts strong,
.about-facts span {
  display: block;
}

.about-facts strong {
  color: var(--orange);
  font-size: 20px;
  line-height: 1.2;
}

.about-facts span {
  margin-top: 7px;
  color: #667176;
  font-size: 13px;
  line-height: 1.4;
}

@media (max-width: 1180px) {
  .brand img {
    width: 180px;
  }

  .nav nav {
    gap: 13px;
    font-size: 13px;
  }
}

@media (max-width: 1250px) {
  .nav nav { display: none; position: absolute; top: 84px; left: 0; right: 0; padding: 24px 6vw;
    background: #fff; box-shadow: 0 20px 25px rgba(41,52,58,.12); flex-direction: column; align-items: flex-start; }
  .nav nav.open { display: flex; }
  .hamb { display: block; }
  .lang { display: none; }
}

@media (min-width: 1051px) and (max-width: 1450px) {
  .team { grid-template-columns: 1fr; }
  .team-photo img { height: 460px; }
  .founder-profile { grid-template-columns: 150px minmax(0,1fr); }
}

@media (max-width: 1050px) {
  .team {
    grid-template-columns: 1fr;
    padding: 80px 7vw;
  }

  .team-photo img {
    height: 520px;
  }
}

@media (max-width: 640px) {
  .brand img {
    width: 165px;
  }

  .hero-logo {
    width: 220px;
    margin-bottom: 16px;
    padding: 9px 13px;
    border-radius: 15px;
  }

  .team {
    padding: 75px 24px;
  }

  .team-photo img {
    height: 410px;
    border-radius: 24px;
  }

  .about-facts {
    grid-template-columns: 1fr;
  }

  .founder-profile {
    grid-template-columns: 1fr;
    padding: 22px;
  }

  .founder-portrait {
    width: min(220px, 100%);
    margin: 0 auto;
  }
  .nav nav { top: 72px; }
  .hero { min-height: 620px; height: auto; }
  .hero-img { position: absolute; inset: 0; object-position: 58% center; }
  .veil { background: linear-gradient(90deg,rgba(16,43,47,.83),rgba(16,43,47,.5)); }
  .hero-copy { position: relative; top: auto; left: auto; right: auto; transform: none; padding: 65px 24px 76px; }
  .hero h1 { font-size: clamp(3.15rem, 13vw, 4.5rem); overflow-wrap: normal; }
  .hero-logo { width: 180px; }
  .hero-buttons .btn { min-width: 150px; }
  .scribble { display: none; }
  .cards article, .program-grid > div { padding: 28px; }
  .founder-profile h3 { font-size: 26px; }
  form { padding: 24px; }
  .contact-actions .btn { margin: 0; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .btn { transition: none; }
}

.board-portrait { object-position: 72% 40%; }

.language-switch { padding:10px 8px; font-size:14px; font-weight:700; color:#075d65; }
html[lang="mn"] .hero-copy { max-width:780px; }
html[lang="mn"] .nav nav { font-size:14px; }
@media(max-width:640px){html[lang="mn"] .hero-copy{padding-top:40px}html[lang="mn"] h2{font-size:2.2rem;line-height:1.15}}

/* Final layout and accessible interactive states. */
[hidden] { display:none !important; }
:root { color-scheme:light; }
body { font-family: Rubik, "Trebuchet MS", Arial, sans-serif; }
main, section, .team-copy, .reg-copy, form { min-width:0; }
h1,h2,h3,p { overflow-wrap:break-word; }
.kicker,.text-link { color:#00747c; }
p { color:#4e6167; }
.btn { color:#29343a; font:inherit; font-weight:700; line-height:1.4; }
.btn.ghost { color:#fff; }
.btn.outline { color:#075d65; }
.admissions { background:#725496; }
.admissions .outline { color:white; }
button:disabled { opacity:.65; cursor:wait; transform:none; }
.hero { height:auto; min-height:650px; }
.hero-img { position:absolute; inset:0; }
.hero-copy { position:relative; left:0; top:0; transform:none; max-width:860px; padding:72px 0 84px; margin-left:max(7vw,calc((100vw - var(--page-width)) / 2)); margin-right:5vw; }
.hero h1 { max-width:760px; }
.hero-logo { width:240px; }
.hero .veil { background:linear-gradient(90deg,rgba(16,43,47,.86),rgba(16,43,47,.55) 58%,rgba(16,43,47,.16)); }
.hero p { max-width:630px; }
html[lang="mn"] .hero-copy { max-width:820px; }
.nav .actions { flex-shrink:0; }
.language-switch { border:1px solid #b9d4d6; border-radius:9px; padding:9px 10px; min-width:44px; text-align:center; }
.hamb { min-width:44px; min-height:44px; }
.skip-link { position:fixed; top:8px; left:12px; transform:translateY(-180%); z-index:100; background:#075d65; color:white; padding:14px; border-radius:8px; }
.skip-link:focus { transform:none; }
:focus-visible { outline:3px solid #00747c; outline-offset:4px; }
.hero :focus-visible { outline-color:white; }
.team { align-items:start; }
.team-photo img { height:auto; max-height:700px; aspect-ratio:4/5; }
.founder-profile { padding:24px; grid-template-columns:110px minmax(0,1fr); gap:20px; }
.founder-portrait { width:110px; }
.founder-profile h3 { font-size:26px; }
.contact img { max-width:100%; }
footer { align-items:center; gap:20px; flex-wrap:wrap; }
footer a { text-decoration:underline; color:#075d65; }
.register { align-items:start; }
.reg-copy { position:sticky; top:115px; }
.form-caption { font-size:15px; margin-top:0; }
.form-steps { display:flex; list-style:none; padding:0; gap:14px; margin:22px 0 32px; }
.form-steps li { flex:1; font-size:12px; line-height:1.5; color:#53676b; border-bottom:3px solid #e3ecec; padding-bottom:12px; }
.form-steps span { display:block; width:27px; height:27px; border-radius:50%; background:#eaf3f3; color:#075d65; text-align:center; line-height:27px; font-weight:bold; margin-bottom:9px; }
.form-steps [aria-current] { color:#075d65; font-weight:700; border-color:#00747c; }
.form-steps [aria-current] span,.form-steps .completed span { background:#075d65; color:#fff; }
fieldset { margin:0; padding:0; border:0; min-width:0; }
legend { font-size:21px; line-height:1.4; font-weight:700; margin-bottom:24px; max-width:100%; }
select { display:block; width:100%; margin:8px 0 20px; border:1px solid #a5babd; border-radius:12px; background:#fff; padding:14px 10px; font:inherit; font-size:16px; color:#29343a; }
input,textarea { font-size:16px; border-color:#a5babd; background:#fff; color:#29343a; }
.form-buttons { display:flex; flex-wrap:wrap; gap:10px; margin-top:24px; }
.form-buttons .btn { flex:1; }
.btn.secondary { background:#fff; border-color:#a5babd; color:#29343a; }
.form-note,.privacy-note { font-size:13px; line-height:1.65; color:#4e6167; }
.consent { display:flex; gap:12px; font-size:13px; font-weight:400; line-height:1.6; align-items:start; }
.consent input { flex:0 0 20px; width:20px; height:20px; margin:2px 0 0; accent-color:#075d65; }
form small.field-error { color:#a32236; margin-top:6px; font-size:13px; font-weight:400; }
[aria-invalid="true"] { border-color:#a32236; }
.form-error { background:#fff0f2; border-left:4px solid #a32236; padding:14px; color:#90192b; margin-bottom:22px; font-size:14px; line-height:1.6; }
.review-details { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.3fr); gap:0 18px; font-size:14px; }
.review-details dt,.review-details dd { padding:12px 0; border-bottom:1px solid #e1ebeb; margin:0; overflow-wrap:anywhere; white-space:pre-wrap; }
.review-details dt { color:#53676b; }
.review-details dd { font-weight:600; }
.hp-field { position:absolute; left:-10000px; height:1px; width:1px; overflow:hidden; }
.registration-success { padding:36px; background:#fff; border:2px solid #00747c; border-radius:28px; }
.registration-success h3 { font-size:28px; line-height:1.3; }
.success-mark { display:inline-grid; place-items:center; width:56px; height:56px; font-size:28px; border-radius:50%; color:#fff; background:#00747c; }
@media(min-width:1251px){ .nav nav { font-size:13px; gap:15px; } .brand img { width:165px; } }
@media(max-width:1050px){ .reg-copy { position:static; } }
@media(max-width:640px){
 .nav { padding-inline:16px; gap:12px; }.brand img { width:140px; }.actions { gap:6px; }
 .hero { min-height:0; }.hero-copy { margin:0; padding:48px 24px 64px; }.hero-logo { width:180px; }
 html[lang="mn"] .hero-copy { padding:44px 24px 64px; }
 .hero-buttons .btn { min-width:0; }
 .team-photo img { max-height:420px; aspect-ratio:1; }
 .founder-profile { grid-template-columns:1fr; }.founder-portrait { width:150px; }
 .form-steps { gap:8px; }.form-steps li { font-size:11px; }
 .review-details { grid-template-columns:1fr; }.review-details dt { border:0; padding-bottom:0; }.review-details dd { padding-top:5px; }
 .registration-success { padding:24px; }
 footer { align-items:start; }
}

/* Keep the children in view with space for the homepage introduction. */
.hero-img { object-position:center 62%; }
.hero-buttons { flex-wrap:wrap; }
@media (min-width:1051px) {
 .hero-copy, html[lang="mn"] .hero-copy { max-width:440px; }
 .hero h1 { font-size:clamp(3.4rem,5vw,4.5rem); }
}
@media (max-width:1050px) {
 .hero { background:#102b2f; min-height:0; }
 .hero-img { position:relative; display:block; width:100%; height:clamp(300px,50vw,480px); object-position:center 64%; }
 .hero .veil { display:none; }
 .hero-copy, html[lang="mn"] .hero-copy { margin:0 auto; padding:40px 7vw 56px; max-width:860px; }
}
@media (max-width:640px) {
 .hero-img { height:auto; aspect-ratio:3/2; object-position:center; }
 .hero-copy, html[lang="mn"] .hero-copy { padding:32px 24px 44px; }
 .hero h1 { font-size:clamp(3rem,12.5vw,4.5rem); }
}

/* Show the full group in the bilingual learning photograph. */
.split > img { height:auto; aspect-ratio:3/2; object-fit:cover; object-position:center; }

/* Keep the full classroom scene visible in the Our team photograph. */
.team-photo img { height:auto; max-height:none; aspect-ratio:3/2; object-fit:cover; object-position:center; }
