/* ==========================================================================
   ISMO 2026-27 — Olympiad section styles
   --------------------------------------------------------------------------
   Loaded after exami.css on /olympiad and /olympiad/school-registration only
   (pushed to @stack('head') by those views). Reuses the EXAMI design tokens
   (--navy, --blue, --sp-*, --r-*, --shadow-*) and adds the brochure/exami.in
   visual language: navy title pills, orange accent, coloured tier cards,
   stage tables, the sticky in-page sub-nav and the angular corner motifs.
   ========================================================================== */

:root {
  /* ISMO brand */
  --ismo-navy: #1F3C88;
  --ismo-navy-deep: #15296A;
  --ismo-navy-soft: #E8EDF9;
  --ismo-orange: #F26522;
  --ismo-orange-deep: #D6531A;
  --ismo-orange-soft: #FDEBE2;
  --ismo-ink: #111827;

  /* Tier / benefit accent tokens (from the brochure card set) */
  --tier-green: #3DAA35;
  --tier-green-soft: #EAF7E8;
  --tier-blue: #1E88E5;
  --tier-blue-soft: #E6F1FC;
  --tier-pink: #E0338A;
  --tier-pink-soft: #FCE7F1;
  --tier-purple: #7E3FBF;
  --tier-purple-soft: #F1E8FA;
  --tier-red: #E53935;
  --tier-red-soft: #FDEAEA;
  --tier-sky: #1FA7D8;
  --tier-sky-soft: #E4F5FB;
  --tier-orange: #F26522;
  --tier-orange-soft: #FDEBE2;
  --tier-gold: #C99A1E;
  --tier-gold-soft: #FBF3DC;
}

/* --------------------------------------------------------------------------
   Page ground
   -------------------------------------------------------------------------- */
