/* Shared BRITER layout standard: repeated items align as one visual set. */
:where(
  .cards,
  .collection,
  .culture-grid,
  .measure-grid,
  .deep-grid,
  .article-grid,
  .identity-path,
  .area-map,
  .phase-grid,
  .covenant-grid,
  .continuum-track,
  .library-grid,
  .concept-grid,
  .result-grid,
  .fact-grid,
  .plan-grid,
  .quadrants,
  .questions,
  .steps,
  .source-grid,
  .story-grid,
  .metrics-grid,
  .signal-grid,
  .paths,
  .journey,
  .measures,
  .practice,
  .practices,
  .levels,
  .contrast,
  .facilitate,
  .decks
) {
  align-items: stretch;
  grid-auto-rows: 1fr;
}

:where(
  .cards,
  .collection,
  .culture-grid,
  .measure-grid,
  .deep-grid,
  .article-grid,
  .identity-path,
  .area-map,
  .phase-grid,
  .covenant-grid,
  .continuum-track,
  .library-grid,
  .concept-grid,
  .result-grid,
  .fact-grid,
  .plan-grid,
  .quadrants,
  .questions,
  .steps,
  .source-grid,
  .story-grid,
  .metrics-grid,
  .signal-grid,
  .paths,
  .journey,
  .measures,
  .practice,
  .practices,
  .levels,
  .contrast,
  .facilitate,
  .decks
) > * {
  min-width: 0;
  height: 100%;
}

/* Keep headings and supporting copy aligned inside common repeated cards. */
:where(
  .culture-card,
  .measure,
  .deep-link,
  .article-card,
  .item,
  .stage,
  .phase,
  .question,
  .source,
  .result-card,
  .plan-card,
  .practice > article,
  .practices > article,
  .concept-grid > article,
  .library-grid > article
) {
  align-self: stretch;
}

/* Detail pass: repeated choices should read as a system, not as uneven tiles. */
:where(
  .route,
  .offering-card,
  .assessment,
  .cycle-card,
  .evidence-card,
  .identity-path > article,
  .assessment-grid > article,
  .steps > article,
  .reason,
  .quadrant,
  .week-slide,
  .game,
  .tool-card,
  .method-card
) {
  min-width: 0;
}

:where(
  .route,
  .offering-card,
  .assessment,
  .cycle-card,
  .evidence-card,
  .identity-path > article,
  .assessment-grid > article,
  .steps > article,
  .week-slide
) {
  display: flex;
  flex-direction: column;
}

.offering-grid {
  align-items: stretch;
  grid-auto-rows: 1fr;
}

.offering-card b {
  display: block;
  margin-top: auto;
  padding-top: 13px;
}

:where(
  .route small,
  .assessment-grid b,
  .steps b,
  .reason b:first-child,
  .countdown b:first-child,
  .architecture-number,
  .decision-number
) {
  font-family: "Playfair Display", Georgia, serif;
  font-weight: 700;
  line-height: .9;
}

:where(.route small, .assessment-grid b, .steps b, .reason b:first-child) {
  display: inline-block;
  letter-spacing: .08em;
}

:where(.article .lead, .intro .mission, .dek):first-letter {
  float: left;
  font-family: "Playfair Display", Georgia, serif;
  font-size: 3.1em;
  line-height: .82;
  margin: .07em .12em 0 0;
  color: var(--purple, #7e3f8f);
}

@media (max-width: 620px) {
  :where(.article .lead, .intro .mission, .dek):first-letter {
    float: none;
    font-size: 1em;
    line-height: inherit;
    margin: 0;
  }
}
