/* KIIT Sustainability. One stylesheet, no framework.
   Hierarchy comes from type, space and alignment. Rules are structural (tables, lists, footer).
   Colour carries meaning: SDG colour only in the official icon and the goal page ring tint;
   KIIT deep green for links, the primary action and focus.
   Contrast (WCAG 2.2) on ivory #FAF7EF: ink 15.2, text 11.8, muted 5.8, green 7.9. */

/* ===== FONT FACES (swap block) ===== */
/* Source Serif 4 (display), Source Sans 3 (text), Source Code Pro (URLs, file facts). All SIL OFL 1.1, Latin subset. */
@font-face { font-family: "Source Serif 4"; src: url("/assets/fonts/source-serif-4-var.woff2") format("woff2"); font-weight: 600 700; font-style: normal; font-display: swap; }
@font-face { font-family: "Source Serif 4"; src: url("/assets/fonts/source-serif-4-italic.woff2") format("woff2"); font-weight: 400; font-style: italic; font-display: swap; }
@font-face { font-family: "Source Sans 3"; src: url("/assets/fonts/source-sans-3-var.woff2") format("woff2"); font-weight: 400 700; font-style: normal; font-display: swap; }
@font-face { font-family: "Source Code Pro"; src: url("/assets/fonts/source-code-pro-var.woff2") format("woff2"); font-weight: 400 500; font-style: normal; font-display: swap; }
/* ===== END FONT FACES ===== */

