/* ============================================================
   Container — shared responsive layout constraint
   Provides 1024px max content width with responsive side padding.
   Import this in any component that uses the .container class.
   ============================================================ */

.container {
  position:   relative;
  width:      100%;
  max-width:  calc(1024px + 160px); /* 1024px content + 80px × 2 */
  padding:    0 80px;
  margin:     0 auto;
  box-sizing: border-box;
}

/* Tablet (≤991px): 60px sides */
@media (max-width: 991px) {
  .container {
    padding: 0 60px;
  }
}

/* Landscape mobile (≤767px): 2rem sides */
@media (max-width: 767px) {
  .container {
    padding: 0 2rem;
  }
}



/* ============================================================
   Wide container — 1360px content + 48px side padding
   Used for full-bleed section content blocks (slider, big cards)
   that need to be wider than the standard 1024px text container.
   ============================================================ */

.container-wide {
  width:      100%;
  max-width:  calc(1384px + 96px);   /* 1384px content + 48px × 2 */
  padding:    0 3rem;                /* 48px sides */
  margin:     0 auto;
  box-sizing: border-box;
}

/* Tablet (≤991px): 16px less than .container (60px → 44px) */
@media (max-width: 991px) {
  .container-wide {
    padding: 0 44px;
  }
}

/* Landscape mobile (≤767px): 16px less than .container (2rem → 1rem) */
@media (max-width: 767px) {
  .container-wide {
    padding: 0 1rem;
  }
}


/* ============================================================
   DataReportMethodologySection — Figma 6JdV8D0ZGECx2whzGAnTrs, node 6797:2202.
   Spec: DataReportMethodologySection.figma.md.
   ============================================================ */

.data-report-methodology {
  /* White ground — NOT `var(--background)`; this page inverts the site's
     scheme. See `--background-white` (src/styles/tokens.css). */
  background: var(--background-white);
}

/* The section-header + sticky-badge convention: THIS stack owns the
   header → content gap. `.hp-section`'s own gap separates containers, not the
   header from the content — without this stack the two render flush at 0px.
   See docs/conventions.md. Figma's 64px matches the convention's 4rem. */
.data-report-methodology__content {
  display:        flex;
  flex-direction: column;
  gap:            4rem;   /* 64px, flat at every width */
}


/* ---- Headline figures (6797:2215) ------------------------- */

.data-report-methodology__stats {
  display: flex;
  gap:     4rem;          /* 64px */
}

.data-report-methodology__stat {
  display:        flex;
  flex-direction: column;
  gap:            var(--spacing-4);   /* 16px */
  flex:           1 1 0;
  min-width:      0;
}

/* Figma: 96px, II Increments Sans LIGHT — the SANS face, not this page's
   display serif. Worth stating: every other oversized number on this page is
   serif, so the temptation is to reach for --font-family-serif here. */
.data-report-methodology__figure {
  margin:      0;
  font-family: var(--font-family-default);
  font-size:   6rem;                          /* 96px */
  line-height: normal;                        /* Figma: leading-normal */
  font-weight: var(--font-weight-light);      /* 300 */
  color:       var(--color-brand-blue-700);   /* #186581 */
  white-space: nowrap;
}

/* Figma draws the rule as a 1.5px line node between the figure and its
   caption; a border-top on the caption is the same pixel and one fewer node. */
.data-report-methodology__stat-label {
  margin:      0;
  padding-top: var(--spacing-4);              /* 16px — the line's own gap */
  border-top:  1.5px solid var(--color-brand-blue-700);
  font-size:   var(--font-size-base);         /* 16px */
  line-height: var(--line-height-base);       /* 24px */
  color:       var(--color-brand-blue-700);
}


/* ---- Caveat + definitions (6797:2668) --------------------- */

.data-report-methodology__notes {
  display:        flex;
  flex-direction: column;
  gap:            var(--spacing-6);   /* 24px */
}

