/* v3 "Restor-direct" sections (brief §4.4). Shared by every rebuilt page:
   hero, stats row, "Trusted by" logo band, audience cards, pillar cards, closing call to action.
   (pages.css still serves the v2 pages until each one is rebuilt.) */

/* ── Bands ── */
.band { padding-block: var(--section-pad); }
.band--paper { background: var(--impak-paper); }
.band--tint { background: var(--impak-paper-tint); }
.band--dark { background: var(--impak-bg); color: var(--impak-text); }
.band__title {
  max-width: 24em;
  margin-inline: auto;
  font-size: var(--step-3);
  line-height: 1.15;
  letter-spacing: -0.022em;
  text-align: center;
}
.band__lede { margin-top: var(--space-4); font-size: var(--step-1); line-height: 1.5; text-wrap: balance; }
.band__title span { display: block; }
.band--dark .band__title { color: var(--impak-text); }

/* ── Hero: Restor's centred title + subline + two buttons, over a full-bleed Sentinel-2 scene ── */
.hero {
  position: relative;
  isolation: isolate;
  display: grid;
  align-items: center;
  min-height: clamp(32rem, 100svh - var(--nav-h) - 6rem, 46rem);
  padding-block: var(--space-9);
  background: var(--impak-bg-deep);
  color: var(--impak-text);
  text-align: center;
  overflow: hidden;
}
.hero__img {
  position: absolute;
  inset: 0;
  z-index: -2;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.hero::before {                      /* flat canopy-shade darkening so the text reads; no gradient */
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: rgb(10 26 18 / 0.78);
}
.hero__inner { display: grid; justify-items: center; }
.hero__title {
  font-size: clamp(2rem, 0.6rem + 6vw, 4.75rem);
  font-weight: 800;
  line-height: var(--leading-tight);
  letter-spacing: -0.03em;
  color: var(--impak-text);
}
.hero__title > span { display: block; }
.tuck { margin-left: -0.07em; }   /* Plus Jakarta Sans sets a wide gap before a full stop; close it at display size */
.hero__lede {
  max-width: 40rem;
  margin-top: var(--space-5);
  font-size: var(--step-1);
  line-height: 1.5;
  text-wrap: balance;
}
.hero__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--space-3); margin-top: var(--space-6); }
.hero .map-note { color: var(--impak-text); }
@media (max-width: 26.25rem) { .hero__actions { justify-self: stretch; } .hero__actions .btn { flex: 1 1 100%; } }

/* ── Stats row + Trusted by: one dark band under the hero, as on Restor's home ── */
.proof-band { padding-block: var(--space-8) var(--space-8); background: var(--impak-bg); color: var(--impak-text); }
.stats {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 13.5rem));
  justify-content: center;
  gap: var(--space-4);
}
.stat {
  display: grid;
  justify-items: center;
  align-content: center;
  gap: 0.375rem;
  padding: var(--space-5) var(--space-4);
  border-radius: var(--radius);
  background: var(--impak-bg-raised);
  text-align: center;
}
.stat__num {
  font: 700 clamp(1.75rem, 1.4rem + 1.1vw, 2.375rem)/1.1 var(--font-display);
  font-variant-numeric: tabular-nums lining-nums;
  letter-spacing: -0.01em;
  white-space: nowrap;
}
.stat__unit { font-size: 0.6em; letter-spacing: 0.02em; }
.stat__label { font-size: 0.9375rem; line-height: 1.35; color: var(--impak-text-muted); text-wrap: balance; }
@media (max-width: 47.999rem) {
  .stats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-3); }
}

.trusted { margin-top: var(--space-8); }
.trusted__title { font: 700 var(--step-1)/1.3 var(--font-sans); text-align: center; }

/* the logo band: two copies of the list slide left forever; edges fade; pauses on hover */
.marquee {
  position: relative;
  margin-top: var(--space-5);
  overflow: hidden;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
}
.marquee__inner { display: flex; width: max-content; animation: marquee 48s linear infinite; }
.marquee__list { list-style: none; display: flex; gap: var(--space-4); padding-right: var(--space-4); }
.marquee:hover .marquee__inner { animation-play-state: paused; }
@keyframes marquee { to { transform: translateX(-50%); } }
.marquee-wrap { max-width: 64rem; margin-inline: auto; }
@media (prefers-reduced-motion: reduce) {
  .marquee { -webkit-mask-image: none; mask-image: none; }
  .marquee__inner { width: auto; animation: none; }
  .marquee__list { flex-wrap: wrap; justify-content: center; padding-right: 0; }
  .marquee__list[aria-hidden="true"] { display: none; }
}

/* Logo cards: white tiles holding fictional wordmarks (data-demo, D24) */
.logo {
  flex: none;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  width: 9.5rem;
  height: 4rem;
  padding-inline: 0.75rem;
  border-radius: var(--radius);
  background: var(--impak-card);
  color: var(--impak-ink);
  line-height: 1;
  white-space: nowrap;
}
.logo svg { flex: none; width: 1.5rem; height: 1.5rem; }
.logo b, .logo i { font-style: normal; }
.logo small { display: block; margin-top: 0.1875rem; font-size: 0.5rem; letter-spacing: 0.2em; text-transform: uppercase; }
.logo--halvero b { font: 800 0.9375rem var(--font-sans); letter-spacing: 0.16em; }
.logo--selasih b { font: 700 1.125rem var(--font-logo-serif); color: var(--impak-bg-raised); }
.logo--selasih svg { color: var(--impak-accent-deep); }
.logo--teraku b { font: 700 1.25rem var(--font-sans); letter-spacing: -0.04em; }
.logo--teraku i { font: 400 0.75rem var(--font-sans); color: var(--impak-ink-muted); }
.logo--merbau b { font: 700 1rem var(--font-logo-serif); letter-spacing: 0.06em; }
.logo--merbau small { font-family: var(--font-logo-mono); letter-spacing: 0.32em; }
.logo--bayuran b { font: 500 0.875rem/1.1 var(--font-sans); text-align: left; }
.logo--bayuran svg { color: var(--impak-bg-raised); }
.logo--nusapadi b { font: 700 1.1875rem var(--font-logo-serif); letter-spacing: -0.01em; }
.logo--nusapadi svg { color: var(--impak-accent-deep); }
.logo--corvelle b { font: 700 0.9375rem var(--font-logo-mono); letter-spacing: 0.08em; }
.logo--linggam b { font: 800 0.8125rem var(--font-sans); letter-spacing: 0.02em; text-transform: uppercase; }
.logo--linggam svg { color: var(--impak-ink-muted); }

/* ── Audience cards: centred H2, 2 × 2, text + icon disc, mirrored right column (Restor home) ── */
.audiences__grid {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-5);
  max-width: 64rem;
  margin: var(--space-8) auto 0;
}
.audience {
  display: flex;
  align-items: center;
  gap: var(--space-5);
  padding: var(--space-6);
  border: 1px solid var(--impak-paper-line);
  border-radius: var(--radius);
  background: var(--impak-card);
}
.audience__text { flex: 1; display: grid; gap: var(--space-3); justify-items: start; }
.audience__title { font-size: var(--step-2); line-height: 1.2; }
.audience .audience__tag { margin-top: calc(var(--space-2) * -1); font-weight: 700; font-size: 1rem; line-height: 1.4; color: var(--impak-heading); }
.audience p { font-size: 0.9375rem; line-height: 1.55; color: var(--impak-ink-muted); max-width: 40ch; }
.audience .btn { margin-top: var(--space-2); }
.audience .disc { --d: 6rem; }
@media (min-width: 48rem) {
  .audience--mirror { flex-direction: row-reverse; }
  .audience--mirror .audience__text { justify-items: end; text-align: right; }
}
@media (max-width: 47.999rem) {
  .audiences__grid { grid-template-columns: minmax(0, 1fr); max-width: 34rem; }
  .audience { flex-direction: column-reverse; padding: var(--space-5); align-items: flex-start; gap: var(--space-4); }
  .audience .disc { --d: 3.5rem; }
  .audience .btn { white-space: normal; text-align: left; }
}

/* ── Pillar cards: centred 2-line H2, three cards with check lists, a button in the middle one ── */
.pillars__grid {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-5);
  max-width: 68rem;
  margin: var(--space-8) auto 0;
}
.pillar {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: var(--space-6);
  border: 1px solid var(--impak-paper-line);
  border-radius: var(--radius);
  background: var(--impak-card);
}
.pillar__title { margin-top: var(--space-4); font: 700 var(--step-2)/1.15 var(--font-sans); letter-spacing: -0.015em; }
.pillar__line { margin-top: var(--space-2); }
.pillar__line a, .inline-link {
  text-decoration: underline;
  text-decoration-color: var(--impak-paper-line);
  text-decoration-thickness: 2px;
  text-underline-offset: 0.22em;
}
.pillar__line a:hover, .inline-link:hover { text-decoration-color: var(--impak-accent-deep); }
.checks .inline-link { font-weight: 600; color: var(--impak-heading); text-decoration-color: var(--impak-ink-muted); }   /* Restor-style CTA inside a card line (home: "corporate funding" → funding.html) */
.checks .inline-link:hover { text-decoration-color: var(--impak-accent-deep); }
.checks { list-style: none; display: grid; gap: var(--space-4); margin-top: var(--space-6); }
.checks li { display: grid; grid-template-columns: 1.25rem minmax(0, 1fr); gap: 0.75rem; align-items: start; font-size: 0.9375rem; line-height: 1.45; }
.check {                                   /* Restor's round accent check disc */
  display: grid;
  place-items: center;
  width: 1.25rem;
  aspect-ratio: 1;
  margin-top: 0.0625rem;
  border-radius: 50%;
  background: var(--impak-accent);
}
.check svg { width: 0.8125rem; height: 0.8125rem; fill: none; stroke: var(--impak-accent-ink); stroke-width: 2.25; stroke-linecap: round; stroke-linejoin: round; }
.pillar__btn { align-self: stretch; margin-top: auto; }
.pillar .checks { margin-bottom: var(--space-7); }
.pillar .map-note { align-self: stretch; text-align: center; color: var(--impak-text-muted); }
@media (max-width: 63.999rem) {
  .pillars__grid { grid-template-columns: minmax(0, 1fr); max-width: 34rem; }
}

