/* public/css/public/typography.css */
/*
  RealRates public-shell typography.

  This file is authoritative for:
  - Static public preview routes such as Terms & Privacy, Contact and errors.
  - The temporary production Coming Soon page.

  The complex preview homepage is deliberately excluded. It keeps its existing
  typography until the separate portrait-layout project is completed.

  There are no device checks or alternate mobile components here. Fluid text
  uses clamp(), while normal copy keeps readable fixed minimums.
*/

/* ========================================================================== 
   Static public preview shell
   ========================================================================== */

.page-public-shell.page-public-static {
  --rr-public-content-title: clamp(1.75rem, 1.5rem + 1vw, 2.75rem);
  --rr-public-content-heading: clamp(1.25rem, 1.13rem + 0.55vw, 1.75rem);

  font-family: var(--rr-font-sans);
  font-size: var(--rr-text-body);
  line-height: var(--rr-line-height-copy);
  text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
}

/* Shared public navigation and footer. */
.page-public-shell.page-public-static .nav-brand-title {
  font-size: clamp(1.75rem, 1.45rem + 1.35vw, 2.625rem);
  line-height: 0.98;
}

.page-public-shell.page-public-static .nav-brand-tagline,
.page-public-shell.page-public-static .nav-right a,
.page-public-shell.page-public-static .nav-account-trigger,
.page-public-shell.page-public-static .nav-current-user-value,
.page-public-shell.page-public-static .nav-user-email,
.page-public-shell.page-public-static .footer {
  font-size: var(--rr-text-small);
}

.page-public-shell.page-public-static .nav-account-arrow,
.page-public-shell.page-public-static .nav-current-user-label {
  font-size: var(--rr-text-micro);
}

/* Preview notice and route chrome. */
.page-public-shell.page-public-static .public-preview-banner,
.page-public-shell.page-public-static .public-noscript {
  font-size: var(--rr-text-small);
  line-height: var(--rr-line-height-copy);
}

/* Shared page hero on static routes only. */
.page-public-shell.page-public-static #pageHeroMount .page-hero-eyebrow {
  font-size: var(--rr-text-micro);
  line-height: 1.2;
}

.page-public-shell.page-public-static #pageHeroMount .page-hero-title {
  font-size: var(--rr-heading-page);
  line-height: var(--rr-line-height-tight);
  letter-spacing: var(--rr-letter-spacing-heading);
  text-wrap: balance;
}

.page-public-shell.page-public-static #pageHeroMount .page-hero-subtitle {
  font-size: var(--rr-text-body);
  line-height: var(--rr-line-height-copy);
}

/* Static route content. */
.page-public-shell.page-public-static :where(.public-view, .public-route-error) {
  font-size: var(--rr-text-body);
  line-height: var(--rr-line-height-copy);
}

.page-public-shell.page-public-static :where(.public-page-card, .public-error-card) > h1 {
  font-size: var(--rr-public-content-title);
  line-height: var(--rr-line-height-tight);
  letter-spacing: -0.02em;
  text-wrap: balance;
}

.page-public-shell.page-public-static :where(.public-page-card, .public-error-card) h2,
.page-public-shell.page-public-static .contact-form-unavailable h2 {
  font-size: var(--rr-public-content-heading);
  line-height: 1.18;
  letter-spacing: -0.012em;
  text-wrap: balance;
}

.page-public-shell.page-public-static .section-kicker {
  font-size: var(--rr-text-micro);
  line-height: 1.2;
}

.page-public-shell.page-public-static :where(
  .public-page-card,
  .public-error-card,
  .contact-option-card
) :where(p, li, a, strong) {
  font-size: inherit;
}

.page-public-shell.page-public-static .contact-option-card h2 {
  font-size: var(--rr-heading-card);
  line-height: var(--rr-line-height-tight);
}

/* Contact form controls and supporting copy. */
.page-public-shell.page-public-static .realrates-contact-form {
  font-size: var(--rr-text-body);
  line-height: var(--rr-line-height-copy);
}

.page-public-shell.page-public-static .realrates-contact-form .form-field > span {
  font-size: var(--rr-text-small);
  line-height: 1.3;
}

.page-public-shell.page-public-static .realrates-contact-form :where(
  input:not([type="checkbox"]):not([type="radio"]),
  select,
  textarea
) {
  font-family: var(--rr-font-sans);
  font-size: var(--rr-text-control);
  line-height: 1.35;
}

.page-public-shell.page-public-static .realrates-contact-form :where(
  button,
  [role="button"],
  .btn
) {
  font-family: var(--rr-font-sans);
  font-size: var(--rr-text-button);
  line-height: 1.2;
}

.page-public-shell.page-public-static .realrates-contact-form :where(
  .form-field small,
  .form-help,
  .contact-form-context,
  .contact-sensitive-check span,
  .contact-form-status
) {
  font-size: var(--rr-text-small);
  line-height: var(--rr-line-height-copy);
}

/* Generic public action buttons on static routes. */
.page-public-shell.page-public-static .btn {
  font-size: var(--rr-text-button);
  line-height: 1.2;
}

/* ========================================================================== 
   Temporary production Coming Soon page
   ========================================================================== */

.page-coming-soon {
  font-family: var(--rr-font-sans);
  font-size: var(--rr-text-body);
  line-height: var(--rr-line-height-copy);
  text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
}

.page-coming-soon .coming-soon-brand {
  font-size: var(--rr-text-lead);
  line-height: 1.2;
}

.page-coming-soon .coming-soon-card h1 {
  font-size: var(--rr-heading-page);
  line-height: var(--rr-line-height-tight);
  letter-spacing: var(--rr-letter-spacing-heading);
  text-wrap: balance;
}

.page-coming-soon .coming-soon-subtitle {
  font-size: var(--rr-text-body);
  line-height: var(--rr-line-height-copy);
}
