/* Kit v3 sections (sections.js): the page below its first-screen instrument. Kit v3 tokens only (v3.css): 5 px
   corners, black and white, red only for the selection, pastel only as hairlines. Blocks are type on ground with
   hairlines (place-and-lens README, "One surface"); a border marks a control or a card cell. Logical properties only.
   Every rule is prefixed .sec- (owner, 2026-11-06: additive only; nothing here touches the first screen). */
.sec-root { position: relative; z-index: 1; background: var(--bg); color: var(--ink); min-width: 0; overflow-x: clip; }
.sec-sec, .sec-foot { position: relative; padding-block: 56px 60px; padding-inline: 96px 88px; scroll-margin-block-start: 72px; min-width: 0; }
.sec-sec[hidden] { display: none; }
.sec-sec::before, .sec-foot::before { content: ""; position: absolute; inset-inline: 0; inset-block-start: 0; height: 1px; background: var(--pastel); opacity: .5; }
.sec-hd { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 24px; align-items: end; margin-block-end: 28px; }
.sec-hd > .eyebrow, .sec-hd > .sec-t, .sec-hd > .sec-l { grid-column: 1; }
.sec-hd__r { grid-column: 2; grid-row: 1 / span 3; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.sec-t { font: 600 28px/1.15 var(--f); letter-spacing: -.01em; margin: 8px 0 0; }
.sec-l { margin: 8px 0 0; color: var(--ink-2); font-size: 15px; max-width: 72ch; }
.sec-ctx { display: inline-flex; gap: 6px; flex-wrap: wrap; }
.sec-ctx .chip { background: transparent; cursor: pointer; }
.sec-ctx .fl, .sec-chips .fl, .sec-list .fl, .sec-bar .fl, .sec-place .fl { width: 18px; height: 12px; }
.chip.chip--on { border-color: var(--ink); color: var(--ink); }
.sec-bd { min-width: 0; }
.sec-none { color: var(--ink-3); margin: 0; }

/* grid: 12 columns, blocks span by the section's variant; one column on phones */
.sec-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 28px 36px; margin-block-start: 8px; }
.sec-grid > * { grid-column: span 6; min-width: 0; }
.sec-grid--net > :nth-child(1) { grid-column: span 7; } .sec-grid--net > :nth-child(2) { grid-column: span 5; }
.sec-grid--net > :nth-child(3) { grid-column: span 4; } .sec-grid--net > :nth-child(4) { grid-column: span 8; }
.sec-grid--learn > :nth-child(1), .sec-grid--lang > :nth-child(1) { grid-column: span 8; }
.sec-grid--learn > :nth-child(2), .sec-grid--lang > :nth-child(2) { grid-column: span 4; }
.sec-grid--her > :nth-child(1), .sec-grid--opp > :nth-child(1) { grid-column: span 7; }
.sec-grid--her > :nth-child(2), .sec-grid--opp > :nth-child(2) { grid-column: span 5; }
.sec-grid--com > * { grid-column: span 4; }
.sec-grid--news > :nth-child(1) { grid-column: span 5; } .sec-grid--news > :nth-child(2) { grid-column: span 7; }
.sec-blk { min-width: 0; padding-block-start: 14px; border-block-start: 1px solid var(--line); }
.sec-blk > .eyebrow, .sec-rowh .eyebrow { display: flex; align-items: baseline; gap: 8px; }
.sec-blk > .eyebrow b, .sec-rowh .eyebrow b { color: var(--ink); font-weight: 600; }
.sec-blk--sky { border: 0; padding: 0; }
.sec-side { min-width: 0; display: flex; flex-direction: column; gap: 14px; }
.sec-h3 { display: flex; align-items: center; gap: 12px; font: 600 24px/1.2 var(--f); margin: 10px 0 0; }
.sec-line { margin: 10px 0 0; color: var(--ink-2); font-size: 13.5px; max-width: 70ch; }
.sec-src { margin-block-start: 10px; color: var(--ink-3); font-size: 11.5px; line-height: 1.45; }
.sec-note { color: var(--ink-3); font-size: 12px; }
.sec-mt { margin-block-start: 18px; }
.sec-acts { display: flex; flex-wrap: wrap; gap: 8px; margin-block-start: 14px; }
.sec-acts .btn svg { flex: none; }
.sec-rowh { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-block: 32px 12px; }
.sec-rowh:first-child { margin-block-start: 0; }
.sec-empty { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-block-start: 10px; padding: 10px 12px; border: 1px dashed var(--line-2); border-radius: var(--r); color: var(--ink-2); }