/* ── Closing call to action: cited statement, H2, one amber button, footnote ── */
.closing { text-align: center; }
.closing__inner { display: grid; justify-items: center; }
.closing__statement {
  max-width: 34em;
  font: 500 var(--step-2)/1.35 var(--font-display);
  color: var(--impak-ink);
  text-wrap: balance;
}
.closing__statement sup { font-size: 0.6em; }
.closing__title { margin-top: var(--space-5); font-size: clamp(2.25rem, 1.4rem + 3vw, 3.5rem); line-height: 1.1; letter-spacing: -0.02em; }
.closing .btn { margin-top: var(--space-6); }
.closing__note {
  justify-self: end;
  max-width: 40rem;
  margin-top: var(--space-7);
  font-size: 0.8125rem;
  line-height: 1.5;
  color: var(--impak-ink-muted);
  text-align: right;
}
.closing__note a { color: var(--impak-ink); }
@media (max-width: 47.999rem) { .closing__note { justify-self: center; text-align: center; } }

/* ════════════════════════ Inner pages (Our mission) ════════════════════════ */

/* ── Page hero: Restor's short photo hero, centred eyebrow + H1 + subline (+ video card or buttons) ── */
.page-hero {
  position: relative;
  isolation: isolate;
  display: grid;
  align-items: center;
  min-height: clamp(22rem, 52svh, 30rem);
  padding-block: var(--space-8);
  background: var(--impak-bg-deep);
  color: var(--impak-text);
  text-align: center;
  overflow: hidden;
}
.page-hero__img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
.page-hero::before { content: ""; position: absolute; inset: 0; z-index: -1; background: rgb(10 26 18 / 0.66); }
.page-hero__inner { display: grid; justify-items: center; }
.eyebrow { font-size: 0.9375rem; font-weight: 700; letter-spacing: 0.01em; }
.page-hero__title {
  margin-top: var(--space-3);
  max-width: 16em;
  font-size: clamp(2.25rem, 1.3rem + 3.6vw, 4rem);
  line-height: 1.06;
  letter-spacing: -0.02em;
  color: var(--impak-text);
}
.page-hero__title span { display: block; }
.page-hero__lede { max-width: 38rem; margin-top: var(--space-4); font-size: var(--step-1); line-height: 1.5; text-wrap: balance; }
.page-hero .hero__actions { margin-top: var(--space-6); }

/* Restor's mint header band (Team) */
.page-head { padding-block: var(--space-9) var(--space-8); background: var(--impak-paper-tint); text-align: center; }
.page-head__title { font-size: clamp(2.5rem, 1.6rem + 3.4vw, 4.25rem); line-height: 1.05; letter-spacing: -0.02em; }
.page-head__lede { max-width: 38rem; margin: var(--space-4) auto 0; font-size: var(--step-1); line-height: 1.5; color: var(--impak-ink-muted); text-wrap: balance; }

/* the introduction video card (no video yet: shown inert, "coming soon", Q10) */
.video-card {
  display: grid;
  grid-template-columns: 7.5rem minmax(0, 1fr);
  align-items: stretch;
  gap: var(--space-4);
  width: min(100%, 22rem);
  margin-top: var(--space-6);
  padding: 0 var(--space-5) 0 0;
  border-radius: var(--radius-lg);
  background: rgb(10 26 18 / 0.78);
  box-shadow: inset 0 0 0 1px rgb(242 238 227 / 0.14);
  overflow: hidden;
  text-align: left;
}
.video-card img { width: 100%; height: 100%; aspect-ratio: 1; object-fit: cover; }
.video-card__text { display: grid; align-content: center; gap: 0.25rem; padding-block: var(--space-4); font-weight: 700; line-height: 1.3; }
.video-card__text .ph { font-size: 1.75rem; color: var(--impak-accent); }
.video-card__soon { font-size: 0.8125rem; font-weight: 500; color: var(--impak-text-muted); }

/* ── Feature rows: text with a ✓ list and buttons beside a product screen, alternating (Discover Restor) ── */
.features { display: grid; gap: var(--space-9); }
.feature {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
  align-items: center;
  gap: var(--space-8);
  width: 100%;
  max-width: 68rem;
  margin-inline: auto;
}
.feature--flip .feature__text { order: 2; }
.feature__eyebrow { font-size: 0.9375rem; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; color: var(--impak-accent-deep); }
.feature__title { margin-top: var(--space-2); font-size: var(--step-3); line-height: 1.12; letter-spacing: -0.015em; }
.feature .checks { margin-top: var(--space-5); }
.feature .checks li { font-size: 1rem; }
.feature .checks b { font-weight: 700; }
.feature__actions { display: flex; flex-wrap: wrap; gap: var(--space-3); margin-top: var(--space-6); }
@media (max-width: 55.999rem) {
  .feature { grid-template-columns: minmax(0, 1fr); gap: var(--space-6); max-width: 36rem; }
  .feature--flip .feature__text { order: 0; }
  .features { gap: var(--space-8); }
}

/* ── Product screens: a drawn laptop holding an illustrative IMPAK screen (until real screenshots, §6) ── */
.laptop { position: relative; width: 100%; max-width: 34rem; margin-inline: auto; }
.laptop__screen {
  padding: 0.55rem 0.55rem 0.75rem;
  border-radius: var(--radius-lg) var(--radius-lg) var(--radius-s) var(--radius-s);
  background: var(--impak-bg-deep);
  box-shadow: inset 0 0 0 1px var(--impak-paper-line), 0 24px 40px -24px rgb(4 12 8 / 0.7);
}
.laptop__base {
  display: block;
  width: 112%;
  height: 0.75rem;
  margin-left: -6%;
  border-radius: var(--radius-s) var(--radius-s) var(--radius-lg) var(--radius-lg);
  background: var(--impak-ink-muted);
  box-shadow: inset 0 3px 0 color-mix(in srgb, var(--impak-ink-muted), var(--impak-paper) 22%);
}
.laptop__base::after { content: ""; display: block; width: 16%; height: 0.25rem; margin-inline: auto; border-radius: 0 0 6px 6px; background: var(--impak-ink); }
.app {
  position: relative;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  border-radius: 4px;
  background: var(--impak-bg-deep);
  color: var(--impak-text);
  font-size: 0.6875rem;
  line-height: 1.35;
}
.app__flag {
  position: absolute;
  right: 0.5rem;
  bottom: 0.5rem;
  z-index: 3;
  padding: 0.125rem 0.4375rem;
  border-radius: var(--radius-s);
  background: var(--impak-card);
  color: var(--impak-ink);
  font-size: 0.625rem;
  font-weight: 700;
}
.app__bar { display: flex; align-items: center; gap: 0.5rem; height: 1.75rem; padding-inline: 0.625rem; border-bottom: 1px solid var(--impak-line); color: var(--impak-text-muted); white-space: nowrap; }
.app__bar b { color: var(--impak-text); }
.app__bar i { flex: none; width: 0.4rem; height: 0.4rem; border-radius: 50%; background: var(--impak-accent); }
.app--split { display: grid; grid-template-columns: minmax(0, 1fr) 38%; grid-template-rows: auto minmax(0, 1fr); }
.app--split .app__bar { grid-column: 1 / -1; }
.app__map { position: relative; overflow: hidden; }
.app__map img { width: 100%; height: 100%; object-fit: cover; }
.app__map svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.app__map .boundary { fill: rgb(124 198 181 / 0.14); stroke: var(--impak-signal); stroke-width: 2; }
.app__map .hotspot { fill: rgb(242 193 78 / 0.3); stroke: var(--impak-highlight); stroke-width: 2; }
.app__panel { display: grid; align-content: start; gap: 0.5rem; padding: 0.75rem; background: var(--impak-bg); border-left: 1px solid var(--impak-line); }
.app__panel h4 { font: 700 0.8125rem/1.25 var(--font-sans); }
.app__panel dl { display: grid; gap: 0.375rem; margin: 0; }
.app__panel dt { color: var(--impak-text-muted); font-size: 0.625rem; }
.app__panel dd { margin: 0; font-weight: 600; }
.pill { display: inline-flex; align-items: center; gap: 0.25rem; width: fit-content; padding: 0.0625rem 0.4375rem; border-radius: 99px; font-size: 0.625rem; font-weight: 700; background: var(--impak-surface); color: var(--impak-text); white-space: nowrap; }
.pill--ok { background: var(--impak-signal); color: var(--impak-bg-deep); }
.pill--amber { background: var(--impak-highlight); color: var(--impak-highlight-ink); }
/* milestone fund screen */
.app--paper { background: var(--impak-paper); color: var(--impak-ink); }
.app--paper .app__bar { border-color: var(--impak-paper-line); color: var(--impak-ink-muted); }
.app--paper .app__bar b { color: var(--impak-ink); }
.tranches { display: grid; gap: 0.5rem; padding: 0.75rem 0.875rem; }
.tranches__head { display: flex; justify-content: space-between; align-items: baseline; gap: 0.5rem; font-weight: 700; font-size: 0.8125rem; }
.tranches__head span { font-weight: 500; color: var(--impak-ink-muted); font-size: 0.6875rem; }
.tranches__bar { display: grid; grid-template-columns: repeat(3, 1fr); gap: 3px; height: 0.4rem; }
.tranches__bar i { border-radius: var(--radius-s); background: var(--impak-paper-line); }
.tranches__bar i.is-done { background: var(--impak-accent); }
.tranche { display: grid; grid-template-columns: 1.5rem minmax(0, 1fr) auto; align-items: center; gap: 0.5rem; padding: 0.375rem 0.5rem; border: 1px solid var(--impak-paper-line); border-radius: 6px; background: var(--impak-card); }
.tranche b { font-weight: 700; }
.tranche small { display: block; font-size: 0.625rem; color: var(--impak-ink-muted); }
.tranche__no { display: grid; place-items: center; width: 1.5rem; aspect-ratio: 1; border-radius: 50%; background: var(--impak-paper-tint); font-weight: 800; font-size: 0.625rem; }
.tranche .pill { background: var(--impak-paper-tint); color: var(--impak-ink); }
.tranche .pill--amber { background: var(--impak-highlight); color: var(--impak-highlight-ink); }
.tranche .pill--ok { background: var(--impak-bg-raised); color: var(--impak-text); }
/* change detection screen: 2018 vs 2024 */
.app--compare { display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: auto minmax(0, 1fr); column-gap: 2px; }
.app--compare .app__bar { grid-column: 1 / -1; }
.app__shot { position: relative; overflow: hidden; }
.app__shot img { width: 100%; height: 100%; object-fit: cover; }
.app__shot > span { position: absolute; left: 0.375rem; top: 0.375rem; padding: 0.0625rem 0.375rem; border-radius: var(--radius-s); background: var(--impak-bg-deep); font-weight: 700; font-size: 0.625rem; }
.app__shot svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.app__shot .loss { fill: rgb(242 193 78 / 0.18); stroke: var(--impak-highlight); stroke-width: 2; stroke-dasharray: 5 3; }
.app__alert { position: absolute; left: 50%; bottom: 0.625rem; translate: -50% 0; z-index: 2; }
/* field report screen */
.reports { display: grid; gap: 0.375rem; padding: 0.75rem 0.875rem; }
.report { display: grid; grid-template-columns: 2.25rem minmax(0, 1fr) auto; align-items: center; gap: 0.5rem; padding: 0.3125rem; border: 1px solid var(--impak-paper-line); border-radius: 6px; background: var(--impak-card); }
.report img { width: 2.25rem; height: 2.25rem; object-fit: cover; border-radius: 4px; }
.report b { display: block; font-weight: 700; }
.report small { font-family: var(--font-data); font-variant-numeric: tabular-nums; font-size: 0.625rem; color: var(--impak-ink-muted); }