:root {
  --ivory: #FAF7EF;
  --paper: #FFFDF8;
  --sand: #F2EDE0;
  --line: #E3DCCB;
  --line-strong: #CFC5AE;
  --ink: #0F2419;
  --text: #26372D;
  --muted: #56655B;
  --green: #0A592B;
  --green-hover: #07451F;
  --mint: #E6F3E9;
  --forest: #0A1F14;
  --on-forest: #FAF7EF;
  --on-forest-soft: #B8C9BC;
  --kiit: #17D059;
  --goal: #0A592B;
  --band: #0B4A26;       /* deep green band: ivory on it 9.7:1 */
  --band-ring: #1C6E3F;  /* ring lines on the band */
  --band-soft: #C9DCCD;  /* secondary text on the band */
  --band-line: rgba(250, 247, 239, .28);
  --sage: #E3ECDF;       /* sage band */
  --sage-line: rgba(15, 36, 25, .16);

  /* FONTS: the only place families are named. Swap here and in the @font-face block above. */
  --font-display: "Source Serif 4", Georgia, "Times New Roman", serif;
  --font-text: "Source Sans 3", "Segoe UI", system-ui, -apple-system, sans-serif;
  --font-mono: "Source Code Pro", ui-monospace, "Cascadia Mono", Consolas, monospace;
  --display-weight: 700;
  --display-tracking: -0.012em;
  --display-leading: 1.05;
  --heading-weight: 700;
  --heading-tracking: -0.01em;
  --subheading-weight: 650;
  --numeral-weight: 700;
  --label-weight: 600;

  --step-0: clamp(1.125rem, 1.06rem + 0.3vw, 1.25rem);      /* body 18 to 20 (Source Sans runs small) */
  --step-1: clamp(1.25rem, 1.16rem + 0.4vw, 1.4375rem);     /* lead 20 to 23 */
  --step-2: clamp(1.3125rem, 1.22rem + 0.4vw, 1.5rem);      /* h3 21 to 24 */
  --step-3: clamp(1.75rem, 1.45rem + 1.2vw, 2.375rem);      /* h2 28 to 38 */
  --step-4: clamp(2.5rem, 1.7rem + 3vw, 4.125rem);          /* h1 40 to 66 */
  --small: 1rem;       /* 16 */
  --tiny: 0.9375rem;   /* 15, the floor */

  --wrap: 1200px;
  --gutter: clamp(20px, 4.5vw, 56px);
  --space: clamp(64px, 9vw, 128px);
  --radius-sm: 8px;
  --ease: cubic-bezier(.2, .7, .2, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-padding-top: 24px; }
body {
  margin: 0;
  background: var(--ivory);
  color: var(--text);
  font-family: var(--font-text);
  font-size: var(--step-0);
  line-height: 1.6;
  font-kerning: normal;
  font-variant-numeric: lining-nums;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}
img, svg { display: block; max-width: 100%; height: auto; }
a { color: var(--green); text-decoration-thickness: 1px; text-underline-offset: 0.18em; }
a:hover { color: var(--green-hover); text-decoration-thickness: 2px; }
:focus-visible { outline: 3px solid var(--green); outline-offset: 3px; border-radius: 3px; }
p { margin: 0 0 1em; text-wrap: pretty; }
h1, h2, h3, h4 { font-optical-sizing: auto; font-family: var(--font-display); color: var(--ink); margin: 0; font-weight: var(--heading-weight); letter-spacing: var(--heading-tracking); line-height: 1.15; text-wrap: balance; }
h1 { font-size: var(--step-4); font-weight: var(--display-weight); letter-spacing: var(--display-tracking); line-height: var(--display-leading); }
h2 { font-size: var(--step-3); line-height: 1.12; }
h3 { font-size: var(--step-2); font-weight: var(--subheading-weight); line-height: 1.25; }
sup { font-size: max(.5em, var(--tiny)); line-height: 0; vertical-align: .62em; font-weight: inherit; margin-left: .02em; }
code, .mono { font-family: var(--font-mono); font-size: var(--tiny); font-weight: 400; letter-spacing: 0; overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.wrap { width: 100%; max-width: calc(var(--wrap) + 2 * var(--gutter)); margin-inline: auto; padding-inline: var(--gutter); }
.lead { font-size: var(--step-1); line-height: 1.5; color: var(--ink); }
.label { font-family: var(--font-text); font-size: var(--tiny); font-weight: var(--label-weight); color: var(--muted); line-height: 1.4; }
.muted { color: var(--muted); }

/* Skip link */
.skip { position: absolute; left: 16px; top: -100px; z-index: 10; background: var(--green); color: var(--ivory); padding: 12px 18px; border-radius: var(--radius-sm); font-weight: 600; text-decoration: none; }
.skip:focus { top: 16px; color: var(--ivory); }

/* Actions */
.btn {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 48px; padding: 12px 22px;
  font-family: var(--font-text); font-size: 1.0625rem; font-weight: 600; line-height: 1.2;
  border-radius: var(--radius-sm); border: 1.5px solid var(--green);
  background: var(--green); color: var(--paper); text-decoration: none; cursor: pointer;
  transition: background-color .16s var(--ease), border-color .16s var(--ease), color .16s var(--ease);
}
.btn:hover { background: var(--green-hover); border-color: var(--green-hover); color: var(--paper); text-decoration: none; }
.btn--quiet { background: transparent; color: var(--green); }
.btn--quiet:hover { background: var(--mint); color: var(--green-hover); }
.btn--small { min-height: 44px; padding: 10px 16px; font-size: var(--small); }
.actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.copy {
  min-height: 44px; padding: 8px 14px; font: 600 var(--small)/1.2 var(--font-text); color: var(--green);
  background: transparent; border: 1.5px solid var(--line-strong); border-radius: var(--radius-sm); cursor: pointer;
  transition: border-color .16s var(--ease), background-color .16s var(--ease);
}
.copy:hover { border-color: var(--green); }
.copy[data-state="done"] { background: var(--mint); border-color: var(--green); }

/* Header */
.site-header { border-bottom: 1px solid var(--line); }
.site-header__inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 24px; min-height: 88px; padding-block: 10px; }
/* Site lockup: KIIT emblem in the header (long logo in the footer), a neutral hairline divider, then the site name.
   Clear space each side of the divider is 0.4 of the mark height; the emblem never sits on a box. */
.lockup { --logo-h: 46px; display: inline-flex; align-items: center; gap: calc(var(--logo-h) * .4); flex: none; min-height: 44px; color: var(--ink); text-decoration: none; }
.lockup:hover { color: var(--ink); }
.lockup__logo { height: var(--logo-h); width: auto; }
.lockup__emblem { height: var(--logo-h); width: auto; }
.lockup--header { --logo-h: 48px; }
.lockup__rule { width: 1px; height: calc(var(--logo-h) * .6); background: var(--line-strong); flex: none; }
.lockup__name { font-family: var(--font-display); font-weight: 700; font-size: clamp(1.5rem, 1.3rem + .45vw, 1.75rem); line-height: 1; letter-spacing: -0.01em; white-space: nowrap; padding-bottom: .08em; }
.lockup--footer { --logo-h: 49px; margin-bottom: 24px; color: var(--on-forest); }
.lockup--footer:hover { color: var(--on-forest); }
.lockup--footer .lockup__logo { width: auto; margin: 0; }
.lockup--footer .lockup__rule { background: rgba(250, 247, 239, .35); }
.site-nav ul { display: flex; align-items: center; gap: 8px; list-style: none; margin: 0; padding: 0; }
.site-nav a { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 12px; color: var(--ink); font-weight: 600; font-size: 1.0625rem; text-decoration: none; }
.site-nav a:hover { color: var(--green); text-decoration: underline; text-decoration-thickness: 1px; }
.site-nav a[aria-current="page"] { color: var(--green); text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 0.35em; }

/* Rings: one shared motif, drawn as SVG masks; colour from CSS */
.rings { position: absolute; inset: 0; pointer-events: none; background: var(--rings-colour, var(--green));
  -webkit-mask: var(--rings) right center / cover no-repeat; mask: var(--rings) right center / cover no-repeat; opacity: var(--rings-opacity, .12); }

/* ===== HERO (self-contained: .hero and its children) ===== */
/* Full-bleed grid: the text column sits on the page's left alignment; the art column runs to the viewport edge.
   The wheel is sized from the art column (container units) with its hub on the right edge, so it never crosses the text. */
.hero { position: relative; overflow: hidden; }
.hero__grid { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: clamp(32px, 4vw, 64px);
  padding-left: max(var(--gutter), calc((100vw - var(--wrap)) / 2)); min-height: clamp(560px, 46vw, 720px); }
.hero__text { align-self: center; padding-block: clamp(56px, 7vw, 104px); }
.hero__text > :not(h1) { width: 0; min-width: min(100%, 32em); }   /* the headline sets the column width */
.hero h1 { font-size: clamp(2.75rem, 1rem + 4.9vw, 5.375rem); line-height: 1; letter-spacing: -0.022em; margin: 0; text-wrap: balance; }
.hero h1 span { display: block; white-space: nowrap; }
.hero__note { margin: clamp(16px, 1.6vw, 24px) 0 0; font-size: 1.125rem; color: var(--muted); line-height: 1.4; }
.hero__note cite { font-style: normal; font-weight: 600; color: var(--ink); }
.hero .lead { margin: clamp(32px, 3.5vw, 48px) 0 36px; max-width: 32em; }
.hero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 28px; }
.hero__link { font-weight: 600; font-size: 1.0625rem; display: inline-flex; align-items: center; min-height: 44px; }
.hero__art { position: relative; container-type: inline-size; min-width: 0; }
.hero__art img { position: absolute; top: 50%; left: 0; width: clamp(560px, 62vw, 940px); max-width: none; height: auto; aspect-ratio: 1;
  transform: translateY(-50%); }
@media (max-width: 900px) {
  .hero__grid { grid-template-columns: minmax(0, 1fr); padding-left: 0; min-height: 0; }
  .hero__text { padding: clamp(36px, 7vw, 56px) var(--gutter) 0; }
  .hero__text > :not(h1) { width: auto; min-width: 0; }
  .hero h1 span { display: inline; white-space: normal; }
  .hero h1 { font-size: clamp(2.75rem, 1rem + 6.6vw, 4rem); line-height: 1.02; }
  .hero__art { height: clamp(220px, 62vw, 460px); margin-top: 28px; }
  .hero__art img { width: max(118vw, 440px); top: 0; left: calc(var(--gutter) + 6vw); transform: none; }
}
/* ===== END HERO ===== */