.ismo { color: var(--ismo-ink); overflow-x: hidden; }
.ismo .ex-section { position: relative; }
.ismo .ex-section--bg { background: #F5F7FB; }

/* --------------------------------------------------------------------------
   Title pills — the signature device of the brochure and exami.in
   -------------------------------------------------------------------------- */
.ismo-pill {
  display: inline-block;
  padding: .55em 1.5em;
  border-radius: var(--r-pill);
  background: var(--ismo-navy);
  color: #fff;
  font-weight: var(--fw-bold);
  font-size: clamp(1rem, .9rem + .6vw, 1.375rem);
  letter-spacing: .04em;
  text-transform: uppercase;
  line-height: 1.2;
  box-shadow: 0 6px 16px rgba(31, 60, 136, .22);
}
.ismo-pill--sm { font-size: var(--fs-sm); padding: .45em 1.2em; letter-spacing: .08em; }
.ismo-pill--orange { background: var(--ismo-orange); box-shadow: 0 6px 16px rgba(242, 101, 34, .25); }
.ismo-pill--outline { background: #fff; color: var(--ismo-navy); border: 2px solid var(--ismo-navy); box-shadow: none; }
.ismo-pill--sentence { text-transform: none; letter-spacing: 0; }

.ismo-sechead { text-align: center; margin-bottom: var(--sp-8); }
.ismo-sechead__lead { max-width: 60ch; margin: var(--sp-5) auto 0; color: var(--muted); font-size: var(--fs-lead); }
.ismo-sechead--left { text-align: left; }
.ismo-sechead--left .ismo-sechead__lead { margin-left: 0; }

/* --------------------------------------------------------------------------
   Corner motifs (navy / orange angular shapes)
   -------------------------------------------------------------------------- */
.ismo-corner {
  position: absolute; width: 180px; height: 180px; pointer-events: none; z-index: 0;
  background:
    linear-gradient(135deg, var(--ismo-navy) 0 38%, transparent 38.5%),
    linear-gradient(135deg, transparent 0 44%, var(--ismo-orange) 44.5% 60%, transparent 60.5%);
  opacity: .95;
}
.ismo-corner--tl { top: 0; left: 0; }
.ismo-corner--tr { top: 0; right: 0; transform: rotate(90deg); }
.ismo-corner--bl { bottom: 0; left: 0; transform: rotate(-90deg); }
.ismo-corner--br { bottom: 0; right: 0; transform: rotate(180deg); }
@media (max-width: 767.98px) { .ismo-corner { width: 90px; height: 90px; } }

/* --------------------------------------------------------------------------
   Hero
   -------------------------------------------------------------------------- */
.ismo-hero {
  position: relative;
  background: radial-gradient(1200px 600px at 85% -10%, rgba(242, 101, 34, .16), transparent 60%),
              radial-gradient(900px 500px at -10% 100%, rgba(31, 60, 136, .14), transparent 60%),
              #fff;
  padding: clamp(2.5rem, 6vw, 5rem) 0 0;
  overflow: hidden;
}
.ismo-hero__grid {
  display: grid; gap: clamp(1.5rem, 4vw, 3rem); align-items: center;
  grid-template-columns: 1fr;
}
@media (min-width: 992px) { .ismo-hero__grid { grid-template-columns: 1.05fr .95fr; } }
.ismo-hero__badges { display: flex; flex-wrap: wrap; gap: var(--sp-3); margin-bottom: var(--sp-5); }
.ismo-hero__brand { display: block; max-width: 420px; width: 100%; height: auto; margin: 0 0 var(--sp-4); }
.ismo-hero__name {
  font-size: clamp(1.15rem, .9rem + 1.2vw, 1.6rem); font-weight: var(--fw-bold);
  color: var(--ismo-navy); margin: 0 0 var(--sp-3); letter-spacing: -.01em;
}
.ismo-hero__name .o { color: var(--ismo-orange); }
.ismo-hero__lead { font-size: var(--fs-lead); color: var(--text-2); max-width: 56ch; margin: 0 0 var(--sp-6); }
.ismo-hero__actions { display: flex; flex-wrap: wrap; gap: var(--sp-3); }
.ismo-hero__art { position: relative; }
.ismo-hero__photo {
  width: 100%; height: auto; display: block; border-radius: var(--r-2xl);
  box-shadow: var(--shadow-xl); border: 6px solid #fff;
}
.ismo-hero__grades {
  position: absolute; right: -6px; top: -14px;
  background: var(--ismo-orange); color: #fff; border-radius: var(--r-lg);
  padding: .6rem 1rem; text-align: center; box-shadow: 0 10px 24px rgba(242, 101, 34, .35);
  line-height: 1.05; transform: rotate(3deg);
}
.ismo-hero__grades small { display: block; font-size: .75rem; font-weight: var(--fw-semibold); letter-spacing: .08em; text-transform: uppercase; }
.ismo-hero__grades strong { display: block; font-size: clamp(1.6rem, 1.2rem + 1.6vw, 2.4rem); font-weight: var(--fw-extrabold); }

.ismo-trust {
  margin-top: clamp(2rem, 5vw, 3.5rem);
  background: var(--ismo-navy); color: #fff;
}
.ismo-trust__list {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: 1fr; gap: 0;
}
@media (min-width: 640px) { .ismo-trust__list { grid-template-columns: repeat(3, 1fr); } }
.ismo-trust__item {
  display: flex; align-items: center; gap: var(--sp-3);
  padding: var(--sp-4) var(--sp-5); font-weight: var(--fw-semibold);
  border-top: 1px solid rgba(255, 255, 255, .12);
}
@media (min-width: 640px) { .ismo-trust__item { border-top: 0; border-left: 1px solid rgba(255, 255, 255, .12); justify-content: center; } .ismo-trust__item:first-child { border-left: 0; } }
.ismo-trust__icon {
  width: 38px; height: 38px; border-radius: 50%; flex: 0 0 38px;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--ismo-orange); color: #fff;
}

/* --------------------------------------------------------------------------
   Sticky in-page sub-nav
   -------------------------------------------------------------------------- */
.ismo-subnav {
  position: sticky; top: var(--header-h-compact, 62px); z-index: 20;
  background: rgba(255, 255, 255, .94); backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--border);
}
.ismo-subnav__list {
  list-style: none; margin: 0; padding: 0;
  display: flex; gap: .25rem; overflow-x: auto; scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}
.ismo-subnav__list::-webkit-scrollbar { display: none; }
.ismo-subnav__list a {
  display: inline-block; white-space: nowrap; padding: .85rem .9rem;
  font-size: var(--fs-sm); font-weight: var(--fw-semibold); color: var(--text-2);
  text-decoration: none; border-bottom: 3px solid transparent;
}
.ismo-subnav__list a:hover { color: var(--ismo-navy); }
.ismo-subnav__list a.is-active { color: var(--ismo-navy); border-bottom-color: var(--ismo-orange); }
.ismo [id] { scroll-margin-top: 130px; }

/* --------------------------------------------------------------------------
   Buttons (ISMO variants layered on .ex-btn)
   -------------------------------------------------------------------------- */