/* ── "A tool to meet your needs": two-tier comparison table (Discover Restor) ── */
.compare-wrap { max-width: 64rem; margin: var(--space-8) auto 0; overflow-x: auto; }
.compare { width: 100%; min-width: 36rem; border-collapse: separate; border-spacing: 0 3px; font-size: 0.9375rem; }
.compare thead th { padding: 0.875rem 1rem; font-weight: 700; text-align: center; }
.compare thead th:first-child { background: none; }
.compare thead th:nth-child(2) { background: var(--impak-paper-tint); border-radius: var(--radius) 0 0 0; }
.compare thead th:nth-child(3) { background: var(--impak-accent); color: var(--impak-accent-ink); border-radius: 0 var(--radius) 0 0; }
.compare thead small { display: block; font-weight: 500; font-size: 0.75rem; }
.compare tbody th[colspan] { padding: var(--space-5) 0 var(--space-2); font: 700 var(--step-1)/1.3 var(--font-display); text-align: left; }
.compare tbody td, .compare tbody th[scope="row"] { padding: 0.625rem 1rem; background: var(--impak-card); }
.compare tbody th[scope="row"] { font-weight: 500; text-align: left; border-radius: 4px 0 0 4px; }
.compare tbody td { width: 24%; text-align: center; font-size: 0.8125rem; color: var(--impak-ink-muted); }
.compare tbody td:last-child { border-radius: 0 4px 4px 0; }
.yes { display: inline-grid; place-items: center; width: 1.375rem; aspect-ratio: 1; border-radius: 50%; border: 1.5px solid var(--impak-ink); vertical-align: middle; }
.yes svg { width: 0.875rem; height: 0.875rem; fill: none; stroke: var(--impak-ink); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.compare__cta { display: flex; justify-content: center; margin-top: var(--space-7); }
.compare__note { max-width: 64rem; margin: var(--space-3) auto 0; font-size: 0.8125rem; color: var(--impak-ink-muted); }

/* ── Trusted by on a light page ── */
.trusted--light { margin-top: 0; }
.trusted--light .trusted__title { color: var(--impak-ink); }
.trusted--light .logo { border: 1px solid var(--impak-paper-line); }
.trusted__line { max-width: 40rem; margin: var(--space-4) auto 0; font-size: 0.8125rem; color: var(--impak-ink-muted); text-align: center; }

/* ── Testimonials: big serif quotes with a small round portrait (Restor) ── */
.quotes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-7) var(--space-8); max-width: 60rem; margin-inline: auto; }
.quotes--one { grid-template-columns: minmax(0, 1fr); max-width: 40rem; }
.quote { display: grid; align-content: start; gap: var(--space-5); margin: 0; }
.quote blockquote { margin: 0; font: 500 clamp(1.375rem, 1.1rem + 0.9vw, 1.875rem)/1.28 var(--font-display); letter-spacing: -0.01em; text-wrap: pretty; }
.quote figcaption { display: grid; grid-template-columns: 2.75rem minmax(0, 1fr); align-items: center; column-gap: 0.75rem; font-size: 0.875rem; line-height: 1.35; }
.quote figcaption img { grid-row: 1 / span 2; width: 2.75rem; height: 2.75rem; border-radius: 50%; object-fit: cover; }
.quote figcaption b { font-weight: 700; }
.quote figcaption span { color: var(--impak-ink-muted); }
@media (max-width: 47.999rem) { .quotes { grid-template-columns: minmax(0, 1fr); } }

/* ── FAQ: centred title + subline, ⊕ accordion in a mint band (Discover Restor) ── */
.faq__sub { margin-top: var(--space-3); color: var(--impak-ink-muted); text-align: center; }
.faq__list { max-width: 48rem; margin: var(--space-7) auto 0; }
.faq__item { border-bottom: 1px solid var(--impak-paper-line); }
.faq__item summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--space-4);
  padding: var(--space-5) 0;
  font-weight: 700;
  font-size: 1.0625rem;
  line-height: 1.4;
  cursor: pointer;
  list-style: none;
}
.faq__item summary::-webkit-details-marker { display: none; }
.faq__item summary .ph { flex: none; font-size: 1.5rem; }
.faq__item summary .ph--close, .faq__item[open] summary .ph--open { display: none; }
.faq__item[open] summary .ph--close { display: block; }
.faq__item summary:hover span { text-decoration: underline; text-decoration-color: var(--impak-accent-deep); text-decoration-thickness: 2px; text-underline-offset: 0.25em; }
.faq__answer { display: grid; gap: var(--space-3); padding-bottom: var(--space-5); max-width: 42rem; color: var(--impak-ink-muted); }

/* ── "Here is how we can help you": stacked blocks, text left / screen right (Restor audience pages) ── */
.help { display: grid; gap: var(--space-9); max-width: 66rem; margin: var(--space-8) auto 0; }
.help__block { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); align-items: center; gap: var(--space-8); }
.help__label { display: flex; align-items: center; gap: 0.5rem; font-size: 0.9375rem; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; }
.help__label .ph { font-size: 1.375rem; color: var(--impak-accent-deep); }
.help__title { margin-top: var(--space-3); font-size: var(--step-3); line-height: 1.12; letter-spacing: -0.015em; }
.help__text { margin-top: var(--space-4); max-width: 34rem; }
.proof { display: flex; align-items: center; gap: var(--space-4); margin-top: var(--space-5); }
.proof__num { flex: none; font: 700 clamp(2rem, 1.6rem + 1.4vw, 2.75rem)/1 var(--font-display); color: var(--impak-highlight); letter-spacing: -0.02em; font-variant-numeric: tabular-nums lining-nums; }
.proof__cap { max-width: 16rem; font-size: 0.9375rem; line-height: 1.4; }
.help__block .btn { margin-top: var(--space-6); }
@media (max-width: 55.999rem) {
  .help__block { grid-template-columns: minmax(0, 1fr); gap: var(--space-6); max-width: 36rem; margin-inline: auto; }
}

/* ── "Do you have any questions?" band ── */
.questions { text-align: center; }
.questions__lede { max-width: 34rem; margin: var(--space-3) auto 0; color: var(--impak-ink-muted); }
.questions .hero__actions { margin-top: var(--space-6); }

