/* Ported from PR #3 website/app/sections.css. Physical inline-axis properties were converted to logical ones for RTL. */
.panel {
  width: calc(100% - 13rem);
  margin-inline: auto;
  border-radius: 0.75rem;
  text-align: center;
}
.fellowship {
  background: var(--fellowship-bg);
  color: var(--paper);
  padding: 6rem 8.3% 9rem; /* the bottom holds the sticky Apply at rest */
}
.eyebrow {
  font-size: 1.625rem;
  line-height: 2rem;
  letter-spacing: -0.03em;
  text-align: center;
}
.display {
  font-size: 7.5rem;
  font-weight: 400;
  line-height: 0.84;
  letter-spacing: -0.03em;
  margin: 3rem auto 0;
  white-space: nowrap;
}
/* A word that carries a glyph: the inline-flex artwork is a break
   opportunity, so the word is pinned together for the wrapping breakpoints. */
.word {
  white-space: nowrap;
}
.glyph {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  vertical-align: baseline;
}
.glyph img {
  max-width: none;
  object-fit: contain;
}
.teacher-a {
  width: 0.61em;
}
.teacher-a img {
  width: 0.608em;
  height: 0.55em;
}
.school-oo {
  width: 0.9em;
}
.school-oo img {
  width: 0.883em;
  height: 0.5em;
}
.fellowship-intro {
  margin-top: 3.625rem;
  width: min(41.625rem, 100%);
}
.benefits {
  margin-top: 9.875rem;
}
.benefit h3 {
  max-width: 41.25rem;
  margin: 0 auto;
  font-size: 3.375rem;
  line-height: 0.86;
  letter-spacing: -0.03em;
  font-weight: 300;
}
.benefit > p {
  max-width: 35.125rem;
  margin: 1.5rem auto 0;
  font-size: 1.625rem;
  line-height: 2rem;
  letter-spacing: -0.03em;
  color: var(--fellowship-muted);
}
.benefit + .benefit {
  margin-top: 5.9375rem;
}
.craft {
  position: relative;
}
.questions {
  display: grid;
  grid-template-columns: repeat(var(--question-columns, 4), minmax(0, 1fr));
  align-items: start;
  gap: 3.5rem;
  margin: 3rem auto 0;
  padding: 0.75rem 0.5rem;
  font-family: var(--font-handwritten);
  font-size: var(--question-size, 0.9375rem);
  line-height: 1.35;
  text-transform: var(--handwritten-case);
  color: var(--fellowship-muted);
}
.questions span {
  width: min(100%, var(--question-width, 14.375rem));
  justify-self: center;
  text-wrap: balance;
}
.questions span:first-child {
  transform: rotate(9deg);
}
.questions span:nth-child(2) {
  margin-top: 1.75rem;
}
.questions span:last-child {
  margin-top: 0.5rem;
  transform: rotate(-8deg);
}
.craft + .benefit {
  margin-top: 4.25rem;
}
.programs {
  margin-top: 8.875rem;
  border-top: 1px solid var(--fellowship-rule);
  padding-top: 4.375rem;
  text-align: start;
}
.program-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
  margin-bottom: 3.125rem;
}
.program-heading h3 {
  font-size: 3.375rem;
  line-height: 2.875rem;
  letter-spacing: -0.03em;
  font-weight: 300;
}
.location-select {
  height: 3.375rem;
  padding: 1rem 1.5rem;
  border: 0;
  border-radius: 1.25rem;
  background: #ffffff1a;
  color: var(--paper);
  font-size: 1.25rem;
  line-height: 1.25rem;
  gap: 0.625rem;
  flex-shrink: 0;
}
.location-select svg {
  color: var(--paper) !important;
}
.location-options {
  padding: 0.5rem;
}
.location-options [role='option'] {
  font-family: var(--font-text);
  font-size: 1.125rem;
  padding-block: 0.625rem;
}
.program-list {
  /* Every row shares content-independent tracks, including expanded results. */
  --program-columns: minmax(0, 1fr) 9rem 11rem minmax(8.5rem, auto);
  display: grid;
  gap: 0.875rem;
  min-height: 17.75rem;
  align-content: start;
}
.program-row {
  min-height: 8.4375rem;
  display: grid;
  grid-template-columns: var(--program-columns);
  align-items: center;
  gap: 1.5rem;
  padding-block: 1.375rem;
  padding-inline: 1.875rem 1.5rem;
  border: 0;
  border-radius: 1.25rem;
  background: #ffffff12;
}
.program-row > * {
  min-width: 0;
}
.program-row > .button {
  justify-self: end;
}
.program-row h4 {
  font-size: 2.438rem;
  line-height: 1.02;
  font-weight: 300;
  letter-spacing: -0.03em;
  white-space: normal;
}
.program-results-card {
  border: 0;
  border-radius: 1.25rem;
  background: #ffffff12;
}
.program-results-summary {
  border: 0;
  background: transparent;
}
.program-results-summary .results-button {
  min-width: 8.375rem;
}
/* Height and opacity are animated by js/disclosure.js: 360ms cubic-bezier(0.22, 1, 0.36, 1) and 240ms ease. */
.program-results-content {
  overflow: hidden;
}
.program-results-body {
  margin: 0 1.5rem;
  padding: 1.75rem 0.75rem 2.25rem;
  border-top: 1px solid #ffffff14;
}
.program-results-photos {
  position: relative;
  width: min(41.25rem, 100%);
  aspect-ratio: 1.8;
  margin: 0 auto 1.625rem;
}
.program-results-photos img {
  position: absolute;
  border: 0.25rem solid white;
  box-shadow: 0 1px 0.75rem #0000001a;
  height: auto;
  object-fit: cover;
}
.results-landscape {
  width: 60%;
  inset-inline-start: 3%;
  top: 14%;
  z-index: 1;
  transform: rotate(-3.11deg);
}
.results-portrait {
  width: 36%;
  inset-inline-end: 4%;
  top: 0;
  transform: rotate(8.78deg);
}
.program-results-copy {
  width: min(41.25rem, 100%);
  margin-inline: auto;
  font-size: 1.25rem;
  line-height: 1.3;
  letter-spacing: -0.01em; /* running text: not the display tracking */
  text-align: start; /* one axis with the stat strip above */
  color: var(--paper);
}
.program-results-copy p + p {
  margin-top: 1.75rem;
}
.program-results-title {
  font-size: inherit;
  line-height: inherit;
  font-weight: 500;
  margin-bottom: 1.75rem;
}
/* Survey figures before the story: four stats across, then prose, a block
   quotation with a caption-style attribution, and the caveat in the muted
   tone. One family throughout: Light for the numbers, Regular for the text,
   Medium for the title; no synthesised italic. */
