/*
 * LP-TOOLS DS BUNDLE — v2.0.0
 * Design System LegalPlace — tokens + composants
 *
 * MISE À JOUR DS : chaque section est délimitée par un commentaire
 * "── Source: chemin/fichier.css ──" indiquant le fichier DS source.
 * Pour mettre à jour une section, remplacer son contenu par celui
 * du fichier DS correspondant (sans les @font-face).
 *
 * Sections incluses :
 *   foundations/colors.css
 *   foundations/typography.css
 *   foundations/spacing.css
 *   foundations/borders.css
 *   foundations/icons.css
 *   foundations/motion.css
 *   foundations/aliases/colors.css
 *   foundations/aliases/borders.css
 *   foundations/aliases/typography.css
 *   foundations/aliases/icons.css
 *   foundations/aliases/motion.css
 *   foundations/aliases/focus.css
 *   foundations/aliases/grid.css
 *   components/brand-assets/icon.css
 *   components/content/text-styles.css
 *   components/content/badge.css
 *   components/content/accordion.css
 *   components/actions/back-link.css
 *   components/actions/button.css
 *   components/forms/radio-card.css
 */

/* ── Source: foundations/colors.css ── */
:root {
  --color-white: #FFFFFF;
  --color-brand-100: #FFF9ED; --color-brand-200: #FFF6E3; --color-brand-300: #FFF0D0;
  --color-brand-400: #FAD282; --color-brand-500: #DFB254; --color-brand-600: #B78E37;
  --color-brand-700: #927025; --color-brand-800: #775A1A; --color-brand-900: #594210;
  --color-brand-1000: #2D2004;
  --color-accent-100: #F7FAFE; --color-accent-200: #F4F8FE; --color-accent-300: #EAF2FD;
  --color-accent-400: #C2D9FB; --color-accent-500: #92BBF6; --color-accent-600: #5A95E9;
  --color-accent-700: #2A74D6; --color-accent-800: #005BC1; --color-accent-900: #00409D;
  --color-accent-1000: #001D59;
  --color-linen-100: #FBFAF9; --color-linen-200: #F8F6F3; --color-linen-300: #F4F1ED;
  --color-linen-400: #DFD6C9; --color-linen-500: #C8B6A3; --color-linen-600: #AC8F78;
  --color-linen-700: #916D57; --color-linen-800: #765849; --color-linen-900: #554139;
  --color-linen-1000: #2B1F1B;
  --color-neutral-100: #F9F9F9; --color-neutral-200: #F6F6F6; --color-neutral-300: #F2F2F2;
  --color-neutral-400: #D7D7D7; --color-neutral-500: #B8B8B8; --color-neutral-600: #949494;
  --color-neutral-700: #757575; --color-neutral-800: #5E5E5E; --color-neutral-900: #464646;
  --color-neutral-1000: #222222;
  --color-positive-100: #F7FBF7; --color-positive-200: #F2F8F1; --color-positive-300: #EBF4E9;
  --color-positive-400: #C1E0BC; --color-positive-500: #90C687; --color-positive-600: #5BA550;
  --color-positive-700: #348528; --color-positive-800: #216D15; --color-positive-900: #105105;
  --color-positive-1000: #032900;
  --color-warning-100: #FFFAF7; --color-warning-200: #FFF6F0; --color-warning-300: #FFEFE4;
  --color-warning-400: #FFCDAB; --color-warning-500: #FFA268; --color-warning-600: #F56A00;
  --color-warning-700: #C25400; --color-warning-800: #A73A00; --color-warning-900: #7F2800;
  --color-warning-1000: #431100;
  --color-danger-100: #FFF8F6; --color-danger-200: #FFF5F4; --color-danger-300: #FFEEEB;
  --color-danger-400: #FFCBC3; --color-danger-500: #FF9F93; --color-danger-600: #F7655A;
  --color-danger-700: #DB3531; --color-danger-800: #BC141A; --color-danger-900: #920007;
  --color-danger-1000: #4D0000;
  --color-black-alpha-100: rgba(0,0,0,.10); --color-black-alpha-200: rgba(0,0,0,.20);
  --color-black-alpha-300: rgba(0,0,0,.30); --color-black-alpha-400: rgba(0,0,0,.40);
  --color-black-alpha-500: rgba(0,0,0,.50); --color-black-alpha-600: rgba(0,0,0,.60);
  --color-black-alpha-700: rgba(0,0,0,.70); --color-black-alpha-800: rgba(0,0,0,.80);
  --color-black-alpha-900: rgba(0,0,0,.90);
  --color-white-alpha-100: rgba(255,255,255,.10); --color-white-alpha-200: rgba(255,255,255,.20);
  --color-white-alpha-300: rgba(255,255,255,.30); --color-white-alpha-400: rgba(255,255,255,.40);
  --color-white-alpha-500: rgba(255,255,255,.50); --color-white-alpha-600: rgba(255,255,255,.60);
  --color-white-alpha-700: rgba(255,255,255,.70); --color-white-alpha-800: rgba(255,255,255,.80);
  --color-white-alpha-900: rgba(255,255,255,.90);
  --color-logo-gold: #DFB254; --color-logo-linen: #F8F6F3; --color-logo-blue: #005BC1;
  --color-logo-black: #2D2D2D; --color-logo-brown: #98755E;
}