/* ── Team ── */
.team__sub { margin-top: var(--space-2); color: var(--impak-ink-muted); text-align: center; }
.team-grid { list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-7) var(--space-5); max-width: 60rem; margin: var(--space-8) auto 0; text-align: center; }
.member img { width: 8.5rem; height: 8.5rem; margin: 0 auto var(--space-4); border-radius: 50%; object-fit: cover; }
.member b { display: block; font-weight: 700; }
.member span { display: block; max-width: 13rem; margin: 0.25rem auto 0; font-size: 0.875rem; line-height: 1.4; color: var(--impak-ink-muted); }
@media (max-width: 47.999rem) { .team-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .member img { width: 7rem; height: 7rem; } }
.join { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); align-items: center; gap: var(--space-8); max-width: 66rem; margin-inline: auto; }
.join__title { font-size: clamp(2.25rem, 1.4rem + 3vw, 3.5rem); line-height: 1.04; letter-spacing: -0.02em; }
.join p { margin-top: var(--space-5); max-width: 36rem; }
.join .btn { margin-top: var(--space-6); }
.join__art { display: grid; grid-template-columns: repeat(2, auto); justify-content: center; align-items: start; gap: var(--space-4); }
.join__art .disc:nth-child(2) { margin-top: var(--space-8); }
.join__art .disc:nth-child(3) { margin-top: calc(-1 * var(--space-6)); }
@media (max-width: 55.999rem) { .join { grid-template-columns: minmax(0, 1fr); } .join__art { display: none; } }
.values { list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-5); max-width: 68rem; margin: var(--space-8) auto 0; }
.value { display: grid; align-content: start; gap: var(--space-3); padding: var(--space-6); border-radius: var(--radius); background: var(--impak-card); border: 1px solid var(--impak-paper-line); }
.value h3 { margin-top: var(--space-2); font: 700 1.1875rem/1.25 var(--font-sans); }
.value p { font-size: 0.9375rem; color: var(--impak-ink-muted); }
@media (max-width: 63.999rem) { .values { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 35.999rem) { .values { grid-template-columns: minmax(0, 1fr); } }
.positions { max-width: 48rem; margin: var(--space-7) auto 0; padding: var(--space-7); border: 1px dashed var(--impak-ink-muted); border-radius: var(--radius); text-align: center; }
.positions p { color: var(--impak-ink-muted); }
.positions .btn { margin-top: var(--space-5); }
.section-intro { max-width: 40rem; margin: var(--space-3) auto 0; color: var(--impak-ink-muted); text-align: center; }

/* Restor's dark audience cards on a light page (Who we serve) */
.audience--dark { border-color: transparent; background: var(--impak-bg); color: var(--impak-text); }
.audience--dark p { color: var(--impak-text-muted); }
.audience--dark .audience__title { color: var(--impak-text); }
.feature__actions .map-note { flex-basis: 100%; margin-top: 0; }
.feature__eyebrow { font-family: var(--font-sans); }
/* "Trusted by" sits close to the quotes that follow it, as on Restor */
.trusted-band { padding-block: var(--space-8) var(--space-6); }
.trusted-band + .band--paper { padding-top: var(--space-7); }

/* Small screens: the product screens scale down as a whole (zoom), so their layout stays intact */
.laptop__screen { container-type: inline-size; }
@container (max-width: 31rem) { .app { zoom: 0.86; } }
@container (max-width: 27rem) { .app { zoom: 0.74; } }
@container (max-width: 23rem) { .app { zoom: 0.64; } }
@container (max-width: 19.5rem) { .app { zoom: 0.55; } }

/* Small screens: the comparison table fits without sideways scrolling */
@media (max-width: 39.999rem) {
  .compare { min-width: 0; font-size: 0.875rem; }
  .compare thead th { padding: 0.625rem 0.375rem; font-size: 0.8125rem; line-height: 1.25; }
  .compare thead small { font-size: 0.6875rem; }
  .compare tbody th[scope="row"] { padding: 0.5rem 0.625rem; }
  .compare tbody td { width: 25%; padding: 0.5rem 0.25rem; font-size: 0.75rem; line-height: 1.3; }
}

/* ════════════════════════ Solutions pages ════════════════════════ */

/* white cards with an icon disc on a mint band (Insights "Less admin…" row, Monitoring's jump cards) */
.cards3 { list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-5); max-width: 64rem; margin: var(--space-8) auto 0; }
.card {
  display: grid;
  align-content: start;
  gap: var(--space-3);
  padding: var(--space-5) var(--space-5) var(--space-6);
  border: 1px solid var(--impak-paper-line);
  border-radius: var(--radius);
  background: var(--impak-card);
}
.card h3 { margin-top: var(--space-2); font: 700 1.25rem/1.25 var(--font-sans); letter-spacing: -0.01em; }
.card p { font-size: 0.9375rem; color: var(--impak-ink-muted); }
a.card { text-decoration: none; color: inherit; transition: border-color var(--dur-fast); }
a.card:hover { border-color: var(--impak-ink-muted); }
a.card:hover h3 { text-decoration: underline; text-decoration-color: var(--impak-accent-deep); text-decoration-thickness: 2px; text-underline-offset: 0.25em; }
.band__cta { display: flex; justify-content: center; margin-top: var(--space-7); }
@media (max-width: 55.999rem) { .cards3 { grid-template-columns: minmax(0, 1fr); max-width: 30rem; } }

/* ── Plans table (Restor's "Choose your plan": tier columns greener left to right) ── */
.plans-head { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: var(--space-3) var(--space-6); max-width: 66rem; margin-inline: auto; }
.plans-head h2 { font-size: var(--step-4); line-height: 1.05; letter-spacing: -0.02em; }
.tag-indicative {
  display: inline-block;
  padding: 0.125rem 0.5rem;
  border: 1px solid var(--impak-highlight);
  border-radius: 99px;
  color: var(--impak-highlight);
  font-size: 0.75rem;
  font-weight: 700;
  white-space: nowrap;
}
.plans-wrap { max-width: 66rem; margin: var(--space-7) auto 0; overflow-x: auto; }
.plans { --t1: var(--impak-paper-tint); --t2: color-mix(in srgb, var(--impak-paper-tint), var(--impak-bg-raised) 10%); --t3: color-mix(in srgb, var(--impak-paper-tint), var(--impak-bg-raised) 20%);
  width: 100%; min-width: 44rem; border-collapse: separate; border-spacing: 0; font-size: 0.9375rem; }
.plans thead th { padding: 1rem 0.75rem; vertical-align: top; text-align: center; }
.plans thead th:nth-child(2), .plans tfoot td:nth-child(2) { background: var(--t1); }
.plans thead th:nth-child(3), .plans tfoot td:nth-child(3) { background: var(--t2); }
.plans thead th:nth-child(4), .plans tfoot td:nth-child(4) { background: var(--t3); }
.plans thead th:nth-child(2) { border-radius: var(--radius) 0 0 0; }
.plans thead th:nth-child(4) { border-radius: 0 var(--radius) 0 0; }
.plans__tier { display: block; font-weight: 800; font-size: 1.0625rem; }
.plans__for { display: block; margin-top: 0.25rem; font-size: 0.8125rem; font-weight: 500; color: var(--impak-ink-muted); line-height: 1.35; }
.plans tbody th[colspan] { padding: var(--space-5) 0 var(--space-2); font: 700 var(--step-1)/1.3 var(--font-display); text-align: left; }
.plans tbody th[scope="row"], .plans tbody td { padding: 0.6875rem 0.75rem; border-bottom: 1px solid var(--impak-paper-line); }
.plans tbody tr:nth-child(even) th[scope="row"], .plans tbody tr:nth-child(even) td { background: var(--impak-card); }
.plans tbody th[scope="row"] { font-weight: 500; text-align: left; }
.plans tbody td { width: 21%; text-align: center; font-size: 0.875rem; color: var(--impak-ink-muted); }
.plans .soon { font-style: italic; }
.plans tfoot th, .plans tfoot td { padding: var(--space-4) 0.75rem; }
.plans tfoot th { text-align: left; font-weight: 800; background: var(--t2); border-radius: 0 0 0 var(--radius); }
.plans tfoot td { text-align: center; }
.plans tfoot td:last-child { border-radius: 0 0 var(--radius) 0; }
.plans__price b { display: block; font: 700 1.25rem/1.2 var(--font-display); font-variant-numeric: tabular-nums lining-nums; }
.plans__price span { display: block; font-size: 0.8125rem; color: var(--impak-ink-muted); }
.plans__price .tag-indicative { display: inline-block; margin-top: 0.375rem; }
.plans-foot { display: grid; justify-items: center; gap: var(--space-3); margin-top: var(--space-6); text-align: center; }
.plans-foot p { max-width: 40rem; font-size: 0.9375rem; color: var(--impak-ink-muted); }
.plans-foot a:not(.btn) { color: var(--impak-ink); font-weight: 600; }

/* ── Dark split band: lead text + price + button, a photo grid on the right (Restor Connect) ── */
.split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); align-items: center; gap: var(--space-8); max-width: 68rem; margin-inline: auto; }
.split__title { font-size: var(--step-4); line-height: 1.06; letter-spacing: -0.02em; }
.split__text { margin-top: var(--space-5); max-width: 34rem; }
.split__text b { font-weight: 700; }
.band--dark .split__text { color: var(--impak-text); }
.price-line { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3) var(--space-5); margin-top: var(--space-6); }
.price-line strong { font-size: 1.1875rem; font-weight: 800; font-variant-numeric: tabular-nums lining-nums; }
.band--dark .tag-indicative { border-color: var(--impak-highlight); color: var(--impak-highlight); }
.tiles { list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-5) var(--space-4); }
.tile img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: var(--radius); }
.tile span { display: block; margin-top: 0.5rem; font-size: 0.8125rem; line-height: 1.35; }
@media (max-width: 55.999rem) { .split { grid-template-columns: minmax(0, 1fr); } }