.results-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
  margin-bottom: 2rem;
  text-align: start;
}
.stat {
  border-top: 1px solid var(--fellowship-rule);
  padding-top: 0.75rem;
}
.stat-value {
  display: block;
  direction: ltr; /* before → after reads left to right in every language */
  font-size: 3rem;
  line-height: 0.95;
  letter-spacing: -0.04em;
  font-variant-numeric: tabular-nums;
}
.stat-value small {
  font-size: 1rem;
  letter-spacing: 0;
}
.stat-value .arrow {
  color: var(--fellowship-muted);
  font-size: 1.4rem;
  margin-inline: 0.1em;
}
.stat-label {
  display: block;
  margin-top: 0.45rem;
  font-size: 0.9375rem;
  line-height: 1.25;
  color: var(--fellowship-muted);
}
.results-quote {
  margin: 1.75rem 0 0;
  padding-inline-start: 1.25rem;
  border-inline-start: 1px solid var(--fellowship-rule);
}
.results-note {
  margin-top: 0.5rem;
  padding-inline-start: 1.25rem;
  font-size: 0.9375rem;
  line-height: 1.25;
  color: var(--fellowship-muted);
}
.results-caveat {
  color: var(--fellowship-muted);
}
@media (max-width: 700px) {
  .program-results-body {
    margin-inline: 1.125rem;
    padding: 1.5rem 0 1.875rem;
  }
  .program-results-copy {
    font-size: 1.125rem;
    line-height: 1.4;
  }
  .results-stats {
    grid-template-columns: 1fr 1fr;
    gap: 1.25rem 0.75rem;
  }
  .stat-value {
    font-size: 2.5rem;
  }
  .program-results-photos img {
    border-width: 3px;
  }
}
.program-row p {
  font-size: 1.25rem;
  line-height: 1.5rem;
  letter-spacing: -0.03em;
  white-space: normal;
}
.program-row p > span {
  display: block;
  color: var(--fellowship-muted);
  margin-bottom: 0.3125rem;
}
.program-row .button,
.button.apply-button {
  font-size: 1.25rem;
  padding: 1rem 1.5rem;
  min-height: 3.5rem;
  border-radius: 1.25rem;
  white-space: nowrap;
}
.apply-button {
  background: #fff;
  color: #27291d;
  border: 0;
  box-shadow: none;
}
.apply-button:hover {
  background: #f4f3f0;
  color: var(--fellowship-bg);
}
.results-button {
  background: #27291d33;
}
.results-button:hover {
  background: #ffffff25;
}
.small-a {
  width: 0.72em;
}
.small-a img {
  width: 0.72em;
  height: 0.64em;
}
.inline-button {
  display: inline;
  padding: 0;
  border: 0;
  background: none;
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
}
.inline-button:hover {
  color: white;
  text-underline-offset: 3px;
}
/* "What we do": the answer to "what is this?", right after the story.
   Display heading, the Foundation line beside one pilot photo, three beats
   (the funding one keeps the handwritten aside), the approaches paragraph
   and the Tuesday-morning test, then the three routes. */