/* Sections */
.section { padding-block: var(--space); }
.section + .section { border-top: 1px solid var(--line); }
.page-head + .section { padding-top: clamp(40px, 5vw, 72px); }
.split > h2 { margin-bottom: clamp(28px, 4vw, 48px); }
.split__body { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(32px, 6vw, 112px); align-items: start; }
.split__body p { max-width: 34em; }
.terms { margin: 0; border-top: 1px solid var(--ink); }
.terms div { display: grid; grid-template-columns: 11rem minmax(0, 1fr); gap: 24px; padding: 18px 0; border-bottom: 1px solid var(--line); }
.terms dt { font-weight: var(--label-weight); color: var(--ink); }
.terms dd { margin: 0; color: var(--text); }
.terms code { font-size: var(--small); color: var(--ink); }
.section__head { display: flex; justify-content: space-between; align-items: baseline; gap: 32px; margin-bottom: clamp(28px, 4vw, 48px); }
.section__head p { margin: 0; max-width: 30em; }

/* Goal list (home and /sdg/) */
.goal-row__pdf { position: relative; z-index: 1; display: inline-flex; align-items: center; min-height: 44px; min-width: 44px; justify-content: flex-end; padding: 8px 0 8px 12px; font-size: var(--tiny); font-weight: 600; white-space: nowrap; text-decoration: none; letter-spacing: .02em; }
.goal-row__pdf:hover { text-decoration: underline; }

.goal-index { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--ink); }
.goal-index li { display: grid; grid-template-columns: 88px minmax(0, 4fr) minmax(0, 5fr) auto; gap: clamp(20px, 3vw, 40px); align-items: start; padding: 24px 0; border-bottom: 1px solid var(--line); position: relative; }
.goal-index img { width: 88px; height: 88px; }
.goal-index h2 { font-size: 1.375rem; font-weight: var(--subheading-weight); line-height: 1.25; margin-top: 2px; }
.goal-index h2 a { color: var(--ink); text-decoration: none; }
.goal-index h2 a::after { content: ""; position: absolute; inset: 0; }
.goal-index li:hover h2 a { text-decoration: underline; text-decoration-thickness: 1px; }
.goal-index p { margin: 0; }
.goal-index .goal-row__pdf { padding-left: 0; }

/* Page head (inner pages) */
.notfound-note { margin: 16px 0 0; max-width: 40em; }
.page-head__inner { padding-block: clamp(40px, 6vw, 88px) clamp(40px, 5vw, 72px); }
.page-head h1 { margin-bottom: 24px; max-width: 18ch; }
.page-head .lead { max-width: 38em; margin-bottom: 0; }
.page-head .actions { margin-top: 36px; }
.page-head .terms { margin-top: 40px; max-width: 760px; }

.crumbs { font-size: var(--small); margin-bottom: 32px; }
.crumbs ol { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; color: var(--muted); }
.crumbs li + li::before { content: "/"; margin-right: 8px; color: var(--line-strong); }
.crumbs a { color: var(--muted); display: inline-block; padding-block: 10px; }
.crumbs a:hover { color: var(--green); }
.crumbs span[aria-current] { display: inline-block; padding-block: 10px; color: var(--ink); }

/* Reports table */
.rtable { width: 100%; border-collapse: collapse; font-size: var(--small); font-variant-numeric: lining-nums tabular-nums; }
.rtable th { text-align: left; font-size: var(--tiny); font-weight: var(--label-weight); color: var(--muted); padding: 0 20px 12px 0; border-bottom: 1px solid var(--ink); white-space: nowrap; }
.rtable td { padding: 18px 20px 18px 0; border-bottom: 1px solid var(--line); vertical-align: middle; }
.rgoal { display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 16px; align-items: center; }
.rgoal img { width: 52px; height: 52px; }
.rgoal__name { display: block; font-family: var(--font-display); font-weight: var(--subheading-weight); font-size: 1.125rem; color: var(--ink); line-height: 1.3; text-decoration: none; }
a.rgoal__name:hover { text-decoration: underline; color: var(--ink); }
.raddr { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 16px; }
.raddr code { color: var(--ink); }
.rfile { color: var(--muted); white-space: nowrap; }
.rtable td.ropen { text-align: right; padding-right: 0; white-space: nowrap; }

/* Previous sets: one ruled row per report, link on the name, quiet PDF marker on the same baseline */
.prev { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: clamp(24px, 5vw, 80px); padding-block: 32px 40px; }
.prev__head h3 { font-size: 1.3125rem; }
.prev__head p { margin: 6px 0 0; color: var(--muted); font-size: var(--small); line-height: 1.45; }
.prev__head p + p { margin-top: 2px; }
.prev ul { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--ink); }
.prev li { display: grid; grid-template-columns: 4.5rem minmax(0, 1fr) auto; gap: 16px; align-items: baseline; border-bottom: 1px solid var(--line); }
.prev__no { font-size: var(--tiny); font-weight: var(--label-weight); color: var(--muted); font-variant-numeric: tabular-nums; }
.prev__name { display: block; padding: 11px 0; min-height: 44px; color: var(--ink); text-decoration: none; font-size: var(--small); line-height: 1.4; }
.prev__name:hover { color: var(--green); text-decoration: underline; }
.prev__type { font-size: var(--tiny); font-weight: var(--label-weight); color: var(--muted); letter-spacing: .02em; }