/* case-study card with big numbers (dummy, data-demo) */
.case { position: relative; display: grid; gap: var(--space-5); padding: var(--space-6); border: 1px solid var(--impak-paper-line); border-radius: var(--radius-lg); background: var(--impak-card); }
.case h3 { font-size: var(--step-2); line-height: 1.2; padding-right: 6.5rem; }
.case__nums { list-style: none; display: grid; gap: var(--space-4); }
.case__nums li { display: grid; grid-template-columns: 3rem minmax(0, 1fr); align-items: center; gap: var(--space-4); }
.case__nums b { display: block; font: 700 1.75rem/1.1 var(--font-display); font-variant-numeric: tabular-nums lining-nums; }
.case__nums span:last-child { font-size: 0.9375rem; color: var(--impak-ink-muted); }
.case__photo { position: absolute; top: calc(-1 * var(--space-5)); right: var(--space-5); width: 6.5rem; height: 6.5rem; border-radius: 50%; object-fit: cover; border: 4px solid var(--impak-card); }
.case .btn { justify-self: start; }

/* ── Outlined cards on a dark band, each with a real image and two buttons (Restor Monitoring) ── */
.outlined { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-5); max-width: 68rem; margin: var(--space-7) auto 0; }
.outlined__card { display: grid; grid-template-rows: auto auto 1fr auto; gap: var(--space-4); padding: var(--space-5); border: 1px solid rgb(242 238 227 / 0.4); border-radius: var(--radius); }
.band--paper .outlined__card { border-color: var(--impak-paper-line); background: var(--impak-card); }
.outlined__card h3 { font-size: var(--step-2); line-height: 1.2; }
.outlined__card p b { font-weight: 700; }
.band--dark .outlined__card p { color: var(--impak-text); }
.outlined__media { position: relative; overflow: hidden; border-radius: 4px; background: var(--impak-bg-deep); }
.outlined__media img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.outlined__media svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.outlined__media .boundary { fill: none; stroke: var(--impak-signal); stroke-width: 2; }
.outlined__media .loss { fill: rgb(242 193 78 / 0.18); stroke: var(--impak-highlight); stroke-width: 2; stroke-dasharray: 5 3; }
.outlined__media .hotspot { fill: rgb(242 193 78 / 0.3); stroke: var(--impak-highlight); stroke-width: 2; }
.outlined__media figcaption { position: absolute; left: 0.5rem; bottom: 0.5rem; padding: 0.125rem 0.5rem; border-radius: var(--radius-s); background: var(--impak-bg-deep); color: var(--impak-text); font-size: 0.75rem; }
.outlined__pair { display: grid; grid-template-columns: 1fr 1fr; gap: 2px; }
.outlined__pair .outlined__media { border-radius: 0; }
.outlined__pair .outlined__media:first-child { border-radius: 4px 0 0 4px; }
.outlined__pair .outlined__media:last-child { border-radius: 0 4px 4px 0; }
.outlined__actions { display: flex; flex-wrap: wrap; gap: var(--space-3); }
.cover-list { list-style: none; display: grid; gap: 0.5rem; padding: var(--space-4); }
.cover-list li { display: grid; grid-template-columns: 0.875rem minmax(0, 1fr) auto; align-items: center; gap: 0.625rem; font-size: 0.875rem; }
.cover-list i { width: 0.875rem; height: 0.875rem; border-radius: var(--radius-s); }
.cover-list b { font-family: var(--font-data); font-variant-numeric: tabular-nums; font-weight: 700; }
.figure-big { display: grid; place-content: center; gap: 0.25rem; padding: var(--space-6); text-align: center; background: var(--impak-paper-tint); border-radius: 4px; aspect-ratio: 4 / 3; }
.figure-big b { font: 700 clamp(2.25rem, 1.6rem + 2vw, 3.25rem)/1 var(--font-display); font-variant-numeric: tabular-nums lining-nums; }
.figure-big span { font-size: 0.875rem; color: var(--impak-ink-muted); }
@media (max-width: 55.999rem) { .outlined { grid-template-columns: minmax(0, 1fr); max-width: 36rem; } }
.support-line { max-width: 40rem; margin: var(--space-8) auto 0; text-align: center; }
.support-line .btn { margin-top: var(--space-4); }

/* ── Contact: centred H2, a product screen with the form card over its right edge (Restor) ── */
.contact__stage { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 22rem); align-items: center; max-width: 64rem; margin: var(--space-8) auto 0; }
.contact__stage .laptop { grid-column: 1 / -1; grid-row: 1; max-width: 46rem; margin: 0 9rem 0 0; }
.contact__stage .contact__form { grid-column: 2; grid-row: 1; }
@media (max-width: 55.999rem) {
  .contact__stage { grid-template-columns: minmax(0, 1fr); max-width: 32rem; }
  .contact__stage .laptop { margin: 0; }
  .contact__stage .contact__form { grid-column: 1; grid-row: 2; margin: -2rem 0.75rem 0; }
}
/* the dashboard screen used in the contact block */
.dash { display: grid; grid-template-columns: 1fr 1fr 1fr; grid-template-rows: auto auto minmax(0, 1fr); gap: 0.5rem; padding: 0.75rem 0.875rem; height: calc(100% - 1.75rem); }
.dash__tile { padding: 0.5rem 0.625rem; border-radius: 6px; background: var(--impak-card); border: 1px solid var(--impak-paper-line); }
.dash__tile b { display: block; font: 700 1.125rem/1.1 var(--font-display); font-variant-numeric: tabular-nums lining-nums; }
.dash__tile span { font-size: 0.625rem; color: var(--impak-ink-muted); }
.dash__brand { grid-column: 1 / -1; display: flex; justify-content: space-between; align-items: center; font-weight: 700; font-size: 0.8125rem; }
.dash__brand span { padding: 0.125rem 0.5rem; border: 1px dashed var(--impak-ink-muted); border-radius: 4px; font-size: 0.625rem; font-weight: 600; color: var(--impak-ink-muted); }
.dash__map { grid-column: 1 / 3; position: relative; overflow: hidden; border-radius: 6px; }
.dash__map img { width: 100%; height: 100%; object-fit: cover; }
.dash__list { display: grid; align-content: start; gap: 0.375rem; }
.dash__list p { padding: 0.375rem 0.5rem; border-radius: 6px; background: var(--impak-card); border: 1px solid var(--impak-paper-line); font-weight: 600; font-size: 0.625rem; }
.dash__list small { display: block; font-weight: 500; color: var(--impak-ink-muted); }
.plans thead th:nth-child(n+3) .plans__for, .plans tfoot td span:not(.tag-indicative) { color: var(--impak-ink); }
.split__title { font-size: clamp(2.25rem, 1.4rem + 3vw, 3.5rem); line-height: 1.08; }
.outlined__card > .outlined__pair, .outlined__card > .outlined__media, .outlined__card > .figure-big { align-self: start; }
.outlined__pair img { aspect-ratio: 2 / 3; }
.outlined__media .cover-list { position: absolute; right: 0.625rem; top: 0.625rem; width: min(15rem, 60%); padding: 0.75rem; border-radius: 6px; background: var(--impak-card); color: var(--impak-ink); }
.left-title { max-width: 68rem; margin-inline: auto; }
.figure-big b { font-size: clamp(1.75rem, 1.4rem + 1.1vw, 2.375rem); }

/* ════════════════════════ Become a sponsor (Restor's Donate page) ════════════════════════ */

/* campaign hero: text left, sponsorship widget right */
.campaign { position: relative; isolation: isolate; padding-block: var(--space-9); background: var(--impak-bg-deep); color: var(--impak-text); overflow: hidden; }
.campaign::before { content: ""; position: absolute; inset: 0; z-index: -1; background: rgb(10 26 18 / 0.72); }
.campaign__grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 24rem); align-items: center; gap: var(--space-8); max-width: 66rem; margin-inline: auto; }
.campaign__title { font-size: clamp(2.25rem, 1.4rem + 3vw, 3.5rem); line-height: 1.06; letter-spacing: -0.02em; color: var(--impak-text); }
.campaign__text { margin-top: var(--space-5); max-width: 36rem; color: var(--impak-text); }
.campaign__label { margin-top: var(--space-5); font-weight: 700; color: var(--impak-accent); }
.campaign__list { margin-top: var(--space-3); padding-left: 1.125rem; display: grid; gap: 0.375rem; font-size: 0.9375rem; }
.campaign__list li::marker { color: var(--impak-accent); }
@media (max-width: 55.999rem) { .campaign__grid { grid-template-columns: minmax(0, 1fr); } }

.widget {
  display: grid;
  gap: var(--space-4);
  padding: var(--space-5);
  border-radius: var(--radius-lg);
  background: rgb(15 36 25 / 0.92);
  box-shadow: inset 0 0 0 1px var(--impak-line), var(--shadow-sheet);
}
.widget fieldset { margin: 0; padding: 0; border: 0; min-width: 0; }
.widget__goal { font: 700 0.6875rem/1.3 var(--font-data); font-variant-numeric: tabular-nums; letter-spacing: 0.08em; text-transform: uppercase; color: var(--impak-text-muted); }
.widget__tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; padding: 4px; border-radius: var(--radius-btn); background: var(--impak-bg-deep); }
.widget__tabs label { position: relative; display: grid; place-items: center; min-height: 2.5rem; border-radius: 4px; font-weight: 700; font-size: 0.875rem; color: var(--impak-text-muted); cursor: pointer; }
.widget__tabs input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.widget__tabs label:has(input:checked) { background: var(--impak-paper); color: var(--impak-ink); }
.widget__tabs label:has(input:focus-visible) { outline: 2px solid var(--impak-accent); outline-offset: 2px; }
.widget__give { font: 700 0.6875rem/1.3 var(--font-data); font-variant-numeric: tabular-nums; letter-spacing: 0.08em; text-transform: uppercase; color: var(--impak-text-muted); }
.widget__amount { display: block; margin-top: 0.25rem; font: 700 2.25rem/1.1 var(--font-data); font-variant-numeric: tabular-nums; color: var(--impak-text); }
.widget__per { font-size: 0.8125rem; color: var(--impak-text-muted); }
.widget input[type="range"] { width: 100%; margin: var(--space-3) 0 0.25rem; accent-color: var(--impak-accent); }
.widget__scale { display: flex; justify-content: space-between; font: 400 0.6875rem/1 var(--font-data); font-variant-numeric: tabular-nums; color: var(--impak-text-muted); }
.widget .btn { width: 100%; }
.widget__foot { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.25rem 0.75rem; font-size: 0.75rem; color: var(--impak-text-muted); }
.widget__foot span + span::before { content: "·"; margin-right: 0.75rem; }

