/*
 * Shared semantic token layer.
 * Hand-editable. Maps design intent (text/surface/stroke/spacing/radius/type)
 * onto the per-tenant primitive layer (tokens/primitives/*.css) via var(--...).
 * This is the single source of truth for semantic tokens; there is no build step.
 */
:root {
  /* text */
  --text-text-primary: var(--colour-grey-black);
  --text-text-secondary: var(--colour-grey-dark);
  --text-text-brand-primary: var(--colour-brand-primary);
  --text-text-brand-secondary: var(--colour-brand-secondary);
  --text-text-invert: var(--colour-grey-white);
  --text-text-disabled: var(--colour-grey-medium);

  /* surface */
  --surface-surface-primary: var(--colour-grey-white);
  --surface-surface-secondary: var(--colour-grey-light);
  --surface-surface-disabled: var(--colour-grey-medium);
  --surface-surface-invert: var(--colour-grey-black);
  --surface-surface-brand-primary: var(--colour-brand-primary);
  --surface-surface-brand-primary-transparent-10: var(--colour-brand-primary-10);
  --surface-surface-brand-secondary: var(--colour-brand-secondary);
  --surface-surface-brand-secondary-transparent-10: var(--colour-brand-secondary-10);

  /* stroke */
  --stroke-stroke-primary: var(--colour-grey-medium);
  --stroke-stroke-hover: var(--colour-grey-dark);
  --stroke-stroke-active: var(--colour-brand-primary);
  --stroke-stroke-active-transparency50: var(--colour-brand-primary-50);
  --stroke-stroke-active-secondary: var(--colour-brand-secondary);
  --stroke-stroke-active-secondary-transparency50: var(--colour-brand-secondary-50);
  --stroke-stroke-invert: var(--colour-grey-white);
  --stroke-stroke-tertiary: var(--colour-grey-black);
  --stroke-weight-regular: var(--stroke-regular);
  --stroke-weight-medium: var(--stroke-medium);

  /* spacing */
  --spacing-spacing-none: var(--spacing-0);
  --spacing-spacing-xxs: var(--spacing-05);
  --spacing-spacing-xs: var(--spacing-1);
  --spacing-spacing-s: var(--spacing-2);
  --spacing-spacing-sm: var(--spacing-3);
  --spacing-spacing-m: var(--spacing-4);
  --spacing-spacing-l: var(--spacing-6);
  --spacing-spacing-xl: var(--spacing-8);
  --spacing-spacing-2xl: var(--spacing-9);
  --spacing-spacing-3xl: var(--spacing-10);
  --spacing-spacing-4xl: var(--spacing-12);
  --spacing-spacing-5xl: var(--spacing-13);
  --spacing-spacing-6xl: var(--spacing-14);
  --spacing-spacing-desktop: var(--spacing-15);

  /* radius */
  --radius-radius-none: var(--radius-none);
  --radius-radius-minimal: var(--radius-tiny);
  --radius-radius-xs: var(--radius-mini);
  --radius-radius-small: var(--radius-small);
  --radius-radius-rounded: var(--radius-medium);
  --radius-radius-full: var(--radius-large);

  /* type - titles */
  --type-titles-title-family: var(--type-family-family-title);
  --type-titles-title-size: var(--type-size-9);
  --type-titles-title-weight: var(--type-weight-extra-bold);
  --type-titles-subtitle-family: var(--type-family-family-title);
  --type-titles-subtitle-size: var(--type-size-8);
  --type-titles-subtitle-weight: var(--type-weight-extra-bold);
  --type-titles-header-family: var(--type-family-family-title);
  --type-titles-header-size: var(--type-size-7);
  --type-titles-header-weight: var(--type-weight-bold);
  --type-titles-subheader-family: var(--type-family-family-title);
  --type-titles-subheader-size: var(--type-size-5);
  --type-titles-subheader-weight: var(--type-weight-bold);

  /* type - body */
  --type-body-body-base-family: var(--type-family-family-body);
  --type-body-body-base-size: var(--type-size-3);
  --type-body-body-base-weight: var(--type-weight-regular);
  --type-body-body-bold-family: var(--type-family-family-body);
  --type-body-body-bold-size: var(--type-size-3);
  --type-body-body-bold-weight: var(--type-weight-semi-bold);
  --type-body-body-link-family: var(--type-family-family-body);
  --type-body-body-link-size: var(--type-size-3);
  --type-body-body-link-weight: var(--type-weight-semi-bold);
  --type-body-small-base-family: var(--type-family-family-body);
  --type-body-small-base-size: var(--type-size-2);
  --type-body-small-base-weight: var(--type-weight-regular);
  --type-body-small-bold-family: var(--type-family-family-body);
  --type-body-small-bold-size: var(--type-size-2);
  --type-body-small-bold-weight: var(--type-weight-semi-bold);
  --type-body-small-link-family: var(--type-family-family-body);
  --type-body-small-link-size: var(--type-size-2);
  --type-body-small-link-weight: var(--type-weight-semi-bold);

  /* type - other */
  --type-other-cta-family: var(--type-family-family-title);
  --type-other-cta-size: var(--type-size-3);
  --type-other-cta-weight: var(--type-weight-bold);
  --type-other-tag-family: var(--type-family-family-title);
  --type-other-tag-size: var(--type-size-2);
  --type-other-tag-weight: var(--type-weight-bold);
  --type-other-info-family: var(--type-family-family-title);
  --type-other-info-size: var(--type-size-3);
  --type-other-info-weight: var(--type-weight-semi-bold);
  --type-other-body-alt-family: var(--type-family-family-title);
  --type-other-body-alt-size: var(--type-size-3);
  --type-other-body-alt-weight: var(--type-weight-semi-bold);
  --type-other-question-family: var(--type-family-family-title);
  --type-other-question-size: var(--type-size-2);
  --type-other-question-weight: var(--type-weight-semi-bold);

  /*
   * Type line-heights.
   * Percentage values consumed by components as calc(var(--...) * 1%).
   * Kept under the existing --gbs-* names used across the app.
   */
  --gbs-title-line-height: 110;
  --gbs-subtitle-line-height: 110;
  --gbs-header-line-height: 110;
  --gbs-subheader-line-height: 110;
  --gbs-body-base-line-height: 125;
  --gbs-body-bold-line-height: 125;
  --gbs-body-link-line-height: 125;
  --gbs-body-small-line-height: 125;
  --gbs-alt-body-line-height: 110;
  --gbs-info-line-height: 110;
  --gbs-question-line-height: 110;
  --gbs-cta-line-height: 100;
  --gbs-tag-line-height: 100;

  /*
   * Compatibility aliases.
   * These map long-standing token names used across components onto the
   * semantic/primitive layers so every tenant resolves them (previously only
   * defined in the NUCO legacy tenant stylesheet).
   */
  --surface-invert: var(--surface-surface-invert);
  --colour-brand-green: var(--colour-brand-accent-1);
  --stroke-stroke-active-soft: var(--colour-brand-primary-50);
  --small-button-background-color: var(--colour-brand-accent-1);
  --text-colour-primary: var(--text-text-primary);
}