/* figures */
.sec-stats { margin: 0; align-self: start; }
.sec-blk .sec-stats { margin-block-start: 12px; }
.sec-stats--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sec-stats--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.sec-stats--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); margin-block-start: 16px; }
.sec-stats .stat small { display: block; margin-block-start: 4px; color: var(--ink-3); font-size: 11px; }
.sec-figs { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 12px; }
.sec-figs .fig { margin: 0; min-width: 0; }
.sec-figs .fig .eyebrow { display: flex; align-items: center; gap: 6px; }
.sec-figs .fig .fl { width: 18px; height: 12px; }
.sec-figs .fig b { font-size: 22px; overflow-wrap: anywhere; }
.sec-figs .fig .src span:first-child { min-width: 0; overflow-wrap: anywhere; }

/* the brief and the federation */
.sec-quote { list-style: none; margin: 12px 0 0; padding: 0; display: grid; gap: 10px; }
.sec-quote li { font: 500 18px/1.4 var(--f); letter-spacing: -.005em; padding-inline-start: 14px; border-inline-start: 1px solid var(--line-2); }
.sec-quote li:first-child { font-size: 22px; font-weight: 600; }
.sec-levels { list-style: none; margin: 12px 0 0; padding: 0; display: grid; gap: 12px; counter-reset: lv; }
.sec-levels > li { counter-increment: lv; display: grid; gap: 6px; }
.sec-levels > li > b::before { content: counter(lv); font: 500 11px/1 var(--m); color: var(--ink-3); margin-inline-end: 8px; }
.sec-levels ul { list-style: none; margin: 0; padding: 0 0 0 0; padding-inline-start: 18px; display: grid; gap: 4px; }
.sec-levels ul li { display: flex; align-items: center; justify-content: space-between; gap: 8px; color: var(--ink-2); }
.sec-regions { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 16px 24px; margin-block-start: 12px; }
.sec-region { min-width: 0; }
.sec-region__h { display: flex; justify-content: space-between; font: 500 11px/1 var(--f); letter-spacing: .04em; text-transform: uppercase; color: var(--ink-3); padding-block-end: 6px; border-block-end: 1px solid var(--line); margin-block-end: 4px; }
.sec-place { width: 100%; display: grid; grid-template-columns: 20px minmax(0, 1fr) auto; align-items: center; gap: 8px; padding: 5px 6px; border: 0; border-radius: var(--r); background: transparent; text-align: start; }
.sec-place span:nth-child(2) { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sec-place .num { color: var(--ink-3); }
.sec-place:hover, .sec-bar:hover { background: var(--bg-2); }
.sec-nofl { display: inline-block; width: 18px; height: 12px; outline: 1px solid var(--line-2); }

/* lists, cards, chips, bars */
.sec-list { list-style: none; margin: 10px 0 0; padding: 0; }
.sec-list li { border-block-end: 1px solid var(--line); }
.sec-list a, .sec-list button { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 10px; align-items: center; width: 100%; padding: 10px 6px; color: inherit; text-decoration: none; border: 0; background: transparent; text-align: start; border-radius: var(--r); }
.sec-list a:has(> .fl) { grid-template-columns: 20px minmax(0, 1fr) auto; }
.sec-list a > .fl { grid-row: 1 / span 2; }
.sec-list b { font-weight: 500; min-width: 0; overflow-wrap: anywhere; }
.sec-list small { grid-column: 1; color: var(--ink-3); font-size: 12px; min-width: 0; }
.sec-list a:has(> .fl) small { grid-column: 2; }
.sec-list .chip { grid-column: -2; grid-row: 1 / span 2; }
.sec-list a:hover, .sec-list button:hover { background: var(--bg-2); }
.sec-scroll { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(220px, 252px); gap: 12px; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x proximity; padding-block-end: 8px; scrollbar-width: thin; max-width: 100%; }
.sec-card { scroll-snap-align: start; display: flex; flex-direction: column; gap: 6px; min-width: 0; padding: 12px; border: 1px solid var(--line); border-radius: var(--r); background: var(--bg-1); color: inherit; text-decoration: none; }
.sec-card:hover { border-color: var(--line-2); background: var(--bg-2); }
.sec-card .mono { font-size: 11px; color: var(--ink-3); }
.sec-card b { font-weight: 600; font-size: 14px; line-height: 1.3; }
.sec-card small { color: var(--ink-3); font-size: 12px; }
.sec-card__f { display: flex; gap: 6px; flex-wrap: wrap; margin-block-start: auto; padding-block-start: 6px; }
.sec-card--img { padding: 0 0 12px; overflow: hidden; }
.sec-card--img > :not(.sec-card__img) { margin-inline: 12px; }
.sec-card__img { display: block; aspect-ratio: 16 / 10; overflow: hidden; border-block-end: 1px solid var(--line); background: var(--bg-2); margin-block-end: 6px; }
.sec-card__img img { display: block; width: 100%; height: 100%; object-fit: cover; }
.sec-scroll:has(.sec-card--img) { grid-auto-columns: minmax(240px, 300px); }
.sec-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-block-start: 12px; }
.sec-chips .chip { text-decoration: none; color: var(--ink-2); background: transparent; }
.sec-chips .chip:hover { color: var(--ink); border-color: var(--ink-3); }
.sec-bars { display: grid; gap: 2px; margin-block-start: 10px; }
.sec-bar { display: grid; grid-template-columns: 20px minmax(0, 1fr) minmax(40px, 90px) 28px; align-items: center; gap: 8px; padding: 5px 6px; border: 0; border-radius: var(--r); background: transparent; color: inherit; text-align: start; text-decoration: none; }
.sec-bar span:nth-child(2) { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sec-bar .num { text-align: end; color: var(--ink-2); }
.sec-prog { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 16px 24px; margin-block-start: 12px; }
.sec-pr { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 5px 0; border-block-end: 1px solid var(--line); color: var(--ink-2); text-decoration: none; }
.sec-pr span:first-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sec-pr:hover { color: var(--ink); }

/* steps, timeline, dates */
.sec-steps { list-style: none; margin: 12px 0 0; padding: 0; counter-reset: st; }
.sec-steps li { counter-increment: st; border-block-end: 1px solid var(--line); }
.sec-steps a { display: grid; grid-template-columns: 26px minmax(0, 1fr); gap: 2px 10px; padding: 10px 6px; color: inherit; text-decoration: none; border-radius: var(--r); }
.sec-steps a::before { content: counter(st); grid-row: 1 / span 2; width: 22px; height: 22px; border-radius: var(--r-dot); border: 1px solid var(--line-2); display: grid; place-items: center; font: 500 11px/1 var(--m); color: var(--ink-2); }
.sec-steps b { font-weight: 500; }
.sec-steps small { color: var(--ink-3); font-size: 12px; }
.sec-steps a:hover { background: var(--bg-2); }
.sec-tl, .sec-dates { list-style: none; margin: 10px 0 0; padding: 0; }
.sec-tl li, .sec-dates li { border-block-end: 1px solid var(--line); }
.sec-tl a { display: grid; grid-template-columns: 92px minmax(0, 1fr) auto; gap: 0 12px; align-items: center; padding: 8px 6px; color: inherit; text-decoration: none; border-radius: var(--r); }
.sec-tl a .num { grid-row: 1 / span 2; font: 500 12px/1.2 var(--m); color: var(--ink-2); }
.sec-tl a b { font-weight: 500; min-width: 0; }
.sec-tl a small { grid-column: 2; color: var(--ink-3); font-size: 12px; }
.sec-tl a .chip, .sec-dates a .chip { grid-row: 1 / span 2; grid-column: 3; }
.sec-dates a { display: grid; grid-template-columns: 46px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 8px 6px; color: inherit; text-decoration: none; border-radius: var(--r); }
.sec-day { display: grid; justify-items: center; padding-block: 4px; border: 1px solid var(--line-2); border-radius: var(--r); }
.sec-day b { font: 600 18px/1 var(--f); }
.sec-day small { font: 500 10px/1.2 var(--m); text-transform: uppercase; color: var(--ink-3); }
.sec-dt { min-width: 0; display: grid; }
.sec-dt b { font-weight: 500; }
.sec-dt small { color: var(--ink-3); font-size: 12px; }
.sec-tl a:hover, .sec-dates a:hover { background: var(--bg-2); }

/* the Academy constellation and the map teaser: monochrome, red only for the selection, a pastel hairline for 101 */
.sec-sky, .sec-mini { display: block; width: 100%; height: auto; }
.sec-orbit { fill: none; stroke: var(--line-2); stroke-width: 1; }
.sec-spoke { fill: none; stroke: var(--line); stroke-width: 1; }
.sec-hx { stroke: var(--bg); stroke-width: 1; transition: opacity .18s var(--ease); }
.sec-hx.w1 { fill: var(--ink); } .sec-hx.w2 { fill: var(--ink-3); } .sec-hx.w3 { fill: transparent; stroke: var(--ink-3); }
.sec-hx.t101 { stroke: var(--p2); stroke-width: 1.6; }
.sec-hx.off { opacity: .14; }
.sec-sky a:hover .sec-hx, .sec-sky a:focus-visible .sec-hx { stroke: var(--red); stroke-width: 2; }
.sec-ulab { fill: var(--ink-2); font: 500 12px var(--f); }
.sec-sky a:hover .sec-ulab { fill: var(--ink); }
.sec-hub { fill: var(--ink); font: 600 44px var(--f); letter-spacing: -.03em; }
.sec-hubs { fill: var(--ink-3); font: 500 12px var(--f); }
.sec-legend { display: flex; flex-wrap: wrap; gap: 16px; color: var(--ink-3); font-size: 12px; margin-block-start: 6px; }
.sec-legend span { display: inline-flex; align-items: center; gap: 6px; }
.sec-legend .lg { width: 10px; height: 10px; display: inline-block; clip-path: polygon(50% 0, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0 25%); }
.sec-legend .lg.w1 { background: var(--ink); } .sec-legend .lg.w2 { background: var(--ink-3); } .sec-legend .lg.w3 { background: var(--line-2); } .sec-legend .lg.t101 { background: var(--p2); }
.sec-mini { margin-block-start: 10px; border: 1px solid var(--line); border-radius: var(--r); background: var(--bg-1); }
.sec-land { fill: var(--bg-2); stroke: var(--line-2); stroke-width: .6; }
.sec-land.on { fill: var(--bg-3); stroke: var(--red); stroke-width: 1; }
.sec-dot { fill: var(--ink); stroke: var(--bg); stroke-width: 1.2; }
.sec-dot.on, .sec-mini a:hover .sec-dot { fill: var(--red); }

/* languages */
.sec-scroll--lang { grid-auto-columns: minmax(170px, 200px); }
.sec-lang { scroll-snap-align: start; display: grid; gap: 3px; padding: 12px; border: 1px solid var(--line); border-radius: var(--r); background: var(--bg-1); color: inherit; text-decoration: none; min-width: 0; }
.sec-lang b { font: 600 22px/1.25 var(--f); overflow-wrap: anywhere; }
.sec-lang span { color: var(--ink-2); font-size: 12.5px; }
.sec-lang small { color: var(--ink-3); font-size: 11.5px; }
.sec-lang:hover { background: var(--bg-2); border-color: var(--line-2); }
.sec-lang.is-here { border-color: var(--ink-3); }
.sec-covs { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); column-gap: 28px; margin-block-start: 10px; }
.sec-cov { display: grid; grid-template-columns: minmax(0, 1fr) 90px 42px; grid-template-rows: auto auto; gap: 0 10px; align-items: center; padding: 7px 6px; border-block-end: 1px solid var(--line); color: inherit; text-decoration: none; border-radius: var(--r); }
.sec-cov b { font-weight: 600; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sec-cov > span:nth-of-type(1) { grid-column: 1; grid-row: 2; color: var(--ink-3); font-size: 12px; }
.sec-cov .meter { grid-column: 2; grid-row: 1; }
.sec-cov .num { grid-column: 3; grid-row: 1; text-align: end; }
.sec-cov small { grid-column: 2 / span 2; grid-row: 2; color: var(--ink-3); font-size: 11px; text-align: end; }
.sec-cov:hover { background: var(--bg-2); }

/* footer */
.sec-foot { padding-block: 48px 40px; background: var(--bg-1); }
.sec-foot__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 28px 36px; }
.sec-foot__org { grid-column: span 4; display: flex; align-items: center; gap: 12px; }
.sec-foot__org .mark { min-width: 32px; height: 32px; padding-inline: 4px; border-radius: var(--r); background: var(--ink); color: var(--bg); display: grid; place-items: center; font: 700 11px/1 var(--f); }
.sec-foot__org b { display: block; font-weight: 600; }
.sec-foot__org small { color: var(--ink-3); }
.sec-foot__nav { grid-column: span 8; display: flex; flex-wrap: wrap; gap: 4px 16px; align-content: center; }
.sec-foot__nav a { color: var(--ink-2); text-decoration: none; padding-block: 4px; }
.sec-foot__nav a:hover, .sec-foot__nav a[aria-current] { color: var(--ink); }
.sec-foot__col { grid-column: span 4; padding-block-start: 14px; border-block-start: 1px solid var(--line); }
.sec-foot__col b { display: block; margin-block-start: 8px; font-weight: 600; }
.sec-foot__col p { margin: 6px 0 12px; color: var(--ink-2); }
.sec-foot__langs { grid-column: 1 / -1; padding-block-start: 14px; border-block-start: 1px solid var(--line); }
.sec-foot__langs .eyebrow b { color: var(--ink); margin-inline-start: 6px; }
.sec-foot__ll { display: flex; flex-wrap: wrap; gap: 4px 14px; margin-block-start: 10px; }
.sec-foot__ll a { color: var(--ink-2); text-decoration: none; }
.sec-foot__ll a:hover { color: var(--ink); }
.sec-foot__un { grid-column: 1 / -1; margin: 0; color: var(--ink-3); font-size: 11.5px; max-width: 110ch; }