.data-report-methodology__body {
  margin:      0;
  max-width:   900px;                 /* Figma text-node max-width */
  font-size:   var(--font-size-xl);   /* 20px */
  line-height: var(--line-height-xl); /* 28px */
  color:       var(--foreground);
}

.data-report-methodology__body > strong {
  font-weight: var(--font-weight-bold);
}

/* `align-items: stretch` so both cards match height when one wraps to more
   lines than the other. */
.data-report-methodology__cards {
  display:     flex;
  align-items: stretch;
  gap:         var(--spacing-4);      /* 16px */
}


/* ---- Responsive ------------------------------------------- */

@media (max-width: 991px) {
  .data-report-methodology__stats {
    gap: 2rem;
  }

  .data-report-methodology__figure {
    font-size: 4.5rem;   /* 72px */
  }
}

/* Mobile is MEASURED against Figma CRrdcRif8N6jgEWK28BDb5 node 6850:13643
   — see ../DataReportPage.mobile.figma.md. */
@media (max-width: 767px) {
  /* Figma: heading ends y=2195, the first stat starts 2231. (The same stack
     also carries stats → body at 32px; one flex gap cannot be both, and 4px
     is below the threshold of anything visible.)

     NOTE this is a third value for a stack `docs/conventions.md` specifies as
     `gap: 4rem` flat at every width — it was already 3rem here before the
     mobile frame landed, and 36px is what the frame measures. */
  .data-report-methodology__content {
    gap: 2.25rem;        /* 36px */
  }

  .data-report-methodology__stats,
  .data-report-methodology__cards {
    flex-direction: column;
  }

  /* Each stat hugs its own figure so the rule under it is the width of the
     NUMBER — 258px under "3,232,642", 154px under "4,210" — instead of running
     the full column. `flex: 1 1 0` would stretch them back out. */
  .data-report-methodology__stat {
    flex:  0 0 auto;
    width: fit-content;
  }

  /* 60px, not 56: Figma's figure node is 66px tall and II Increments Sans at
     `line-height: normal` runs ~1.107, so 66 / 1.107 = 60. */
  .data-report-methodology__figure {
    font-size: 3.75rem;  /* 60px */
  }

  /* Figma tightens both sides of the rule from 16px to 12px. */
  .data-report-methodology__stat {
    gap: var(--spacing-3);   /* 12px */
  }

  .data-report-methodology__stat-label {
    padding-top: var(--spacing-3);   /* 12px */
  }

  /* 18px/28px — see `--background-white` (src/styles/tokens.css). */
  .data-report-methodology__body {
    font-size:   var(--font-size-lg);
    line-height: var(--line-height-lg);
  }

  .data-report-methodology__notes {
    gap: var(--spacing-8);   /* 32px — Figma body ends y=2839, cards start 2871 */
  }

  /* Cards sit on the frame's 16px MEDIA inset, not the 32px text inset that
     `.container` gives them at this width. */
  .data-report-methodology__cards {
    gap:           var(--spacing-3);   /* 12px */
    margin-inline: -1rem;
  }
}

/* ============================================================
   DataReportNoteCard — Figma "Feature (medium)" (e.g. node 6797:2672).
   ============================================================ */

.data-report-note {
  display:       flex;
  align-items:   flex-start;
  gap:           14px;                 /* Figma spacing-3.5; no 14px token */
  flex:          1 1 0;
  min-width:     0;
  padding:       var(--spacing-6);     /* 24px */
  background:    var(--panel-cream);
  border-radius: 12px;                 /* no 12px radius token — scale is 8/16/24 */
  box-sizing:    border-box;
}

.data-report-note__icon {
  display:     flex;
  flex-shrink: 0;
  width:       24px;
  height:      24px;
  color:       var(--foreground);
}

.data-report-note__text {
  margin:      0;
  font-size:   var(--font-size-base);    /* 16px */
  line-height: var(--line-height-base);  /* 24px */
  color:       var(--foreground);
}

.data-report-note__text > strong {
  font-weight: var(--font-weight-bold);
}