/* ── Source: foundations/typography.css ── */
:root {
  --typography-font-family-es-rebond-grotesque: 'ES Rebond Grotesque';
  --typography-font-family-inter: 'lp-inter';
  --typography-font-weight-regular: 400;
  --typography-font-weight-medium: 500;
  --typography-font-weight-bold: 700;
  --typography-headline-font-size-1: 42px; --typography-headline-line-height-1: 50px;
  --typography-headline-font-size-2: 32px; --typography-headline-line-height-2: 40px;
  --typography-headline-font-size-3: 24px; --typography-headline-line-height-3: 32px;
  --typography-headline-font-size-4: 20px; --typography-headline-line-height-4: 28px;
  --typography-headline-font-size-5: 18px; --typography-headline-line-height-5: 24px;
  --typography-headline-font-size-6: 16px; --typography-headline-line-height-6: 20px;
  --typography-paragraph-font-size-1: 18px; --typography-paragraph-line-height-1: 28px;
  --typography-paragraph-font-size-2: 16px; --typography-paragraph-line-height-2: 24px;
  --typography-paragraph-font-size-3: 14px; --typography-paragraph-line-height-3: 22px;
  --typography-paragraph-font-size-4: 12px; --typography-paragraph-line-height-4: 16px;
}
@media (min-width: 992px) {
  :root {
    --typography-headline-font-size-1: 54px; --typography-headline-line-height-1: 64px;
    --typography-headline-font-size-2: 42px; --typography-headline-line-height-2: 50px;
    --typography-headline-font-size-3: 28px; --typography-headline-line-height-3: 36px;
  }
}

/* ── Source: foundations/spacing.css ── */
:root {
  --grid-baseline: 2px;
  --spacing-2: 2px; --spacing-4: 4px; --spacing-8: 8px; --spacing-12: 12px;
  --spacing-16: 16px; --spacing-20: 20px; --spacing-24: 24px; --spacing-32: 32px;
  --spacing-40: 40px; --spacing-48: 48px; --spacing-56: 56px; --spacing-64: 64px;
  --spacing-72: 72px; --spacing-80: 80px; --spacing-104: 104px; --spacing-160: 160px;
}

/* ── Source: foundations/borders.css ── */
:root {
  --border-stroke-0-5: 0.5px;
  --border-stroke-1: 1px;
  --border-radius-2: 2px;
  --border-radius-9999: 9999px;
}

/* ── Source: foundations/icons.css ── */
:root {
  --icon-16: 16px; --icon-20: 20px; --icon-24: 24px; --icon-32: 32px;
  --icon-stroke-2-5: 2.5px; --icon-stroke-2-2: 2.2px; --icon-stroke-1-9: 1.9px;
  --icon-stroke-1-7: 1.7px; --icon-stroke-1-4: 1.4px;
}

/* ── Source: foundations/motion.css ── */
:root {
  --motion-duration-200: 200ms;
  --motion-easing-ease-out: ease-out;
}