.what-we-do {
  padding: 8rem 5% 3rem;
  text-align: center;
  background: var(--background);
}
.what-we-do .display {
  font-size: 5.5rem;
  margin-top: 0;
}
.wwd-lead {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 22rem;
  align-items: center;
  gap: 3.5rem;
  width: min(64rem, 100%);
  margin: 3.5rem auto 0;
  text-align: start;
}
.wwd-lead .prose {
  width: auto;
  margin: 0;
  text-align: start;
}
.wwd-photo {
  margin: 0;
  text-align: center;
}
.wwd-photo-img {
  width: 100%;
  height: auto;
  border: 0.3125rem solid white;
  box-shadow: 0 1px 0.75rem #0000001a;
  transform: rotate(-3deg);
}
.wwd-photo figcaption {
  margin-top: 1.125rem;
}
.wwd-beats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: start;
  gap: 3.5rem 3rem;
  width: min(72rem, 100%);
  margin: 5.75rem auto 0;
}
.wwd-beat h3 {
  font-size: 2.25rem;
  line-height: 1;
  letter-spacing: -0.03em;
  font-weight: 400;
}
.wwd-beat p {
  max-width: 21.5rem;
  margin: 1.125rem auto 0;
  font-size: 1.3125rem;
  line-height: 1.3;
  letter-spacing: -0.02em;
  color: #55554e;
}
.beat-note {
  display: block;
  width: fit-content;
  margin: 1.375rem auto 0;
  color: #1c51e0;
  font-family: var(--font-handwritten);
  font-size: 1.625rem;
  line-height: 1.1;
  transform: rotate(-2deg);
  text-transform: var(--handwritten-case);
  letter-spacing: normal;
}
.wwd-closing {
  margin-top: 4.5rem;
}
/* Three routes after the Tuesday line: one style, the order does the ranking. */
.wwd-routes {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.75rem 1.75rem;
  margin-top: 2.25rem;
  font-size: 1.125rem;
  letter-spacing: -0.03em;
}
.wwd-routes a {
  text-decoration: underline;
  text-underline-offset: 0.2em;
  text-decoration-thickness: 1px;
}
@media (max-width: 700px) {
  .what-we-do {
    padding: 4.5rem 5% 2.5rem;
  }
  /* Hard <br> breaks: "for teachers and" / "и координаторов" are the longest
     lines, so the vw step is smaller than the wrapping displays above. */
  .what-we-do .display {
    font-size: clamp(2.5rem, 10.5vw, 4rem);
  }
  html[lang='ru'] .what-we-do .display {
    font-size: clamp(2.25rem, 10vw, 3.75rem);
  }
  .wwd-lead {
    grid-template-columns: 1fr;
    gap: 2rem;
    margin-top: 2.25rem;
    text-align: center;
  }
  .wwd-lead .prose {
    text-align: center;
  }
  .wwd-photo {
    width: min(20rem, 100%);
    margin: 0 auto;
  }
  .wwd-beats {
    grid-template-columns: 1fr;
    gap: 2.75rem;
    margin-top: 3.25rem;
  }
  .wwd-beat h3 {
    font-size: 1.875rem;
  }
  .wwd-beat p {
    font-size: 1.25rem;
  }
  .wwd-closing {
    margin-top: 3rem;
  }
}
/* "For schools and partners": plain on paper after the two panels. Heading,
   lead, three partner shapes set like the What-we-do beats, then the form button with the email beside it. */
