/* RIOT public typography safety layer: prevent accidental collisions on every public page. */
:root {
  --riot-text-heading-leading: 1.08;
  --riot-text-card-leading: 1.12;
  --riot-text-body-leading: 1.65;
}

html {
  overflow-x: clip;
}

body {
  overflow-wrap: anywhere;
}

main h1,
main h2,
main h3,
.hero h1,
.section-head h2,
.statement h2,
.split-copy h2,
.partner-copy h2,
.journal-intro h2,
.support-wrap h2,
.partner-hero h1,
.final-cta h2,
.proto-hero h1,
.shop-hero h2,
.business-title,
.shop-empty .business-title,
.access-empty .business-title {
  line-height: var(--riot-text-heading-leading) !important;
  overflow-wrap: anywhere;
  word-break: keep-all;
}

.hero h1 > em,
.section-head h2 > em,
.statement h2 > em,
.split-copy h2 > em,
.partner-copy h2 > em,
.journal-intro h2 > em,
.support-wrap h2 > em,
.partner-hero h1 > em,
.final-cta h2 > em,
.proto-hero h1 > em,
.shop-hero h2 > em {
  display: block;
  margin-top: 0.12em;
  padding-bottom: 0.05em;
}

.product-card h3,
.routine-grid h3,
.journal-list h3,
.metric strong,
.lime-button b {
  line-height: var(--riot-text-card-leading) !important;
  overflow-wrap: anywhere;
  word-break: keep-all;
}

main p,
main li,
main label,
.signal-row p,
.benefit-card p,
.process-card p,
.proto-panel p,
.booking-step span {
  line-height: var(--riot-text-body-leading);
  overflow-wrap: anywhere;
  word-break: keep-all;
}

.wordmark span {
  margin-top: 0 !important;
}

.hero-actions,
.partner-actions,
.final-cta .cta-actions,
.partner-hero .hero-actions,
.button-row,
.action-row {
  align-items: stretch;
}

.hero-actions > a,
.partner-actions > a,
.final-cta .cta-actions > a,
.partner-hero .hero-actions > a,
.button-row > a,
.action-row > a,
main button,
main .button {
  min-height: 48px;
  line-height: 1.2;
  white-space: normal;
  text-align: center;
}

@media (max-width: 1080px) {
  .partner-hero,
  .partner-hero-grid,
  .hero-layout,
  .final-cta-inner {
    min-width: 0;
  }

  .partner-hero h1,
  .final-cta h2,
  .proto-hero h1,
  .shop-hero h2 {
    letter-spacing: -0.025em !important;
  }
}

@media (max-width: 720px) {
  main h1,
  .partner-hero h1,
  .proto-hero h1 {
    font-size: clamp(44px, 14vw, 70px) !important;
  }

  main h2,
  .final-cta h2,
  .shop-hero h2,
  .business-title {
    font-size: clamp(35px, 10.5vw, 54px) !important;
  }

  .hero-actions,
  .partner-actions,
  .final-cta .cta-actions,
  .partner-hero .hero-actions,
  .button-row,
  .action-row {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .hero-actions > a,
  .partner-actions > a,
  .final-cta .cta-actions > a,
  .partner-hero .hero-actions > a,
  .button-row > a,
  .action-row > a {
    width: 100%;
  }
}