/* ── Source: foundations/aliases/colors.css ── */
:root {
  --color-content-primary: var(--color-neutral-1000);
  --color-content-secondary: var(--color-neutral-800);
  --color-content-tertiary: var(--color-neutral-700);
  --color-content-disabled: var(--color-neutral-600);
  --color-content-positive: var(--color-positive-800);
  --color-content-warning: var(--color-warning-800);
  --color-content-informative: var(--color-accent-800);
  --color-content-danger: var(--color-danger-800);
  --color-content-accent: var(--color-accent-800);
  --color-content-inverse-primary: var(--color-white);
  --color-content-inverse-secondary: var(--color-white-alpha-700);
  --color-content-inverse-tertiary: var(--color-white-alpha-600);
  --color-content-decorative-gold: var(--color-brand-500);
  --color-content-danger-hovered: var(--color-danger-900);
  --color-content-danger-pressed: var(--color-danger-1000);
  --color-content-accent-hovered: var(--color-accent-900);
  --color-content-accent-pressed: var(--color-accent-1000);
  --color-page: var(--color-white);
  --color-page-alt: var(--color-linen-200);
  --color-surface-primary: var(--color-linen-200);
  --color-surface-secondary: var(--color-linen-100);
  --color-surface-tertiary: var(--color-white);
  --color-surface-disabled: var(--color-neutral-300);
  --color-surface-disabled-inverse: var(--color-white-alpha-100);
  --color-surface-on-alt-primary: var(--color-white);
  --color-surface-on-alt-secondary: var(--color-linen-100);
  --color-surface-on-alt-tertiary: var(--color-linen-200);
  --color-surface-decorative-linen-medium: var(--color-linen-400);
  --color-surface-decorative-linen-dark: var(--color-linen-900);
  --color-surface-decorative-black: var(--color-neutral-1000);
  --color-surface-decorative-brand: var(--color-brand-500);
  --color-surface-decorative-hovered: var(--color-white-alpha-100);
  --color-surface-decorative-pressed: var(--color-white-alpha-200);
  --color-surface-positive-primary-hovered: var(--color-positive-900);
  --color-surface-positive-primary-pressed: var(--color-positive-1000);
  --color-surface-positive-secondary-hovered: var(--color-positive-400);
  --color-surface-positive-secondary-pressed: var(--color-positive-500);
  --color-surface-warning-primary: var(--color-warning-800);
  --color-surface-warning-secondary: var(--color-brand-300);
  --color-surface-danger-primary-hovered: var(--color-danger-900);
  --color-surface-danger-primary-pressed: var(--color-danger-1000);
  --color-surface-danger-secondary-hovered: var(--color-danger-400);
  --color-surface-danger-secondary-pressed: var(--color-danger-500);
  --color-surface-informative-primary: var(--color-accent-800);
  --color-surface-informative-secondary: var(--color-accent-300);
  --color-surface-accent: var(--color-accent-800);
  --color-surface-accent-hovered: var(--color-accent-900);
  --color-surface-accent-pressed: var(--color-accent-1000);
  --color-surface-accent-inverse: var(--color-white);
  --color-surface-accent-inverse-hovered: var(--color-white-alpha-900);
  --color-surface-accent-inverse-pressed: var(--color-white-alpha-800);
  --color-surface-neutral-hovered: var(--color-linen-300);
  --color-surface-neutral-pressed: var(--color-linen-400);
  --color-surface-neutral-active: var(--color-neutral-1000);
  --color-surface-neutral-inverse-hovered: var(--color-surface-decorative-hovered);
  --color-surface-neutral-inverse-pressed: var(--color-surface-decorative-pressed);
  --color-border-primary: var(--color-neutral-1000);
  --color-border-secondary: var(--color-linen-400);
  --color-border-tertiary: var(--color-linen-300);
  --color-border-disabled: var(--color-neutral-300);
  --color-border-disabled-inverse: var(--color-white-alpha-200);
  --color-border-primary-hovered: var(--color-neutral-1000);
  --color-border-primary-pressed: var(--color-neutral-1000);
  --color-border-secondary-inverse: var(--color-white-alpha-400);
  --color-border-secondary-inverse-hovered: var(--color-white-alpha-700);
  --color-border-secondary-inverse-pressed: var(--color-white-alpha-600);
  --color-border-primary-inverse: var(--color-white);
  --color-border-primary-inverse-hovered: var(--color-white);
  --color-border-primary-inverse-pressed: var(--color-white);
  --color-border-decorative-black: var(--color-neutral-1000);
  --color-border-decorative-brand: var(--color-brand-500);
  --color-border-positive-primary: var(--color-positive-800);
  --color-border-positive-secondary: var(--color-positive-300);
  --color-border-warning-primary: var(--color-warning-800);
  --color-border-danger-secondary: var(--color-danger-300);
  --color-border-danger-primary-hovered: var(--color-danger-900);
  --color-border-danger-primary-pressed: var(--color-danger-1000);
  --color-border-informative-primary: var(--color-accent-800);
  --color-border-informative-secondary: var(--color-accent-300);
  --color-border-accent: var(--color-accent-800);
  --color-border-accent-hovered: var(--color-accent-900);
  --color-border-accent-pressed: var(--color-accent-1000);
  --color-border-accent-inverse: var(--color-white);
  --color-border-accent-inverse-hovered: var(--color-white-alpha-900);
  --color-border-accent-inverse-pressed: var(--color-white-alpha-800);
  --color-divider-primary: var(--color-linen-400);
  --color-divider-secondary: var(--color-linen-300);
  --color-divider-inverse: var(--color-white-alpha-300);
  --color-focus-ring: var(--color-accent-800);
  --color-overlay: var(--color-black-alpha-400);
}