@media (max-width: 1100px) {
  .sec-grid > *, .sec-grid--net > *, .sec-grid--com > * { grid-column: span 12 !important; }
  .sec-grid--com > *, .sec-grid--res > * { grid-column: span 6 !important; }
}
@media (max-width: 760px) {
  .sec-sec, .sec-foot { padding-inline: 16px; padding-block: 40px 44px; scroll-margin-block-start: 116px; }
  .sec-hd { grid-template-columns: minmax(0, 1fr); }
  .sec-hd__r { grid-column: 1; grid-row: auto; justify-content: flex-start; margin-block-start: 12px; }
  .sec-t { font-size: 24px; }
  .sec-grid > *, .sec-grid--com > *, .sec-grid--res > * { grid-column: span 12 !important; }
  .sec-stats--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sec-stats--3 .stat b { font-size: 22px; }
  .sec-quote li { font-size: 16px; } .sec-quote li:first-child { font-size: 19px; }
  .sec-covs { grid-template-columns: minmax(0, 1fr); }
  .sec-foot__org, .sec-foot__nav, .sec-foot__col { grid-column: 1 / -1; }
  .sec-tl a { grid-template-columns: 70px minmax(0, 1fr) auto; }
  .sec-ulab { font-size: 18px; }
}
@media (prefers-reduced-motion: reduce) { .sec-hx { transition: none; } }

