/* Shared theme tokens and generated-bundle aliases. Values remain unchanged.
   Loaded before the hand-authored foundation; contextual overrides stay with consumers. */
:root {
  /* Shared grain: 0 disables the texture across the site. */
  --fs-grain-opacity: .04;
  --fs-grain-size: 128px;
  --font-sans: "Nunito", Arial, sans-serif;
  --font-display: "Zalando Sans", Arial, sans-serif;
  --font-body-fallback: var(--font-sans);
  --font-heading-fallback: var(--font-display);
  --font-body: var(--gh-font-body, var(--font-body-fallback));
  --font-heading: var(--gh-font-heading, var(--font-heading-fallback));

  --fs-space-1: 0.25rem;
  --fs-space-2: 0.5rem;
  --fs-space-3: 0.75rem;
  --fs-space-4: 1rem;
  --fs-space-5: 1.25rem;
  --fs-space-6: 1.5rem;
  --fs-space-8: 2rem;
  --fs-space-10: 2.5rem;
  --fs-space-12: 3rem;
  --fs-space-16: 4rem;
  --fs-space-24: 6rem;

  /*
    Site container system:
    - compact/mobile: fluid width with safe gutters
    - medium/tablet: fluid width with larger gutters
    - desktop/large: centered content capped at the site width
  */
  --fs-container-site: 71.25rem;
  --fs-container-narrow: 45rem;
  --fs-container-default: var(--fs-container-site);
  --fs-container-wide: var(--fs-container-site);
  --fs-container-full: 100%;
  --fs-form-embed-offset: 0.5rem;
  --fs-gutter: clamp(1.25rem, 4vw, 4rem);
  --fs-grid-column-gap: clamp(1.5rem, 3vw, 2rem);
  --fs-grid-row-gap: clamp(3rem, 6vw, 4rem);

  --fs-font-xs: 0.75rem;
  --fs-font-sm: 0.875rem;
  --fs-font-base: 0.9375rem;
  --fs-font-md: 1rem;
  --fs-font-lg: 1.125rem;
  --fs-font-xl: 1.25rem;
  --fs-font-heading-xs: clamp(1rem, 0.94rem + 0.3vw, 1.125rem);
  --fs-font-heading-sm: clamp(1.125rem, 1.065rem + 0.3vw, 1.25rem);
  --fs-font-heading-md: clamp(1.5rem, 1.32rem + 0.9vw, 1.875rem);
  --fs-font-heading-lg: clamp(1.875rem, 1.695rem + 0.9vw, 2.25rem);
  --fs-font-heading-xl: clamp(2.25rem, 2.025rem + 1.125vw, 3rem);

  --fs-line-tight: 1.1;
  --fs-line-heading: 1.15;
  --fs-line-snug: 1.25;
  --fs-line-base: 1.5;
  --fs-line-relaxed: 1.625;

  --fs-weight-regular: 400;
  --fs-weight-medium: 500;
  --fs-weight-semibold: 700;
  --fs-weight-bold: 700;

  --fs-radius-sm: 0.25rem;
  --fs-radius-md: 0.5rem;
  --fs-radius-lg: 1rem;
  --fs-radius-xl: 1.5rem;
  --fs-radius-pill: 999px;

  /* Shared interaction motion; weighted card reveals keep their own tokens. */
  --fs-control-size: 2.75rem;
  --fs-motion-micro: 160ms;
  --fs-motion-component-enter: 330ms;
  --fs-motion-component-exit: 250ms;
  --fs-motion-ease-standard: cubic-bezier(.4,0,.2,1);
  --fs-motion-ease-emphasized: cubic-bezier(.16,1,.3,1);

  --spacing: var(--fs-space-1);
  --container-2xl: 42rem;
  --container-3xl: 48rem;
  --container-4xl: 56rem;
  --container-standard: var(--fs-container-default);
  --font-weight-medium: var(--fs-weight-medium);
  --font-weight-semibold: var(--fs-weight-semibold);
  --font-weight-bold: var(--fs-weight-bold);
  --radius-sm: var(--fs-radius-sm);
  --radius-lg: var(--fs-radius-md);
  --radius-2xl: var(--fs-radius-lg);
  --radius-3xl: var(--fs-radius-xl);
}