/* ── Source: foundations/aliases/borders.css ── */
:root {
  --border-stroke-primary: var(--border-stroke-1);
  --border-stroke-secondary: var(--border-stroke-0-5);
  --divider: var(--border-stroke-1);
  --border-radius: var(--border-radius-2);
  --border-radius-full: var(--border-radius-9999);
}

/* ── Source: foundations/aliases/typography.css ── */
:root {
  --typography-headline-font-family: var(--typography-font-family-es-rebond-grotesque);
  --typography-headline-font-weight: var(--typography-font-weight-medium);
  --typography-paragraph-font-family: var(--typography-font-family-inter);
  --typography-paragraph-font-weight: var(--typography-font-weight-regular);
  --typography-paragraph-font-weight-bold: var(--typography-font-weight-bold);
  --typography-link-font-family: var(--typography-font-family-inter);
  --typography-link-font-weight: var(--typography-font-weight-medium);
}

/* ── Source: foundations/aliases/icons.css ── */
:root {
  --icon-size-s: var(--icon-16);
  --icon-size-m: var(--icon-20);
  --icon-size-l: var(--icon-24);
  --icon-size-xl: var(--icon-32);
  --icon-stroke-s: var(--icon-stroke-2-5);
  --icon-stroke-m: var(--icon-stroke-2-2);
  --icon-stroke-l: var(--icon-stroke-1-7);
  --icon-stroke-xl: var(--icon-stroke-1-4);
}

/* ── Source: foundations/aliases/motion.css ── */
:root {
  --motion-transition-interactive: var(--motion-duration-200) var(--motion-easing-ease-out);
}
button:active, a:active, [role="button"]:active, label:active, select:active {
  transition: none;
}

/* ── Source: foundations/aliases/focus.css ── */
button:focus-visible, a:focus-visible, [role="button"]:focus-visible,
input:focus-visible, select:focus-visible, textarea:focus-visible, [tabindex]:focus-visible {
  outline: 2px solid var(--color-focus-ring);
  outline-offset: 2px;
}
button:focus:not(:focus-visible), a:focus:not(:focus-visible),
[role="button"]:focus:not(:focus-visible), input:focus:not(:focus-visible),
select:focus:not(:focus-visible), textarea:focus:not(:focus-visible),
[tabindex]:focus:not(:focus-visible) { outline: none; }
button:disabled:focus-visible, input:disabled:focus-visible,
select:disabled:focus-visible, textarea:disabled:focus-visible,
[aria-disabled="true"]:focus-visible { outline: none; }

