/* GENERATED by .nexo/design-system/tokens/build-tokens.mjs — DO NOT EDIT.
 * Source of truth: primitive.tokens.json / semantic.tokens.json / component.tokens.json
 * Regenerate: node .nexo/design-system/tokens/build-tokens.mjs
 * Sun Star V.I.P — dark-first, RTL Hebrew. 270 custom properties.
 */

:root {
  --ss-color-ink-500: #2A221D;
  --ss-color-ink-600: #211C17;
  --ss-color-ink-700: #16130F;
  --ss-color-ink-800: #0B0A09;
  --ss-color-ink-900: #050403;
  --ss-color-gold-300: #F9E1AA;
  --ss-color-gold-400: #EAC17E;
  --ss-color-gold-500: #C9A24D;
  --ss-color-gold-600: #A98167;
  --ss-color-gold-700: #6B5340;
  --ss-color-bone-50: #FAF8F4;
  --ss-color-bone-75: #F2EEE7;
  --ss-color-bone-100: #F6F3EE;
  --ss-color-bone-300: #B8B0A6;
  --ss-color-bone-500: #8A8178;
  --ss-color-bone-100alt: #EDE8DF;
  --ss-color-bone-300alt: #E7E1D8;
  --ss-color-status-success: #5FBF8B;
  --ss-color-status-danger: #F0776B;
  --ss-color-status-success-dark: #166B42;
  --ss-color-status-danger-dark: #A81E17;
  --ss-color-platform-whatsapp: #25D366;
  --ss-color-pure-white: #FFFFFF;
  --ss-color-pure-black: #000000;
  --ss-color-pure-transparent: #00000000;
  --ss-color-warm-grey-500: #7A716A;
  --ss-color-warm-grey-700: #57504A;
  --ss-color-bronze-deep-400: #A98167;
  --ss-color-bronze-deep-600: #8F6828;
  --ss-font-family-hebrew-display: "Frank Ruhl Libre", Assistant, "Arial Hebrew", serif;
  --ss-font-family-hebrew-body: Assistant, "Arial Hebrew", system-ui, sans-serif;
  --ss-font-family-latin-display: "Playfair Display", Georgia, serif;
  --ss-font-family-mono: ui-monospace, SFMono-Regular, monospace;
  --ss-font-weight-regular: 400;
  --ss-font-weight-medium: 500;
  --ss-font-weight-bold: 700;
  --ss-font-size-caption: clamp(0.8125rem, 0.79rem + 0.11vw, 0.875rem);
  --ss-font-size-body-sm: clamp(0.9375rem, 0.91rem + 0.13vw, 1rem);
  --ss-font-size-body: clamp(1rem, 0.97rem + 0.15vw, 1.0625rem);
  --ss-font-size-body-lg: clamp(1.125rem, 1.07rem + 0.28vw, 1.25rem);
  --ss-font-size-h4: clamp(1.25rem, 1.14rem + 0.55vw, 1.5rem);
  --ss-font-size-h3: clamp(1.5rem, 1.33rem + 0.83vw, 1.875rem);
  --ss-font-size-h2: clamp(1.875rem, 1.58rem + 1.44vw, 2.5rem);
  --ss-font-size-h1: clamp(2.25rem, 1.81rem + 2.22vw, 3.25rem);
  --ss-font-size-display: clamp(2.75rem, 1.98rem + 3.89vw, 4.5rem);
  --ss-font-size-hero: clamp(3rem, 1.89rem + 5.56vw, 5.5rem);
  --ss-font-line-height-tight: 1.08;
  --ss-font-line-height-snug: 1.2;
  --ss-font-line-height-heading: 1.32;
  --ss-font-line-height-body: 1.7;
  --ss-font-line-height-flat: 1;
  --ss-font-tracking-none: 0;
  --ss-font-tracking-wide: 0.08em;
  --ss-font-tracking-widest: 0.22em;
  --ss-space-0: 0;
  --ss-space-1: 0.25rem;
  --ss-space-2: 0.5rem;
  --ss-space-3: 0.75rem;
  --ss-space-4: 1rem;
  --ss-space-5: 1.25rem;
  --ss-space-6: 1.5rem;
  --ss-space-8: 2rem;
  --ss-space-10: 2.5rem;
  --ss-space-12: 3rem;
  --ss-space-16: 4rem;
  --ss-space-20: 5rem;
  --ss-space-24: 6rem;
  --ss-space-32: 8rem;
  --ss-radius-none: 0;
  --ss-radius-xs: 6px;
  --ss-radius-sm: 12px;
  --ss-radius-md: 1.25rem;
  --ss-radius-shell: 2rem;
  --ss-radius-core: 1.625rem;
  --ss-radius-pill: 999px;
  --ss-border-hairline: 1px;
  --ss-border-thick: 2px;
  --ss-shadow-raised: 0 2px 12px 0 #00000099;
  --ss-shadow-overlay: 0 8px 40px 0 #000000CC;
  --ss-shadow-gold-glow: 0 0 24px 0 #EAC17E33;
  --ss-shadow-ambient: 0 24px 60px -12px #00000073;
  --ss-shadow-inner-light: 0 1px 1px 0 #FFFFFF26;
  --ss-duration-instant: 120ms;
  --ss-duration-fast: 200ms;
  --ss-duration-base: 320ms;
  --ss-duration-slow: 560ms;
  --ss-duration-haptic: 700ms;
  --ss-duration-entry: 800ms;
  --ss-easing-standard: cubic-bezier(0.2, 0, 0, 1);
  --ss-easing-entrance: cubic-bezier(0, 0, 0, 1);
  --ss-easing-exit: cubic-bezier(0.3, 0, 1, 1);
  --ss-easing-haptic: cubic-bezier(0.32, 0.72, 0, 1);
  --ss-size-touch-target: 44px;
  --ss-size-content-max: 72rem;
  --ss-size-prose-max: 38rem;
  --ss-bezel-gap: 6px;
  --ss-bg-canvas: var(--ss-color-ink-800);
  --ss-bg-surface: var(--ss-color-ink-700);
  --ss-bg-surface-hover: var(--ss-color-ink-600);
  --ss-bg-sunken: var(--ss-color-ink-900);
  --ss-bg-inverse: var(--ss-color-gold-400);
  --ss-text-primary: var(--ss-color-bone-100);
  --ss-text-secondary: var(--ss-color-bone-300);
  --ss-text-disabled: var(--ss-color-bone-500);
  --ss-text-accent: var(--ss-color-gold-400);
  --ss-text-on-accent: var(--ss-color-ink-800);
  --ss-border-subtle: var(--ss-color-ink-500);
  --ss-border-strong: var(--ss-color-gold-700);
  --ss-border-accent: var(--ss-color-gold-500);
  --ss-border-focus: var(--ss-color-gold-300);
  --ss-action-primary-bg: var(--ss-color-gold-400);
  --ss-action-primary-bg-hover: var(--ss-color-gold-300);
  --ss-action-primary-bg-active: var(--ss-color-gold-500);
  --ss-action-primary-text: var(--ss-color-ink-800);
  --ss-action-secondary-border: var(--ss-color-gold-500);
  --ss-action-secondary-text: var(--ss-color-gold-400);
  --ss-action-secondary-bg-hover: var(--ss-color-ink-600);
  --ss-action-whatsapp-bg: var(--ss-color-platform-whatsapp);
  --ss-action-whatsapp-text: var(--ss-color-pure-white);
  --ss-feedback-success: var(--ss-color-status-success);
  --ss-feedback-danger: var(--ss-color-status-danger);
  --ss-booking-available: var(--ss-color-gold-400);
  --ss-booking-unavailable: var(--ss-color-bone-500);
  --ss-booking-selected: var(--ss-color-gold-300);
  --ss-booking-pending: var(--ss-color-status-success);
  --ss-font-hero-family: "Frank Ruhl Libre", Assistant, "Arial Hebrew", serif;
  --ss-font-hero-size: clamp(3rem, 1.89rem + 5.56vw, 5.5rem);
  --ss-font-hero-weight: 700;
  --ss-font-hero-line-height: 1.08;
  --ss-font-hero-letter-spacing: 0;
  --ss-font-display-family: "Frank Ruhl Libre", Assistant, "Arial Hebrew", serif;
  --ss-font-display-size: clamp(2.75rem, 1.98rem + 3.89vw, 4.5rem);
  --ss-font-display-weight: 700;
  --ss-font-display-line-height: 1.08;
  --ss-font-display-letter-spacing: 0;
  --ss-font-h1-family: "Frank Ruhl Libre", Assistant, "Arial Hebrew", serif;
  --ss-font-h1-size: clamp(2.25rem, 1.81rem + 2.22vw, 3.25rem);
  --ss-font-h1-weight: 700;
  --ss-font-h1-line-height: 1.2;
  --ss-font-h1-letter-spacing: 0;
  --ss-font-h2-family: "Frank Ruhl Libre", Assistant, "Arial Hebrew", serif;
  --ss-font-h2-size: clamp(1.875rem, 1.58rem + 1.44vw, 2.5rem);
  --ss-font-h2-weight: 500;
  --ss-font-h2-line-height: 1.2;
  --ss-font-h2-letter-spacing: 0;
  --ss-font-h3-family: Assistant, "Arial Hebrew", system-ui, sans-serif;
  --ss-font-h3-size: clamp(1.5rem, 1.33rem + 0.83vw, 1.875rem);
  --ss-font-h3-weight: 700;
  --ss-font-h3-line-height: 1.32;
  --ss-font-h3-letter-spacing: 0;
  --ss-font-h4-family: Assistant, "Arial Hebrew", system-ui, sans-serif;
  --ss-font-h4-size: clamp(1.25rem, 1.14rem + 0.55vw, 1.5rem);
  --ss-font-h4-weight: 700;
  --ss-font-h4-line-height: 1.32;
  --ss-font-h4-letter-spacing: 0;
  --ss-font-body-lg-family: Assistant, "Arial Hebrew", system-ui, sans-serif;
  --ss-font-body-lg-size: clamp(1.125rem, 1.07rem + 0.28vw, 1.25rem);
  --ss-font-body-lg-weight: 400;
  --ss-font-body-lg-line-height: 1.7;
  --ss-font-body-lg-letter-spacing: 0;
  --ss-font-body-family: Assistant, "Arial Hebrew", system-ui, sans-serif;
  --ss-font-body-size: clamp(1rem, 0.97rem + 0.15vw, 1.0625rem);
  --ss-font-body-weight: 400;
  --ss-font-body-line-height: 1.7;
  --ss-font-body-letter-spacing: 0;
  --ss-font-body-sm-family: Assistant, "Arial Hebrew", system-ui, sans-serif;
  --ss-font-body-sm-size: clamp(0.9375rem, 0.91rem + 0.13vw, 1rem);
  --ss-font-body-sm-weight: 400;
  --ss-font-body-sm-line-height: 1.7;
  --ss-font-body-sm-letter-spacing: 0;
  --ss-font-caption-family: Assistant, "Arial Hebrew", system-ui, sans-serif;
  --ss-font-caption-size: clamp(0.8125rem, 0.79rem + 0.11vw, 0.875rem);
  --ss-font-caption-weight: 400;
  --ss-font-caption-line-height: 1.7;
  --ss-font-caption-letter-spacing: 0;
  --ss-font-button-family: Assistant, "Arial Hebrew", system-ui, sans-serif;
  --ss-font-button-size: clamp(0.9375rem, 0.91rem + 0.13vw, 1rem);
  --ss-font-button-weight: 700;
  --ss-font-button-line-height: 1;
  --ss-font-button-letter-spacing: 0;
  --ss-font-latin-eyebrow-family: "Playfair Display", Georgia, serif;
  --ss-font-latin-eyebrow-size: clamp(0.8125rem, 0.79rem + 0.11vw, 0.875rem);
  --ss-font-latin-eyebrow-weight: 500;
  --ss-font-latin-eyebrow-line-height: 1;
  --ss-font-latin-eyebrow-letter-spacing: 0.08em;
  --ss-font-latin-wordmark-family: "Playfair Display", Georgia, serif;
  --ss-font-latin-wordmark-size: clamp(1.25rem, 1.14rem + 0.55vw, 1.5rem);
  --ss-font-latin-wordmark-weight: 500;
  --ss-font-latin-wordmark-line-height: 1;
  --ss-font-latin-wordmark-letter-spacing: 0.22em;
  --ss-font-numeric-family: Assistant, "Arial Hebrew", system-ui, sans-serif;
  --ss-font-numeric-size: clamp(1rem, 0.97rem + 0.15vw, 1.0625rem);
  --ss-font-numeric-weight: 500;
  --ss-font-numeric-line-height: 1;
  --ss-font-numeric-letter-spacing: 0;
  --ss-space-inline-xs: var(--ss-space-2);
  --ss-space-inline-sm: var(--ss-space-3);
  --ss-space-inline-md: var(--ss-space-4);
  --ss-space-inline-lg: var(--ss-space-6);
  --ss-space-block-xs: var(--ss-space-2);
  --ss-space-block-sm: var(--ss-space-4);
  --ss-space-block-md: var(--ss-space-6);
  --ss-space-block-lg: var(--ss-space-10);
  --ss-space-gutter: var(--ss-space-5);
  --ss-space-grid-gap: var(--ss-space-6);
  --ss-space-section-y: var(--ss-space-20);
  --ss-space-section-y-tight: var(--ss-space-12);
  --ss-space-bezel: var(--ss-bezel-gap);
  --ss-radius-control: var(--ss-radius-xs);
  --ss-radius-card: var(--ss-radius-shell);
  --ss-radius-core: var(--ss-radius-core);
  --ss-radius-media: var(--ss-radius-md);
  --ss-radius-chip: var(--ss-radius-pill);
  --ss-border-hairline: var(--ss-border-hairline);
  --ss-border-focus-ring: var(--ss-border-thick);
  --ss-elevation-raised: var(--ss-shadow-raised);
  --ss-elevation-overlay: var(--ss-shadow-overlay);
  --ss-elevation-accent-glow: var(--ss-shadow-gold-glow);
  --ss-elevation-ambient: var(--ss-shadow-ambient);
  --ss-elevation-inner-light: var(--ss-shadow-inner-light);
  --ss-motion-duration-fast: var(--ss-duration-fast);
  --ss-motion-duration-base: var(--ss-duration-base);
  --ss-motion-duration-slow: var(--ss-duration-slow);
  --ss-motion-easing-standard: var(--ss-easing-standard);
  --ss-motion-easing-entrance: var(--ss-easing-entrance);
  --ss-motion-duration-haptic: var(--ss-duration-haptic);
  --ss-motion-duration-entry: var(--ss-duration-entry);
  --ss-motion-easing-haptic: var(--ss-easing-haptic);
  --ss-layout-content-max: var(--ss-size-content-max);
  --ss-layout-prose-max: var(--ss-size-prose-max);
  --ss-layout-touch-target: var(--ss-size-touch-target);
  --ss-button-padding-inline: var(--ss-space-6);
  --ss-button-padding-block: var(--ss-space-3);
  --ss-button-min-height: var(--ss-size-touch-target);
  --ss-button-radius: var(--ss-radius-control);
  --ss-button-cta-min-height: var(--ss-space-12);
  --ss-button-cta-padding-inline: var(--ss-space-8);
  --ss-vehicle-card-bg: var(--ss-bg-surface);
  --ss-vehicle-card-bg-hover: var(--ss-bg-surface-hover);
  --ss-vehicle-card-border: var(--ss-border-subtle);
  --ss-vehicle-card-border-selected: var(--ss-border-accent);
  --ss-vehicle-card-radius: var(--ss-radius-card);
  --ss-vehicle-card-padding: var(--ss-space-6);
  --ss-vehicle-card-media-ratio: 3 / 2;
  --ss-vehicle-card-seat-badge-bg: var(--ss-color-ink-900);
  --ss-vehicle-card-seat-badge-text: var(--ss-text-accent);
  --ss-calendar-cell-size: var(--ss-size-touch-target);
  --ss-calendar-cell-radius: var(--ss-radius-xs);
  --ss-calendar-gap: var(--ss-space-1);
  --ss-calendar-available-text: var(--ss-booking-available);
  --ss-calendar-unavailable-text: var(--ss-booking-unavailable);
  --ss-calendar-selected-bg: var(--ss-booking-selected);
  --ss-calendar-selected-text: var(--ss-text-on-accent);
  --ss-field-bg: var(--ss-color-ink-900);
  --ss-field-border: var(--ss-border-subtle);
  --ss-field-border-focus: var(--ss-border-focus);
  --ss-field-border-error: var(--ss-feedback-danger);
  --ss-field-text: var(--ss-text-primary);
  --ss-field-placeholder: var(--ss-text-disabled);
  --ss-field-min-height: var(--ss-size-touch-target);
  --ss-field-radius: var(--ss-radius-control);
  --ss-field-padding-inline: var(--ss-space-4);
  --ss-trust-row-logo-max-height: var(--ss-space-10);
  --ss-trust-row-logo-opacity: 0.55;
  --ss-trust-row-logo-opacity-hover: 1;
  --ss-trust-row-gap: var(--ss-space-10);
  --ss-sticky-bar-bg: var(--ss-color-ink-900);
  --ss-sticky-bar-border-top: var(--ss-border-subtle);
  --ss-sticky-bar-height: var(--ss-space-16);
  --ss-sticky-bar-safe-area-bottom: env(safe-area-inset-bottom);
}

