/* Three intentional roles shared by EN, PL and ES: editorial display,
   readable body copy, and compact UI labels. */
:root {
  --tr-role-body: var(--tr-font-body, var(--ui, "Hanken Grotesk", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif));
  --tr-role-display: var(--tr-font-display, var(--serif, var(--serif2, "Playfair Display", Georgia, serif)));
  --tr-role-ui: var(--tr-font-ui, var(--tr-role-body));
  --tr-body-size: clamp(1rem, .97rem + .16vw, 1.08rem);
  --tr-control-size: .95rem;
  --tr-label-size: clamp(.72rem, .7rem + .1vw, .84rem);
  --tr-label-tracking: .09em;
  --tr-type-serif: var(--tr-role-display);
  --tr-type-sans: var(--tr-role-body);
  --tr-type-ui: var(--tr-role-ui);
  /* Public-surface foundation. Route styles may map their existing aliases to
     these tokens without losing their individual information architecture. */
  --tr-color-canvas: #08080a;
  --tr-color-surface: #111014;
  --tr-color-surface-raised: #19161b;
  --tr-color-text: #f4eee7;
  --tr-color-muted: #b9ada1;
  --tr-color-faint: #8f8379;
  --tr-color-accent: #ee72a4;
  --tr-color-accent-strong: #ff8bbc;
  --tr-color-warm: #c99c66;
  --tr-color-positive: #86d6bd;
  --tr-color-line: rgba(244, 238, 231, .14);
  --tr-color-line-strong: rgba(244, 238, 231, .25);
  --tr-radius-control: 10px;
  --tr-radius-panel: 16px;
  --tr-shadow-panel: 0 24px 64px rgba(0, 0, 0, .32);
  --tr-motion-fast: 180ms;
  --tr-motion-medium: 360ms;
  --tr-motion-slow: 820ms;
  --tr-motion-ease: cubic-bezier(.2, .72, .2, 1);
}

:where(html) {
  min-width: 320px;
  text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
}

:where(body) { font-family: var(--tr-role-body) !important; }

:where(body) {
  min-width: 320px;
  font-size: var(--tr-body-size) !important;
  line-height: 1.55;
  overflow-wrap: break-word;
}

:where(body)::selection {
  background: color-mix(in srgb, var(--tr-color-accent) 72%, #fff);
  color: #160b11;
}

:where(h1, h2, h3, h4, h5, h6, .section-title, .section-head, .section-heading,
  .hero-title, .hero h1, .atlas-hero h1, .gallery-title, .catalog-strain-name,
  .strain-ficha-head h2, .community-carousel-shell h3, .forum-panel-heading h2,
  .forum-profile > strong, .forum-entry-card strong, .forum-topic-card strong,
  .rx-tool h1, .rx-tool h2, .rx-tool h3, .city-price-heading strong, .city-price-name,
  .catalog-compare-intro h3, .topic-title, .tr-wordmark, .wordmark):not(:where(
  [data-legal-ribbon] *,
  [data-prescription-infographic] *,
  [data-prescription-process] *,
  [data-infographic] *,
  .tr-rx-infographic *,
  .epic-infographic *
)) {
  font-family: var(--tr-role-display) !important;
  font-weight: 600;
  letter-spacing: -.02em;
  text-wrap: balance;
}

:where(button, input, select, textarea, summary, [role="button"], .button, .btn,
  .back, .nav-toggle, .tr-nav-toggle, .lang-switch a, .language-switch a,
  .kicker, .eyebrow, .meta, .label, .small-note, .est, small, time,
  [data-role="meta"], [data-role="label"], [data-tr-type-role="ui"]):not(:where(
  [data-legal-ribbon] *,
  [data-prescription-infographic] *,
  [data-prescription-process] *,
  [data-infographic] *,
  .tr-rx-infographic *,
  .epic-infographic *
)) {
  font-family: var(--tr-role-ui) !important;
  font-size: var(--tr-control-size);
  letter-spacing: var(--tr-label-tracking);
}

:where(.est, .kicker, .eyebrow, .meta, .label, .small-note, small, time,
  [data-role="meta"], [data-role="label"], [data-tr-type-role="ui"]):not(:where(
  [data-legal-ribbon] *,
  [data-prescription-infographic] *,
  [data-prescription-process] *,
  [data-infographic] *,
  .tr-rx-infographic *,
  .epic-infographic *
)) {
  font-size: var(--tr-label-size) !important;
}

:where(button, input, select, textarea) {
  box-sizing: border-box;
  min-height: 44px;
  line-height: 1.35;
}

:where(a, button, input, select, textarea, summary, [role="button"]) {
  -webkit-tap-highlight-color: color-mix(in srgb, var(--tr-color-accent) 22%, transparent);
}

:where(.btn, .button, [class$="-button"], [class*=" button-"]) {
  transition-duration: var(--tr-motion-fast);
  transition-timing-function: var(--tr-motion-ease);
}

:where([data-forum-disabled="true"]) {
  cursor: not-allowed;
  text-decoration: none;
}

/* Shared footer finish across the heterogeneous public route families. */
:where(footer.site, footer.site-footer, footer.atlas-foot, footer.ep-footer,
  footer.guide-footer, footer.compare-footer, footer.rx-footer,
  footer.forum-deferred-footer, body > footer) {
  border-top-color: var(--tr-color-line);
  box-shadow: inset 0 1px rgba(255, 255, 255, .018);
}

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: 3px solid var(--pink, #df7e9e) !important;
  outline-offset: 3px !important;
  box-shadow: 0 0 0 5px color-mix(in srgb, var(--pink, #df7e9e) 20%, transparent) !important;
}

@media (max-width: 760px) {
  :where(h1) { line-height: 1.05; }
  :where(h2, h3) { line-height: 1.12; }
}

@media (prefers-reduced-motion: reduce) {
  :where(html) { scroll-behavior: auto !important; }
  :where(*, *::before, *::after) {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
    scroll-behavior: auto !important;
  }
}