/* ── Source: foundations/aliases/grid.css ── */
:root {
  --grid-columns: 4;
  --grid-gutter: var(--spacing-16);
  --grid-margin: var(--spacing-16);
  --grid-max-width: none;
}
@media (min-width: 480px) {
  :root { --grid-columns: 12; --grid-gutter: var(--spacing-20); --grid-margin: var(--spacing-20); --grid-max-width: 1280px; }
}
@media (min-width: 768px) {
  :root { --grid-columns: 12; --grid-gutter: var(--spacing-24); --grid-margin: var(--spacing-24); --grid-max-width: 1280px; }
}

/* ── Source: components/brand-assets/icon.css ── */
.icon {
  --icon-size: var(--icon-size-s);
  --icon-stroke: var(--icon-stroke-s);
  display: inline-block;
  width: var(--icon-size);
  height: var(--icon-size);
  flex-shrink: 0;
  stroke-width: var(--icon-stroke);
}
.icon--s { --icon-size: var(--icon-size-s); --icon-stroke: var(--icon-stroke-s); }
.icon--m { --icon-size: var(--icon-size-m); --icon-stroke: var(--icon-stroke-m); }
.icon--l { --icon-size: var(--icon-size-l); --icon-stroke: var(--icon-stroke-l); }
.icon--xl { --icon-size: var(--icon-size-xl); --icon-stroke: var(--icon-stroke-xl); }

/* ── Source: components/content/text-styles.css ── */
.headline-1, .headline-2, .headline-3, .headline-4, .headline-5, .headline-6 {
  font-family: var(--typography-headline-font-family);
  font-weight: var(--typography-headline-font-weight);
}
.headline-1 { font-size: var(--typography-headline-font-size-1); line-height: var(--typography-headline-line-height-1); }
.headline-2 { font-size: var(--typography-headline-font-size-2); line-height: var(--typography-headline-line-height-2); }
.headline-3 { font-size: var(--typography-headline-font-size-3); line-height: var(--typography-headline-line-height-3); }
.headline-4 { font-size: var(--typography-headline-font-size-4); line-height: var(--typography-headline-line-height-4); }
.headline-5 { font-size: var(--typography-headline-font-size-5); line-height: var(--typography-headline-line-height-5); }
.headline-6 { font-size: var(--typography-headline-font-size-6); line-height: var(--typography-headline-line-height-6); }
.paragraph-1, .paragraph-2, .paragraph-3, .paragraph-4,
.paragraph-bold-1, .paragraph-bold-2, .paragraph-bold-3, .paragraph-bold-4 {
  font-family: var(--typography-paragraph-font-family);
}
.paragraph-1, .paragraph-2, .paragraph-3, .paragraph-4 { font-weight: var(--typography-paragraph-font-weight); }
.paragraph-bold-1, .paragraph-bold-2, .paragraph-bold-3, .paragraph-bold-4 { font-weight: var(--typography-paragraph-font-weight-bold); }
.paragraph-1, .paragraph-bold-1 { font-size: var(--typography-paragraph-font-size-1); line-height: var(--typography-paragraph-line-height-1); }
.paragraph-2, .paragraph-bold-2 { font-size: var(--typography-paragraph-font-size-2); line-height: var(--typography-paragraph-line-height-2); }
.paragraph-3, .paragraph-bold-3 { font-size: var(--typography-paragraph-font-size-3); line-height: var(--typography-paragraph-line-height-3); }
.paragraph-4, .paragraph-bold-4 { font-size: var(--typography-paragraph-font-size-4); line-height: var(--typography-paragraph-line-height-4); }
.link-1, .link-2, .link-3, .link-4 { font-family: var(--typography-link-font-family); font-weight: var(--typography-link-font-weight); }
.link-1 { font-size: var(--typography-paragraph-font-size-1); line-height: var(--typography-paragraph-line-height-1); }
.link-2 { font-size: var(--typography-paragraph-font-size-2); line-height: var(--typography-paragraph-line-height-2); }
.link-3 { font-size: var(--typography-paragraph-font-size-3); line-height: var(--typography-paragraph-line-height-3); }
.link-4 { font-size: var(--typography-paragraph-font-size-4); line-height: var(--typography-paragraph-line-height-4); }