/* LIGHT SECTION GROUND. Not a theme — light and dark sections coexist on one page, so a
 * section opts in with class="ground-light" (or data-ground="light") and every semantic colour
 * re-points beneath it. Nesting works: a dark card inside a light section re-opts with .ground-dark. */
.ground-light, [data-ground="light"] {
  --ss-bg-canvas: var(--ss-color-bone-50);
  --ss-bg-surface: var(--ss-color-pure-white);
  --ss-bg-surface-hover: var(--ss-color-bone-75);
  --ss-bg-sunken: var(--ss-color-bone-100alt);
  --ss-bg-inverse: var(--ss-color-gold-400);
  --ss-text-primary: var(--ss-color-ink-800);
  --ss-text-secondary: var(--ss-color-warm-grey-700);
  --ss-text-disabled: var(--ss-color-warm-grey-500);
  --ss-text-accent: var(--ss-color-bronze-deep-600);
  --ss-text-on-accent: var(--ss-color-ink-800);
  --ss-border-subtle: var(--ss-color-bone-300alt);
  --ss-border-strong: var(--ss-color-bronze-deep-400);
  --ss-border-accent: var(--ss-color-bronze-deep-600);
  --ss-border-focus: var(--ss-color-bronze-deep-600);
  --ss-action-primary-bg: var(--ss-color-gold-400);
  --ss-action-primary-bg-hover: var(--ss-color-gold-500);
  --ss-action-primary-bg-active: var(--ss-color-bronze-deep-400);
  --ss-action-primary-text: var(--ss-color-ink-800);
  --ss-action-secondary-border: var(--ss-color-bronze-deep-600);
  --ss-action-secondary-text: var(--ss-color-bronze-deep-600);
  --ss-action-secondary-bg-hover: var(--ss-color-bone-75);
  --ss-action-whatsapp-bg: var(--ss-color-platform-whatsapp);
  --ss-action-whatsapp-text: var(--ss-color-pure-white);
  --ss-feedback-success: var(--ss-color-status-success-dark);
  --ss-feedback-danger: var(--ss-color-status-danger-dark);
  --ss-booking-available: var(--ss-color-bronze-deep-600);
  --ss-booking-unavailable: var(--ss-color-warm-grey-500);
  --ss-booking-selected: var(--ss-color-ink-800);
  --ss-booking-pending: var(--ss-color-status-success-dark);
  --ss-vehicle-card-bg: var(--ss-bg-surface);
  --ss-vehicle-card-bg-hover: var(--ss-bg-surface-hover);
  --ss-vehicle-card-border: var(--ss-border-subtle);
  --ss-vehicle-card-border-selected: var(--ss-border-accent);
  --ss-vehicle-card-seat-badge-text: var(--ss-text-accent);
  --ss-calendar-available-text: var(--ss-booking-available);
  --ss-calendar-unavailable-text: var(--ss-booking-unavailable);
  --ss-calendar-selected-bg: var(--ss-booking-selected);
  --ss-calendar-selected-text: var(--ss-text-on-accent);
  --ss-field-border: var(--ss-border-subtle);
  --ss-field-border-focus: var(--ss-border-focus);
  --ss-field-border-error: var(--ss-feedback-danger);
  --ss-field-text: var(--ss-text-primary);
  --ss-field-placeholder: var(--ss-text-disabled);
  --ss-sticky-bar-border-top: var(--ss-border-subtle);
}

