/*
 * RAVA P02 Public Harmonization
 * Final visual alignment across Discover, Archive, Coffee Record, Compare,
 * Roasteries and Collections. Loaded after all P02 slice styles.
 */

.rava-native-public {
  --p24-paper: var(--rava-color-canvas, #f8f6f1);
  --p24-surface: var(--rava-color-surface, #fffdfa);
  --p24-stone: var(--rava-color-surface-muted, #eeebe4);
  --p24-ink: var(--rava-color-text, #1a1d1a);
  --p24-ink-2: var(--rava-color-text-secondary, #39403a);
  --p24-muted: var(--rava-color-text-muted, #646b64);
  --p24-line: var(--rava-color-border, #d4d0c7);
  --p24-line-soft: var(--rava-color-border-soft, #e7e3db);
  --p24-forest: var(--rava-color-accent, #2e5b46);
  --p24-copper: var(--rava-color-highlight, #9a5941);
  --p24-display: var(--rava-font-display, Estedad, Vazirmatn, sans-serif);
  --p24-ui: var(--rava-font-ui, Vazirmatn, sans-serif);
  --p24-mono: var(--rava-font-mono, ui-monospace, monospace);
  --p24-section-space: clamp(3.75rem, 7vw, 6.5rem);
}

.rava-native-public .p2-page {
  overflow: clip;
}

.rava-native-public :where(
  .p21-section__head,
  .p22-record-section__intro,
  .p23-section-head,
  .p23-profile-about header,
  .p23-activity header
) > :where(h2, p) {
  text-wrap: balance;
}

.rava-native-public :where(
  .p21-coffee-card,
  .p23-roastery-card,
  .p23-collection-card,
  .p23-ranked-record
) {
  --p24-card-radius: 10px;
}

.rava-native-public :where(.p21-coffee-card, .p23-roastery-card) {
  border-radius: var(--p24-card-radius);
}

.rava-native-public :where(
  .p21-coffee-card__title,
  .p23-roastery-card__copy > strong,
  .p23-ranked-record__identity h3
) {
  text-wrap: pretty;
}

.rava-native-public :where(
  .p21-coffee-card__meta,
  .p21-coffee-card__footer,
  .p23-profile-stats,
  .p23-collection-card__meta
) {
  font-variant-numeric: tabular-nums;
}

/* Directory heroes: editorial, but never larger than their content. */
.p23-directory-hero__grid,
.p23-collections-hero__grid {
  min-height: clamp(24rem, 58vh, 31rem);
  align-items: center;
  padding-block: clamp(3.5rem, 6vw, 5.5rem);
}

.p23-directory-hero h1,
.p23-collections-hero h1 {
  max-width: 13ch;
  font-size: clamp(3.2rem, 5.9vw, 5.9rem);
  line-height: 1.04;
}

.p23-directory-index,
.p23-collections-hero dl {
  align-self: center;
  box-shadow: 0 18px 55px rgb(26 29 26 / 5%);
}

.p23-directory-index > div,
.p23-collections-hero dl > div {
  min-height: 7.5rem;
}

/* Sparse directories become intentional editorial compositions. */
.p24-sparse-layout {
  display: block;
}

.p24-sparse-layout.is-sparse {
  display: grid;
  grid-template-columns: minmax(0, 1.42fr) minmax(17rem, .58fr);
  gap: clamp(1.25rem, 3vw, 2.5rem);
  align-items: stretch;
}

.p24-sparse-layout.is-sparse .p23-roastery-grid,
.p24-sparse-layout.is-sparse .p23-collection-grid {
  min-width: 0;
}

.p23-roastery-grid.is-sparse,
.p23-collection-grid.is-sparse {
  grid-template-columns: minmax(0, 1fr);
}

.p23-roastery-grid.is-sparse .p23-roastery-card {
  min-height: 100%;
}

.p23-roastery-card.is-featured .p23-roastery-card__main {
  min-height: 16.5rem;
  grid-template-columns: 5.2rem minmax(0, 1fr) auto;
  align-items: center;
  padding: clamp(1.4rem, 3vw, 2.2rem);
}

.p23-roastery-card.is-featured .p23-profile-avatar {
  width: 5.2rem;
}

.p23-roastery-card.is-featured .p23-roastery-card__copy > strong {
  font-size: clamp(1.6rem, 3vw, 2.6rem);
}

.p23-roastery-card.is-featured .p23-roastery-card__copy small {
  max-width: 48rem;
  font-size: .82rem;
  -webkit-line-clamp: 4;
}

.p23-collection-grid.is-sparse {
  display: grid;
}

.p23-collection-grid.is-sparse .p23-collection-card,
.p23-collection-grid.is-sparse .p23-collection-card:nth-child(n) {
  grid-column: auto;
  min-height: 26rem;
}

.p24-sparse-note {
  min-height: 100%;
  display: grid;
  align-content: end;
  gap: .8rem;
  padding: clamp(1.5rem, 3vw, 2.4rem);
  border: 1px solid var(--p24-line);
  background:
    linear-gradient(145deg, rgb(46 91 70 / 9%), transparent 58%),
    var(--p24-stone);
}

.p24-sparse-note--collection {
  background:
    linear-gradient(145deg, rgb(154 89 65 / 10%), transparent 58%),
    var(--p24-stone);
}

.p24-sparse-note > span {
  color: var(--p24-muted);
  font-size: .61rem;
  letter-spacing: .08em;
}

.p24-sparse-note > strong {
  max-width: 14ch;
  font: 600 clamp(1.8rem, 3.4vw, 3.1rem)/1.2 var(--p24-display);
  letter-spacing: -.03em;
}

.p24-sparse-note > p {
  max-width: 35rem;
  margin: 0;
  color: var(--p24-ink-2);
  font-size: .78rem;
  line-height: 1.95;
}

.p24-sparse-note > a {
  width: fit-content;
  margin-block-start: .55rem;
  color: var(--p24-ink);
  font-size: .72rem;
  font-weight: 760;
  text-decoration: none;
}

.p24-sparse-note > a:is(:hover, :focus-visible) {
  color: var(--p24-forest);
  text-decoration: underline;
}

/* Roastery facts can contain long equipment lists without breaking layout. */
.p23-profile-facts strong {
  overflow-wrap: anywhere;
}

.p23-profile-facts div {
  align-content: start;
}

/* Shared card and section rhythm. */
.p23-directory-results,
.p23-collection-index {
  padding-block: clamp(2rem, 4vw, 3.5rem) var(--p24-section-space);
}

.p23-profile-records,
.p23-profile-about,
.p23-activity,
.p23-ranked-section {
  padding-block: var(--p24-section-space);
}

.p23-section-head {
  margin-block-end: clamp(1.5rem, 3vw, 2.4rem);
}

.p23-section-head h2,
.p23-profile-about h2,
.p23-activity h2 {
  max-width: 16ch;
  font-size: clamp(2.2rem, 4.2vw, 4rem);
  line-height: 1.13;
}

.p23-collection-card__copy > strong,
.p23-profile-identity h1,
.p22-record-identity h1 {
  text-wrap: balance;
}

/* Footer presentation is owned by the global P01 shell contract. */

/* Mobile route harmony and fixed-navigation safety. */
@media (max-width: 760px) {
  .rava-native-public {
    scroll-padding-block-end: calc(var(--rava-mobile-nav-height, 68px) + 1.5rem);
  }


  .p23-directory-hero__grid,
  .p23-collections-hero__grid {
    gap: 1.35rem;
    padding-block: 2.1rem 1.5rem;
  }

  .p23-directory-hero h1,
  .p23-collections-hero h1 {
    max-width: 13ch;
    margin-block: .5rem .8rem;
    font-size: clamp(2.15rem, 9.8vw, 3.15rem);
    line-height: 1.08;
    letter-spacing: -.04em;
  }

  .p23-directory-hero p,
  .p23-collections-hero p {
    font-size: .83rem;
    line-height: 1.85;
  }

  .p23-directory-index,
  .p23-collections-hero dl {
    box-shadow: none;
  }

  .p23-directory-index > div,
  .p23-collections-hero dl > div {
    min-height: 5.15rem;
    padding: .65rem;
  }

  .p23-directory-index strong,
  .p23-collections-hero dd {
    font-size: 1.35rem;
  }

  .p24-sparse-layout.is-sparse {
    grid-template-columns: 1fr;
    gap: .85rem;
  }

  .p23-roastery-card.is-featured .p23-roastery-card__main {
    min-height: 10rem;
    grid-template-columns: 3.8rem minmax(0, 1fr) auto;
    align-items: start;
    padding: 1rem;
  }

  .p23-roastery-card.is-featured .p23-profile-avatar {
    width: 3.8rem;
  }

  .p23-roastery-card.is-featured .p23-roastery-card__copy > strong {
    font-size: 1.35rem;
  }

  .p23-collection-grid.is-sparse .p23-collection-card,
  .p23-collection-grid.is-sparse .p23-collection-card:nth-child(n) {
    min-height: 17rem;
  }

  .p24-sparse-note {
    min-height: 0;
    padding: 1.1rem;
  }

  .p24-sparse-note > strong {
    max-width: 18ch;
    font-size: 1.45rem;
  }

  .p24-sparse-note > p {
    font-size: .7rem;
    line-height: 1.8;
  }

  .p23-profile-hero__grid {
    padding-block: 2.2rem;
  }

  .p23-profile-identity h1 {
    font-size: clamp(2.45rem, 10.5vw, 3.6rem);
  }

  .p23-profile-about,
  .p23-activity,
  .p23-profile-records,
  .p23-ranked-section {
    padding-block: 3rem;
  }

  .p23-profile-about h2,
  .p23-section-head h2,
  .p23-activity h2,
  .p23-ranked-section h2 {
    font-size: clamp(1.9rem, 8.5vw, 2.8rem);
  }

  .p23-collection-hero__visual {
    min-height: 15rem;
  }

  .p23-collection-hero__copy {
    padding-block: 2rem 2.4rem;
  }

  .p23-collection-hero__copy h1 {
    font-size: clamp(2.35rem, 10vw, 3.5rem);
  }

  .p22-mobile-buy-bar {
    inset-block-end: calc(var(--rava-mobile-nav-height, 68px) + env(safe-area-inset-bottom)) !important;
  }

  .rava-native-public-coffee .p2-page {
    padding-block-end: calc(var(--rava-mobile-nav-height, 68px) + 5.5rem);
  }
}

@media (max-width: 360px) {
  .p23-directory-hero h1,
  .p23-collections-hero h1 {
    font-size: 2rem;
  }

  .p23-directory-index span,
  .p23-collections-hero dt {
    font-size: .51rem;
  }

}

/* Native 1.0 Tranche 5 — shared directory identity/status anatomy. */
.p23-roastery-card .rava-status-label{margin-bottom:.45rem}.p23-profile-status{margin-top:.55rem}.p23-profile-status .rava-status-label{font-size:.58rem}