/* find your way: one cell per audience, its need in one line, its first step as the primary action */
.sec-ways { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 28px 36px; }
.sec-way { padding-block-start: 14px; border-block-start: 1px solid var(--line); min-width: 0; }
.sec-way h3 { margin: 0; font: 600 18px/1.25 var(--f); }
.sec-way p { margin: 6px 0 12px; color: var(--ink-2); }
.sec-way ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; justify-items: start; }
.sec-way__a { display: inline-flex; align-items: center; gap: 6px; color: var(--ink-2); text-decoration: none; padding-block: 4px; }
.sec-way__a:hover { color: var(--ink); }

/* revision 2 (owner critique, 2026-11-06): 8 px rhythm, 96 px section padding at desktop, 72 ch reading width,
   wrapping card grids (4, 2, 1 per row), one primary action per section, secondary actions as text links */
.sec-sec { padding-block: 96px; }
.sec-l, .sec-line, .sec-way p, .sec-src { max-width: 72ch; }
.sec-link { display: inline-flex; align-items: center; gap: 6px; min-height: 32px; padding: 0; border: 0; background: none; color: var(--ink); font: 500 13px/1.3 var(--f); text-decoration: underline; text-decoration-color: var(--line-2); text-underline-offset: 3px; cursor: pointer; }
.sec-link:hover { text-decoration-color: currentColor; }
.sec-acts { gap: 8px 24px; margin-block-start: 16px; align-items: center; }
.sec-cards { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.sec-cards > li { min-width: 0; display: flex; }
.sec-cards .sec-card { width: 100%; }
.sec-card__k { font: 500 11px/1.2 var(--m); color: var(--ink-3); }
.sec-card__st { margin-block-start: auto; padding-block-start: 8px; color: var(--ink-3); font-size: 12px; }
.sec-cards:has(.sec-card--img) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.sec-map { margin: 8px 0 0; border: 1px solid var(--line); border-radius: var(--r); background: var(--bg-1); overflow: hidden; }
.sec-map .sec-mini { margin: 0; border: 0; border-radius: 0; }
.sec-map figcaption { padding: 8px 12px; border-block-start: 1px solid var(--line); color: var(--ink-3); font-size: 11px; line-height: 1.4; }
.sec-schools { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 0 32px; }
.sec-schools li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 12px; align-items: baseline; padding-block: 12px; border-block-end: 1px solid var(--line); }
.sec-schools a.sec-schools__n { color: var(--ink); font-weight: 600; font-size: 14px; text-decoration: none; }
.sec-schools a.sec-schools__n:hover { text-decoration: underline; }
.sec-schools .num { color: var(--ink-2); font-size: 13px; }
.sec-schools small { grid-column: 1 / -1; color: var(--ink-3); font-size: 12px; }
.sec-schools small a { color: var(--ink-2); }
.sec-fac { margin-block: 24px 4px; font: 500 11px/1.2 var(--f); letter-spacing: .04em; text-transform: uppercase; color: var(--ink-3); }
.sec-fac:first-child { margin-block-start: 0; }
.sec-langs { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.sec-langs > li { display: flex; min-width: 0; } .sec-langs .sec-lang { width: 100%; }
@media (max-width: 1100px) { .sec-cards, .sec-cards:has(.sec-card--img), .sec-langs { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .sec-cards, .sec-cards:has(.sec-card--img), .sec-langs { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 760px) { .sec-sec { padding-block: 56px; } }
/* phones: one column; twelve columns with their gaps are wider than a phone */
@media (max-width: 760px) { .sec-grid, .sec-foot__grid { grid-template-columns: minmax(0, 1fr); column-gap: 0; } .sec-grid > *, .sec-foot__grid > * { grid-column: 1 / -1 !important; } }

/* revision 3 (owner, 2026-11-06: full width, no passive space, one rhythm). Content runs edge to edge in a wide
   container: at most 1440 px, 32 px gutters (16 on phones); the start gutter clears the slim spine overlay. Section
   padding 64 px (40 on phones). Cards are as tall as their content. */
:root { --sec-g: max(32px, calc((100vw - 1440px) / 2)); --sec-gs: max(88px, var(--sec-g)); }
.sec-sec, .sec-foot, .pl-band { padding-inline: var(--sec-gs) var(--sec-g); }
.sec-sec { padding-block: 64px; }
.sec-foot { padding-block: 48px 40px; }
.sec-cards { align-items: start; }
.sec-cards > li { display: block; }
.sec-card__st { margin-block-start: 0; padding-block-start: 0; }
.sec-schools-cols { columns: 4 240px; column-gap: 32px; }
.sec-fac-g { break-inside: avoid; margin-block-end: 20px; }
.sec-fac-g .sec-fac { margin-block-start: 0; }
.sec-fac-g .sec-schools { display: block; }
@media (max-width: 760px) {
  :root { --sec-g: 16px; --sec-gs: 16px; }
  .sec-sec { padding-block: 40px; }
}