.ground-dark, [data-ground="dark"] {
  --ss-bg-canvas: var(--ss-color-ink-800);
  --ss-bg-surface: var(--ss-color-ink-700);
  --ss-bg-surface-hover: var(--ss-color-ink-600);
  --ss-bg-sunken: var(--ss-color-ink-900);
  --ss-bg-inverse: var(--ss-color-gold-400);
  --ss-text-primary: var(--ss-color-bone-100);
  --ss-text-secondary: var(--ss-color-bone-300);
  --ss-text-disabled: var(--ss-color-bone-500);
  --ss-text-accent: var(--ss-color-gold-400);
  --ss-text-on-accent: var(--ss-color-ink-800);
  --ss-border-subtle: var(--ss-color-ink-500);
  --ss-border-strong: var(--ss-color-gold-700);
  --ss-border-accent: var(--ss-color-gold-500);
  --ss-border-focus: var(--ss-color-gold-300);
  --ss-action-primary-bg: var(--ss-color-gold-400);
  --ss-action-primary-bg-hover: var(--ss-color-gold-300);
  --ss-action-primary-bg-active: var(--ss-color-gold-500);
  --ss-action-primary-text: var(--ss-color-ink-800);
  --ss-action-secondary-border: var(--ss-color-gold-500);
  --ss-action-secondary-text: var(--ss-color-gold-400);
  --ss-action-secondary-bg-hover: var(--ss-color-ink-600);
  --ss-action-whatsapp-bg: var(--ss-color-platform-whatsapp);
  --ss-action-whatsapp-text: var(--ss-color-pure-white);
  --ss-feedback-success: var(--ss-color-status-success);
  --ss-feedback-danger: var(--ss-color-status-danger);
  --ss-booking-available: var(--ss-color-gold-400);
  --ss-booking-unavailable: var(--ss-color-bone-500);
  --ss-booking-selected: var(--ss-color-gold-300);
  --ss-booking-pending: var(--ss-color-status-success);
  --ss-vehicle-card-bg: var(--ss-bg-surface);
  --ss-vehicle-card-bg-hover: var(--ss-bg-surface-hover);
  --ss-vehicle-card-border: var(--ss-border-subtle);
  --ss-vehicle-card-border-selected: var(--ss-border-accent);
  --ss-vehicle-card-seat-badge-text: var(--ss-text-accent);
  --ss-calendar-available-text: var(--ss-booking-available);
  --ss-calendar-unavailable-text: var(--ss-booking-unavailable);
  --ss-calendar-selected-bg: var(--ss-booking-selected);
  --ss-calendar-selected-text: var(--ss-text-on-accent);
  --ss-field-border: var(--ss-border-subtle);
  --ss-field-border-focus: var(--ss-border-focus);
  --ss-field-border-error: var(--ss-feedback-danger);
  --ss-field-text: var(--ss-text-primary);
  --ss-field-placeholder: var(--ss-text-disabled);
  --ss-sticky-bar-border-top: var(--ss-border-subtle);
}