/* big-figure stats row (Restor's Donate stats; figures in Jakarta with tabular numerals, D41) */
.intro-line { max-width: 40rem; margin-inline: auto; text-align: center; color: var(--impak-ink-muted); }
.mono-stats { list-style: none; display: flex; flex-wrap: wrap; justify-content: center; gap: var(--space-6) var(--space-9); margin-top: var(--space-7); text-align: center; }
.mono-stats b { display: block; font: 700 clamp(2.25rem, 1.6rem + 2.4vw, 3.5rem)/1 var(--font-data); font-variant-numeric: tabular-nums; }
.mono-stats span { display: block; max-width: 12rem; margin: var(--space-2) auto 0; font-size: 0.75rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--impak-ink-muted); }

/* projects across Malaysia: a dotted map with labelled pins (data-demo) */
.mymap { max-width: 68rem; margin: var(--space-7) auto 0; }
.mymap__svg { width: 100%; height: auto; overflow: hidden; }
.mymap__nb path { fill: none; stroke: var(--impak-line); stroke-width: 1; }
.mymap__land { fill: url(#mymap-dots); }
#mymap-dots circle { fill: var(--impak-text-muted); opacity: 0.55; }
.mymap__pins path { fill: none; stroke: var(--impak-text-muted); stroke-width: 1; }
.mymap__pins circle { fill: var(--impak-highlight); stroke: var(--impak-bg); stroke-width: 2; }
.mymap__pins text { fill: var(--impak-text); font: 600 13px/1 var(--font-sans); }
.mymap__list { display: none; }
@media (max-width: 47.999rem) {
  .mymap__pins text, .mymap__pins path { display: none; }
  .mymap__pins circle { r: 9; }
  .mymap__list { list-style: none; display: grid; gap: 0.5rem; margin-top: var(--space-5); font-size: 0.9375rem; }
  .mymap__list li { display: flex; align-items: center; gap: 0.625rem; }
  .mymap__list li::before { content: ""; flex: none; width: 0.625rem; height: 0.625rem; border-radius: 50%; background: var(--impak-highlight); }
}

/* feedback loop: four numbered cards with icon discs */
.loop { list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-5); max-width: 68rem; margin: var(--space-8) auto 0; }
.loop li { display: grid; align-content: start; gap: var(--space-3); padding: var(--space-5); border-radius: var(--radius); background: var(--impak-card); border: 1px solid var(--impak-paper-line); }
.loop__no { font: 700 0.8125rem/1 var(--font-data); font-variant-numeric: tabular-nums; color: var(--impak-ink-muted); }
.loop h3 { font: 700 1.125rem/1.3 var(--font-sans); }
.loop p { font-size: 0.9375rem; color: var(--impak-ink-muted); }
@media (max-width: 63.999rem) { .loop { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 35.999rem) { .loop { grid-template-columns: minmax(0, 1fr); } }

/* the 3-step flow with the filling ledger (Restor's donation diagram) */
.flow { max-width: 66rem; margin: var(--space-8) auto 0; padding: clamp(1.25rem, 0.6rem + 2.4vw, 2.25rem); border-radius: var(--radius-lg); background: var(--impak-bg-raised); }
.flow__steps { --gap: 2rem; list-style: none; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr) minmax(0, 1.7fr); gap: var(--gap); }
.step { position: relative; display: flex; flex-direction: column; padding: var(--space-5) var(--space-4); border-radius: var(--radius); background: var(--impak-bg); }
.step + .step::before, .step + .step::after { content: ""; position: absolute; pointer-events: none; }
.step + .step::before { right: calc(100% + 0.375rem); top: 2.1rem; width: calc(var(--gap) - 0.75rem); height: 1px; background: var(--impak-text-muted); opacity: 0.55; }
.step + .step::after { right: calc(100% + 0.375rem); top: calc(2.1rem - 3px); width: 7px; height: 7px; border: solid var(--impak-text-muted); border-width: 1px 1px 0 0; opacity: 0.7; transform: rotate(45deg); transform-origin: 75% 25%; }
.step__label { font: 700 0.6875rem/1 var(--font-data); font-variant-numeric: tabular-nums; letter-spacing: 0.1em; text-transform: uppercase; color: var(--impak-text-muted); }
.step__title { margin-top: var(--space-3); font: 700 1.0625rem/1.3 var(--font-sans); color: var(--impak-text); text-wrap: balance; }
.step__chip { align-self: start; margin-top: var(--space-4); padding: 0.375rem 0.875rem; border: 1px solid var(--impak-accent); border-radius: 99px; color: var(--impak-accent); font: 700 1rem/1.2 var(--font-data); font-variant-numeric: tabular-nums; }
.step__box { margin-top: var(--space-4); padding: 0.75rem; border: 1px solid var(--impak-accent); border-radius: var(--radius-s); }
.step__box b { display: block; font: 700 0.6875rem/1.2 var(--font-data); font-variant-numeric: tabular-nums; letter-spacing: 0.08em; text-transform: uppercase; color: var(--impak-accent); }
.step__box span { display: inline-block; margin: 0.375rem 0.25rem 0 0; padding: 0.125rem 0.5rem; border-radius: 99px; background: var(--impak-surface); font-size: 0.75rem; }
.ledger { display: grid; gap: 0.75rem; margin-top: var(--space-4); }
.ledger__grid { display: grid; grid-template-columns: 1.5rem minmax(0, 1fr); align-items: center; gap: 4px 0.5rem; }
.ledger__name { font: 700 0.6875rem/1 var(--font-data); font-variant-numeric: tabular-nums; color: var(--impak-text-muted); }
.ledger__cells { display: grid; grid-template-columns: repeat(12, minmax(0, 1.5rem)); gap: 4px; }
.ledger__cells i, .ledger__swatch { aspect-ratio: 1; border-radius: var(--radius-s); background: var(--impak-surface); }
.ledger__cells.is-released i, .ledger__cells.is-filling i, .ledger__swatch.is-released { background: var(--impak-accent); }
.ledger__key { display: flex; flex-wrap: wrap; gap: 0.25rem 1rem; font-size: 0.75rem; color: var(--impak-text-muted); }
.ledger__key > span { display: inline-flex; align-items: center; gap: 0.4375rem; }
.ledger__swatch { display: inline-block; width: 0.75rem; }
@media (prefers-reduced-motion: no-preference) {
  [data-inview="wait"] .is-filling i { background: var(--impak-surface); }
  [data-inview="go"] .is-filling i { animation: fill 200ms ease-out both; animation-delay: calc(0.5s + var(--n) * 110ms); }
}
@keyframes fill { from { background: var(--impak-surface); } to { background: var(--impak-accent); } }
@media (max-width: 63.999rem) {
  .flow__steps { --gap: 1.75rem; grid-template-columns: minmax(0, 1fr); max-width: 32rem; margin-inline: auto; }
  .step + .step::before { right: auto; left: 2rem; top: auto; bottom: calc(100% + 0.375rem); width: 1px; height: calc(var(--gap) - 0.75rem); }
  .step + .step::after { right: auto; left: calc(2rem - 3px); top: auto; bottom: calc(100% + 0.375rem); transform: rotate(135deg); transform-origin: 50% 50%; }
}

/* field photo row */
.photo-row { list-style: none; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: var(--space-3); max-width: 66rem; margin: var(--space-8) auto 0; }
.photo-row img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: var(--radius); }
@media (max-width: 47.999rem) { .photo-row { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* impact cards: label, big number, caption (Restor "measurable impact") */
.impact { list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-4); max-width: 66rem; margin: var(--space-8) auto 0; }
.impact li { display: grid; align-content: start; justify-items: center; gap: var(--space-3); padding: var(--space-5) var(--space-4) var(--space-6); border-radius: var(--radius); background: var(--impak-paper-tint); text-align: center; }
.impact li:nth-child(odd) { background: color-mix(in srgb, var(--impak-paper-tint), var(--impak-bg-raised) 8%); }
.impact small { font-size: 0.75rem; font-weight: 700; color: var(--impak-ink-muted); }
.impact b { font: 700 clamp(1.75rem, 1.4rem + 1.1vw, 2.375rem)/1.05 var(--font-display); letter-spacing: -0.02em; font-variant-numeric: tabular-nums lining-nums; }
.impact p { font-size: 0.875rem; color: var(--impak-ink-muted); }
@media (max-width: 55.999rem) { .impact { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* full-width photo band with one line */
.manifesto { position: relative; isolation: isolate; display: grid; place-items: center; min-height: clamp(20rem, 46svh, 28rem); padding-block: var(--space-8); color: var(--impak-text); text-align: center; overflow: hidden; }
.manifesto::before { content: ""; position: absolute; inset: 0; z-index: -1; background: rgb(10 26 18 / 0.62); }
.manifesto p { max-width: 22em; font: 500 clamp(1.75rem, 1.2rem + 2vw, 2.75rem)/1.2 var(--font-display); letter-spacing: -0.015em; text-wrap: balance; }

/* "Fair questions": title + note left, accordion right */
.fair { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); gap: var(--space-8); max-width: 66rem; margin-inline: auto; }
.fair__title { font-size: clamp(2.25rem, 1.4rem + 3vw, 3.5rem); line-height: 1.05; letter-spacing: -0.02em; }
.fair__intro p { margin-top: var(--space-4); color: var(--impak-ink-muted); }
.fair__intro a { display: inline-block; margin-top: var(--space-4); font-weight: 700; text-decoration-color: var(--impak-accent-deep); text-decoration-thickness: 2px; }
.fair .faq__list { margin: 0; max-width: none; }
.fair .faq__item:first-child { border-top: 1px solid var(--impak-paper-line); }
@media (max-width: 55.999rem) { .fair { grid-template-columns: minmax(0, 1fr); gap: var(--space-6); } }

.impact b { white-space: nowrap; font-size: clamp(1.75rem, 1.3rem + 1.4vw, 2.5rem); }

/* honest empty state for pages without content yet (Community, legal) */
.empty { display: grid; justify-items: center; max-width: 38rem; text-align: center; }
.empty__title { margin-top: var(--space-5); font-size: var(--step-3); line-height: 1.15; }
.empty p { margin-top: var(--space-3); color: var(--impak-ink-muted); }
.empty .hero__actions { margin-top: var(--space-6); }

/* ── Finish-review fixes (session 3) ── */

/* Team: one composed visual, discs joined into a network (stands in for Restor's connected illustration) */
.network { position: relative; width: min(100%, 20rem); aspect-ratio: 1; margin-inline: auto; }
.network__lines { position: absolute; inset: 0; width: 100%; height: 100%; }
.network__lines path { fill: none; stroke: var(--impak-highlight); stroke-width: 1.5; stroke-dasharray: 4 5; }
.network .disc { position: absolute; translate: -50% -50%; box-shadow: 0 0 0 8px var(--impak-paper); }
.network__n1 { left: 50%; top: 20%; }
.network__n2 { left: 20%; top: 52.5%; }
.network__n3 { left: 80%; top: 52.5%; }
.network__n4 { left: 50%; top: 80%; }
.network__hub { position: absolute; left: 50%; top: 52.5%; width: 0.875rem; height: 0.875rem; translate: -50% -50%; border-radius: 50%; background: var(--impak-highlight); box-shadow: 0 0 0 6px var(--impak-paper); }
@media (max-width: 55.999rem) { .network { display: none; } }

/* Lens: the carbon card carries the project's satellite scene, the figure sits on it as a chip */
.carbon img { aspect-ratio: 4 / 3; }
.outlined__media .carbon__chip { position: absolute; left: 0.75rem; right: auto; bottom: 0.75rem; display: grid; gap: 0.125rem; padding: 0.625rem 0.875rem; border-radius: 6px; background: var(--impak-card); color: var(--impak-ink); }
.outlined__media .carbon__chip { font-size: 0.8125rem; }
.carbon__chip b { font: 700 clamp(1.5rem, 1.2rem + 1vw, 2rem)/1.1 var(--font-display); font-variant-numeric: tabular-nums lining-nums; }
.carbon__chip span { color: var(--impak-ink-muted); }

/* Plans table on small screens: row labels stay put, tiers scroll, and the page says so */
.plans-hint { display: none; }
@media (max-width: 47.999rem) {
  .plans-hint { display: block; margin-top: var(--space-4); font-size: 0.8125rem; font-weight: 600; color: var(--impak-ink-muted); }
  .plans { min-width: 0; width: max-content; }
  .plans tbody th[scope="row"], .plans tfoot th, .plans thead td { position: sticky; left: 0; z-index: 1; width: 9.5rem; min-width: 9.5rem; max-width: 9.5rem; background: var(--impak-paper); box-shadow: 1px 0 0 var(--impak-paper-line); font-size: 0.8125rem; }
  .plans tbody tr:nth-child(even) th[scope="row"] { background: var(--impak-card); }
  .plans tfoot th { background: var(--t2); }
  .plans thead th, .plans tbody td, .plans tfoot td { min-width: 8.5rem; width: 8.5rem; }
  .plans tbody th[colspan] { position: sticky; left: 0; }
  .plans-wrap { -webkit-mask-image: linear-gradient(90deg, #000 85%, transparent); mask-image: linear-gradient(90deg, #000 85%, transparent); }
}

/* ════════════════════════ Funding page (funding.html, D44) ════════════════════════
   Restor's funding-opportunities page (photo hero, left-aligned title, sign-up panel with a sample card),
   told from the project owner's side: the same tranche the sponsor page shows, seen from the field. */

/* hero: left-aligned title over a field photo; the listing panel sits inside it, as on Restor */
.fund-hero { position: relative; isolation: isolate; padding-block: var(--space-9) var(--space-8); background: var(--impak-bg-deep); color: var(--impak-text); overflow: hidden; }
.fund-hero__img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; object-position: 0% 30%; }
.fund-hero::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background:
    linear-gradient(90deg, color-mix(in srgb, var(--impak-bg-deep) 55%, transparent) 0%, color-mix(in srgb, var(--impak-bg-deep) 25%, transparent) 55%, transparent 80%),
    linear-gradient(180deg, color-mix(in srgb, var(--impak-bg-deep) 62%, transparent) 0%, color-mix(in srgb, var(--impak-bg-deep) 80%, transparent) 38%, var(--impak-bg-deep) 82%);
}
.fund-hero__inner { max-width: 68rem; margin-inline: auto; }
.fund-hero__title { max-width: 13em; font-size: clamp(2.375rem, 1.3rem + 3.8vw, 4.25rem); line-height: 1.06; letter-spacing: -0.028em; color: var(--impak-text); }
.fund-hero__lede { max-width: 40rem; margin-top: var(--space-5); font-size: var(--step-1); line-height: 1.5; text-wrap: pretty; }
.fund-hero__aside { margin-top: var(--space-3); font-size: 0.9375rem; color: var(--impak-text-muted); }
.fund-hero__lede a, .fund-hero__aside a, .upclose__link {
  color: inherit; font-weight: 600; text-decoration: underline;
  text-decoration-color: var(--impak-paper-line); text-decoration-thickness: 2px; text-underline-offset: 0.22em;
}
.fund-hero__aside a { color: var(--impak-text); }
.fund-hero__lede a:hover, .fund-hero__aside a:hover, .upclose__link:hover { text-decoration-color: var(--impak-accent-deep); }

.fund-panel {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 19rem); align-items: center; gap: var(--space-8);
  margin-top: var(--space-8); padding: clamp(1.5rem, 0.8rem + 2.4vw, 2.75rem);
  border: 1px solid var(--impak-paper-line); border-radius: var(--radius-lg); background: var(--impak-card);
}
.fund-panel__title { font-size: var(--step-3); line-height: 1.12; letter-spacing: -0.022em; }
.fund-panel__intro { margin-top: var(--space-3); color: var(--impak-ink-muted); }
.fund-panel .checks { margin-top: var(--space-5); gap: var(--space-3); }
.fund-panel .checks li { font-size: 1rem; }
.fund-panel .checks b { font-weight: 700; color: var(--impak-heading); }
.fund-panel__actions { display: flex; flex-wrap: wrap; gap: var(--space-3); margin-top: var(--space-6); }
@media (max-width: 55.999rem) {
  .fund-panel { grid-template-columns: minmax(0, 1fr); gap: var(--space-7); }
  .fund-panel .listing { max-width: 22rem; }
}
@media (max-width: 26.25rem) { .fund-panel__actions .btn { flex: 1 1 100%; } }

/* sample listing card (Restor's grant card, as an IMPAK project listing) */
.listing { position: relative; margin: 0; overflow: hidden; border: 1px solid var(--impak-paper-line); border-radius: var(--radius); background: var(--impak-paper); }
.listing__map { position: relative; aspect-ratio: 4 / 3; }
.listing__map img { width: 100%; height: 100%; object-fit: cover; }
.listing__map svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.listing__map .boundary { fill: color-mix(in srgb, var(--impak-signal) 16%, transparent); stroke: var(--impak-signal); stroke-width: 2; }
.listing .app__flag { top: 0.5rem; bottom: auto; }
.listing__body { display: grid; gap: 0.25rem; padding: 0.875rem 1rem 1rem; font-size: 0.8125rem; line-height: 1.4; }
.listing__title { font: 700 0.9375rem/1.3 var(--font-sans); color: var(--impak-heading); }
.listing__meta { color: var(--impak-ink-muted); font-variant-numeric: tabular-nums; }
.listing__tags { display: flex; flex-wrap: wrap; gap: 0.375rem; margin-top: 0.5rem; }
.listing .pill { padding: 0.1875rem 0.5625rem; font-size: 0.75rem; }
.pill--live::before { content: ""; width: 0.4375rem; height: 0.4375rem; border-radius: 50%; background: var(--impak-accent); }

/* the journey: five stops, who acts at each, joined by the gold trail (the Team network's dashed line) */
.journey { --gap: var(--space-5); list-style: none; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--space-6) var(--gap); max-width: 70rem; margin: var(--space-8) auto 0; }
.journey__stop { position: relative; display: grid; align-content: start; justify-items: start; gap: var(--space-2); }
.journey__stop .disc { --d: 3.5rem; margin-bottom: var(--space-2); }
.journey__stop:not(:last-child)::after {
  content: ""; position: absolute; top: 1.75rem; left: calc(3.5rem + 0.75rem); right: calc(-1 * var(--gap) + 0.75rem);
  border-top: 2px dashed color-mix(in srgb, var(--impak-highlight) 60%, transparent);
}
.journey__who { padding: 0.125rem 0.625rem; border: 1px solid var(--impak-highlight); border-radius: 99px; font-size: 0.8125rem; font-weight: 700; color: var(--impak-highlight); }
.journey__who--you { background: var(--impak-highlight); color: var(--impak-highlight-ink); }
.journey__title { margin-top: 0.25rem; font-size: 1.1875rem; line-height: 1.25; }
.journey__text { font-size: 0.9375rem; line-height: 1.5; color: var(--impak-ink-muted); }
@media (max-width: 63.999rem) {
  .journey { --gap: var(--space-6); grid-template-columns: minmax(0, 1fr); max-width: 34rem; }
  .journey__stop { grid-template-columns: 3.5rem minmax(0, 1fr); column-gap: var(--space-4); }
  .journey__stop .disc { grid-row: 1 / span 3; margin-bottom: 0; }
  .journey__stop > :not(.disc) { grid-column: 2; }
  .journey__stop:not(:last-child)::after { top: calc(3.5rem + 0.5rem); bottom: calc(-1 * var(--gap) + 0.5rem); left: 1.75rem; right: auto; border-top: 0; border-left: 2px dashed color-mix(in srgb, var(--impak-highlight) 60%, transparent); }
}