.partners {
  padding: 7rem 5% 2rem;
  text-align: center;
  background: var(--background);
}
.partners .display {
  font-size: 5.5rem;
  margin-top: 0;
}
.partners-lead {
  margin-top: 3.25rem;
}
.partners-types {
  margin-top: 4.5rem;
}
.partners-email {
  text-decoration: underline;
  text-underline-offset: 0.2em;
  text-decoration-thickness: 1px;
}
.partners-action {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 1rem 1.75rem;
  margin-top: 4rem;
}
.partners-action .button {
  min-height: 3.5rem;
  padding: 1.125rem 1.75rem;
  border-radius: 2rem;
  font-size: 1.25rem;
}
.partners-email {
  font-size: 1.125rem;
  letter-spacing: -0.03em;
}
@media (max-width: 700px) {
  .partners {
    padding: 4.5rem 5% 1rem;
  }
  .partners .display {
    font-size: clamp(2.5rem, 10.5vw, 4rem);
  }
  .partners-lead {
    margin-top: 2.25rem;
  }
  .partners-types {
    margin-top: 3rem;
  }
}
.leaders {
  background: var(--leaders-bg);
  color: var(--leaders-ink);
  margin-top: 4.375rem;
  padding: 6.5rem 3.125rem 9.5rem;
}
.leaders .programs {
  border-color: #4a111633;
}
.leaders .program-list {
  min-height: 0;
}
.leaders .program-row,
.leaders .location-select {
  background: #4a11160a;
  border: 0;
  color: var(--leaders-ink);
}
/* Sticker on a row's top edge ("pilot in progress"); the row is the anchor.
   Leaders rows carry no where/when yet, so it is title + button only. */
.leaders .program-row {
  position: relative;
}
.leaders .program-row[data-closed] {
  grid-template-columns: minmax(0, 1fr) auto;
}
/* A closed cohort: the row stays listed, its button is inert and muted. */
.leaders .apply-button:disabled {
  background: #4a111614;
  color: var(--leaders-muted);
  cursor: not-allowed;
}
.leaders .program-list {
  padding-top: 0.75rem;
}
/* A short piece of caution tape on the row's top-left corner: striped ends
   around a solid segment carrying the words, a slight tilt, a lift shadow. */
.program-badge {
  position: absolute;
  top: -0.75rem;
  inset-inline-start: 1.875rem;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  height: 1.75rem;
  padding-inline: 1rem;
  background: repeating-linear-gradient(
    -45deg,
    var(--leaders-ink) 0 0.625rem,
    var(--leaders-bg) 0.625rem 1.25rem
  );
  box-shadow: 0 0.125rem 0.625rem #4a111633;
  transform: rotate(-1.5deg);
  transform-origin: center;
  pointer-events: none;
}
.program-badge > span {
  display: inline-flex;
  align-items: center;
  height: 100%;
  padding: 0 1.25rem;
  background: var(--leaders-ink);
  color: var(--leaders-bg);
  font-size: 0.9375rem;
  line-height: 1;
  letter-spacing: -0.02em;
  white-space: nowrap;
}
.leaders .location-select svg {
  color: var(--leaders-ink) !important;
}
.leaders .program-row h4 {
  white-space: normal;
  text-wrap: balance;
}
.leaders .program-row p > span,
.leaders .muted {
  color: var(--leaders-muted);
}
.leaders .inline-button:hover {
  color: var(--leaders-ink);
}
.leaders .apply-button {
  background: var(--leaders-ink);
  color: var(--leaders-bg);
}
.leaders .apply-button:hover {
  background: #62171d;
  color: var(--leaders-bg);
}
/* The "oo" artwork is a purple stroke; paint it in the panel's ink by using
   the SVG as a mask over currentColor instead of a filter approximation. */