/* Typography steps as utility classes — size, weight, leading and family stay together. */
.ss-font-hero {
  font-family: var(--ss-font-hero-family);
  font-size: var(--ss-font-hero-size);
  font-weight: var(--ss-font-hero-weight);
  line-height: var(--ss-font-hero-line-height);
  letter-spacing: var(--ss-font-hero-letter-spacing);
}

.ss-font-display {
  font-family: var(--ss-font-display-family);
  font-size: var(--ss-font-display-size);
  font-weight: var(--ss-font-display-weight);
  line-height: var(--ss-font-display-line-height);
  letter-spacing: var(--ss-font-display-letter-spacing);
}

.ss-font-h1 {
  font-family: var(--ss-font-h1-family);
  font-size: var(--ss-font-h1-size);
  font-weight: var(--ss-font-h1-weight);
  line-height: var(--ss-font-h1-line-height);
  letter-spacing: var(--ss-font-h1-letter-spacing);
}

.ss-font-h2 {
  font-family: var(--ss-font-h2-family);
  font-size: var(--ss-font-h2-size);
  font-weight: var(--ss-font-h2-weight);
  line-height: var(--ss-font-h2-line-height);
  letter-spacing: var(--ss-font-h2-letter-spacing);
}

.ss-font-h3 {
  font-family: var(--ss-font-h3-family);
  font-size: var(--ss-font-h3-size);
  font-weight: var(--ss-font-h3-weight);
  line-height: var(--ss-font-h3-line-height);
  letter-spacing: var(--ss-font-h3-letter-spacing);
}