/* one milestone, up close: the record of a tranche, filled in as it is proven */
.upclose { display: grid; grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr); align-items: center; gap: var(--space-8); max-width: 66rem; margin-inline: auto; }
.upclose__title { font-size: clamp(2rem, 1.3rem + 2.6vw, 3.25rem); line-height: 1.06; letter-spacing: -0.024em; }
.upclose__text { margin-top: var(--space-4); color: var(--impak-ink-muted); }
.upclose__link { display: inline-block; margin-top: var(--space-5); color: var(--impak-heading); }
@media (max-width: 55.999rem) { .upclose { grid-template-columns: minmax(0, 1fr); gap: var(--space-7); } }

.record { position: relative; display: grid; margin: 0; padding: clamp(1.25rem, 0.8rem + 1.6vw, 2rem); border: 1px solid var(--impak-paper-line); border-radius: var(--radius-lg); background: var(--impak-card); }
.record__head { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.25rem 1rem; padding-bottom: var(--space-4); border-bottom: 1px solid var(--impak-paper-line); font-size: 0.875rem; color: var(--impak-ink-muted); }
.record__head b { font-size: 1rem; color: var(--impak-heading); }
.record__steps { position: relative; list-style: none; display: grid; margin-top: var(--space-4); }
.record__steps::before { content: ""; position: absolute; left: calc(0.625rem - 1px); top: 1rem; bottom: 1.75rem; width: 2px; background: var(--impak-accent); transform-origin: top; }
.record__step { position: relative; display: grid; grid-template-columns: 1.25rem minmax(0, 1fr) auto; align-items: start; column-gap: 0.875rem; padding-block: 0.6875rem; }
.record__step .check { position: relative; z-index: 1; margin-top: 0.125rem; box-shadow: 0 0 0 4px var(--impak-card); }
.record__step b { display: block; font-weight: 700; color: var(--impak-heading); }
.record__thumbs { display: flex; align-items: center; gap: 0.375rem; margin-top: 0.5rem; }
.record__thumbs img { width: 2.5rem; height: 2.5rem; border-radius: var(--radius-s); object-fit: cover; }
.record__thumbs i { font-style: normal; font-size: 0.75rem; font-weight: 700; color: var(--impak-ink-muted); }
.record__step small { display: block; margin-top: 0.125rem; font-size: 0.8125rem; line-height: 1.45; color: var(--impak-ink-muted); font-variant-numeric: tabular-nums; }
.record__amount { align-self: center; font: 700 clamp(1.25rem, 1.05rem + 0.8vw, 1.625rem)/1 var(--font-data); font-variant-numeric: tabular-nums lining-nums; letter-spacing: -0.01em; color: var(--impak-accent); white-space: nowrap; }
.record__step--paid { margin-top: var(--space-2); padding-inline: 0.875rem; margin-inline: -0.875rem; border-radius: var(--radius); background: color-mix(in srgb, var(--impak-accent) 10%, var(--impak-card)); }
.record__step--paid .check { box-shadow: none; }
.record .app__flag { position: static; justify-self: end; margin-top: var(--space-4); }
@media (max-width: 26.25rem) { .record__step { grid-template-columns: 1.25rem minmax(0, 1fr); } .record__amount { grid-column: 2; margin-top: 0.375rem; } }
@media (prefers-reduced-motion: no-preference) {
  [data-inview="wait"] .record__steps::before { transform: scaleY(0); }
  [data-inview="wait"] .record__step .check { opacity: 0; transform: scale(0.6); }
  [data-inview="go"] .record__steps::before { animation: rail 1.5s var(--ease-out) 0.2s both; }
  [data-inview="go"] .record__step .check { animation: tick 360ms var(--ease-out) both; animation-delay: calc(0.25s + var(--n) * 0.3s); }
}
@keyframes rail { from { transform: scaleY(0); } }
@keyframes tick { from { opacity: 0; transform: scale(0.6); } }