/* ── Source: components/content/badge.css ── */
.badge {
  --badge-bg: var(--color-surface-decorative-brand);
  --badge-color: var(--color-content-primary);
  --badge-height: 28px;
  --badge-padding-x: var(--spacing-12);
  display: inline-flex; align-self: flex-start; align-items: center;
  gap: var(--spacing-8); overflow: hidden; height: var(--badge-height);
  padding: 0 var(--badge-padding-x); background-color: var(--badge-bg);
  border-radius: var(--border-radius); color: var(--badge-color); white-space: nowrap;
  font-family: var(--typography-headline-font-family); font-weight: var(--typography-headline-font-weight);
  font-size: var(--typography-headline-font-size-6); line-height: var(--typography-headline-line-height-6);
}
.badge > .icon { --icon-size: var(--icon-size-s); --icon-stroke: var(--icon-stroke-s); }
.badge--dark { --badge-bg: var(--color-surface-decorative-black); --badge-color: var(--color-content-inverse-primary); }
.badge--linen { --badge-bg: var(--color-surface-decorative-linen-medium); }
.badge--s {
  --badge-height: 24px; --badge-padding-x: var(--spacing-8); gap: 0;
  font-family: var(--typography-paragraph-font-family); font-weight: var(--typography-paragraph-font-weight);
  font-size: var(--typography-paragraph-font-size-4); line-height: var(--typography-paragraph-line-height-4);
}

/* ── Source: components/content/accordion.css ── */
.accordion {
  --accordion-title-color: var(--color-content-primary);
  --accordion-content-color: var(--color-content-secondary);
  --accordion-icon-color: var(--color-content-primary);
  --accordion-chevron-color: var(--color-content-primary);
  --accordion-divider-color: var(--color-divider-primary);
  --accordion-trigger-hover-bg: var(--color-surface-neutral-hovered);
  --accordion-trigger-pressed-bg: var(--color-surface-neutral-pressed);
  border-bottom: 1px solid var(--accordion-divider-color);
}
.accordion__trigger {
  display: flex; align-items: center; gap: var(--spacing-24);
  padding: var(--spacing-12); margin-top: var(--spacing-32); margin-bottom: var(--spacing-32);
  list-style: none; cursor: pointer; border-radius: var(--border-radius);
  transition: background-color var(--motion-transition-interactive);
}
.accordion__trigger::-webkit-details-marker { display: none; }
.accordion__trigger:hover { background-color: var(--accordion-trigger-hover-bg); }
.accordion__trigger:active { background-color: var(--accordion-trigger-pressed-bg); transition: none; }
.accordion__label {
  flex: 1; color: var(--accordion-title-color);
  font-family: var(--typography-headline-font-family); font-weight: var(--typography-headline-font-weight);
  font-size: var(--typography-headline-font-size-4); line-height: var(--typography-headline-line-height-4);
}
.accordion__chevron { flex-shrink: 0; transition: transform var(--motion-transition-interactive); }
.accordion[open] .accordion__chevron { transform: rotate(180deg); }
.accordion[open] .accordion__trigger { margin-bottom: var(--spacing-16); }
.accordion__trigger:active .accordion__chevron { transition: none; }
.accordion__content {
  padding: 0 var(--spacing-12); margin-bottom: var(--spacing-32); color: var(--accordion-content-color);
  font-family: var(--typography-paragraph-font-family); font-weight: var(--typography-paragraph-font-weight);
  font-size: var(--typography-paragraph-font-size-3); line-height: var(--typography-paragraph-line-height-3);
}
.accordion .accordion__icon { --icon-size: var(--icon-size-xl); --icon-stroke: var(--icon-stroke-xl); color: var(--accordion-icon-color); }
.accordion .accordion__chevron { --icon-size: var(--icon-size-m); --icon-stroke: var(--icon-stroke-m); color: var(--accordion-chevron-color); }
.accordion--s .accordion__label { font-size: var(--typography-headline-font-size-6); line-height: var(--typography-headline-line-height-6); }
.accordion--s .accordion__trigger { margin-top: var(--spacing-20); margin-bottom: var(--spacing-20); }
.accordion--s .accordion__content { margin-bottom: var(--spacing-20); }
.accordion--s .accordion__icon { --icon-size: var(--icon-size-m); --icon-stroke: var(--icon-stroke-m); }
.accordion--s .accordion__chevron { --icon-size: var(--icon-size-s); --icon-stroke: var(--icon-stroke-s); }
.accordion--dark {
  --accordion-title-color: var(--color-content-inverse-primary);
  --accordion-content-color: var(--color-content-inverse-secondary);
  --accordion-icon-color: var(--color-content-inverse-primary);
  --accordion-chevron-color: var(--color-content-inverse-primary);
  --accordion-divider-color: var(--color-divider-inverse);
  --accordion-trigger-hover-bg: var(--color-surface-decorative-hovered);
  --accordion-trigger-pressed-bg: var(--color-surface-decorative-pressed);
}