/* Goal page */
.goal-hero { position: relative; overflow: hidden; border-bottom: 1px solid var(--line); }
.goal-hero .rings { --rings: url("/assets/img/rings/rings-square.svg"); --rings-colour: var(--goal); --rings-opacity: var(--goal-rings, .22); left: 30%;
  -webkit-mask: var(--rings) 67% 46% / 130% auto no-repeat, linear-gradient(to right, transparent 0, #000 34%) 0 0 / 100% 100% no-repeat;
  -webkit-mask-composite: source-in;
  mask: var(--rings) 67% 46% / 130% auto no-repeat intersect, linear-gradient(to right, transparent 0, #000 34%) 0 0 / 100% 100% no-repeat; }
.goal-hero__inner { position: relative; padding-block: clamp(24px, 4vw, 40px) clamp(48px, 6vw, 96px); }
.goal-hero__grid { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: clamp(24px, 4vw, 56px); align-items: start; }
.goal-hero__icon { width: clamp(112px, 13vw, 176px); height: auto; aspect-ratio: 1; }
.goal-hero__meta { font-size: var(--small); font-weight: var(--label-weight); color: var(--muted); margin: 0 0 12px; }
.goal-hero h1 { margin: 0 0 24px; max-width: 15ch; }
.statement { font-family: var(--font-display); font-style: italic; font-weight: 400; font-size: var(--step-1); line-height: 1.45; color: var(--ink); max-width: 30em; margin: 0; }

.goal-body { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(40px, 7vw, 112px); padding-block: clamp(48px, 7vw, 104px); align-items: start; }
.goal-body h2 { font-size: clamp(1.5rem, 1.3rem + .9vw, 2rem); margin-bottom: 20px; }
.goal-body section + section { margin-top: clamp(48px, 6vw, 72px); }
.goal-body .summary { font-size: var(--step-1); line-height: 1.55; color: var(--ink); }

.rank-row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; border-top: 1px solid var(--ink); }
.rank-row div { padding: 16px 16px 18px 0; border-bottom: 1px solid var(--line); }
.rank-row dt { font-size: var(--small); font-weight: var(--label-weight); color: var(--muted); margin-bottom: 4px; }
.rank-row dd { margin: 0; font-family: var(--font-display); font-weight: var(--numeral-weight); font-size: clamp(1.75rem, 1.4rem + 1vw, 2.375rem); line-height: 1.1; color: var(--ink); font-variant-numeric: lining-nums tabular-nums; }

.mini-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--ink); }
.mini-list li { border-bottom: 1px solid var(--line); }
.mini-list a { display: flex; justify-content: space-between; gap: 16px; padding: 14px 0; min-height: 44px; text-decoration: none; color: var(--ink); align-items: baseline; }
.mini-list a:hover span:first-child { text-decoration: underline; color: var(--green); }
.mini-list .label { white-space: nowrap; }

/* The report record */
.report { position: sticky; top: 32px; border-top: 1px solid var(--ink); padding-top: 24px; }
.report__num { display: block; font-family: var(--font-display); font-weight: var(--numeral-weight); font-size: clamp(4.5rem, 3.4rem + 3.4vw, 7rem); line-height: .9; letter-spacing: -0.02em; color: var(--ink); font-variant-numeric: lining-nums tabular-nums; margin-bottom: 20px; }
.report__org { margin: 0 0 4px; font-size: var(--small); font-weight: var(--label-weight); color: var(--muted); }
.report h2 { font-size: clamp(1.5rem, 1.3rem + .7vw, 2rem); line-height: 1.15; margin: 0 0 24px; text-wrap: balance; }
.report__addr { margin: 0 0 24px; }
.report__addr .label { display: block; margin-bottom: 4px; }
.report__addr code { font-size: var(--small); color: var(--ink); line-height: 1.5; }
.report dl { margin: 32px 0 0; border-top: 1px solid var(--line); }
.report dl div { display: grid; grid-template-columns: 6.5rem minmax(0, 1fr); gap: 16px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.report dt { font-size: var(--small); font-weight: var(--label-weight); color: var(--muted); }
.report dd { margin: 0; color: var(--ink); font-size: var(--small); font-variant-numeric: lining-nums tabular-nums; }

.pager { border-top: 1px solid var(--line); }
.pager__inner { display: grid; grid-template-columns: 1fr 1fr; }
.pager a { display: flex; flex-direction: column; gap: 2px; padding: 28px 0; text-decoration: none; color: var(--ink); min-height: 44px; }
.pager a[rel="next"] { text-align: right; align-items: flex-end; }
.pager .label { font-size: var(--small); }
.pager strong { font-family: var(--font-display); font-size: 1.25rem; font-weight: var(--subheading-weight); }
.pager a:hover strong { text-decoration: underline; text-decoration-thickness: 1px; }

/* About */
.prose-sections { padding-block: clamp(24px, 4vw, 48px) var(--space); }
.prose-section { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: clamp(24px, 6vw, 112px); padding-block: clamp(32px, 4vw, 48px); border-top: 1px solid var(--line); }
.prose-section:first-child { border-top-color: var(--ink); }
.prose-section h2 { font-size: clamp(1.5rem, 1.3rem + .8vw, 1.875rem); }
.prose-section p { max-width: 62ch; }
.prose-section p:last-child { margin-bottom: 0; }

/* 404 */
.link-list { list-style: none; margin: 40px 0 0; padding: 0; max-width: 760px; border-top: 1px solid var(--ink); }
.link-list li { border-bottom: 1px solid var(--line); }
.link-list a { display: grid; grid-template-columns: minmax(0, 14rem) minmax(0, 1fr); gap: 24px; padding: 16px 0; text-decoration: none; color: var(--ink); align-items: baseline; }
.link-list strong { font-family: var(--font-display); font-weight: var(--subheading-weight); font-size: 1.25rem; }
.link-list span { color: var(--text); }
.link-list a:hover strong { text-decoration: underline; color: var(--green); }

/* Footer */
.site-footer { background: var(--forest); color: var(--on-forest-soft); font-size: var(--small); }
.site-footer a { color: var(--on-forest); }
.site-footer a:hover { color: var(--paper); text-decoration-thickness: 2px; }
.site-footer :focus-visible { outline-color: var(--kiit); }
.footer__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 3fr) minmax(0, 4fr); gap: clamp(32px, 5vw, 72px); padding-block: clamp(56px, 7vw, 88px) 40px; }
.footer__status { color: var(--on-forest); font-weight: 600; margin: 0 0 8px; }
.site-footer h2 { font-family: var(--font-text); font-size: var(--small); font-weight: 600; letter-spacing: 0; color: var(--on-forest); margin-bottom: 12px; }
.site-footer ul { list-style: none; margin: 0; padding: 0; }
.site-footer li a { display: inline-flex; min-height: 44px; align-items: center; }
.footer__contact p { margin-bottom: 12px; }
.footer__legal { border-top: 1px solid rgba(250, 247, 239, .16); padding-block: 28px 40px; display: grid; grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); gap: 32px; font-size: var(--tiny); }
.footer__legal p { margin: 0 0 8px; max-width: 82ch; }
.footer__copy { text-align: right; }