.leaders .school-oo {
  background: currentColor;
  -webkit-mask: url('../assets/imgVector1.svg') center / 0.883em 0.5em no-repeat;
  mask: url('../assets/imgVector1.svg') center / 0.883em 0.5em no-repeat;
}
.leaders .teacher-a {
  background: currentColor;
  -webkit-mask: url('../assets/imgA1.svg') center / 0.608em 0.55em no-repeat;
  mask: url('../assets/imgA1.svg') center / 0.608em 0.55em no-repeat;
}
.leaders .glyph img {
  opacity: 0;
}
.muted {
  color: #777970;
}
.leaders .display {
  line-height: 0.833;
}
.leaders-intro {
  margin-top: 2.75rem;
  width: min(43.875rem, 94%);
}
.leader-benefits {
  margin-top: 5rem;
}
.leader-benefits .benefit + .benefit {
  margin-top: 6.25rem;
}
.leader-benefits .benefit > p {
  color: var(--leaders-muted);
}
.team {
  padding-top: 10rem;
}
.team-title {
  font-weight: 400;
  text-align: center;
  font-size: 6.875rem;
  line-height: 0.82;
  letter-spacing: -0.03em;
  margin: 2.125rem auto 5.75rem;
  max-width: 61.875rem;
}
.team-track {
  display: flex;
  gap: 2.5rem;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  padding: 0 6.67% 1.5rem;
  scroll-padding-inline: 6.67%;
}
.team-track::-webkit-scrollbar {
  display: none;
}
.person {
  flex: 0 0 23.625rem;
  scroll-snap-align: start;
}
.portrait,
.portrait-placeholder {
  height: 29.5rem;
  border-radius: 1.25rem;
  background: #182022;
}
.portrait {
  display: block;
  width: 100%;
  object-fit: cover;
  object-position: 50% 25%;
}
.person-note {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}
.person-role {
  margin-top: 2.25rem;
  margin-bottom: 0.875rem;
  font-size: 1.375rem !important;
  line-height: 2rem !important;
}
.person h3 {
  font-weight: 400;
  font-size: 2.25rem;
  line-height: 2.25rem;
  letter-spacing: -0.03em;
  margin-bottom: 1.125rem;
}
.person > p {
  font-size: 1.375rem;
  line-height: 1.625rem;
  letter-spacing: -0.03em;
}
.person p a {
  text-decoration: underline;
  text-decoration-color: #999;
  text-underline-offset: 3px;
}
.faq {
  max-width: 64.125rem;
  width: calc(100% - 6.25rem);
  margin: 9.625rem auto 0;
}
.faq h2 {
  font-size: 6.875rem;
  line-height: 5.625rem;
  font-weight: 400;
  letter-spacing: -0.03em;
  text-align: center;
  margin-bottom: 4.375rem;
}
.faq-list {
  gap: 0;
}
.faq-item {
  background: #f9f8f5;
  border: 0;
  border-radius: 3.125rem;
  transition: background-color 180ms ease;
}
.faq-item:hover {
  background: #f0efea;
}
.faq-trigger {
  min-height: 8.4375rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  list-style: none;
  width: 100%;
  padding: 2.8125rem 3.25rem;
  font-family: var(--font-text);
  font-size: 1.625rem;
  line-height: 2rem;
  font-weight: 300;
  letter-spacing: -0.03em;
  border: 0;
  border-radius: 3.125rem;
  gap: 1.5rem;
}
.faq-trigger::-webkit-details-marker {
  display: none;
}
.faq-trigger::marker {
  content: '';
}
.faq-trigger:hover {
  text-decoration: none;
  background: transparent;
}
.faq-chevron {
  display: inline-block;
  transform: rotate(90deg);
  font-size: 2rem;
  line-height: 1;
  transition: transform 0.2s;
}
.faq-item[data-state='open'] .faq-chevron {
  transform: rotate(-90deg);
}
.faq-answer {
  font-family: var(--font-text);
  font-size: 1.375rem;
  line-height: 1.3;
  color: #66685f;
}
.faq-answer-body {
  padding-block: 0 2.25rem !important;
  padding-inline: 3.25rem 5.75rem !important;
}
.site-footer {
  margin: 12.875rem 6.1% 0;
  display: grid;
  grid-template-columns: 1.5fr 1fr;
  gap: 8.75rem;
  padding-bottom: 4.0625rem;
}
.footer-message h2 {
  font-size: 3.375rem;
  line-height: 0.86;
  font-weight: 300;
  letter-spacing: -0.03em;
  max-width: 36.875rem;
}
.footer-lead {
  margin-top: 2.25rem;
  max-width: 36.875rem;
  font-size: 1.25rem;
  line-height: 1.3;
  letter-spacing: -0.03em;
}
.footer-lead a {
  text-decoration: underline;
  text-underline-offset: 3px;
}
.rounded-button {
  border-radius: 6.25rem;
  background: #000;
  margin-top: 3rem;
}
.footer-email {
  display: block;
  width: fit-content;
  margin-top: 1.5rem;
  font-size: 1.125rem;
  letter-spacing: -0.03em;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.footer-links {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3.75rem;
}
.footer-links nav {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.75rem;
  font-size: 1.125rem;
  line-height: 1;
  letter-spacing: -0.03em;
}
.footer-label {
  font-size: 1.125rem;
  line-height: 1;
  color: #7c7e76;
  margin-bottom: 1.125rem;
}
.text-button {
  background: none;
  border: 0;
  color: inherit;
  padding: 0;
  cursor: pointer;
}
.text-button:hover {
  text-decoration: underline;
  text-underline-offset: 0.3125rem;
}
.footer-legal {
  grid-column: 1/-1;
}
.footer-legal .logo {
  font-size: 2.1rem;
  margin-bottom: 1.25rem;
}
.footer-legal p {
  font-size: 0.875rem;
  line-height: 1.25rem;
  letter-spacing: -0.03em;
}
.morim-dialog {
  border-radius: 1.5rem;
  max-width: 30rem;
}
.morim-dialog-body {
  display: grid;
  padding: 2.5rem;
  gap: 1.5rem;
}
.morim-dialog h2 {
  font-family: var(--font-text);
  font-size: 2.5rem;
  line-height: 1;
  font-weight: 400;
}
.morim-dialog p {
  font-family: var(--font-text);
  font-size: 1.375rem;
  line-height: 1.3;
}
@media (max-width: 700px) {
  .panel {
    width: calc(100% - 6.25rem);
  }
  .fellowship {
    padding-inline: 6%;
  }
  .display {
    font-size: 6.5rem;
  }
  .program-list {
    --program-columns: minmax(0, 1fr) 8rem 10rem 8.5rem;
  }
  .program-row {
    gap: 0.875rem;
    padding: 1.25rem;
  }
  .program-row h4 {
    font-size: 2rem;
  }
  .program-row p {
    font-size: 1.1rem;
  }
  .program-row .button,
  .button.apply-button {
    font-size: 1.1rem;
    padding-inline: 1.125rem;
  }
  .site-footer {
    gap: 4.375rem;
  }
  .team-title {
    font-size: 6rem;
  }
}
@media (max-width: 700px) {
  .display {
    font-size: 5.5rem;
  }
  .benefit h3 {
    font-size: 3rem;
  }
  .program-list {
    --program-columns: minmax(0, 1fr) 8rem 10rem;
  }
  .program-row .button {
    grid-column: 1/-1;
    justify-self: end;
  }
  .program-heading h3 {
    font-size: 3rem;
  }
  .team-title {
    font-size: 5.4rem;
  }
  .site-footer {
    grid-template-columns: 1fr 1fr;
    gap: 3.125rem;
  }
  .footer-message h2 {
    font-size: 2.8rem;
  }
  .footer-links {
    gap: 2.375rem;
  }
  .person {
    flex-basis: 20.625rem;
  }
  .portrait,
  .portrait-placeholder {
    height: 25.75rem;
  }
}
@media (max-width: 700px) {
  .panel {
    width: calc(100% - 2rem);
  }
  .fellowship {
    padding: 3.75rem 1.375rem;
  }
  .eyebrow {
    font-size: 1.25rem;
    line-height: 1.625rem;
  }
  /* Big enough that "dear teachers," wraps to two lines; the desktop
     nowrap is lifted here so nothing runs past the panel. */
  .display {
    font-size: clamp(3.5rem, 17vw, 6rem);
    line-height: 0.88;
    margin-top: 1.875rem;
    white-space: normal;
    text-wrap: balance;
  }
  html[lang='ru'] .display {
    font-size: clamp(3rem, 13.5vw, 5rem);
  }
  /* "coordinators," / "координаторы," is one unbreakable word with the "oo"
     glyph inside it; a step smaller keeps it inside the panel on phones. */
  .leaders h2.display {
    font-size: clamp(3rem, 12vw, 5rem);
  }
  html[lang='ru'] .leaders h2.display {
    font-size: clamp(2.25rem, 11.5vw, 5rem);
  }
  .fellowship-intro {
    margin-top: 2.25rem;
  }
  .benefits {
    margin-top: 5.3125rem;
  }
  .benefit h3 {
    font-size: 2.8rem;
    line-height: 0.96;
  }
  .benefit > p {
    font-size: 1.25rem;
    line-height: 1.625rem;
    margin-top: 1.375rem;
  }
  .questions {
    grid-template-columns: minmax(0, 1fr);
    gap: 1.875rem;
    margin: 2.25rem auto 0;
    padding: 0.625rem 0.375rem;
  }
  .questions span {
    width: min(80%, 15.625rem);
    font-size: var(--question-size-mobile, 0.875rem);
  }
  .questions span:first-child {
    justify-self: start;
    transform: rotate(-5deg);
  }
  .questions span:nth-child(2) {
    justify-self: end;
    margin: 0;
    transform: rotate(4deg);
  }
  .questions span:last-child {
    justify-self: start;
    margin-block: 0;
    margin-inline: 8% 0;
    transform: rotate(-3deg);
  }
  .benefit + .benefit {
    margin-top: 3.75rem;
  }
  .programs {
    margin-top: 4.6875rem;
    padding-top: 2.375rem;
  }
  .program-heading {
    flex-wrap: wrap;
    margin-bottom: 1.75rem;
  }
  .program-heading h3 {
    font-size: 3rem;
    line-height: 0.95;
  }
  .location-select {
    font-size: 1rem;
    height: 2.75rem;
    padding: 0.75rem 1rem;
    border-radius: 0.875rem;
  }
  .program-list {
    --program-columns: repeat(2, minmax(0, 1fr));
  }
  .program-row {
    gap: 1.5rem 0.75rem;
    padding: 1.5rem 1.125rem;
  }
  .program-row h4 {
    grid-column: 1/-1;
    font-size: 2rem;
  }
  .program-row p {
    font-size: 1rem;
    white-space: normal;
  }
  .program-row .button {
    width: 100%;
    justify-self: stretch;
    min-height: 3rem;
  }
  .button.apply-button {
    min-height: 3rem;
  }
  .leaders {
    padding: 4.0625rem 1.375rem 4.6875rem;
    margin-top: 2rem;
  }
  .program-badge {
    inset-inline-start: 1.125rem;
    height: 1.5rem;
    padding-inline: 0.75rem;
  }
  .program-badge > span {
    padding-inline: 0.875rem;
    font-size: 0.6875rem;
  }
  .leaders-intro {
    width: 100%;
    margin-top: 2.375rem;
  }
  .leader-benefits {
    margin-top: 3.75rem;
  }
  .leader-benefits .benefit + .benefit {
    margin-top: 4.375rem;
  }
  .team {
    padding-top: 5.5rem;
  }
  .team-title {
    font-size: clamp(3.5rem, 16vw, 6rem);
    line-height: 0.92;
    width: 90%;
    margin: 1.625rem auto 3.125rem;
  }
  .person {
    flex-basis: 78vw;
    max-width: 22.5rem;
  }
  .team-track {
    gap: 1.5rem;
    padding-inline: 1.5rem;
    scroll-padding-inline: 1.5rem;
  }
  .portrait,
  .portrait-placeholder {
    height: 24.375rem;
  }
  .person-role {
    margin-top: 1.5rem;
    font-size: 1.25rem !important;
  }
  .person > p {
    font-size: 1.2rem;
  }
  .faq {
    width: calc(100% - 2rem);
    margin-top: 5rem;
  }
  .faq h2 {
    font-size: clamp(4.5rem, 22vw, 7rem);
    line-height: 0.95;
    margin-bottom: 2.25rem;
  }
  .faq-item {
    border-radius: 1.625rem;
  }
  .faq-trigger {
    font-size: 1.35rem;
    line-height: 1.15;
    min-height: 6.25rem;
    padding: 1.875rem 1.625rem;
    border-radius: 1.625rem;
  }
  .faq-answer {
    font-size: 1.2rem;
  }
  .faq-answer-body {
    padding: 0 1.875rem 1.875rem !important;
  }
  .site-footer {
    margin: 6.25rem 1.625rem 0;
    grid-template-columns: 1fr;
    gap: 3.75rem;
    padding-bottom: 2.375rem;
  }
  .footer-message h2 {
    font-size: clamp(3rem, 14vw, 4rem);
    line-height: 0.92;
    max-width: 27.5rem;
  }
  .rounded-button {
    margin-top: 2.25rem;
  }
  .footer-links {
    gap: 2.875rem;
  }
  .footer-legal {
    margin-top: 0.75rem;
  }
}