/* ── Source: components/actions/back-link.css ── */
.back-link {
  --back-link-color: var(--color-content-secondary);
  --back-link-color-hovered: var(--color-content-primary);
  --back-link-color-pressed: var(--color-content-primary);
  display: inline-flex; align-items: center; gap: var(--spacing-8);
  color: var(--back-link-color); text-decoration: none; cursor: pointer;
  font-family: var(--typography-link-font-family); font-weight: var(--typography-link-font-weight);
  font-size: var(--typography-paragraph-font-size-3); line-height: var(--typography-paragraph-line-height-3);
  white-space: nowrap; transition: color var(--motion-transition-interactive);
}
.back-link > .icon { margin-top: var(--spacing-2); }
.back-link .icon { --icon-size: var(--icon-size-s); --icon-stroke: var(--icon-stroke-s); }
.back-link:hover { color: var(--back-link-color-hovered); text-decoration: underline; text-decoration-skip-ink: none; }
.back-link:active { color: var(--back-link-color-pressed); text-decoration: none; }
.back-link[aria-disabled="true"] {
  --back-link-color: var(--color-content-disabled);
  --back-link-color-hovered: var(--color-content-disabled);
  --back-link-color-pressed: var(--color-content-disabled);
  cursor: not-allowed; pointer-events: none;
}

/* ── Source: components/actions/button.css ── */
.btn {
  --btn-bg: var(--color-surface-accent); --btn-bg-hovered: var(--color-surface-accent-hovered);
  --btn-bg-pressed: var(--color-surface-accent-pressed); --btn-color: var(--color-content-inverse-primary);
  --btn-border-color: transparent; --btn-border-color-hovered: transparent; --btn-border-color-pressed: transparent;
  display: inline-flex; align-items: center; gap: var(--spacing-8);
  padding: var(--spacing-16) var(--spacing-24); border-radius: var(--border-radius-full);
  border: var(--border-stroke-primary) solid var(--btn-border-color);
  background-color: var(--btn-bg); color: var(--btn-color); cursor: pointer;
  font-family: var(--typography-link-font-family); font-weight: var(--typography-link-font-weight);
  font-size: var(--typography-paragraph-font-size-2); line-height: var(--typography-paragraph-line-height-2);
  white-space: nowrap; text-decoration: none;
  transition: background-color var(--motion-transition-interactive), border-color var(--motion-transition-interactive), color var(--motion-transition-interactive);
}
.btn:hover { background-color: var(--btn-bg-hovered); border-color: var(--btn-border-color-hovered); }
.btn:active { background-color: var(--btn-bg-pressed); border-color: var(--btn-border-color-pressed); }
.btn--secondary {
  --btn-bg: transparent; --btn-bg-hovered: var(--color-surface-neutral-hovered);
  --btn-bg-pressed: var(--color-surface-neutral-pressed); --btn-color: var(--color-content-primary);
  --btn-border-color: var(--color-border-primary); --btn-border-color-hovered: var(--color-border-primary-hovered);
  --btn-border-color-pressed: var(--color-border-primary-pressed);
}
.btn--secondary .icon { display: none; }
.btn .icon { --icon-size: var(--icon-size-s); --icon-stroke: var(--icon-stroke-s); }
.btn--on-dark {
  --btn-bg: var(--color-surface-accent-inverse); --btn-bg-hovered: var(--color-surface-accent-inverse-hovered);
  --btn-bg-pressed: var(--color-surface-accent-inverse-pressed); --btn-color: var(--color-content-accent);
  --btn-border-color: transparent; --btn-border-color-hovered: transparent; --btn-border-color-pressed: transparent;
}
.btn--secondary.btn--on-dark {
  --btn-bg: transparent; --btn-bg-hovered: var(--color-surface-neutral-inverse-hovered);
  --btn-bg-pressed: var(--color-surface-neutral-inverse-pressed); --btn-color: var(--color-content-inverse-primary);
  --btn-border-color: var(--color-border-primary-inverse); --btn-border-color-hovered: var(--color-border-primary-inverse-hovered);
  --btn-border-color-pressed: var(--color-border-primary-inverse-pressed);
}
.btn:disabled, .btn[aria-disabled="true"] {
  --btn-bg: var(--color-surface-disabled); --btn-bg-hovered: var(--color-surface-disabled);
  --btn-bg-pressed: var(--color-surface-disabled); --btn-color: var(--color-content-disabled);
  --btn-border-color: var(--color-border-disabled); --btn-border-color-hovered: var(--color-border-disabled);
  --btn-border-color-pressed: var(--color-border-disabled); cursor: not-allowed;
}
.btn--on-dark:disabled, .btn--on-dark[aria-disabled="true"] {
  --btn-bg: var(--color-surface-disabled-inverse); --btn-bg-hovered: var(--color-surface-disabled-inverse);
  --btn-bg-pressed: var(--color-surface-disabled-inverse); --btn-color: var(--color-content-disabled);
  --btn-border-color: transparent; --btn-border-color-hovered: transparent; --btn-border-color-pressed: transparent;
}
.btn--secondary.btn--on-dark:disabled, .btn--secondary.btn--on-dark[aria-disabled="true"] {
  --btn-bg: transparent; --btn-bg-hovered: transparent; --btn-bg-pressed: transparent;
  --btn-color: var(--color-content-disabled); --btn-border-color: var(--color-border-disabled-inverse);
  --btn-border-color-hovered: var(--color-border-disabled-inverse); --btn-border-color-pressed: var(--color-border-disabled-inverse);
}