.ss-font-h4 {
  font-family: var(--ss-font-h4-family);
  font-size: var(--ss-font-h4-size);
  font-weight: var(--ss-font-h4-weight);
  line-height: var(--ss-font-h4-line-height);
  letter-spacing: var(--ss-font-h4-letter-spacing);
}

.ss-font-body-lg {
  font-family: var(--ss-font-body-lg-family);
  font-size: var(--ss-font-body-lg-size);
  font-weight: var(--ss-font-body-lg-weight);
  line-height: var(--ss-font-body-lg-line-height);
  letter-spacing: var(--ss-font-body-lg-letter-spacing);
}

.ss-font-body {
  font-family: var(--ss-font-body-family);
  font-size: var(--ss-font-body-size);
  font-weight: var(--ss-font-body-weight);
  line-height: var(--ss-font-body-line-height);
  letter-spacing: var(--ss-font-body-letter-spacing);
}

.ss-font-body-sm {
  font-family: var(--ss-font-body-sm-family);
  font-size: var(--ss-font-body-sm-size);
  font-weight: var(--ss-font-body-sm-weight);
  line-height: var(--ss-font-body-sm-line-height);
  letter-spacing: var(--ss-font-body-sm-letter-spacing);
}

.ss-font-caption {
  font-family: var(--ss-font-caption-family);
  font-size: var(--ss-font-caption-size);
  font-weight: var(--ss-font-caption-weight);
  line-height: var(--ss-font-caption-line-height);
  letter-spacing: var(--ss-font-caption-letter-spacing);
}