/* what helps a listing get funded: a short, practical list beside its heading */
.ready { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); gap: var(--space-8); max-width: 66rem; margin-inline: auto; }
.ready__title { font-size: clamp(2rem, 1.3rem + 2.6vw, 3.25rem); line-height: 1.06; letter-spacing: -0.024em; }
.ready__intro p { margin-top: var(--space-4); color: var(--impak-ink-muted); }
.ready__list { list-style: none; display: grid; }
.ready__item { display: grid; grid-template-columns: 1.25rem minmax(0, 1fr); column-gap: var(--space-4); padding-block: var(--space-5); border-top: 1px solid var(--impak-paper-line); }
.ready__item:last-child { border-bottom: 1px solid var(--impak-paper-line); }
.ready__item .check { margin-top: 0.25rem; }
.ready__item > :not(.check) { grid-column: 2; }
.ready__feeds { margin-top: var(--space-3) !important; font-size: 0.8125rem; color: var(--impak-ink-muted); }
.ready__feeds b { display: inline-block; margin-left: 0.25rem; padding: 0.0625rem 0.5rem; border: 1px solid var(--impak-paper-line); border-radius: 99px; font-weight: 700; color: var(--impak-heading); }
.ready__item h3 { font-size: 1.1875rem; line-height: 1.3; }
.ready__item p { margin-top: 0.25rem; color: var(--impak-ink-muted); }
@media (max-width: 55.999rem) { .ready { grid-template-columns: minmax(0, 1fr); gap: var(--space-6); } }

/* closing call: a short statement band, then the shared contact form */
.fund-close { text-align: center; }
.fund-close__title { max-width: 16em; margin-inline: auto; font-size: clamp(2.25rem, 1.4rem + 3vw, 3.5rem); line-height: 1.08; letter-spacing: -0.024em; color: var(--impak-text); }
.fund-close__text { max-width: 34rem; margin: var(--space-4) auto 0; font-size: var(--step-1); line-height: 1.5; color: var(--impak-text-muted); }
.fund-close .hero__actions { margin-top: var(--space-6); }

/* ---- Lean site (2026-11-13): honest screens and "today / coming soon" ---- */
/* Dashboard mock shows the real section names instead of invented figures */
.dash__tile--tab b { font: 700 0.75rem/1.2 var(--font-sans); letter-spacing: 0; }
.dash__tile--tab span { display: block; margin-top: 0.125rem; line-height: 1.3; }

/* IMPAKInvest: what is live today and what is coming */
.included { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: var(--space-5); max-width: 62rem; margin: var(--space-7) auto 0; }
.included__col { padding: var(--space-6); border: 1px solid var(--impak-paper-line); border-radius: var(--radius); background: var(--impak-card); }
.included__col--soon { background: transparent; border-style: dashed; }
.included__title { font: 700 var(--step-1)/1.3 var(--font-sans); }
.included .checks { margin-top: var(--space-5); gap: var(--space-3); }
.soon-list { list-style: none; display: grid; gap: var(--space-3); margin-top: var(--space-5); }
.soon-list li { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: baseline; gap: 0.75rem; color: var(--impak-ink-muted); }
.soon-list li::before { content: "Soon"; padding: 0.0625rem 0.5rem; border: 1px solid var(--impak-highlight); border-radius: 99px; color: var(--impak-highlight); font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; }
@media (max-width: 47.999rem) { .included { grid-template-columns: minmax(0, 1fr); } }

/* Become a sponsor: the widget explains how a sponsorship starts (no invented amounts) */
.widget__steps { list-style: none; counter-reset: ws; display: grid; gap: 0.625rem; margin-top: var(--space-3); }
.widget__steps li { counter-increment: ws; display: grid; grid-template-columns: 1.5rem minmax(0, 1fr); gap: 0.625rem; align-items: baseline; font-size: 0.9375rem; line-height: 1.4; color: var(--impak-text); }
.widget__steps li::before { content: counter(ws); display: grid; place-items: center; width: 1.5rem; aspect-ratio: 1; border-radius: 50%; background: var(--impak-bg-raised); font-size: 0.75rem; font-weight: 800; color: var(--impak-accent); }