/* ── Source: components/forms/radio-card.css ── */
.radio-card {
  background-color: var(--color-surface-on-alt-primary);
  border: var(--border-stroke-primary) solid var(--color-border-secondary);
  border-radius: var(--border-radius);
  display: flex; flex-direction: column; align-items: flex-start;
  gap: var(--spacing-16); padding: var(--spacing-24); width: 100%; text-align: left;
  cursor: pointer; transition: border-color var(--motion-transition-interactive);
}
.radio-card:hover { border-color: var(--color-border-accent-hovered); }
.radio-card:active { border-color: var(--color-border-accent-pressed); }
.radio-card__body { display: grid; grid-template-columns: 1fr auto; gap: var(--spacing-16) var(--spacing-24); width: 100%; align-items: center; }
.radio-card__icon { --icon-size: var(--icon-size-xl); --icon-stroke: var(--icon-stroke-xl); grid-column: 1 / -1; }
.radio-card__text { display: flex; flex-direction: column; gap: var(--spacing-4); min-width: 0; }
.radio-card__title {
  font-family: var(--typography-headline-font-family); font-weight: var(--typography-headline-font-weight);
  font-size: var(--typography-headline-font-size-4); line-height: var(--typography-headline-line-height-4);
  color: var(--color-content-primary);
}
.radio-card__subtitle {
  font-family: var(--typography-paragraph-font-family); font-weight: var(--typography-paragraph-font-weight);
  font-size: var(--typography-paragraph-font-size-3); line-height: var(--typography-paragraph-line-height-3);
  color: var(--color-content-secondary);
}
.radio-card__chevron { --icon-size: var(--icon-size-m); --icon-stroke: var(--icon-stroke-m); }
@media (min-width: 768px) {
  .radio-card { gap: var(--spacing-12); }
  .radio-card__body:has(.radio-card__icon) { grid-template-columns: auto 1fr auto; }
  .radio-card__icon { grid-column: 1; grid-row: 1; align-self: start; }
  .radio-card__body:has(.radio-card__icon) .radio-card__text { grid-column: 2; grid-row: 1; }
  .radio-card__body:has(.radio-card__icon) .radio-card__chevron { grid-column: 3; grid-row: 1; }
}