/* Live region */
.live { position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%); background: var(--ink); color: var(--paper); padding: 12px 20px; border-radius: var(--radius-sm); font-size: var(--small); font-weight: 600; opacity: 0; pointer-events: none; transition: opacity .18s var(--ease); z-index: 20; }
.live.is-on { opacity: 1; }

/* Data: lining, tabular figures */
.rfile, .report dl, .rank-row, .ledger, .terms { font-variant-numeric: lining-nums tabular-nums; }

/* Responsive */
@media (max-width: 1080px) {
  .rtable thead { display: none; }
  .rtable, .rtable tbody, .rtable tr, .rtable td { display: block; width: 100%; }
  .rtable tr { padding: 20px 0; border-bottom: 1px solid var(--line); }
  .rtable tbody tr:first-child { border-top: 1px solid var(--ink); }
  .rtable td { border: 0; padding: 4px 0; }
  .rtable td.ropen { text-align: left; padding-top: 12px; }
  .rtable td.rfile--bare { display: none; }
  .rtable td[data-label]::before { content: attr(data-label); display: block; font-size: var(--tiny); font-weight: var(--label-weight); color: var(--muted); margin: 12px 0 2px; }
  .goal-index li { grid-template-columns: 72px minmax(0, 1fr); }
  .goal-index img { width: 72px; height: 72px; }
  .goal-index p, .goal-index .goal-row__pdf { grid-column: 2; }
}
@media (max-width: 900px) {
  .split__body, .goal-body, .prose-section, .prev, .footer__grid { grid-template-columns: minmax(0, 1fr); }
  .footer__legal { grid-template-columns: 1fr; }
  .footer__copy { text-align: left; }
  .report { position: static; order: -1; margin-bottom: 8px; }
  .section__head { flex-direction: column; align-items: start; }
}
@media (max-width: 640px) {
  .site-header__inner { flex-direction: column; align-items: flex-start; gap: 4px; min-height: 0; padding-block: 14px 4px; }
  .lockup--header { --logo-h: 36px; }
  .lockup--header .lockup__name { font-size: 1.25rem; }
  .lockup--footer { --logo-h: 30px; }
  .lockup--footer .lockup__name { font-size: 1.1875rem; }
  .site-nav { margin-inline: -12px; }
  .site-nav ul { gap: 0; flex-wrap: wrap; }
  .terms div { grid-template-columns: 1fr; gap: 2px; }
  .prev ul { grid-template-columns: minmax(0, 1fr); }
  .goal-hero__grid { grid-template-columns: minmax(0, 1fr); }
  .goal-hero__icon { width: 112px; }
  .goal-hero .rings { left: 0; -webkit-mask-size: auto 150%, 100% 100%; mask-size: auto 150%, 100% 100%; -webkit-mask-position: 85% 30%, 0 0; mask-position: 85% 30%, 0 0; }
  .rank-row { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .pager__inner { grid-template-columns: 1fr; }
  .pager a[rel="next"] { border-top: 1px solid var(--line); }
  .link-list a { grid-template-columns: 1fr; gap: 2px; }
  .goal-row__pdf { grid-column: 2; justify-self: start; padding: 0 0 4px; min-height: 44px; }
  .goal-index li { grid-template-columns: 56px minmax(0, 1fr); gap: 16px; }
  .goal-index img { width: 56px; height: 56px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
@media print {
  .site-header, .site-footer, .rings, .copy, .skip { display: none !important; }
  body { background: #fff; }
}

/* ===== GOALS (generated by tools/build.py) ===== */
/* Official UN goal colour; tints the goal page rings only. Lighter goals need more opacity to read. */
[data-goal="1"] { --goal: #E5243B; --goal-rings: .24; }
[data-goal="2"] { --goal: #DDA63A; --goal-rings: .38; }
[data-goal="3"] { --goal: #4C9F38; --goal-rings: .24; }
[data-goal="4"] { --goal: #C5192D; --goal-rings: .16; }
[data-goal="5"] { --goal: #FF3A21; --goal-rings: .24; }
[data-goal="6"] { --goal: #26BDE2; --goal-rings: .38; }
[data-goal="7"] { --goal: #FCC30B; --goal-rings: .38; }
[data-goal="8"] { --goal: #A21942; --goal-rings: .16; }
[data-goal="9"] { --goal: #FD6925; --goal-rings: .24; }
[data-goal="10"] { --goal: #DD1367; --goal-rings: .24; }
[data-goal="11"] { --goal: #FD9D24; --goal-rings: .38; }
[data-goal="12"] { --goal: #BF8B2E; --goal-rings: .24; }
[data-goal="13"] { --goal: #3F7E44; --goal-rings: .24; }
[data-goal="14"] { --goal: #0A97D9; --goal-rings: .24; }
[data-goal="15"] { --goal: #56C02B; --goal-rings: .24; }
[data-goal="16"] { --goal: #00689D; --goal-rings: .16; }
[data-goal="17"] { --goal: #19486A; --goal-rings: .16; }
/* ===== END GOALS ===== */


/* ===== Long-form content parts (items, award, documents, goal links, people) ===== */
.lf-items { margin: 28px 0 0; border-top: 1px solid var(--ink); }
.lf-items div { display: grid; grid-template-columns: minmax(0, 15rem) minmax(0, 1fr); gap: 8px 32px; padding: 14px 0; border-bottom: 1px solid var(--line); }
.lf-items dt { font-weight: 600; color: var(--ink); line-height: 1.45; }
.lf-items dd { margin: 0; line-height: 1.55; }
.lf-award { margin: 40px 0 0; }
.lf-award h3 { margin-top: 0; }
.lf-award ol { list-style: none; margin: 20px 0 0; padding: 0; }
.lf-award li { display: grid; grid-template-columns: 5.5rem minmax(0, 1fr); gap: 24px; align-items: baseline; padding: 6px 0; }
.lf-award .year { font-family: var(--font-display); font-weight: var(--numeral-weight); font-size: 1.75rem; line-height: 1.2; color: var(--ink); font-variant-numeric: lining-nums tabular-nums; }
.lf-docs { list-style: none; margin: 28px 0 0; padding: 0; border-top: 1px solid var(--ink); }
.lf-docs li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 16px; align-items: baseline; border-bottom: 1px solid var(--line); }
.lf-docs a { display: block; padding: 11px 0; min-height: 44px; color: var(--ink); text-decoration: none; }
.lf-docs a:hover { color: var(--green); text-decoration: underline; }
.lf-docs .label { white-space: nowrap; }
.goal-links { list-style: none; margin: 28px 0 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 40px; border-top: 1px solid var(--ink); }
.goal-links li { border-bottom: 1px solid var(--line); }
.goal-links a { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 16px; align-items: center; padding: 10px 0; color: var(--ink); text-decoration: none; }
.goal-links img { width: 44px; height: 44px; }
.goal-links a:hover span { text-decoration: underline; color: var(--green); }
.people { width: 100%; border-collapse: collapse; margin-top: 24px; font-size: var(--small); }
.people th { text-align: left; font-size: var(--tiny); font-weight: var(--label-weight); color: var(--muted); padding: 0 20px 10px 0; border-bottom: 1px solid var(--ink); }
.people td { padding: 12px 20px 12px 0; border-bottom: 1px solid var(--line); vertical-align: top; line-height: 1.45; }
.people td:first-child { font-weight: 600; color: var(--ink); }
.steps { margin: 16px 0 0; padding-left: 1.4em; }
.steps li { padding: 4px 0; }
.office { font-style: normal; line-height: 1.6; margin-top: 8px; }
.office a { display: inline-flex; align-items: center; min-height: 44px; }
@media (max-width: 900px) {
}
@media (max-width: 640px) {
  .lf-items div { grid-template-columns: minmax(0, 1fr); gap: 2px; }
  .goal-links { grid-template-columns: minmax(0, 1fr); }
  .people thead { display: none; }
  .people, .people tbody, .people tr, .people td { display: block; width: 100%; }
  .people tr { padding: 12px 0; border-bottom: 1px solid var(--line); }
  .people td { border: 0; padding: 0; }
  .people td[data-label]::before { content: attr(data-label) ": "; color: var(--muted); font-weight: var(--label-weight); }
}

@media (max-width: 400px) {
  .lockup--footer { --logo-h: 26px; }
  .lockup--footer .lockup__name { font-size: 1.0625rem; }
}
.page-head__inner > p:not(.lead) { max-width: 40em; margin: 16px 0 0; }
.lf-items + p, .steps + p, .people + p { margin-top: 20px; }

/* Mobile menu (disclosure). Without JavaScript the links stay visible; with it they collapse behind the button. */
.menu-toggle { display: none; }
@media (max-width: 900px) {
  .js .site-header__inner { flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0 16px; min-height: 72px; padding-block: 12px; }
  .js .menu-toggle { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; min-width: 76px; padding: 8px 16px;
    font: 600 var(--small)/1 var(--font-text); color: var(--ink); background: transparent; border: 1.5px solid var(--line-strong); border-radius: var(--radius-sm); cursor: pointer; }
  .js .menu-toggle:hover { border-color: var(--green); }
  .js .menu-toggle[aria-expanded="true"] { border-color: var(--ink); }
  .js .site-nav { display: none; flex-basis: 100%; margin: 12px 0 0; }
  .js .site-nav.is-open { display: block; }
  .js .site-nav ul { flex-direction: column; align-items: stretch; gap: 0; border-top: 1px solid var(--ink); }
  .js .site-nav li a { display: flex; min-height: 52px; padding: 12px 0; border-bottom: 1px solid var(--line); font-size: 1.125rem; }
  .js .site-nav a[aria-current="page"] { text-underline-offset: .3em; }
}

/* ===== HOME: rankings band (deep green) ===== */
.band-rank { position: relative; isolation: isolate; overflow: hidden; background: var(--band); color: var(--on-forest); padding-block: clamp(64px, 8vw, 112px); }
.band-rank::before { content: ""; position: absolute; z-index: -1; right: -12%; top: -30%; width: min(78vw, 1100px); aspect-ratio: 1; background: var(--band-ring);
  -webkit-mask: url("/assets/img/rings/rings-square.svg") center / contain no-repeat; mask: url("/assets/img/rings/rings-square.svg") center / contain no-repeat; }
.band-rank__inner { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(40px, 6vw, 96px) clamp(32px, 6vw, 96px); align-items: end; }
.band-rank h2 { color: var(--on-forest); font-size: clamp(2rem, 1.4rem + 2vw, 3.25rem); line-height: 1.05; }
.band-rank__head p { margin: 20px 0 0; color: var(--band-soft); font-size: 1.1875rem; max-width: 24em; }
.figs { margin: 0; display: grid; grid-template-columns: 1.5fr 1fr 1fr; border-top: 1px solid var(--band-line); }
.fig { padding: 22px 24px 0 0; }
.fig + .fig { padding-left: 24px; border-left: 1px solid var(--band-line); }
.fig dt { font-family: var(--font-display); font-weight: 700; font-size: clamp(2.5rem, 1.6rem + 2.6vw, 4.25rem); line-height: 1; letter-spacing: -0.02em; color: var(--on-forest); white-space: nowrap; font-variant-numeric: lining-nums; }
.fig dt sup { font-size: max(.42em, var(--tiny)); vertical-align: .95em; }
.fig dd { margin: 12px 0 0; color: var(--band-soft); font-size: 1.0625rem; line-height: 1.4; }
.firsts { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(32px, 6vw, 96px); align-items: center;
  padding-top: clamp(32px, 4vw, 48px); border-top: 1px solid var(--band-line); }
.firsts__lead { margin: 0; font-family: var(--font-display); font-weight: 700; font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem); line-height: 1.2; color: var(--on-forest); }
.firsts__no { color: var(--kiit); font-size: 1.6em; margin-right: .04em; letter-spacing: -0.02em; }
.firsts__no sup { font-size: max(.4em, var(--tiny)); margin-left: 0; }
.firsts__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.firsts__list a { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 16px; align-items: center; color: var(--on-forest); text-decoration: none; font-weight: 600; font-size: 1.0625rem; line-height: 1.3; min-height: 64px; }
.firsts__list a:hover { text-decoration: underline; color: var(--paper); }
.firsts__list img { width: 64px; height: 64px; }
.nexts { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 12px 56px; margin-top: clamp(-24px, -2vw, -12px); }
.nexts p { margin: 0; color: var(--band-soft); font-size: 1.125rem; line-height: 1.4; }
.nexts__no { font-family: var(--font-display); font-weight: 700; font-size: 1.5rem; color: var(--on-forest); margin-right: .15em; }
.nexts a { color: var(--on-forest); font-weight: 600; display: inline-flex; align-items: center; min-height: 44px; }
.band-rank :focus-visible, .kband--deep :focus-visible { outline-color: var(--on-forest); }

/* ===== HOME: the 17 Goals grid ===== */
.goals { padding-block: clamp(72px, 9vw, 128px); }
.goals__head { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(24px, 6vw, 96px); align-items: end; margin-bottom: clamp(36px, 4.5vw, 56px); }
.goals__head h2 { font-size: clamp(2rem, 1.4rem + 2vw, 3.25rem); line-height: 1.05; }
.goals__intro p { margin: 0; max-width: 30em; }
.goals__all { margin-top: 10px; font-weight: 600; font-size: 1.0625rem; display: inline-flex; align-items: center; min-height: 44px; }
.gt-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: clamp(28px, 3vw, 40px) clamp(16px, 2vw, 28px); }
.gt { display: flex; flex-direction: column; min-width: 0; }
.gt__link { display: flex; flex-direction: column; color: var(--ink); text-decoration: none; }
.gt__link img { width: 100%; height: auto; aspect-ratio: 1; }
.gt__name { margin-top: 14px; font-family: var(--font-display); font-weight: var(--subheading-weight); font-size: 1.125rem; line-height: 1.25; min-height: 3.75em; }
.gt__link:hover .gt__name { text-decoration: underline; text-decoration-thickness: 1px; }
.gt__link:hover img { opacity: .92; }
.gt__pdf { margin-top: 2px; font-size: var(--tiny); font-weight: 600; display: inline-flex; align-items: center; min-height: 44px; align-self: flex-start; }

/* ===== HOME: KIIT Green band (sage, with photograph) ===== */
.green { background: var(--sage); display: grid; grid-template-columns: minmax(0, 46fr) minmax(0, 54fr); align-items: stretch; }
.green__media { position: relative; min-height: 420px; overflow: hidden; }
.green__media picture { position: absolute; inset: 0; display: block; }
.green__media img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 60%; }
.green__body { padding: clamp(56px, 7vw, 112px) clamp(24px, 6vw, 104px) clamp(56px, 7vw, 112px) clamp(32px, 5vw, 88px); max-width: 760px; }
.green h2 { font-size: clamp(2rem, 1.4rem + 2vw, 3.25rem); line-height: 1.05; }
.green__lead { margin: 18px 0 0; font-size: var(--step-1); line-height: 1.45; color: var(--ink); max-width: 26em; }
.target { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 24px; align-items: center; margin: clamp(32px, 4vw, 48px) 0; padding-block: 20px; border-block: 1px solid var(--sage-line); }
.target__year { margin: 0; font-family: var(--font-display); font-weight: 700; font-size: clamp(3.5rem, 2.4rem + 3.4vw, 5.5rem); line-height: .9; letter-spacing: -0.03em; color: var(--green); font-variant-numeric: lining-nums; }
.target__text { margin: 0; font-size: 1.1875rem; line-height: 1.35; color: var(--ink); max-width: 14em; font-weight: 600; }
.points { list-style: none; margin: 0 0 clamp(32px, 4vw, 44px); padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
.points h3 { font-size: 1.1875rem; font-weight: 700; }
.points p { margin: 8px 0 0; font-size: 1rem; line-height: 1.5; }
.award { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 24px; align-items: center; margin: 0 0 36px; }
.award__years { margin: 0; display: flex; gap: 14px; font-family: var(--font-display); font-weight: 700; font-size: 1.5rem; color: var(--ink); font-variant-numeric: lining-nums; }
.award__years span + span { padding-left: 14px; border-left: 1px solid var(--sage-line); }
.award__text { margin: 0; font-size: 1rem; line-height: 1.45; max-width: 26em; }

/* ===== HOME: Governance and Kortex ===== */
.pair { padding-block: clamp(72px, 9vw, 120px) clamp(64px, 8vw, 104px); }
.pair__grid { display: grid; grid-template-columns: 1fr 1fr; }
.pair__item { padding-right: clamp(24px, 5vw, 80px); }
.pair__item + .pair__item { padding-left: clamp(24px, 5vw, 80px); padding-right: 0; border-left: 1px solid var(--line-strong); }
.pair h2 { font-size: clamp(1.75rem, 1.4rem + 1.2vw, 2.375rem); }
.pair p { margin: 16px 0 20px; max-width: 32em; }
.pair__link { font-weight: 600; font-size: 1.0625rem; display: inline-flex; align-items: center; min-height: 44px; }

/* ===== Konark rim ornament: crowns the footer on every page ===== */
.ornament { height: 48px; background: var(--green);
  -webkit-mask: url("/assets/img/konark-band.svg") left center / auto 48px repeat-x; mask: url("/assets/img/konark-band.svg") left center / auto 48px repeat-x; }

@media (max-width: 1100px) {
  .gt-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .points { grid-template-columns: 1fr; gap: 18px; }
}
@media (max-width: 900px) {
  .band-rank__inner, .firsts, .goals__head { grid-template-columns: 1fr; }
  .firsts__list { grid-template-columns: 1fr; gap: 12px; }
  .nexts { margin-top: 0; flex-direction: column; gap: 4px; }
  .green { grid-template-columns: 1fr; }
  .green__media { min-height: 0; aspect-ratio: 4 / 3; }
  .green__body { max-width: none; padding: 48px var(--gutter) 64px; }
  .pair__grid { grid-template-columns: 1fr; }
  .pair__item, .pair__item + .pair__item { padding: 0; border-left: 0; }
  .pair__item + .pair__item { margin-top: 48px; padding-top: 48px; border-top: 1px solid var(--line-strong); }
}
@media (max-width: 640px) {
  .figs { grid-template-columns: 1fr 1fr; }
  .fig:first-child { grid-column: 1 / -1; padding-right: 0; padding-bottom: 22px; border-bottom: 1px solid var(--band-line); }
  .fig + .fig { padding-left: 0; border-left: 0; }
  .fig:nth-child(3) { padding-left: 20px; border-left: 1px solid var(--band-line); }
  .gt-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 20px; }
  .gt__name { font-size: 1.0625rem; min-height: 0; }
  .target { grid-template-columns: 1fr; gap: 8px; }
  .award { grid-template-columns: 1fr; gap: 10px; }
  .award__years { font-size: 1.375rem; }
  .ornament { height: 36px; -webkit-mask-size: auto 36px; mask-size: auto 36px; }
}

/* ===== Banded long pages (KIIT Green, Governance) ===== */
.pageindex { margin-top: 36px; max-width: 900px; }
.pageindex p { margin: 0 0 8px; font-size: var(--small); font-weight: var(--label-weight); color: var(--muted); }
.pageindex ol { list-style: none; margin: 0; padding: 0; columns: 3; column-gap: 32px; border-top: 1px solid var(--ink); }
.pageindex li { break-inside: avoid; border-bottom: 1px solid var(--line); }
.pageindex a { display: flex; align-items: center; min-height: 44px; padding: 6px 0; font-size: var(--small); color: var(--ink); text-decoration: none; }
.pageindex a:hover { color: var(--green); text-decoration: underline; }
.kband { padding-block: clamp(56px, 7vw, 104px); }
.kband--sage { background: var(--sage); }
.kband--sage .lf-items div, .kband--sage .lf-docs li, .kband--sage .people td, .kband--sage .goal-links li { border-bottom-color: var(--sage-line); }
.kband--deep { position: relative; isolation: isolate; overflow: hidden; background: var(--band); color: var(--band-soft); }
.kband--deep::before { content: ""; position: absolute; z-index: -1; right: -18%; top: -20%; width: min(70vw, 980px); aspect-ratio: 1; background: var(--band-ring);
  -webkit-mask: url("/assets/img/rings/rings-square.svg") center / contain no-repeat; mask: url("/assets/img/rings/rings-square.svg") center / contain no-repeat; }
.kband--deep h2, .kband--deep h3, .kband--deep dt, .kband--deep .year { color: var(--on-forest); }
.kband--deep p, .kband--deep dd { color: var(--band-soft); }
.kband--deep a { color: var(--on-forest); }
.kband--deep .lf-items { border-top-color: var(--band-line); }
.kband--deep .lf-items div { border-bottom-color: var(--band-line); }
.kseg { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: clamp(20px, 5vw, 80px); scroll-margin-top: 16px; }
.kseg + .kseg { margin-top: clamp(48px, 6vw, 80px); padding-top: clamp(48px, 6vw, 80px); border-top: 1px solid var(--line); }
.kband--sage .kseg + .kseg { border-top-color: var(--sage-line); }
.kseg__head h2 { font-size: clamp(1.75rem, 1.4rem + 1.2vw, 2.5rem); line-height: 1.1; }
.kseg__body > p { max-width: 64ch; }
.kseg__body > p:first-child { margin-top: 0; }
.kseg__body h3 { font-size: clamp(1.25rem, 1.15rem + .4vw, 1.4375rem); margin: 36px 0 12px; }
.kfigure { margin: clamp(24px, 3vw, 40px) 0 0; font-family: var(--font-display); font-weight: 700; font-size: clamp(4rem, 2.6rem + 4.6vw, 7.5rem); line-height: .88; letter-spacing: -0.03em; color: var(--on-forest); font-variant-numeric: lining-nums; }
.kfigure + p { margin: 14px 0 0; font-size: 1.1875rem; font-weight: 600; color: var(--on-forest); max-width: 14em; }
.kband--media { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); padding-block: 0; align-items: stretch; }
.kband__media { position: relative; min-height: 440px; overflow: hidden; }
.kband__media picture { position: absolute; inset: 0; display: block; }
.kband__media img { width: 100%; height: 100%; object-fit: cover; }
.kband__body { padding: clamp(56px, 7vw, 104px) var(--gutter) clamp(56px, 7vw, 104px) clamp(32px, 5vw, 88px); max-width: 820px; }
.kband__body h2 { font-size: clamp(1.75rem, 1.4rem + 1.2vw, 2.5rem); margin-bottom: 20px; }
.kband__body p { max-width: 64ch; }
@media (max-width: 900px) {
  .kseg { grid-template-columns: minmax(0, 1fr); }
  .kband--media { grid-template-columns: minmax(0, 1fr); }
  .kband__media { min-height: 0; aspect-ratio: 4 / 3; }
  .kband__body { padding: 48px var(--gutter) 64px; }
  .pageindex ol { columns: 2; }
}
@media (max-width: 640px) {
  .pageindex { display: none; }
}
@media (max-width: 359px) {
  .lockup--header { --logo-h: 32px; }
  .lockup--header .lockup__name { font-size: 1.125rem; }
  .js .menu-toggle { min-width: 64px; padding-inline: 12px; }
}