.ss-font-button {
  font-family: var(--ss-font-button-family);
  font-size: var(--ss-font-button-size);
  font-weight: var(--ss-font-button-weight);
  line-height: var(--ss-font-button-line-height);
  letter-spacing: var(--ss-font-button-letter-spacing);
}

.ss-font-latin-eyebrow {
  font-family: var(--ss-font-latin-eyebrow-family);
  font-size: var(--ss-font-latin-eyebrow-size);
  font-weight: var(--ss-font-latin-eyebrow-weight);
  line-height: var(--ss-font-latin-eyebrow-line-height);
  letter-spacing: var(--ss-font-latin-eyebrow-letter-spacing);
}

.ss-font-latin-wordmark {
  font-family: var(--ss-font-latin-wordmark-family);
  font-size: var(--ss-font-latin-wordmark-size);
  font-weight: var(--ss-font-latin-wordmark-weight);
  line-height: var(--ss-font-latin-wordmark-line-height);
  letter-spacing: var(--ss-font-latin-wordmark-letter-spacing);
}

.ss-font-numeric {
  font-family: var(--ss-font-numeric-family);
  font-size: var(--ss-font-numeric-size);
  font-weight: var(--ss-font-numeric-weight);
  line-height: var(--ss-font-numeric-line-height);
  letter-spacing: var(--ss-font-numeric-letter-spacing);
}

/* Hebrew is never letter-spaced — it breaks the letterforms. The Latin-only steps below are
 * the sole tracking carriers, and the exclusion list is derived from the tokens, not hardcoded. */
:where([lang="he"], [dir="rtl"]) :not(.ss-font-latin-eyebrow, .ss-font-latin-wordmark) {
  letter-spacing: 0;
}

/* Numerals, phone, email, price, SKU stay LTR inside the RTL page. */
.ss-ltr { direction: ltr; unicode-bidi: isolate; }

@media (prefers-reduced-motion: reduce) {
  :root { --ss-motion-duration-fast: 1ms; --ss-motion-duration-base: 1ms; --ss-motion-duration-slow: 1ms; }
}