.ismo-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  padding: .85rem 1.6rem; border-radius: var(--r-pill);
  font-weight: var(--fw-bold); font-size: var(--fs-body); text-decoration: none;
  border: 2px solid transparent; transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease), background var(--dur);
  cursor: pointer; line-height: 1.2;
}
.ismo-btn:focus-visible { outline: var(--focus-outline); outline-offset: var(--focus-offset); }
.ismo-btn--primary { background: var(--ismo-navy); color: #fff; box-shadow: 0 8px 20px rgba(31, 60, 136, .28); }
.ismo-btn--primary:hover { background: var(--ismo-navy-deep); color: #fff; transform: translateY(-2px); }
.ismo-btn--orange { background: var(--ismo-orange); color: #fff; box-shadow: 0 8px 20px rgba(242, 101, 34, .3); }
.ismo-btn--orange:hover { background: var(--ismo-orange-deep); color: #fff; transform: translateY(-2px); }
.ismo-btn--outline { background: #fff; color: var(--ismo-navy); border-color: var(--ismo-navy); }
.ismo-btn--outline:hover { background: var(--ismo-navy-soft); color: var(--ismo-navy); }
.ismo-btn--lg { padding: 1rem 2rem; font-size: 1.05rem; }
.ismo-btn--sm { padding: .6rem 1.1rem; font-size: var(--fs-sm); }

/* --------------------------------------------------------------------------
   Badges
   -------------------------------------------------------------------------- */
.ismo-badge {
  display: inline-flex; align-items: center; gap: .4rem;
  padding: .4em .95em; border-radius: var(--r-pill);
  font-size: var(--fs-sm); font-weight: var(--fw-bold); line-height: 1.2;
  background: var(--ismo-navy-soft); color: var(--ismo-navy);
}
.ismo-badge--orange { background: var(--ismo-orange-soft); color: var(--ismo-orange-deep); }
.ismo-badge--solid { background: var(--ismo-navy); color: #fff; }
.ismo-badge--solid-orange { background: var(--ismo-orange); color: #fff; }
.ismo-badge--green { background: var(--tier-green-soft); color: #23701E; }

/* --------------------------------------------------------------------------
   About + leadership
   -------------------------------------------------------------------------- */
.ismo-about { display: grid; gap: clamp(1.5rem, 4vw, 3rem); grid-template-columns: 1fr; align-items: start; }
@media (min-width: 992px) { .ismo-about { grid-template-columns: 1fr 1fr; } }
.ismo-prose p { font-size: var(--fs-body); line-height: var(--lh-relaxed); color: var(--text-2); }
.ismo-prose p:last-child { margin-bottom: 0; }

.ismo-director {
  display: grid; grid-template-columns: 1fr; gap: var(--sp-6);
  background: #fff; border: 1px solid var(--border); border-radius: var(--r-2xl);
  padding: var(--sp-6); box-shadow: var(--shadow-md); position: relative; overflow: hidden;
}
@media (min-width: 640px) { .ismo-director { grid-template-columns: 200px 1fr; } }
.ismo-director::after {
  content: ""; position: absolute; right: -40px; bottom: -40px; width: 160px; height: 160px;
  background: linear-gradient(135deg, var(--ismo-orange), var(--ismo-navy)); opacity: .08; border-radius: 50%;
}
.ismo-director__photo {
  width: 100%; height: auto; border-radius: var(--r-xl); display: block;
  background: linear-gradient(180deg, var(--ismo-navy-soft) 0%, #F7F9FC 100%);
  border: 1px solid var(--border); padding: var(--sp-3) var(--sp-3) 0; object-fit: contain;
}
.ismo-director__name { font-size: var(--fs-h4); font-weight: var(--fw-extrabold); color: var(--ismo-orange-deep); margin: var(--sp-2) 0 var(--sp-2); }
.ismo-director__roles { list-style: none; margin: 0 0 var(--sp-4); padding: 0; font-size: var(--fs-sm); color: var(--text-2); display: grid; gap: .15rem; }
.ismo-director__roles li strong { color: var(--ismo-navy); }
.ismo-director__bio p { font-size: var(--fs-sm); line-height: var(--lh-relaxed); color: var(--text-2); }
.ismo-director__bio p:last-child { margin: 0; }

/* --------------------------------------------------------------------------
   Icon cards (Why schools choose ISMO) — coloured border + icon ring
   -------------------------------------------------------------------------- */
.ismo-why { display: grid; gap: clamp(1.5rem, 4vw, 3rem); grid-template-columns: 1fr; align-items: start; }
@media (min-width: 992px) { .ismo-why { grid-template-columns: 1.1fr .9fr; } }
.ismo-iconcards { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--sp-3); }
@media (min-width: 640px) { .ismo-iconcards--2 { grid-template-columns: 1fr 1fr; } }
.ismo-iconcard {
  --tier: var(--tier-blue); --tier-soft: var(--tier-blue-soft);
  display: grid; grid-template-columns: 54px 1fr; gap: var(--sp-4); align-items: center;
  background: #fff; border: 2px solid var(--tier); border-radius: var(--r-lg);
  padding: var(--sp-3) var(--sp-4); box-shadow: var(--shadow-sm);
  transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.ismo-iconcard:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); }
.ismo-iconcard__icon {
  width: 54px; height: 54px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center;
  background: var(--tier-soft); color: var(--tier); border: 2px solid var(--tier);
}
.ismo-iconcard__title { font-weight: var(--fw-bold); color: var(--tier); margin: 0 0 .1rem; font-size: var(--fs-body); }
.ismo-iconcard__text { margin: 0; font-size: var(--fs-sm); color: var(--text-2); }

.ismo-support {
  background: linear-gradient(160deg, var(--ismo-navy), var(--ismo-navy-deep)); color: #fff;
  border-radius: var(--r-2xl); padding: var(--sp-6); box-shadow: var(--shadow-lg);
}
.ismo-support h3 { color: #fff; font-size: var(--fs-h4); margin: 0 0 var(--sp-3); }
.ismo-support p { color: var(--on-dark-muted); margin: 0; }
.ismo-support__img { width: 78%; max-width: 360px; height: auto; display: block; margin: 0 auto var(--sp-5); filter: drop-shadow(0 12px 24px rgba(0, 0, 0, .35)); }
.ismo-certs { width: 82%; max-width: 380px; height: auto; display: block; margin: 0 auto; filter: drop-shadow(0 16px 28px rgba(31, 60, 136, .22)); }

/* --------------------------------------------------------------------------
   Student benefit pills (two-column grid)
   -------------------------------------------------------------------------- */
.ismo-benefits { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--sp-3); grid-template-columns: 1fr; }
@media (min-width: 640px) { .ismo-benefits { grid-template-columns: 1fr 1fr; } }
.ismo-benefit {
  --tier: var(--tier-blue); --tier-soft: var(--tier-blue-soft);
  display: flex; align-items: center; gap: var(--sp-3);
  background: var(--tier); color: #fff; border-radius: var(--r-pill);
  padding: .7rem 1.1rem .7rem .7rem; font-weight: var(--fw-semibold); font-size: var(--fs-sm);
  box-shadow: var(--shadow-sm); min-height: 60px;
}
.ismo-benefit__icon {
  width: 44px; height: 44px; flex: 0 0 44px; border-radius: 50%;
  background: #fff; color: var(--tier); display: inline-flex; align-items: center; justify-content: center;
}
.ismo-quote { text-align: center; font-style: italic; color: var(--ismo-navy); font-size: var(--fs-lead); margin: var(--sp-8) auto 0; max-width: 40ch; font-weight: var(--fw-medium); }

/* --------------------------------------------------------------------------
   Exam details
   -------------------------------------------------------------------------- */
.ismo-stages { display: grid; gap: var(--sp-4); grid-template-columns: 1fr; }
@media (min-width: 768px) { .ismo-stages { grid-template-columns: 1fr 1fr; } }
.ismo-stage {
  --tier: var(--tier-blue); --tier-soft: var(--tier-blue-soft);
  border: 2px solid var(--tier); border-radius: var(--r-xl); background: #fff; overflow: hidden;
}
.ismo-stage--2 { --tier: var(--tier-pink); --tier-soft: var(--tier-pink-soft); }
.ismo-stage__head { display: flex; align-items: center; gap: var(--sp-3); padding: var(--sp-4); background: var(--tier-soft); }
.ismo-stage__label { background: var(--tier); color: #fff; border-radius: var(--r-pill); padding: .35em .9em; font-weight: var(--fw-bold); white-space: nowrap; }
.ismo-stage__where { font-size: var(--fs-sm); color: var(--text-2); font-weight: var(--fw-medium); }
.ismo-stage__list { list-style: none; margin: 0; padding: var(--sp-4) var(--sp-5); display: grid; gap: .55rem; }
.ismo-stage__list li { display: flex; gap: .6rem; align-items: flex-start; font-size: var(--fs-sm); color: var(--text-2); }
.ismo-stage__list li svg { flex: 0 0 auto; color: var(--tier); margin-top: .15rem; }

.ismo-table-wrap { border-radius: var(--r-xl); border: 1px solid var(--border); background: #fff; box-shadow: var(--shadow-sm); overflow: hidden; }
.ismo-table-wrap + .ismo-table-wrap { margin-top: var(--sp-5); }
.ismo-table-wrap .ex-scroll-x { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.ismo-table { width: 100%; border-collapse: collapse; min-width: 720px; font-size: var(--fs-sm); }
.ismo-table caption { caption-side: top; text-align: left; padding: var(--sp-4) var(--sp-5); font-weight: var(--fw-bold); color: var(--ismo-navy); font-size: var(--fs-body); background: var(--surface-2); }
.ismo-table th, .ismo-table td { padding: .9rem 1rem; text-align: left; vertical-align: top; border-bottom: 1px solid var(--border); }
.ismo-table thead th { background: var(--tier-blue); color: #fff; font-weight: var(--fw-bold); white-space: nowrap; }
.ismo-table--s2 thead th { background: var(--tier-purple); }
.ismo-table tbody th[scope="row"] { background: var(--tier-blue-soft); color: var(--ismo-navy); font-weight: var(--fw-bold); white-space: nowrap; }
.ismo-table--s2 tbody th[scope="row"] { background: var(--tier-purple-soft); }
.ismo-table tbody tr:last-child td, .ismo-table tbody tr:last-child th { border-bottom: 0; }
.ismo-table ul { margin: 0; padding-left: 1.1rem; }
.ismo-table .strong { font-weight: var(--fw-bold); color: var(--ismo-ink); }
.ismo-table .neg { color: var(--danger-700); font-weight: var(--fw-bold); }
.ismo-table .pos { color: var(--success-700); font-weight: var(--fw-bold); }

.ismo-dates { display: grid; gap: var(--sp-4); grid-template-columns: 1fr; margin-top: var(--sp-6); }
@media (min-width: 992px) { .ismo-dates { grid-template-columns: 1fr 1fr 1fr; } }
.ismo-datecard { background: #fff; border: 2px solid var(--ismo-orange); border-radius: var(--r-xl); padding: var(--sp-5); position: relative; box-shadow: var(--shadow-sm); }
.ismo-datecard__opt { position: absolute; top: -14px; left: var(--sp-5); background: var(--ismo-orange); color: #fff; border-radius: var(--r-pill); padding: .25em .9em; font-size: var(--fs-xs); font-weight: var(--fw-bold); letter-spacing: .08em; text-transform: uppercase; }
.ismo-datecard__date { font-size: var(--fs-h4); font-weight: var(--fw-extrabold); color: var(--ismo-navy); margin: .5rem 0 .25rem; }
.ismo-datecard__day { color: var(--muted); font-size: var(--fs-sm); margin: 0 0 var(--sp-3); }
.ismo-datecard__deadline { display: inline-flex; gap: .4rem; align-items: center; background: var(--ismo-navy); color: #fff; border-radius: var(--r-sm); padding: .45rem .7rem; font-size: var(--fs-xs); font-weight: var(--fw-bold); }
.ismo-datecard--stage2 { border-color: var(--tier-purple); }
.ismo-datecard--stage2 .ismo-datecard__opt { background: var(--tier-purple); }
.ismo-fee {
  background: linear-gradient(135deg, var(--ismo-orange), #F7883F); color: #fff; border-radius: var(--r-xl);
  padding: var(--sp-5); text-align: center; box-shadow: 0 14px 30px rgba(242, 101, 34, .3);
  display: flex; flex-direction: column; justify-content: center; align-items: center;
}
.ismo-fee__label { font-size: var(--fs-xs); font-weight: var(--fw-bold); letter-spacing: .12em; text-transform: uppercase; opacity: .95; }
.ismo-fee__amount { font-size: clamp(2.2rem, 1.8rem + 2vw, 3.2rem); font-weight: var(--fw-extrabold); line-height: 1; margin: .3rem 0; }
.ismo-fee__note { font-size: var(--fs-sm); font-weight: var(--fw-semibold); background: rgba(255, 255, 255, .18); border-radius: var(--r-pill); padding: .3em .9em; }
.ismo-medium {
  margin-top: var(--sp-6); background: var(--ismo-navy); color: #fff; border-radius: var(--r-pill);
  padding: .9rem 1.5rem; text-align: center; font-weight: var(--fw-semibold); display: flex; flex-wrap: wrap; gap: .5rem 1rem; justify-content: center; align-items: center;
}
.ismo-medium strong { color: #FFD3B8; }

/* --------------------------------------------------------------------------
   Prizes
   -------------------------------------------------------------------------- */
.ismo-prizes { display: grid; gap: var(--sp-5); grid-template-columns: 1fr; }
@media (min-width: 992px) { .ismo-prizes { grid-template-columns: 1fr 1fr; } }
.ismo-tier {
  --tier: var(--tier-blue); --tier-soft: var(--tier-blue-soft);
  background: #fff; border: 2px solid var(--tier); border-radius: var(--r-xl); overflow: hidden; box-shadow: var(--shadow-sm);
  display: flex; flex-direction: column;
}
.ismo-tier__head { background: var(--tier); color: #fff; padding: var(--sp-4) var(--sp-5); display: flex; flex-wrap: wrap; gap: .5rem 1rem; align-items: center; justify-content: space-between; }
.ismo-tier__stage { font-size: var(--fs-xs); font-weight: var(--fw-bold); letter-spacing: .1em; text-transform: uppercase; opacity: .9; }
.ismo-tier__title { margin: 0; font-size: var(--fs-h5); font-weight: var(--fw-extrabold); color: #fff; }
.ismo-tier__scope { padding: var(--sp-3) var(--sp-5); background: var(--tier-soft); font-size: var(--fs-sm); color: var(--text-2); font-weight: var(--fw-medium); }
.ismo-tier__body { padding: var(--sp-4) var(--sp-5); flex: 1; }
.ismo-tier table { width: 100%; border-collapse: collapse; font-size: var(--fs-sm); }
.ismo-tier th, .ismo-tier td { padding: .6rem .5rem; border-bottom: 1px solid var(--border-subtle); text-align: left; vertical-align: top; }
.ismo-tier thead th { font-size: var(--fs-xs); text-transform: uppercase; letter-spacing: .08em; color: var(--muted); }
.ismo-tier tbody th { font-weight: var(--fw-bold); color: var(--tier); white-space: nowrap; }
.ismo-tier tbody tr:last-child td, .ismo-tier tbody tr:last-child th { border-bottom: 0; }
.ismo-tier__plus { margin: var(--sp-4) 0 0; padding: var(--sp-3) var(--sp-4); border-radius: var(--r-md); background: var(--tier-soft); color: var(--ismo-ink); font-size: var(--fs-sm); font-weight: var(--fw-semibold); }
.ismo-tier__note { margin: var(--sp-3) 0 0; font-size: var(--fs-xs); color: var(--muted); font-style: italic; }
.ismo-tier__list { list-style: none; margin: 0; padding: 0; display: grid; gap: .6rem; }
.ismo-tier__list li { display: flex; gap: .6rem; align-items: flex-start; font-size: var(--fs-sm); color: var(--text-2); }
.ismo-tier__list li svg { flex: 0 0 auto; color: var(--tier); margin-top: .15rem; }
.ismo-tiebreak { margin-top: var(--sp-6); border-left: 4px solid var(--ismo-orange); background: #fff; padding: var(--sp-4) var(--sp-5); border-radius: 0 var(--r-lg) var(--r-lg) 0; font-size: var(--fs-sm); color: var(--text-2); box-shadow: var(--shadow-xs); }
.ismo-tiebreak strong { color: var(--ismo-navy); }
.ismo-prizes__photo { width: 100%; max-width: 860px; height: auto; border-radius: var(--r-2xl); box-shadow: var(--shadow-lg); display: block; margin: 0 auto var(--sp-7); }

/* --------------------------------------------------------------------------
   School awards — ribbon bars
   -------------------------------------------------------------------------- */
.ismo-awards { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--sp-3); max-width: 900px; margin-inline: auto; }
.ismo-award {
  --tier: var(--tier-blue); --tier-soft: var(--tier-blue-soft);
  display: grid; grid-template-columns: 64px 1fr; align-items: center; gap: var(--sp-4);
  background: var(--tier); color: #fff; border-radius: var(--r-pill); padding: .6rem 1.4rem .6rem .6rem; box-shadow: var(--shadow-sm);
}
.ismo-award__icon { width: 64px; height: 64px; border-radius: 50%; background: #fff; color: var(--tier); display: inline-flex; align-items: center; justify-content: center; }
.ismo-award__title { margin: 0; font-size: var(--fs-body); font-weight: var(--fw-extrabold); color: #fff; }
.ismo-award__text { margin: 0; font-size: var(--fs-sm); opacity: .95; }

/* --------------------------------------------------------------------------
   Responsibilities matrix
   -------------------------------------------------------------------------- */
.ismo-matrix { display: grid; gap: var(--sp-4); grid-template-columns: 1fr; }
@media (min-width: 768px) { .ismo-matrix { grid-template-columns: 1fr 1fr; } }
.ismo-matrix__col { background: #fff; border: 1px solid var(--border); border-radius: var(--r-xl); overflow: hidden; box-shadow: var(--shadow-sm); }
.ismo-matrix__head { background: var(--ismo-navy); color: #fff; padding: var(--sp-4) var(--sp-5); font-weight: var(--fw-bold); font-size: var(--fs-body); }
.ismo-matrix__col--school .ismo-matrix__head { background: var(--ismo-orange); }
.ismo-matrix__list { list-style: none; margin: 0; padding: var(--sp-4) var(--sp-5); display: grid; gap: .6rem; }
.ismo-matrix__list li { display: flex; gap: .6rem; align-items: flex-start; font-size: var(--fs-sm); color: var(--text-2); }
.ismo-matrix__list li svg { flex: 0 0 auto; color: var(--ismo-orange); margin-top: .15rem; }
.ismo-matrix__col--school .ismo-matrix__list li svg { color: var(--ismo-navy); }

/* --------------------------------------------------------------------------
   Centres + presence
   -------------------------------------------------------------------------- */
.ismo-centres { display: grid; gap: var(--sp-4); grid-template-columns: 1fr; }
@media (min-width: 768px) { .ismo-centres { grid-template-columns: repeat(3, 1fr); } }
.ismo-centre { background: #fff; border: 1px solid var(--border); border-top: 5px solid var(--ismo-navy); border-radius: var(--r-xl); padding: var(--sp-5); box-shadow: var(--shadow-sm); }
.ismo-centre--orange { border-top-color: var(--ismo-orange); }
.ismo-centre__partner { font-weight: var(--fw-extrabold); color: var(--ismo-navy); font-size: var(--fs-h5); margin: 0; }
.ismo-centre__tag { font-size: var(--fs-xs); color: var(--muted); font-weight: var(--fw-semibold); letter-spacing: .06em; text-transform: uppercase; margin: 0 0 var(--sp-3); }
.ismo-centre__logo { display: block; height: 52px; width: auto; max-width: 100%; object-fit: contain; margin-bottom: var(--sp-4); }
.ismo-centre__name { display: inline-block; background: var(--ismo-orange); color: #fff; border-radius: var(--r-pill); padding: .3em .9em; font-size: var(--fs-xs); font-weight: var(--fw-bold); letter-spacing: .08em; text-transform: uppercase; margin-bottom: var(--sp-3); }
.ismo-centre address { font-style: normal; font-size: var(--fs-sm); color: var(--text-2); margin: 0 0 var(--sp-3); display: flex; gap: .5rem; align-items: flex-start; }
.ismo-centre address svg, .ismo-centre__phone svg { flex: 0 0 auto; color: var(--ismo-orange); margin-top: .15rem; }
.ismo-centre__phone { display: flex; gap: .5rem; align-items: flex-start; font-size: var(--fs-sm); font-weight: var(--fw-semibold); }
.ismo-centre__phone a { color: var(--ismo-navy); text-decoration: none; }
.ismo-centre__phone a:hover { text-decoration: underline; }
.ismo-presence { display: grid; gap: var(--sp-6); grid-template-columns: 1fr; align-items: center; margin-top: var(--sp-8); }
@media (min-width: 992px) { .ismo-presence { grid-template-columns: 1fr 1fr; } }
.ismo-presence__map { width: 100%; max-width: 560px; height: auto; display: block; margin: 0 auto; }
.ismo-states { list-style: none; margin: var(--sp-4) 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: .4rem; }
.ismo-states li { background: var(--ismo-orange-soft); color: var(--ismo-orange-deep); border-radius: var(--r-pill); padding: .3em .8em; font-size: var(--fs-xs); font-weight: var(--fw-bold); }

/* --------------------------------------------------------------------------
   Register block
   -------------------------------------------------------------------------- */
.ismo-register {
  position: relative; overflow: hidden;
  background: linear-gradient(135deg, var(--ismo-navy) 0%, var(--ismo-navy-deep) 100%); color: #fff;
  border-radius: var(--r-3xl); padding: clamp(2rem, 5vw, 3.5rem); box-shadow: var(--shadow-xl);
  display: grid; gap: var(--sp-7); grid-template-columns: 1fr;
}
@media (min-width: 992px) { .ismo-register { grid-template-columns: 1.2fr .8fr; align-items: center; } }
.ismo-register h2 { color: #fff; font-size: var(--fs-h2); margin: 0 0 var(--sp-3); }
.ismo-register p { color: var(--on-dark-muted); font-size: var(--fs-lead); margin: 0 0 var(--sp-5); max-width: 52ch; }
.ismo-register__contacts { list-style: none; margin: var(--sp-5) 0 0; padding: 0; display: grid; gap: .5rem; font-size: var(--fs-sm); }
.ismo-register__contacts li { display: flex; gap: .6rem; align-items: flex-start; color: var(--on-dark-muted); }
.ismo-register__contacts a { color: #fff; text-decoration: none; font-weight: var(--fw-semibold); }
.ismo-register__contacts a:hover { text-decoration: underline; }
.ismo-register__contacts svg { color: #FFB68C; flex: 0 0 auto; margin-top: .15rem; }
.ismo-downloads { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--sp-3); }
.ismo-download {
  display: grid; grid-template-columns: 48px 1fr auto; align-items: center; gap: var(--sp-3);
  background: rgba(255, 255, 255, .08); border: 1px solid rgba(255, 255, 255, .16); border-radius: var(--r-lg);
  padding: var(--sp-3) var(--sp-4); color: #fff; text-decoration: none; transition: background var(--dur);
}
.ismo-download:hover { background: rgba(255, 255, 255, .16); color: #fff; }
.ismo-download__icon { width: 48px; height: 48px; border-radius: var(--r-md); background: var(--ismo-orange); display: inline-flex; align-items: center; justify-content: center; }
.ismo-download__title { font-weight: var(--fw-bold); display: block; }
.ismo-download__meta { font-size: var(--fs-xs); color: var(--on-dark-muted); }

/* --------------------------------------------------------------------------
   Registration form additions
   -------------------------------------------------------------------------- */
.ismo-choice { display: grid; gap: var(--sp-3); grid-template-columns: 1fr; }
@media (min-width: 640px) { .ismo-choice--2 { grid-template-columns: 1fr 1fr; } .ismo-choice--3 { grid-template-columns: repeat(3, 1fr); } }
.ismo-choice__item { position: relative; }
.ismo-choice__item input { position: absolute; opacity: 0; inset: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.ismo-choice__item label {
  display: block; border: 2px solid var(--border-strong); border-radius: var(--r-lg); padding: var(--sp-4);
  background: #fff; cursor: pointer; transition: border-color var(--dur), box-shadow var(--dur); height: 100%;
}
.ismo-choice__item input:checked + label { border-color: var(--ismo-navy); box-shadow: 0 0 0 3px rgba(31, 60, 136, .15); background: var(--ismo-navy-soft); }
.ismo-choice__item input:focus-visible + label { outline: var(--focus-outline); outline-offset: var(--focus-offset); }
.ismo-choice__item input:disabled + label { opacity: .55; cursor: not-allowed; background: var(--surface-2); }
.ismo-choice__title { display: block; font-weight: var(--fw-bold); color: var(--ismo-navy); }
.ismo-choice__sub { display: block; font-size: var(--fs-xs); color: var(--muted); margin-top: .2rem; }
.ismo-choice__deadline { display: inline-block; margin-top: .5rem; font-size: var(--fs-xs); font-weight: var(--fw-bold); color: var(--ismo-orange-deep); background: var(--ismo-orange-soft); border-radius: var(--r-pill); padding: .2em .7em; }
.ismo-choice__closed { display: inline-block; margin-top: .5rem; font-size: var(--fs-xs); font-weight: var(--fw-bold); color: var(--danger-700); background: var(--danger-50); border-radius: var(--r-pill); padding: .2em .7em; }
.ismo-feebox { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--sp-3); background: var(--ismo-orange-soft); border: 1px solid #F9C9AE; border-radius: var(--r-lg); padding: var(--sp-4) var(--sp-5); margin-bottom: var(--sp-6); }
.ismo-feebox strong { font-size: var(--fs-h4); color: var(--ismo-orange-deep); }
.ismo-feebox span { font-size: var(--fs-sm); color: var(--text-2); }


/* --------------------------------------------------------------------------
   Vertical step timeline (registration page sidebar)
   -------------------------------------------------------------------------- */
.ismo-steps { display: grid; grid-auto-flow: row; grid-template-columns: minmax(0, 1fr); gap: var(--sp-6); }
.ismo-steps .ex-steps__item { display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: var(--sp-4); align-items: start; }
.ismo-steps .ex-steps__item::before {
  left: 25px; right: auto; top: 56px; bottom: calc(var(--sp-6) * -1);
  width: 2px; height: auto;
  background: linear-gradient(180deg, var(--blue-200), var(--border));
}
.ismo-steps .ex-steps__item:last-child::before { display: none; }
.ismo-steps .ex-steps__num { background: var(--ismo-navy-soft); border-color: transparent; color: var(--ismo-navy); }
.ismo-steps .ex-steps__index { color: var(--ismo-orange); }
.ismo-steps .ex-steps__title { color: var(--ismo-navy); }


/* --------------------------------------------------------------------------
   Layout polish (balance columns, photo crop)
   -------------------------------------------------------------------------- */
.ismo-facts { margin-top: var(--sp-7); background: #fff; border: 1px solid var(--border); border-left: 4px solid var(--ismo-orange); border-radius: var(--r-xl); padding: var(--sp-5) var(--sp-6); box-shadow: var(--shadow-sm); }
.ismo-facts__title { margin: 0 0 var(--sp-2); font-weight: var(--fw-bold); color: var(--ismo-navy); }
.ismo-facts .ex-facts dd { max-width: 60%; }
@media (min-width: 992px) {
  .ismo-why { align-items: stretch; }
  .ismo-iconcards { align-content: space-between; height: 100%; }
}
.ismo-certs { width: 70%; max-width: 320px; }
.ismo-support__img { width: 64%; max-width: 280px; }
.ismo-dates { margin-top: var(--sp-7); }
.ismo-prizes__photo { aspect-ratio: 830 / 320; object-fit: cover; object-position: 50% 78%; }

/* --------------------------------------------------------------------------
   Tier tokens — declared LAST so they override each component's default
   -------------------------------------------------------------------------- */
.t-green  { --tier: var(--tier-green);  --tier-soft: var(--tier-green-soft); }
.t-blue   { --tier: var(--tier-blue);   --tier-soft: var(--tier-blue-soft); }
.t-pink   { --tier: var(--tier-pink);   --tier-soft: var(--tier-pink-soft); }
.t-purple { --tier: var(--tier-purple); --tier-soft: var(--tier-purple-soft); }
.t-red    { --tier: var(--tier-red);    --tier-soft: var(--tier-red-soft); }
.t-sky    { --tier: var(--tier-sky);    --tier-soft: var(--tier-sky-soft); }
.t-orange { --tier: var(--tier-orange); --tier-soft: var(--tier-orange-soft); }
.t-navy   { --tier: var(--ismo-navy);   --tier-soft: var(--ismo-navy-soft); }
.t-gold   { --tier: var(--tier-gold);   --tier-soft: var(--tier-gold-soft); }

/* Breadcrumbs on the light hero ground */
.ismo-hero .ex-crumbs, .ismo-hero .ex-crumbs a { color: var(--muted); }
.ismo-hero .ex-crumbs a:hover { color: var(--ismo-navy); }
.ismo-hero .ex-crumbs [aria-current] { color: var(--ismo-navy); font-weight: var(--fw-semibold); }

/* --------------------------------------------------------------------------
   Reduced motion
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  .ismo-btn, .ismo-iconcard { transition: none; }
  .ismo-btn:hover, .ismo-iconcard:hover { transform: none; }
}
