/* ==========================================================================
   Geist Typography System by Vercel
   Universal Design System Typography for avhishek.in & cards.avhishek.in
   ========================================================================== */

/* 1. Self-hosted Variable Fonts (Zero layout shift, instant load) */
@font-face {
  font-family: "Geist";
  src: url("geist-sans-vf.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Geist Mono";
  src: url("geist-mono-vf.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

/* 2. Global Tokens & Font Stacks */
:root {
  --font-geist-sans: "Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
  --font-geist-mono: "Geist Mono", ui-monospace, SFMono-Regular, "Roboto Mono", Menlo, Monaco, Consolas, monospace;

  /* Global website tokens mapped to Geist */
  --site-font: var(--font-geist-sans);
  --site-mono: var(--font-geist-mono);
  --font-display: var(--font-geist-sans);
  --font-body: var(--font-geist-sans);

  /* Typography Scale */
  --text-2xs: 0.6875rem; /* 11px */
  --text-xs: 0.75rem;    /* 12px */
  --text-sm: 0.8125rem;  /* 13px */
  --text-base: 0.9375rem;/* 15px */
  --text-md: 1.0625rem;  /* 17px */
  --text-lg: 1.25rem;    /* 20px */
  --text-xl: 1.5rem;     /* 24px */
  --text-2xl: 2rem;      /* 32px */
  --text-3xl: 2.75rem;   /* 44px */
  --text-4xl: 3.5rem;    /* 56px */

  /* Letter Spacing scale calibrated for Geist */
  --tracking-tighter: -0.045em;
  --tracking-tight: -0.03em;
  --tracking-snug: -0.018em;
  --tracking-normal: -0.008em;
  --tracking-wide: 0.02em;
  --tracking-wider: 0.05em;

  /* Line Heights */
  --leading-none: 0.96;
  --leading-tight: 1.08;
  --leading-snug: 1.25;
  --leading-normal: 1.48;
  --leading-relaxed: 1.62;
}

/* 3. Base Document Rules */
html,
body {
  font-family: var(--site-font);
  font-feature-settings: "cv01" 1, "cv02" 1, "kern" 1, "liga" 1;
  font-optical-sizing: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

body {
  font-size: var(--text-base);
  line-height: var(--leading-normal);
  letter-spacing: var(--tracking-normal);
  font-weight: 400;
}

button,
input,
select,
textarea {
  font-family: var(--site-font);
}

code,
kbd,
samp,
pre {
  font-family: var(--site-mono);
  font-feature-settings: "tnum" 1;
}

/* 4. Display & Hero Headings */
h1,
.poster-title,
.home-title,
.support-intro-title,
.reviews-intro-title,
.legal-card h1,
.cs-hero-title {
  font-family: var(--site-font);
  font-weight: 700;
  letter-spacing: var(--tracking-tighter);
  line-height: var(--leading-none);
}

/* 5. Section Headings (H2) */
h2,
.collection-head h2,
.support-title-row h2,
.reviews-section-heading h2,
.review-method-intro h2,
.legal-card h2,
.cs-section-title,
.cs-feature-title {
  font-family: var(--site-font);
  font-weight: 650;
  letter-spacing: var(--tracking-tight);
  line-height: var(--leading-tight);
}

/* 6. Component Headings (H3, Card Names) */
h3,
.card-name,
.bank-heading-copy strong,
.support-bank-copy strong,
.feature-meta strong,
.method-card h3,
.reviews-empty-text h3 {
  font-family: var(--site-font);
  font-weight: 600;
  letter-spacing: var(--tracking-snug);
  line-height: var(--leading-snug);
}

/* 7. Brand Wordmark */
.wordmark-brand,
.home-wordmark,
.global-footer__brand,
.footer-brand {
  font-family: var(--site-font);
  font-weight: 700;
  letter-spacing: var(--tracking-tight);
}

/* 8. Running Body Text */
p,
li,
.poster-subline,
.home-intro,
.support-intro-desc,
.reviews-intro-desc,
.legal-card p,
.legal-card li,
.cs-hero-subline,
.cs-feature-description {
  font-family: var(--site-font);
  font-weight: 400;
  letter-spacing: var(--tracking-normal);
  line-height: var(--leading-relaxed);
}

/* 9. Buttons, Nav Links & Interactive Elements */
.collection-link,
.hero-cta-primary,
.hero-cta-secondary,
.reviews-primary-action,
.reviews-secondary-action,
.reviews-empty-action,
.reset-button,
.quick,
.support-nav-current,
.cs-header-link,
.cs-primary-cta,
.cs-secondary-cta,
.shimmer-button,
.shimmer-button-text {
  font-family: var(--site-font);
  font-weight: 550;
  letter-spacing: var(--tracking-snug);
}

/* 10. Geist Mono Technical, Financial & Status Readouts */
.stat-meta strong,
.collection-count,
.support-count-badge,
.reviews-count-badge,
.support-verified-date,
.fee-pill,
.bank-short,
.network,
.mini-tag,
.method-step-pill,
.error-code,
.support-contact-chip a,
.support-link-value,
.support-footnote,
.detail strong,
.specimen-badge,
.specimen-verdict-value,
.support-group-label,
.card-meta-line,
.crafted-badge strong,
.legal-badge {
  font-family: var(--site-mono);
  font-feature-settings: "tnum" 1;
  font-variant-numeric: tabular-nums;
}

/* Specific weights & sizing for technical figures */
.stat-meta strong {
  font-weight: 700;
  letter-spacing: -0.04em;
}

.fee-pill {
  font-weight: 600;
  letter-spacing: 0.02em;
}

.bank-short {
  font-weight: 600;
  letter-spacing: 0.04em;
}

.network {
  font-weight: 500;
  letter-spacing: 0.01em;
}

.method-step-pill {
  font-weight: 700;
  letter-spacing: -0.02em;
}

.support-contact-chip a {
  font-weight: 500;
  letter-spacing: -0.01em;
}

.support-count-badge strong,
.reviews-count-badge strong {
  font-family: var(--site-mono);
  font-weight: 700;
}

/* 11. Responsive Typography Refinements */
@media (max-width: 720px) {
  :root {
    --tracking-tighter: -0.035em;
    --tracking-tight: -0.025em;
  }

  h1,
  .poster-title,
  .home-title,
  .support-intro-title,
  .reviews-intro-title {
    line-height: 0.98;
  }
}
