/* ==========================================================================
   TDS (Trailhead Design System) Components - Auto-generated
   
   DO NOT EDIT THIS FILE DIRECTLY!
   Edit individual component files in app/assets/stylesheets/components/tds/
   Then run: bin/rails tds:build_css
   ========================================================================== */

/* ==========================================================================
   TDS Page Layout Variables
   From tds-theme-provider.css
   ========================================================================== */
:root {
  /* Page layout tokens - matches original Trailhead */
  --tds-page-grid-column-gap: var(--tds-spacing-12, 48px); /* Used as sidebar padding */
  --tds-page-grid-row-gap: var(--tds-spacing-5, 20px);
  --tds-page-sidebar-width: 352px; /* Original Trailhead sidebar content width */
  --tds-page-main-max-width: 768px; /* Original Trailhead main content */
  --tds-page-container-width: var(--tds-container-xl, 1280px);
}

@media screen and (max-width: 800px) {
  :root {
    --tds-page-grid-column-gap: var(--tds-spacing-5, 20px);
    --tds-page-grid-row-gap: var(--tds-spacing-5, 20px);
  }
}

/* ==========================================================================
   TDS Utility Classes
   Matches utility classes from original Trailhead design system
   ========================================================================== */

/* --------------------------------------------------------------------------
   Color Utilities - Text
   -------------------------------------------------------------------------- */

.tds-color_black {
  color: var(--tds-color-black, #181818);
}

.tds-color_meteorite {
  color: var(--tds-color-meteorite, #5c5c5c);
}

.tds-color_ocean {
  color: var(--tds-color-ocean, #0176d3);
}

.tds-color_white {
  color: var(--tds-color-white, #ffffff);
}

.tds-color_brand {
  color: var(--tds-color-brand, #0176d3);
}

.tds-color_success {
  color: var(--tds-color-success, #2e844a);
}

.tds-color_destructive {
  color: var(--tds-color-destructive, #ba0517);
}

.tds-color_warning {
  color: var(--tds-color-warning-60, #a96404);
}

/* --------------------------------------------------------------------------
   Color Utilities - Background
   -------------------------------------------------------------------------- */

.tds-bg_success {
  background-color: var(--tds-color-success, #2e844a);
}

.tds-bg_brand {
  background-color: var(--tds-color-brand, #0176d3);
}

.tds-bg_destructive {
  background-color: var(--tds-color-destructive, #ba0517);
}

.tds-bg_warning {
  background-color: var(--tds-color-warning-60, #a96404);
}

/* --------------------------------------------------------------------------
   RTL Utilities
   -------------------------------------------------------------------------- */

[dir="rtl"] .icon-flip-rtl {
  transform: scaleX(-1);
}

/* --------------------------------------------------------------------------
   Icon Sizes
   -------------------------------------------------------------------------- */

.trl-icon--xx-small {
  width: 12px;
  height: 12px;
}

.trl-icon--x-small {
  width: 14px;
  height: 14px;
}

.trl-icon--small {
  width: 16px;
  height: 16px;
}

.trl-icon--medium {
  width: 20px;
  height: 20px;
}

.trl-icon--large {
  width: 24px;
  height: 24px;
}

.tds-bg_white {
  background-color: var(--tds-color-white, #ffffff);
}

.tds-bg_sand {
  background-color: var(--tds-color-sand, #f3f3f3);
}

.tds-bg_fog {
  background-color: var(--tds-color-fog, #e5e5e5);
}

/* --------------------------------------------------------------------------
   Fill Utilities (for SVGs)
   -------------------------------------------------------------------------- */

.tds-fill_success {
  fill: var(--tds-color-success, #2e844a);
}

.tds-fill_brand {
  fill: var(--tds-color-brand, #0176d3);
}

.tds-fill_destructive,
.tds-fill_ruby {
  fill: var(--tds-color-destructive, #ba0517);
}

.tds-fill_white {
  fill: var(--tds-color-white, #ffffff);
}

/* --------------------------------------------------------------------------
   Typography Utilities
   -------------------------------------------------------------------------- */

.tds-text_bold {
  font-weight: 700;
}

.tds-text_semibold {
  font-weight: 600;
}

.tds-text_regular {
  font-weight: 400;
}

.tds-text_light {
  font-weight: 300;
}

.tds-text-decoration_underline {
  text-decoration: underline;
}

.tds-text-decoration_none {
  text-decoration: none;
}

.tds-text-align_center {
  text-align: center;
}

.tds-text-align_left {
  text-align: left;
}

.tds-text-align_right {
  text-align: right;
}

/* --------------------------------------------------------------------------
   Accessibility Utilities
   -------------------------------------------------------------------------- */

.tds-helper_assistive-text,
.tds-assistive-text {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  clip: rect(0 0 0 0);
  overflow: hidden;
  white-space: nowrap;
}

/* --------------------------------------------------------------------------
   Spacing Utilities
   -------------------------------------------------------------------------- */

.tds-spacing-1 { margin: var(--tds-spacing-1, 4px); }
.tds-spacing-2 { margin: var(--tds-spacing-2, 8px); }
.tds-spacing-3 { margin: var(--tds-spacing-3, 12px); }
.tds-spacing-4 { margin: var(--tds-spacing-4, 16px); }
.tds-spacing-5 { margin: var(--tds-spacing-5, 20px); }
.tds-spacing-6 { margin: var(--tds-spacing-6, 24px); }
.tds-spacing-8 { margin: var(--tds-spacing-8, 32px); }

.tds-m-top_1 { margin-top: var(--tds-spacing-1, 4px); }
.tds-m-top_2 { margin-top: var(--tds-spacing-2, 8px); }
.tds-m-top_3 { margin-top: var(--tds-spacing-3, 12px); }
.tds-m-top_4 { margin-top: var(--tds-spacing-4, 16px); }

.tds-m-bottom_1 { margin-bottom: var(--tds-spacing-1, 4px); }
.tds-m-bottom_2 { margin-bottom: var(--tds-spacing-2, 8px); }
.tds-m-bottom_3 { margin-bottom: var(--tds-spacing-3, 12px); }
.tds-m-bottom_4 { margin-bottom: var(--tds-spacing-4, 16px); }

.tds-p-around_1 { padding: var(--tds-spacing-1, 4px); }
.tds-p-around_2 { padding: var(--tds-spacing-2, 8px); }
.tds-p-around_3 { padding: var(--tds-spacing-3, 12px); }
.tds-p-around_4 { padding: var(--tds-spacing-4, 16px); }

/* --------------------------------------------------------------------------
   Display Utilities
   -------------------------------------------------------------------------- */

.tds-show {
  display: block;
}

.tds-hide {
  display: none;
}

.tds-show_inline {
  display: inline;
}

.tds-show_inline-block {
  display: inline-block;
}

.tds-show_flex {
  display: flex;
}

/* --------------------------------------------------------------------------
   Dark Mode Support for Utilities
   -------------------------------------------------------------------------- */

[data-theme="dark"] .tds-color_black {
  color: var(--color-text, #e5e5e5);
}

[data-theme="dark"] .tds-color_meteorite {
  color: var(--color-text-secondary, #b0adab);
}

[data-theme="dark"] .tds-color_ocean {
  color: var(--color-text-accent, #1b96ff);
}

[data-theme="dark"] .tds-bg_white {
  background-color: var(--trl-surface, #1a1a1a);
}

[data-theme="dark"] .tds-bg_sand {
  background-color: var(--trl-surface-soft, rgba(255, 255, 255, 0.05));
}

[data-theme="dark"] .tds-bg_fog {
  background-color: var(--trl-surface-soft, rgba(255, 255, 255, 0.1));
}

/* --------------------------------------------------------------------------
   RTL Support for Utilities
   -------------------------------------------------------------------------- */

[dir="rtl"] .tds-text-align_left {
  text-align: right;
}

[dir="rtl"] .tds-text-align_right {
  text-align: left;
}

/* ==========================================================================
   TDS Icon Component
   Ported from th-components-main/src/elements/tds/icon
   ========================================================================== */

.tds-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: inherit;
  fill: var(--tds-icon_fill, currentColor);
  stroke: var(--tds-icon_stroke);
  stroke-width: var(--tds-icon_stroke-width);
}

.tds-icon svg {
  display: block;
  fill: inherit;
  stroke: inherit;
  stroke-width: inherit;
  height: var(--tds-icon_size, var(--icon-size, 1em));
  width: var(--tds-icon_size, var(--icon-size, 1em));
}

/* Size variants */
.tds-icon--x-small {
  --icon-size: var(--tds-spacing-3); /* 12px */
}

.tds-icon--small {
  --icon-size: var(--tds-spacing-4); /* 16px */
}

.tds-icon--medium {
  --icon-size: var(--tds-spacing-5); /* 20px */
}

.tds-icon--large {
  --icon-size: var(--tds-spacing-6); /* 24px */
}

.tds-icon--xlarge {
  --icon-size: var(--tds-spacing-10); /* 40px */
}

/* Assistive text for screen readers */
.tds-icon__assistive-text {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* RTL support - flip directional icons */
[dir="rtl"] .tds-icon--flip-rtl {
  transform: scaleX(-1);
}

/* Dark mode adjustments */
[data-theme="dark"] .tds-icon {
  color: inherit;
}


/* ==========================================================================
   TDS Heading Component
   Ported from th-components-main/src/elements/tds/heading
   ========================================================================== */

.tds-heading {
  font-family: var(--tds-heading_font-family, var(--tds-font-family-display));
  font-weight: var(--tds-heading_font-weight, normal);
  color: var(--tds-heading_color, var(--tds-color-midnight));
  margin: 0;
  line-height: 1.3;
}

/* Heading level sizes */
.tds-heading--h1 {
  font-size: var(--tds-heading-font-size, var(--tds-font-size-2xl)); /* 24px */
}

.tds-heading--h2 {
  font-size: var(--tds-heading-font-size, var(--tds-font-size-xl)); /* 20px */
}

.tds-heading--h3 {
  font-size: var(--tds-heading-font-size, var(--tds-font-size-lg)); /* 18px */
}

.tds-heading--h4 {
  font-size: var(--tds-heading-font-size, var(--tds-font-size-md)); /* 16px */
}

.tds-heading--h5 {
  font-size: var(--tds-heading-font-size, var(--tds-font-size-sm)); /* 14px */
}

.tds-heading--h6 {
  font-size: var(--tds-heading-font-size, var(--tds-font-size-xs)); /* 12px */
}

/* Dark mode */
[data-theme="dark"] .tds-heading {
  color: var(--tds-heading_color, var(--color-text));
}

/* RTL support */
[dir="rtl"] .tds-heading {
  text-align: right;
}


/* ==========================================================================
   TDS Button Component
   Ported from th-components-main/src/elements/tds/buttonStyles
   ========================================================================== */

.tds-button {
  --dark-1: 5%;
  --dark-2: 15%;

  align-items: center;
  -moz-appearance: none;
  -webkit-appearance: none;
  -webkit-font-smoothing: var(--tds-button_font-smoothing, inherit);
  border: var(--tds-button_border, 2px solid transparent);
  background-color: var(--tds-button_background-color, transparent);
  border-radius: var(--tds-button_border-radius, var(--tds-radius-md));
  box-shadow: var(--tds-button_box-shadow, none);
  color: var(--tds-button_color, inherit);
  cursor: pointer;
  display: inline-flex;
  justify-content: center;
  font-family: var(--tds-button_font-family, inherit);
  font-weight: var(--tds-button_font-weight, bold);
  letter-spacing: var(--tds-button_letter-spacing, normal);
  line-height: var(--tds-button_line-height, var(--tds-line-height-tight));
  font-size: var(--tds-button_font-size, var(--tds-font-size-md));
  padding: var(--tds-button_padding, 0.625rem var(--tds-spacing-4));
  text-align: center;
  text-decoration: none;
  outline: var(--tds-a11y-outline);
  outline-offset: var(--tds-button_outline-offset, var(--tds-a11y-outline-offset));
  transition: var(--tds-button_transition, var(--tds-a11y-outline-transition));
  user-select: none;
  white-space: nowrap;
  gap: var(--tds-spacing-2);
}

/* Base variant - text only, no background */
.tds-button--base {
  color: var(--tds-color-brand);
  background-color: transparent;
  padding: 0 !important;
  border: none;
  box-shadow: none;
}

.tds-button--base:hover:not(.tds-button--disabled),
.tds-button--base:focus:not(.tds-button--disabled) {
  color: var(--tds-color-brand);
  text-decoration: underline;
}

/* Neutral variant - outlined */
.tds-button--neutral {
  color: var(--tds-color-brand);
  background-color: var(--tds-button_background-color, var(--tds-color-white));
  border-color: var(--tds-color-brand);
}

.tds-button--neutral:hover:not(.tds-button--disabled),
.tds-button--neutral:focus:not(.tds-button--disabled),
.tds-button--neutral:active:not(.tds-button--disabled) {
  color: var(--tds-color-midnight);
  border-color: var(--tds-color-midnight);
  background-color: var(--tds-color-moon-white);
}

/* Brand variant - primary action */
.tds-button--brand {
  color: var(--tds-color-white);
  background-color: var(--tds-color-brand);
  border-color: transparent;
}

.tds-button--brand:hover:not(.tds-button--disabled),
.tds-button--brand:focus:not(.tds-button--disabled),
.tds-button--brand:active:not(.tds-button--disabled) {
  background-color: var(--tds-color-midnight);
}

/* Tertiary variant - subtle */
.tds-button--tertiary {
  color: var(--tds-button_color, var(--tds-color-meteorite));
  background-color: var(--tds-button_background-color, var(--tds-color-white));
  border: var(--tds-button_border);
}

.tds-button--tertiary:hover:not(.tds-button--disabled),
.tds-button--tertiary:focus:not(.tds-button--disabled),
.tds-button--tertiary:active:not(.tds-button--disabled) {
  color: var(--tds-button_color-hover, var(--tds-color-midnight));
  background-color: var(--tds-button_background-color-hover, var(--tds-color-moon-white));
}

/* Success variant */
.tds-button--success {
  color: var(--tds-color-white);
  background-color: var(--tds-color-evergreen);
  border-color: transparent;
}

.tds-button--success:hover:not(.tds-button--disabled),
.tds-button--success:focus:not(.tds-button--disabled),
.tds-button--success:active:not(.tds-button--disabled) {
  background-color: var(--tds-color-vibrant-green);
}

/* Destructive variant */
.tds-button--destructive {
  color: var(--tds-color-white);
  background-color: var(--tds-button_background-color, var(--tds-color-ruby));
  border-color: transparent;
}

.tds-button--destructive:hover:not(.tds-button--disabled),
.tds-button--destructive:focus:not(.tds-button--disabled),
.tds-button--destructive:active:not(.tds-button--disabled) {
  background-color: var(--tds-button_background-color-hover, var(--tds-color-rosewood));
}

/* Destructive Inverse variant */
.tds-button--destructive-inverse {
  border: var(--tds-color-destructive) 2px solid;
  color: var(--tds-color-destructive);
  background-color: var(--tds-color-white);
}

.tds-button--destructive-inverse:hover:not(.tds-button--disabled),
.tds-button--destructive-inverse:focus:not(.tds-button--disabled),
.tds-button--destructive-inverse:active:not(.tds-button--disabled) {
  color: var(--tds-color-destructive);
  background-color: var(--tds-color-pearl);
}

/* Inverse variant - for dark backgrounds */
.tds-button--inverse {
  color: var(--tds-color-white);
  border-color: var(--tds-color-white);
  background-color: transparent;
}

.tds-button--inverse:hover:not(.tds-button--disabled) {
  background-color: hsla(var(--tds-color-black-h), var(--tds-color-black-s), var(--tds-color-black-l), 0.35);
}

/* Bare variant - minimal styling */
.tds-button--bare {
  color: var(--tds-color-meteorite);
  background-color: transparent;
  border: none;
}

.tds-button--bare:hover:not(.tds-button--disabled),
.tds-button--bare:focus:not(.tds-button--disabled) {
  background-color: var(--tds-button_background-color-hover, var(--tds-color-sand));
}

/* Bare Inverse variant */
.tds-button--bare-inverse {
  color: var(--tds-color-white);
  background-color: transparent;
  border: none;
}

.tds-button--bare-inverse:hover:not(.tds-button--disabled) {
  background-color: hsla(var(--tds-color-black-h), var(--tds-color-black-s), var(--tds-color-black-l), 0.35);
}

/* Disabled state */
.tds-button--disabled,
.tds-button[disabled],
.tds-button[aria-disabled="true"] {
  color: var(--tds-color-white);
  border: 1px solid var(--tds-color-granite);
  background: var(--tds-color-granite);
  pointer-events: none;
  cursor: not-allowed;
  outline: none;
}

/* Size variants */
.tds-button--small {
  font-size: var(--tds-font-size-sm);
  padding: 0.375rem var(--tds-spacing-3);
}

.tds-button--large {
  font-size: var(--tds-font-size-lg);
  padding: var(--tds-spacing-3) var(--tds-spacing-5);
}

/* Circle variant */
.tds-button--circle {
  border-radius: 50%;
  padding: var(--tds-spacing-3);
}

.tds-button--circle.tds-button--small {
  padding: var(--tds-spacing-2);
}

.tds-button--circle.tds-button--large {
  padding: var(--tds-spacing-4);
}

/* Icon inside button */
.tds-button__icon {
  margin-inline-end: var(--tds-spacing-2);
  margin-inline-start: calc(var(--tds-spacing-1) * -1);
}

/* Focus state */
.tds-button:focus:not(.tds-button--disabled),
.tds-button:active:not(.tds-button--disabled) {
  outline: var(--tds-button_outline-focus, var(--tds-a11y-outline-focus));
  outline-offset: var(--tds-button_outline-offset-focus, var(--tds-a11y-outline-offset-focus));
}

/* Spinner animation */
.tds-button__spinner {
  animation: tds-button-rotation 2s infinite linear;
}

@keyframes tds-button-rotation {
  from { transform: rotate(0deg); }
  to { transform: rotate(359deg); }
}

/* Dark mode adjustments */
[data-theme="dark"] .tds-button--neutral {
  background-color: transparent;
  border-color: var(--color-text-accent);
  color: var(--color-text-accent);
}

[data-theme="dark"] .tds-button--neutral:hover:not(.tds-button--disabled),
[data-theme="dark"] .tds-button--neutral:focus:not(.tds-button--disabled) {
  background-color: rgba(100, 181, 255, 0.12);
  border-color: var(--color-text-accent);
  color: var(--color-text-accent);
}

[data-theme="dark"] .tds-button--tertiary {
  background-color: transparent;
  color: var(--color-text-secondary);
}

[data-theme="dark"] .tds-button--tertiary:hover:not(.tds-button--disabled) {
  background-color: var(--trl-surface-soft);
  color: var(--color-text);
}

[data-theme="dark"] .tds-button--bare {
  color: var(--color-text-secondary);
}

[data-theme="dark"] .tds-button--bare:hover:not(.tds-button--disabled) {
  background-color: var(--trl-surface-soft);
  color: var(--color-text);
}

[data-theme="dark"] .tds-button--base {
  color: var(--color-text-accent);
}

/* RTL support */
[dir="rtl"] .tds-button__icon {
  margin-inline-end: calc(var(--tds-spacing-1) * -1);
  margin-inline-start: var(--tds-spacing-2);
}


/* ==========================================================================
   TDS Button Link Component
   Extends button styles for anchor elements
   ========================================================================== */

.tds-button-link {
  /* Inherits all .tds-button styles */
  text-decoration: none;
}

.tds-button-link:hover,
.tds-button-link:focus,
.tds-button-link:active {
  text-decoration: none;
}

/* Visited state shouldn't change appearance */
.tds-button-link:visited {
  color: inherit;
}


/* ==========================================================================
   TDS Pill/Tag Component
   Matches original Trailhead th-pill_filter styling
   ========================================================================== */

.tds-pill,
.tds-pill_filter {
  display: inline-block;
  border-radius: 20px;
  font-weight: bold;
  margin-bottom: 10px;
  margin-inline-end: var(--tds-spacing-1, 0.25rem);
  line-height: 1.5;
  padding: 0.4rem 0.75rem;
  font-size: 0.75rem;
  text-decoration: none;
  cursor: pointer;
  border: 1px solid transparent;
  transition: all 0.15s ease;
}

/* Default pill (neutral) */
.tds-pill {
  color: var(--tds-color-meteorite, #706e6b);
  background: var(--tds-color-sand, #f4f6f9);
}

/* Skill variant (blue) */
.tds-pill--skill,
.tds-pill_filter {
  color: #0B5CAB;
  background: #EEF4FF;
}

.tds-pill--skill:hover,
.tds-pill--skill:active,
.tds-pill--skill:focus,
.tds-pill_filter:hover,
.tds-pill_filter:active,
.tds-pill_filter:focus {
  background: #D8E6FE;
  text-decoration: underline;
}

.tds-pill--skill:active,
.tds-pill--skill:focus,
.tds-pill_filter:active,
.tds-pill_filter:focus {
  border: 1px solid #0B5CAB;
}

.tds-pill--skill:focus-visible,
.tds-pill_filter:focus-visible {
  outline: var(--tds-a11y-outline-focus, 2px solid #0176d3);
  outline-offset: var(--tds-a11y-outline-offset-focus, 2px);
}

/* Product variant (same as skill - blue style) */
.tds-pill--product {
  color: #0B5CAB;
  background: #EEF4FF;
}

.tds-pill--product:hover,
.tds-pill--product:active,
.tds-pill--product:focus {
  background: #D8E6FE;
  text-decoration: underline;
}

.tds-pill--product:active,
.tds-pill--product:focus {
  border: 1px solid #0B5CAB;
}

.tds-pill--product:focus-visible {
  outline: var(--tds-a11y-outline-focus, 2px solid #0176d3);
  outline-offset: var(--tds-a11y-outline-offset-focus, 2px);
}

/* Link variant */
.tds-pill--link {
  cursor: pointer;
  color: var(--tds-color-brand, #0176d3);
}

.tds-pill--link:hover {
  text-decoration: underline;
}

/* Bare variant (no background) */
.tds-pill--bare {
  background: transparent;
}

/* Small size */
.tds-pill--small {
  padding: 0.25rem 0.5rem;
  font-size: 0.625rem;
}

/* Large size */
.tds-pill--large {
  padding: 0.5rem 1rem;
  font-size: 0.875rem;
}

/* Pill label */
.tds-pill__label {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Remove button (for dismissible pills) */
.tds-pill__remove {
  color: inherit;
  opacity: 0.7;
  border: none;
  background-color: transparent;
  padding: 2px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-inline-start: 4px;
}

.tds-pill__remove:hover,
.tds-pill__remove:focus {
  opacity: 1;
}

.tds-pill__remove svg {
  width: 12px;
  height: 12px;
}

/* Pill container */
.tds-pill-container {
  display: flex;
  justify-content: flex-start;
  flex-wrap: wrap;
  margin-top: var(--tds-spacing-3);
}

.tds-pill-li {
  display: inline-block;
}

/* Dark mode support */
[data-theme="dark"] .tds-pill {
  color: var(--color-text-secondary, #b0adab);
  background: var(--trl-pill-bg, rgba(255, 255, 255, 0.1));
}

[data-theme="dark"] .tds-pill:hover {
  background: var(--trl-surface-soft, rgba(255, 255, 255, 0.15));
}

[data-theme="dark"] .tds-pill--skill,
[data-theme="dark"] .tds-pill--product,
[data-theme="dark"] .tds-pill_filter {
  background: var(--trl-pill-bg, rgba(27, 150, 255, 0.15));
  color: var(--color-text-accent, #1b96ff);
}

[data-theme="dark"] .tds-pill--skill:hover,
[data-theme="dark"] .tds-pill--skill:active,
[data-theme="dark"] .tds-pill--skill:focus,
[data-theme="dark"] .tds-pill--product:hover,
[data-theme="dark"] .tds-pill--product:active,
[data-theme="dark"] .tds-pill--product:focus,
[data-theme="dark"] .tds-pill_filter:hover,
[data-theme="dark"] .tds-pill_filter:active,
[data-theme="dark"] .tds-pill_filter:focus {
  background: var(--trl-surface-soft, rgba(27, 150, 255, 0.25));
}

[data-theme="dark"] .tds-pill--skill:active,
[data-theme="dark"] .tds-pill--skill:focus,
[data-theme="dark"] .tds-pill--product:active,
[data-theme="dark"] .tds-pill--product:focus,
[data-theme="dark"] .tds-pill_filter:active,
[data-theme="dark"] .tds-pill_filter:focus {
  border-color: var(--color-text-accent, #1b96ff);
}

/* RTL support */
[dir="rtl"] .tds-pill {
  margin-inline-end: var(--tds-spacing-1, 0.25rem);
  margin-inline-start: 0;
}


/* ==========================================================================
   TDS Truncate Component
   Ported from th-components-main/src/elements/tds/truncate
   ========================================================================== */

.tds-truncate {
  display: block;
}

.tds-truncate__content {
  position: relative;
}

.tds-truncate__content:not(.tds-truncate__content--expanded) {
  overflow: hidden;
}

/* Fade truncation style */
.tds-truncate__content--fade:not(.tds-truncate__content--expanded) {
  max-height: var(--tds-truncate_max-height, var(--max-height, 100px));
}

.tds-truncate__content--fade:not(.tds-truncate__content--expanded)::before {
  content: '';
  width: 100%;
  height: 50px;
  position: absolute;
  left: 0;
  bottom: 0;
  background: linear-gradient(rgba(255, 255, 255, 0) 60%, var(--tds-truncate_background-color, var(--tds-color-white)));
  pointer-events: none;
}

[data-theme="dark"] .tds-truncate__content--fade:not(.tds-truncate__content--expanded)::before {
  background: linear-gradient(rgba(20, 25, 34, 0) 60%, var(--tds-truncate_background-color, var(--trl-surface)));
}

/* Clamp truncation style (line-based) */
.tds-truncate__content--clamp:not(.tds-truncate__content--expanded) {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: var(--tds-truncate_lines, var(--clamp-lines, 3));
}

/* Safari fix */
@supports (-webkit-hyphens: none) {
  .tds-truncate__content--clamp:not(.tds-truncate__content--expanded) {
    -webkit-line-clamp: max(var(--tds-truncate_lines, var(--clamp-lines, 3)), 2);
  }
}

/* Show More/Less Button */
.tds-truncate__button {
  margin-top: var(--tds-spacing-2);
}

.tds-truncate__button--text {
  display: inline-flex;
  font-size: var(--tds-font-size-sm);
  color: var(--tds-color-brand);
  font-weight: bold;
  background-color: transparent;
  padding: 0;
  border: none;
  cursor: pointer;
}

.tds-truncate__button--text:hover {
  text-decoration: underline;
}

.tds-truncate__button--text:focus-visible {
  outline: var(--tds-a11y-outline-focus);
  outline-offset: var(--tds-a11y-outline-offset-focus);
}

[data-theme="dark"] .tds-truncate__button--text {
  color: var(--color-text-accent);
}

/* RTL support */
[dir="rtl"] .tds-truncate__content--fade:not(.tds-truncate__content--expanded)::before {
  left: auto;
  right: 0;
}


/* ==========================================================================
   TDS Alert/Banner Component
   Alert banner for announcements and notifications
   ========================================================================== */

.tds-alert {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--tds-spacing-4, 1rem);
  padding: var(--tds-spacing-4, 1rem) var(--tds-spacing-5, 1.25rem);
  border-radius: var(--tds-radius-lg, 0.5rem);
  background-color: var(--tds-color-foundation-blue, #e5f1fd);
  border: 1px solid var(--tds-color-azure, #1b96ff);
}

/* Variants */
.tds-alert--info {
  background-color: var(--tds-color-foundation-blue, #e5f1fd);
  border-color: var(--tds-color-azure, #1b96ff);
}

.tds-alert--success {
  background-color: var(--tds-color-evergreen-light, #e6f7e9);
  border-color: var(--tds-color-evergreen, #2e844a);
}

.tds-alert--warning {
  background-color: #fff8e6;
  border-color: var(--tds-color-tangerine, #fe9339);
}

.tds-alert--error {
  background-color: #fce4e4;
  border-color: var(--tds-color-error, #ea001e);
}

.tds-alert--brand {
  background: linear-gradient(135deg, var(--tds-color-azure, #1b96ff) 0%, var(--tds-color-brand, #0176d3) 100%);
  border-color: transparent;
  color: var(--tds-color-white, #fff);
}

/* Dark/Info Banner variant (matches Trailhead info-banner) */
.tds-alert--dark,
.tds-info-banner {
  background-color: var(--tds-color-midnight);
  border-radius: 16px;
  padding: 16px 20px;
  border: none;
  color: var(--tds-color-white);
  flex-direction: column;
  align-items: flex-start;
}

.tds-alert--dark .tds-alert__header,
.tds-info-banner__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 16px;
  width: 100%;
}

.tds-info-banner__top-right-cta-link {
  color: var(--tds-color-white);
  font-size: var(--tds-font-size-sm);
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
  flex-shrink: 0;
}

.tds-info-banner__top-right-cta-link:hover,
.tds-info-banner__top-right-cta-link:visited,
.tds-info-banner__top-right-cta-link:active,
.tds-info-banner__top-right-cta-link:focus,
.tds-info-banner__top-right-cta-link:focus-visible {
  color: var(--tds-color-white);
}

.tds-alert--dark .tds-alert__title,
.tds-info-banner__title {
  color: var(--tds-color-white);
  font-size: var(--tds-font-size-md);
  font-weight: 600;
  margin: 0;
}

.tds-info-banner__content-wrapper {
  position: relative;
  width: 100%;
}

.tds-alert--dark .tds-alert__text,
.tds-info-banner__content {
  color: var(--tds-color-white);
  font-size: var(--tds-font-size-md);
  line-height: 1.5;
  margin: 0;
}

.tds-info-banner__content {
  overflow: hidden;
  transition: height 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  will-change: height;
}

.tds-alert--dark .tds-alert__text a,
.tds-info-banner__content a {
  color: var(--tds-color-white);
  text-decoration: underline;
}

.tds-alert--dark .tds-alert__text a:hover,
.tds-info-banner__content a:hover {
  text-decoration: none;
}

.tds-info-banner__content:not(.expanded) {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.tds-info-banner__content.expanded {
  height: auto;
}

.tds-alert--dark .tds-alert__cta,
.tds-info-banner__cta {
  margin-top: 16px;
  font-size: var(--tds-font-size-sm);
  font-weight: 600;
  color: var(--tds-color-white);
}

.tds-info-banner__footer {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 16px;
  width: 100%;
}

.tds-info-banner__read-more {
  margin-top: 16px;
}

.tds-info-banner__read-more.hidden {
  display: none;
}

.tds-info-banner__read-more-button {
  background: none;
  border: none;
  color: var(--tds-color-white);
  cursor: pointer;
  font-size: 14px;
  font-weight: 600;
  padding: 4px 0;
  text-decoration: none;
}

.tds-info-banner__read-more-button:hover {
  color: var(--tds-color-white);
}

/* Content area */
.tds-alert__content {
  flex: 1;
  min-width: 0;
}

.tds-alert__title {
  font-weight: var(--tds-font-weight-bold, 700);
  font-size: var(--tds-font-size-md, 1rem);
  color: var(--tds-color-midnight, #032d60);
  margin: 0 0 var(--tds-spacing-1, 0.25rem) 0;
}

.tds-alert--brand .tds-alert__title {
  color: var(--tds-color-white, #fff);
}

.tds-alert__text {
  font-size: var(--tds-font-size-sm, 0.875rem);
  color: var(--tds-color-meteorite, #706e6b);
  margin: 0;
  line-height: 1.5;
}

.tds-alert--brand .tds-alert__text {
  color: rgba(255, 255, 255, 0.9);
}

/* Actions area */
.tds-alert__actions {
  display: flex;
  align-items: center;
  gap: var(--tds-spacing-2, 0.5rem);
  flex-shrink: 0;
}

/* Dark mode support */
[data-theme="dark"] .tds-alert {
  background-color: var(--color-surface-raised, #2a2a2a);
  border-color: var(--color-border, #5c5c5c);
}

[data-theme="dark"] .tds-alert--info {
  background-color: rgba(27, 150, 255, 0.15);
  border-color: var(--color-text-accent, #1b96ff);
}

[data-theme="dark"] .tds-alert--success {
  background-color: rgba(46, 132, 74, 0.15);
  border-color: var(--tds-color-evergreen, #2e844a);
}

[data-theme="dark"] .tds-alert--warning {
  background-color: rgba(254, 147, 57, 0.15);
  border-color: var(--tds-color-tangerine, #fe9339);
}

[data-theme="dark"] .tds-alert--error {
  background-color: rgba(234, 0, 30, 0.15);
  border-color: var(--tds-color-error, #ea001e);
}

[data-theme="dark"] .tds-alert--brand {
  background: linear-gradient(135deg, rgba(27, 150, 255, 0.3) 0%, rgba(1, 118, 211, 0.3) 100%);
}

[data-theme="dark"] .tds-alert__title {
  color: var(--color-text, #fff);
}

[data-theme="dark"] .tds-alert__text {
  color: var(--color-text-secondary, #b0adab);
}

/* RTL: direction:rtl on parent handles mirroring - don't use row-reverse */

/* Locale disclaimer / note variant (matches Trailhead .trail-locale-disclaimer-container) */
.tds-alert--note,
.tds-locale-disclaimer {
  background-color: var(--tds-color-sand);
  color: var(--tds-color-meteorite);
  border-radius: 8px;
  padding: 12px;
  margin-top: 32px;
  display: flex;
  gap: 8px;
  align-self: stretch;
  font-size: 14px;
  line-height: 20px;
  align-items: baseline;
  border: none;
}

.tds-alert--note svg,
.tds-locale-disclaimer svg {
  fill: var(--tds-color-meteorite);
  flex-shrink: 0;
}

.tds-alert--note a,
.tds-locale-disclaimer a {
  color: var(--tds-color-ocean);
  text-decoration: underline;
}

[data-theme="dark"] .tds-alert--note,
[data-theme="dark"] .tds-locale-disclaimer {
  background-color: var(--trl-surface-soft);
  color: var(--color-text-secondary);
}

[data-theme="dark"] .tds-alert--note svg,
[data-theme="dark"] .tds-locale-disclaimer svg {
  fill: var(--color-text-secondary);
}

/* Responsive */
@media (max-width: 640px) {
  .tds-alert {
    flex-direction: column;
    align-items: stretch;
    text-align: center;
  }

  .tds-alert__actions {
    justify-content: center;
    margin-top: var(--tds-spacing-3, 0.75rem);
  }

  [dir="rtl"] .tds-alert {
    flex-direction: column;
  }
}

/* ==========================================================================
   TDS Content Icon Component
   Ported from th-components-main/src/elements/tds/contentIcon
   ========================================================================== */

.tds-content-icon {
  display: flex;
  align-items: center;
  flex-direction: column;
  text-decoration: none;
  padding: var(--tds-content-icon_container-padding, 0);
}

.tds-content-icon__image-container {
  background-color: var(--tds-content-icon_background-color, var(--background-color));
  height: var(--tds-content-icon_image-size, var(--image-size));
  width: var(--tds-content-icon_image-size, var(--image-size));
  position: relative;
  display: block;
}

/* Variant: Circle */
.tds-content-icon__image-container--circle {
  border-radius: var(--tds-content-icon_border-radius, var(--tds-radius-full));
}

/* Variant: Rounded */
.tds-content-icon__image-container--rounded {
  border-radius: var(--tds-content-icon_border-radius, var(--tds-radius-lg));
}

/* Image */
.tds-content-icon__image {
  border-radius: inherit;
  display: block;
  height: 100%;
  object-fit: cover;
  width: 100%;
  padding: var(--tds-content-icon_image-padding, var(--image-padding));
}

/* Completion checkmark icon */
.tds-content-icon__check {
  align-self: center;
  color: var(--tds-color-white);
  display: flex;
  background-color: var(--tds-color-success, var(--tds-color-evergreen));
  border-radius: var(--tds-radius-full);
  border: 3px solid var(--tds-color-white);
  box-sizing: border-box;
  justify-content: center;
  align-items: center;
  height: var(--tds-content-icon_check-size, var(--check-size));
  width: var(--tds-content-icon_check-size, var(--check-size));
  position: absolute;
  right: -10px;
  top: -4px;
}

[dir="rtl"] .tds-content-icon__check {
  right: auto;
  left: -10px;
}

[data-theme="dark"] .tds-content-icon__check {
  border-color: var(--trl-surface);
}

/* Check icon sizes by parent size */
.tds-content-icon--small .tds-content-icon__check,
.tds-content-icon--medium .tds-content-icon__check {
  --check-size: var(--tds-content-icon_check-size, 30px);
}

.tds-content-icon--large .tds-content-icon__check,
.tds-content-icon--xlarge .tds-content-icon__check {
  --check-size: var(--tds-content-icon_check-size, 38px);
}

.tds-content-icon__check-svg {
  height: 60%;
  width: 60%;
}

/* Size variants */
.tds-content-icon--small {
  --image-size: 48px;
}

.tds-content-icon--medium {
  --image-size: 64px;
}

.tds-content-icon--large {
  --image-size: 96px;
}

.tds-content-icon--xlarge {
  --image-size: 128px;
}

/* Text label below icon */
.tds-content-icon__text {
  margin-top: var(--tds-spacing-2);
  text-align: center;
  color: var(--tds-color-black);
  transition: color 0.1s linear;
}

[data-theme="dark"] .tds-content-icon__text {
  color: var(--color-text);
}

a.tds-content-icon:hover .tds-content-icon__text {
  color: var(--tds-color-azure);
  text-decoration: underline;
}

[data-theme="dark"] a.tds-content-icon:hover .tds-content-icon__text {
  color: var(--color-text-accent);
}


/* ==========================================================================
   TDS Content Progress Component
   Ported from th-components-main/src/elements/tds/contentProgress
   ========================================================================== */

.tds-content-progress {
  display: flex;
  align-items: center;
  gap: var(--tds-spacing-1);
}

.tds-content-progress__text {
  color: var(--tds-color-meteorite);
  font-size: var(--tds-font-size-sm);
}

[data-theme="dark"] .tds-content-progress__text {
  color: var(--color-text-secondary);
}

/* Progress bar */
.tds-content-progress__bar {
  height: 4px;
  background-color: var(--tds-color-fog);
  border-radius: var(--tds-radius-full);
  overflow: hidden;
  flex: 1;
  min-width: 60px;
}

[data-theme="dark"] .tds-content-progress__bar {
  background-color: var(--trl-border);
}

.tds-content-progress__fill {
  height: 100%;
  background-color: var(--tds-color-success, var(--tds-color-evergreen));
  border-radius: var(--tds-radius-full);
  transition: width var(--tds-duration-normal) ease;
}

/* Compact variant */
.tds-content-progress--compact {
  flex-direction: row;
}

.tds-content-progress--compact .tds-content-progress__text {
  order: 1;
}

/* Completion state */
.tds-content-progress--completed .tds-content-progress__text {
  color: var(--tds-color-success);
}

[data-theme="dark"] .tds-content-progress--completed .tds-content-progress__text {
  color: var(--tds-color-success);
}

/* Completion icon */
.tds-content-progress__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  color: var(--tds-color-success);
}

.tds-content-progress__icon svg {
  width: 100%;
  height: 100%;
}

/* RTL: direction:rtl on parent handles mirroring - don't use row-reverse */


/* ==========================================================================
   TDS Content Summary Component
   Ported from th-components-main/src/elements/tds/contentSummary
   ========================================================================== */

.tds-content-summary {
  display: flex;
  gap: var(--tds-spacing-4);
}

/* Horizontal (default) layout */
.tds-content-summary--horizontal {
  flex-direction: row;
  align-items: flex-start;
}

/* Vertical layout */
.tds-content-summary--vertical {
  flex-direction: column;
  align-items: center;
  text-align: center;
}

/* Image container */
.tds-content-summary__image {
  flex-shrink: 0;
}

/* Body content */
.tds-content-summary__body {
  flex: 1;
  min-width: 0;
}

/* Title */
.tds-content-summary__title {
  font-family: var(--tds-font-family-display);
  font-size: var(--tds-font-size-lg);
  font-weight: var(--tds-font-weight-bold);
  color: var(--tds-color-black);
  margin: 0 0 var(--tds-spacing-1) 0;
  line-height: 1.3;
}

.tds-content-summary__title a {
  color: inherit;
  text-decoration: none;
}

.tds-content-summary__title a:hover {
  color: var(--tds-color-brand);
  text-decoration: underline;
}

[data-theme="dark"] .tds-content-summary__title {
  color: var(--color-text);
}

[data-theme="dark"] .tds-content-summary__title a:hover {
  color: var(--color-text-accent);
}

/* Description */
.tds-content-summary__description {
  font-size: var(--tds-font-size-sm);
  color: var(--tds-color-meteorite);
  line-height: 1.5;
  margin: 0 0 var(--tds-spacing-2) 0;
}

[data-theme="dark"] .tds-content-summary__description {
  color: var(--color-text-secondary);
}

/* Meta information */
.tds-content-summary__meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: var(--tds-spacing-2);
  font-size: var(--tds-font-size-sm);
  color: var(--tds-color-meteorite);
}

[data-theme="dark"] .tds-content-summary__meta {
  color: var(--color-text-secondary);
}

.tds-content-summary__meta-left {
  display: flex;
  align-items: center;
  gap: var(--tds-spacing-2);
}

.tds-content-summary__meta-right {
  display: flex;
  align-items: center;
  gap: var(--tds-spacing-2);
}

/* Actions slot */
.tds-content-summary__actions {
  margin-top: var(--tds-spacing-3);
  display: flex;
  gap: var(--tds-spacing-2);
}

/* Size variants */
.tds-content-summary--small .tds-content-summary__title {
  font-size: var(--tds-font-size-md);
}

.tds-content-summary--large .tds-content-summary__title {
  font-size: var(--tds-font-size-xl);
}

/* Compact variant */
.tds-content-summary--compact {
  gap: var(--tds-spacing-3);
}

.tds-content-summary--compact .tds-content-summary__title {
  font-size: var(--tds-font-size-sm);
}

.tds-content-summary--compact .tds-content-summary__description {
  font-size: var(--tds-font-size-xs);
}

/* RTL: direction:rtl on parent handles mirroring - don't use row-reverse */


/* ==========================================================================
   TDS Child Summary Component
   ========================================================================== */

.tds-child-summary {
  list-style: none;
  padding: 0;
  margin: 0;
}

.tds-child-summary__item {
  display: flex;
  gap: var(--tds-spacing-3);
  padding: var(--tds-spacing-4) var(--tds-spacing-5);
  border-bottom: 1px solid var(--tds-color-fog);
}

[data-theme="dark"] .tds-child-summary__item {
  border-color: var(--trl-border);
}

.tds-child-summary__item:last-child {
  border-bottom: none;
}

.tds-child-summary__icon {
  width: 24px;
  height: 24px;
  border-radius: var(--tds-radius-full);
  background-color: var(--tds-color-sand);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: var(--tds-color-meteorite);
}

[data-theme="dark"] .tds-child-summary__icon {
  background-color: var(--trl-surface-soft);
  color: var(--color-text-secondary);
}

.tds-child-summary__icon svg {
  width: 14px;
  height: 14px;
}

.tds-child-summary__icon--complete {
  background-color: var(--tds-color-evergreen);
  color: var(--tds-color-white);
}

.tds-child-summary__icon--locked {
  background-color: var(--tds-color-fog);
  color: var(--tds-color-fraggle);
}

[data-theme="dark"] .tds-child-summary__icon--locked {
  background-color: var(--trl-surface-soft);
  color: var(--color-text-muted);
}

.tds-child-summary__body {
  flex: 1;
  min-width: 0;
}

.tds-child-summary__type {
  display: block;
  font-size: var(--tds-font-size-xs);
  color: var(--tds-color-meteorite);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-bottom: var(--tds-spacing-1);
}

[data-theme="dark"] .tds-child-summary__type {
  color: var(--color-text-secondary);
}

.tds-child-summary__title {
  font-size: var(--tds-font-size-sm);
  font-weight: var(--tds-font-weight-bold);
  color: var(--tds-color-midnight);
  text-decoration: none;
}

[data-theme="dark"] .tds-child-summary__title {
  color: var(--color-text);
}

.tds-child-summary__title:hover {
  color: var(--tds-color-brand);
  text-decoration: underline;
}

[data-theme="dark"] .tds-child-summary__title:hover {
  color: var(--color-text-accent);
}

.tds-child-summary__subtitle {
  font-size: var(--tds-font-size-sm);
  color: var(--tds-color-meteorite);
  margin: var(--tds-spacing-1) 0 0 0;
  line-height: 1.4;
}

[data-theme="dark"] .tds-child-summary__subtitle {
  color: var(--color-text-secondary);
}

.tds-child-summary__meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--tds-spacing-2);
  margin-top: var(--tds-spacing-2);
  font-size: var(--tds-font-size-xs);
  color: var(--tds-color-meteorite);
}

[data-theme="dark"] .tds-child-summary__meta {
  color: var(--color-text-secondary);
}

.tds-child-summary__item--complete .tds-child-summary__title {
  color: var(--tds-color-meteorite);
}

[data-theme="dark"] .tds-child-summary__item--complete .tds-child-summary__title {
  color: var(--color-text-secondary);
}

.tds-child-summary__item--locked {
  opacity: 0.6;
}

/* Trail preview variant: match legacy milestone-step styling */
.tds-module-card--trail .tds-child-summary__type {
  font-size: var(--tds-font-size-sm);
  text-transform: none;
  letter-spacing: normal;
  margin-bottom: 0;
}

.tds-module-card--trail .tds-child-summary__item {
  gap: 16px;
  padding: 20px;
}

.tds-module-card--trail .tds-child-summary__title {
  display: flex;
  font-size: var(--tds-font-size-lg);
  font-weight: 600;
  color: var(--tds-color-ocean);
  line-height: 24px;
  margin: 5px 0;
}

[data-theme="dark"] .tds-module-card--trail .tds-child-summary__title {
  color: var(--color-text-accent);
}

.tds-module-card--trail .tds-child-summary__subtitle {
  font-size: var(--tds-font-size-sm);
  color: var(--tds-color-meteorite);
  margin: 0;
  line-height: 1.5;
}

[data-theme="dark"] .tds-module-card--trail .tds-child-summary__subtitle {
  color: var(--color-text-secondary);
}

.tds-module-card--trail .tds-child-summary__meta {
  margin-top: 16px;
  font-size: var(--tds-font-size-sm);
  justify-content: space-between;
  flex-wrap: nowrap;
  gap: 0;
}

.tds-module-card--trail .tds-child-summary__meta > span:first-child {
  font-weight: 700;
}

.tds-module-card--trail .tds-child-summary__item--complete .tds-child-summary__title {
  color: var(--tds-color-ocean);
}

[data-theme="dark"] .tds-module-card--trail .tds-child-summary__item--complete .tds-child-summary__title {
  color: var(--color-text-accent);
}

/* RTL: direction:rtl on parent handles mirroring - don't use row-reverse */
[dir="rtl"] .tds-child-summary__body {
  text-align: right;
}

/* ==========================================================================
   TDS Badge Card Component
   Hero card displaying badge/trail information with image and actions
   ========================================================================== */

.tds-badge-card {
  width: 352px;
  max-width: 100%;
  background-color: var(--tds-color-white);
  border-radius: 20px;
  overflow: hidden;
  box-shadow: var(--tds-card_box-shadow, var(--tds-shadow-xs));
  border: none;
}

[data-theme="dark"] .tds-badge-card {
  background-color: var(--trl-surface);
  box-shadow: none;
  border: 1px solid var(--trl-border);
}

.tds-badge-card__header {
  background: var(--tds-badge-card-header-bg, #001E5B);
  display: flex;
  justify-content: center;
  align-items: center;
  height: 4rem;
  position: relative;
  z-index: 1;
}

[data-theme="dark"] .tds-badge-card__header {
  background: var(--tds-color-midnight);
}

.tds-badge-card__header-arc {
  position: absolute;
  background: var(--tds-color-white);
  width: 100%;
  height: 25px;
  top: 2.5rem;
  left: 0;
  z-index: 0;
  clip-path: polygon(0% 98%, 0% 2%, 0% 2%, .711% 4.688%, 2.75% 11.984%, 5.977% 22.736%, 10.25% 35.792%, 15.43% 50%, 21.375% 64.208%, 27.945% 77.264%, 35% 88.016%, 42.398% 95.312%, 50% 98%, 50% 98%, 57.602% 95.312%, 65% 88.016%, 72.055% 77.264%, 78.625% 64.208%, 84.57% 50%, 89.75% 35.792%, 94.023% 22.736%, 97.25% 11.984%, 99.289% 4.688%, 100% 2%, 100% 98%, 0% 98%);
}

[data-theme="dark"] .tds-badge-card__header-arc {
  background: var(--trl-surface);
}

.tds-badge-card__badge {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 2;
}

.tds-badge-card__badge-img {
  width: 90px;
  height: 90px;
  object-fit: contain;
  border-radius: 8px;
  margin-bottom: -4rem;
}

.tds-badge-card__complete {
  position: absolute;
  top: -0.25rem;
  right: -0.75rem;
  width: 32px;
  height: 32px;
  border-radius: var(--tds-radius-full);
  background-color: var(--tds-color-evergreen);
  border: 3px solid var(--tds-color-white);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--tds-color-white);
}

.tds-badge-card__complete svg {
  width: 16px;
  height: 16px;
}

[dir="rtl"] .tds-badge-card__complete {
  right: auto;
  left: -0.75rem;
}

.tds-badge-card__body {
  margin-top: var(--tds-spacing-6);
  padding: var(--tds-spacing-5);
}

.tds-badge-card__eyebrow {
  display: inline-block;
  font-size: var(--tds-font-size-xs);
  font-weight: var(--tds-font-weight-bold);
  color: var(--tds-color-meteorite);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: var(--tds-spacing-2);
}

[data-theme="dark"] .tds-badge-card__eyebrow {
  color: var(--color-text-secondary);
}

.tds-badge-card__tag {
  display: inline-block;
  font-size: var(--tds-font-size-xs);
  font-weight: var(--tds-font-weight-bold);
  color: var(--tds-color-meteorite);
  background-color: var(--tds-color-sand);
  padding: 0.4rem 0.75rem;
  border-radius: 20px;
  line-height: 1.5;
}

[data-theme="dark"] .tds-badge-card__tag {
  background-color: var(--trl-pill-bg);
  color: var(--color-text-secondary);
}

.tds-badge-card__title {
  font-family: var(--tds-font-family-sans);
  font-size: var(--tds-font-size-xl);
  font-weight: var(--tds-font-weight-bold);
  color: var(--tds-color-black);
  margin: 0 0 var(--tds-spacing-1) 0;
  line-height: 1.3;
}

[data-theme="dark"] .tds-badge-card__title {
  color: var(--color-text);
}

.tds-badge-card__desc {
  font-size: var(--tds-font-size-md);
  color: var(--tds-color-meteorite);
  line-height: 1.5;
  margin: 0 0 12px 0;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: var(--trl-desc-lines, 4);
  overflow: hidden;
}

.is-expanded .tds-badge-card__desc {
  -webkit-line-clamp: unset;
  overflow: visible;
}

[data-theme="dark"] .tds-badge-card__desc {
  color: var(--color-text-secondary);
}

.tds-badge-card__actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: var(--tds-spacing-3);
}

.tds-badge-card__action-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 10px;
  margin-bottom: 12px;
  gap: 12px;
}

.tds-badge-card__content-header {
  margin-top: 8px;
}

.tds-badge-card__read-more {
  background: none;
  border: none;
  color: var(--tds-color-ocean);
  cursor: pointer;
  display: inline-block;
  font-size: inherit;
  font-weight: bold;
  padding: 0;
}

.tds-badge-card__read-more:hover {
  text-decoration: underline;
}

.tds-badge-card__actions .tds-button {
  justify-content: center;
  width: 100%;
}

/* RTL: direction:rtl on parent handles mirroring - don't use row-reverse */
[dir="rtl"] .tds-badge-card__body {
  text-align: right;
}

@media (max-width: 480px) {
  .tds-badge-card__badge-img {
    width: 90px;
    height: 90px;
  }
  .tds-badge-card__complete {
    width: 32px;
    height: 32px;
    top: -4px;
    right: -4px;
  }
  .tds-badge-card__complete svg {
    width: 16px;
    height: 16px;
  }
}

@media (max-width: 800px) {
  .tds-badge-card__body {
    padding: 2rem 1rem;
  }
}

@media (max-width: 30rem) {
  .tds-badge-card__actions {
    grid-template-columns: 1fr;
  }
}

.tds-badge-card--small .tds-badge-card__header {
  min-height: 120px;
  padding: var(--tds-spacing-4);
}

.tds-badge-card--small .tds-badge-card__badge-img {
  width: 80px;
  height: 80px;
}

.tds-badge-card--small .tds-badge-card__body {
  padding: var(--tds-spacing-4);
}

.tds-badge-card--small .tds-badge-card__title {
  font-size: var(--tds-font-size-lg);
}

.tds-badge-card--horizontal {
  display: flex;
  flex-direction: row;
}

.tds-badge-card--horizontal .tds-badge-card__header {
  flex-shrink: 0;
  width: 200px;
  min-height: auto;
}

.tds-badge-card--horizontal .tds-badge-card__body {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

@media (max-width: 640px) {
  .tds-badge-card--horizontal {
    flex-direction: column;
  }
  .tds-badge-card--horizontal .tds-badge-card__header {
    width: 100%;
  }
}

/* ==========================================================================
   Trail Preview Badge Card
   ========================================================================== */

.trl-badge-card {
  width: 352px;
  max-width: 100%;
  background: var(--tds-color-white);
  border-radius: 20px;
  overflow: hidden;
  box-shadow: var(--tds-card_box-shadow, var(--tds-shadow-xs));
  border: none;
}

[data-theme="dark"] .trl-badge-card {
  background: var(--trl-surface);
  border: 1px solid var(--trl-border);
  box-shadow: var(--tds-shadow-xs);
}

.trl-badge-card__top {
  background: var(--tds-color-navy);
  height: 4rem;
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  z-index: 1;
  border-radius: 20px 20px 0 0;
}

[data-theme="dark"] .trl-badge-card__top {
  background: var(--blue-900);
}

.trl-badge-card__top::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 2.5rem;
  height: 25px;
  background: var(--tds-color-white);
  z-index: 0;
  clip-path: polygon(
    0% 98%, 0% 2%, 0% 2%, 0.711% 4.688%, 2.75% 11.984%, 5.977% 22.736%,
    10.25% 35.792%, 15.43% 50%, 21.375% 64.208%, 27.945% 77.264%,
    35% 88.016%, 42.398% 95.312%, 50% 98%, 50% 98%, 57.602% 95.312%,
    65% 88.016%, 72.055% 77.264%, 78.625% 64.208%, 84.57% 50%,
    89.75% 35.792%, 94.023% 22.736%, 97.25% 11.984%, 99.289% 4.688%,
    100% 2%, 100% 98%, 0% 98%
  );
}

[data-theme="dark"] .trl-badge-card__top::after {
  background: var(--trl-surface);
}

.trl-badge-card__badge {
  width: 90px;
  height: 90px;
  position: relative;
  z-index: 1;
}

.trl-badge-card__badge-svg {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
  border-radius: var(--tds-radius-lg);
  margin-bottom: -4rem;
}

.trl-badge-card__complete {
  position: absolute;
  top: -0.25rem;
  right: -0.75rem;
  width: 26px;
  height: 26px;
  background: var(--tds-color-success);
  border-radius: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 3px solid var(--tds-color-white);
}

[dir="rtl"] .trl-badge-card__complete {
  right: auto;
  left: -0.75rem;
}

[data-theme="dark"] .trl-badge-card__complete {
  border-color: var(--trl-surface);
}

.trl-badge-card__complete svg {
  width: 12px;
  height: 12px;
  color: var(--tds-color-white);
}

.trl-badge-card__bottom {
  margin-top: var(--tds-spacing-6);
  padding: 2rem 1rem;
  background: var(--tds-color-white);
  border-radius: 0 0 var(--tds-radius-lg) var(--tds-radius-lg);
}

[data-theme="dark"] .trl-badge-card__bottom {
  background: var(--trl-surface);
}

.trl-badge-card__content-header {
  margin-top: 8px;
}

.trl-badge-card__eyebrow {
  display: block;
  font-size: var(--tds-font-size-xs);
  font-weight: var(--tds-font-weight-bold);
  color: var(--tds-color-meteorite);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-bottom: var(--tds-spacing-3);
}

[data-theme="dark"] .trl-badge-card__eyebrow {
  color: var(--color-text-secondary);
}

.trl-badge-card__action-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: var(--tds-spacing-2);
}

.trl-badge-card__tag {
  display: inline-block;
  align-content: center;
  background: var(--tds-color-sand);
  color: var(--tds-color-meteorite);
  font-size: 0.75rem;
  font-weight: var(--tds-font-weight-bold);
  padding: 0.4rem 0.75rem;
  border-radius: 20px;
  line-height: 1.5;
}

[data-theme="dark"] .trl-badge-card__tag {
  background: var(--trl-pill-bg);
  color: var(--color-text-secondary);
}

.trl-badge-card__title {
  font-family: "ITC Avant Garde", "AvantGarde-Demi", var(--tds-font-family-sans);
  font-size: var(--tds-font-size-xl);
  font-weight: var(--tds-font-weight-bold);
  color: var(--tds-color-black);
  line-height: 1.3;
  margin: 0 0 var(--tds-spacing-2) 0;
  hyphens: auto;
  word-wrap: break-word;
}

[data-theme="dark"] .trl-badge-card__title {
  color: var(--color-text);
}

.trl-badge-card__desc {
  font-size: var(--tds-font-size-md);
  color: var(--tds-color-meteorite);
  line-height: 1.5;
  margin: 0 0 12px 0;
  display: -webkit-box;
  -webkit-line-clamp: var(--trl-desc-lines, 4);
  -webkit-box-orient: vertical;
  overflow: hidden;
}

[data-theme="dark"] .trl-badge-card__desc {
  color: var(--color-text-secondary);
}

.trl-badge-card.is-expanded .trl-badge-card__desc {
  -webkit-line-clamp: unset;
  max-height: none;
}

.trl-badge-card__more {
  display: inline-block;
  background: none;
  border: none;
  color: var(--tds-color-ocean);
  font-size: var(--tds-font-size-md);
  font-weight: var(--tds-font-weight-bold);
  padding: 0;
  cursor: pointer;
  margin-bottom: 0;
  text-decoration: none;
}

.trl-badge-card__more:hover {
  text-decoration: underline;
}

.trl-badge-card__more:focus-visible {
  outline: var(--tds-a11y-outline-focus);
  outline-offset: var(--tds-a11y-outline-offset-focus);
}

[data-theme="dark"] .trl-badge-card__more {
  color: var(--color-text-accent);
}

.trl-badge-card__actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: var(--tds-spacing-3);
}

@container (max-width: 800px) {
  .trl-badge-card,
  .tds-badge-card {
    width: 100%;
    max-width: none;
    margin-left: -1em;
    margin-right: -1em;
    width: calc(100% + 2em);
    box-shadow: none;
    border-radius: 0;
  }

  .trl-badge-card__top,
  .tds-badge-card__top {
    border-radius: 0;
  }
}

@media screen and (max-width: 800px) {
  .trl-badge-card,
  .tds-badge-card {
    width: 100%;
    max-width: none;
    margin-left: -1em;
    margin-right: -1em;
    width: calc(100% + 2em);
    box-shadow: none;
    border-radius: 0;
  }

  .trl-badge-card__top,
  .tds-badge-card__top {
    border-radius: 0;
  }
}

@media (max-width: 48rem) {
  .trl-badge-card__top {
    padding: var(--tds-spacing-6);
  }

  .trl-badge-card__badge {
    width: 100px;
    height: 100px;
  }

  .trl-badge-card__title {
    font-size: var(--tds-font-size-lg);
  }
}

/* ==========================================================================
   TDS Module Card Component
   ========================================================================== */

.tds-module-card {
  display: flex;
  gap: var(--tds-spacing-4);
  position: relative;
}

.tds-module-card__node {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex-shrink: 0;
  margin-top: 18px;
}

.tds-module-card__node-icon {
  width: 30px;
  height: 30px;
  border-radius: 25px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  z-index: 1;
  background-color: white;
}

/* Incomplete state - empty circle with border */
.tds-module-card__node-icon--incomplete {
  width: 30px;
  height: 30px;
  margin-top: 3px;
  border: 3px solid var(--tds-color-fog);
  border-radius: 25px;
  background-color: white;
}

[data-theme="dark"] .tds-module-card__node-icon--incomplete {
  background-color: var(--trl-surface);
  border-color: var(--trl-border);
}

/* Available/In-progress state */
.tds-module-card__node-icon--available {
  margin-top: 3px;
  border: 3px solid var(--tds-color-fog);
  background-color: white;
}

[data-theme="dark"] .tds-module-card__node-icon--available {
  background-color: var(--trl-surface);
  border-color: var(--trl-border);
}

/* Completed state - green circle with check */
.tds-module-card__node-icon--completed {
  background-color: var(--tds-color-evergreen);
  color: var(--tds-color-white);
  width: 31px;
  height: 31px;
  padding: 7px 8px;
  box-sizing: border-box;
}

.tds-module-card__node-icon--completed svg {
  width: 100%;
  height: 100%;
}

/* Locked state - gray circle with lock icon */
.tds-module-card__node-icon--locked {
  margin-top: 3px;
  background-color: #e2e2e2;
  color: #585858;
}

[data-theme="dark"] .tds-module-card__node-icon--locked {
  background-color: var(--trl-surface-soft);
  color: var(--color-text-muted);
}

.tds-module-card__node-icon--locked svg {
  width: 14px;
  height: 14px;
  fill: #585858;
}

.tds-module-card__line {
  flex: 1;
  width: 2px;
  background-color: #e2e2e2;
  margin-top: -2px;
  min-height: 20px;
}

[data-theme="dark"] .tds-module-card__line {
  background-color: var(--trl-border);
}

.tds-module-card--completed .tds-module-card__line {
  background-color: #068149;
}

.tds-module-card--last .tds-module-card__line,
.tds-module-card:last-of-type .tds-module-card__line {
  display: none;
}

.trl-modules--completed .tds-module-card--last .tds-module-card__line,
.trl-modules--completed .tds-module-card:last-of-type .tds-module-card__line {
  display: block;
  margin-bottom: -18px;
}

.tds-module-card__content {
  flex: 1;
  background-color: var(--tds-color-white);
  border: 1px solid var(--tds-color-fog);
  border-radius: 12px;
  overflow: hidden;
  margin-bottom: 24px;
}

[data-theme="dark"] .tds-module-card__content {
  background-color: var(--trl-surface);
  border: 1px solid var(--trl-border);
}

.tds-module-card[data-expanded="true"] .tds-module-card__content,
.tds-module-card--expanded .tds-module-card__content {
  border: 1px solid var(--tds-color-granite);
  box-shadow: var(--tds-shadow-xs);
}

.tds-module-card__header {
  padding: 20px;
}

.tds-module-card__title {
  font-family: 'ITC Avant Garde', var(--tds-font-family-display);
  font-size: var(--tds-font-size-xl);
  font-weight: 600;
  color: var(--tds-color-midnight);
  margin: 0 0 5px 0;
  line-height: 1.3;
}

[data-theme="dark"] .tds-module-card__title {
  color: var(--color-text);
}

.tds-module-card__desc {
  font-size: var(--tds-font-size-md);
  color: var(--tds-color-black);
  line-height: 24px;
  margin: 0 0 var(--tds-spacing-3) 0;
}

[data-theme="dark"] .tds-module-card__desc {
  color: var(--color-text-secondary);
}

.tds-module-card__meta {
  display: flex;
  justify-content: space-between;
  font-size: var(--tds-font-size-sm);
  color: var(--tds-color-meteorite);
  margin-top: 16px;
}

[data-theme="dark"] .tds-module-card__meta {
  color: var(--color-text-secondary);
}

.tds-module-card__meta span {
  display: inline-flex;
  align-items: center;
}

.tds-module-card__points {
  font-weight: 700;
  color: var(--tds-color-meteorite);
}

[data-theme="dark"] .tds-module-card__points {
  color: var(--color-text-accent);
}

.tds-module-card__body {
  display: none;
  border-top: 1px solid var(--tds-color-fog);
}

[data-theme="dark"] .tds-module-card__body {
  border-color: var(--trl-border);
}

.tds-module-card[data-expanded="true"] .tds-module-card__body,
.tds-module-card--expanded .tds-module-card__body {
  display: block;
}

.tds-module-card__empty {
  padding: var(--tds-spacing-6);
  text-align: center;
  color: var(--tds-color-meteorite);
  font-size: var(--tds-font-size-sm);
}

[data-theme="dark"] .tds-module-card__empty {
  color: var(--color-text-secondary);
}

.tds-module-card__toggle {
  display: flex;
  align-items: center;
  gap: var(--tds-spacing-2);
  width: 100%;
  height: 50px;
  padding: 16px 20px;
  background-color: transparent;
  border: none;
  border-top: 1px solid var(--tds-color-fog);
  color: var(--tds-color-ocean);
  font-size: 16px;
  font-weight: 600;
  cursor: pointer;
  transition: background-color var(--tds-duration-short) ease;
}

[data-theme="dark"] .tds-module-card__toggle {
  border-color: var(--trl-border);
  color: var(--color-text-accent);
}

.tds-module-card__toggle:hover {
  text-decoration: underline;
}

[data-theme="dark"] .tds-module-card__toggle:hover {
  text-decoration: underline;
}

.tds-module-card__toggle:focus-visible {
  outline: var(--tds-a11y-outline-focus);
  outline-offset: var(--tds-a11y-outline-offset-focus);
}

.tds-module-card__toggle-icon {
  transition: transform var(--tds-duration-short) ease;
}

.tds-module-card[data-expanded="true"] .tds-module-card__toggle-icon,
.tds-module-card--expanded .tds-module-card__toggle-icon {
  transform: rotate(180deg);
}

.tds-module-card--locked .tds-module-card__title {
  color: var(--tds-color-meteorite);
}

[data-theme="dark"] .tds-module-card--locked .tds-module-card__title {
  color: var(--color-text-muted);
}

.tds-module-card--locked .tds-module-card__content {
  opacity: 0.7;
}

/* RTL: direction:rtl on parent handles mirroring - don't use row-reverse */
[dir="rtl"] .tds-module-card__header {
  text-align: right;
}

/* Hide node and vertical line on tablet/mobile like original Trailhead */
@media (max-width: 1020px) {
  .tds-module-card__node,
  .tds-module-card__line {
    display: none;
  }
  .tds-module-card {
    gap: 0;
  }
}

@media (max-width: 480px) {
  .tds-module-card {
    gap: var(--tds-spacing-3);
  }
  .tds-module-card__node {
    width: 32px;
  }
  .tds-module-card__node-icon {
    width: 32px;
    height: 32px;
  }
  .tds-module-card__header {
    padding: var(--tds-spacing-4);
  }
  .tds-module-card__title {
    font-size: var(--tds-font-size-md);
  }
}

/* ==========================================================================
   Trail Modules Timeline (Trail Preview)
   ========================================================================== */

.trl-modules {
  position: relative;
  padding-inline-start: 0;
}

/* Vertical line is now on each module */
.trl-modules__line {
  display: none;
}

/* Vertical line for each module node - exact TDS values */
.trl-module__line {
  width: 2px;
  background: #e2e2e2;
  flex-grow: 1;
  margin-top: -2px;
  min-height: 20px;
  margin-left: 14.5px;
  margin-right: 14.5px;
}

[data-theme="dark"] .trl-module__line {
  background: var(--trl-border);
}

.trl-module--completed .trl-module__line {
  background: #068149;
}

/* Ensure completed modules have green line in dark mode */
[data-theme="dark"] .trl-module--completed .trl-module__line {
  background: #068149;
}

/* Hide line on last milestone when trail is not completed */
.trl-module--last .trl-module__line {
  display: none;
}

/* Show line on last milestone if trail is completed */
.trl-modules--completed .trl-module--last .trl-module__line {
  display: block;
}


/* RTL support for module line */
[dir="rtl"] .trl-module__line {
  order: -1;
}

/* Module Item (milestone-wrapper style) */
.trl-module {
  position: relative;
  display: flex;
  gap: 16px;
  margin-bottom: 0;
  padding-inline-start: 47px; /* 31px node + 16px gap */
  padding-bottom: 24px;
}

.trl-module:last-of-type {
  margin-bottom: 0;
}

/* Timeline Node (milestone-check-icon style) */
.trl-module__node {
  position: absolute;
  inset-inline-start: 0;
  top: 0;
  bottom: 0;
  width: 31px; /* Exact TDS: 14.5px + 2px + 14.5px = 31px */
  height: auto; /* Override application.css height: 26px */
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: center;
  padding-top: 18px;
  background: none; /* Container is transparent, icon has the background */
  border: none; /* Container has no border, icon has the border */
  border-radius: 0; /* Override application.css border-radius */
}

.trl-module--completion .trl-module__node {
  padding-top: 0;
}

/* Node circle is now replaced by the icon wrapper */
.trl-module__node-circle {
  display: none;
}

.trl-module__node svg {
  width: 14px;
  height: 14px;
  color: var(--tds-color-meteorite);
}

[data-theme="dark"] .trl-module__node svg {
  color: var(--color-text-secondary);
}

/* Module icon wrapper */
.trl-module__icon {
  width: 30px;
  height: 30px;
  min-height: 30px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  background: var(--tds-color-white);
  border: 3px solid var(--tds-color-fog);
  margin-top: 3px;
}

[data-theme="dark"] .trl-module__icon {
  background: var(--trl-surface);
  border-color: var(--trl-border);
}

/* Completed module checkmark - green circle with white checkmark */
.trl-module__icon--completed {
  background: var(--tds-color-success);
  border: none;
  width: 31px;
  height: 31px;
  padding: 7px 8px;
  box-sizing: border-box;
  margin-top: 0;
}

/* Ensure green background in dark mode */
[data-theme="dark"] .trl-module__icon--completed {
  background: var(--tds-color-success);
  border: none;
}

.trl-module__icon--completed svg {
  width: 100%;
  height: 100%;
  color: var(--tds-color-white);
}

.trl-module--completed .trl-module__node svg {
  color: var(--tds-color-white);
  width: 100%;
  height: 100%;
}

/* Locked module icon - gray circle with lock icon */
.trl-module__icon--locked {
  background: var(--tds-color-fog);
  border: none;
}

.trl-module__icon--locked svg {
  width: 14px;
  height: 14px;
  color: var(--tds-color-fraggle);
  fill: var(--tds-color-fraggle);
}

[data-theme="dark"] .trl-module__icon--locked {
  background: var(--trl-surface-soft);
}

.trl-module--locked .trl-module__node svg {
  color: var(--tds-color-fraggle);
  fill: var(--tds-color-fraggle);
}

/* Module Card (milestone-container style) */
.trl-module__card {
  display: flex;
  flex-direction: column;
  gap: 0;
  background: var(--tds-color-white);
  border: 1px solid var(--tds-color-fog);
  border-radius: 12px;
  overflow: hidden;
  width: 100%;
  margin-bottom: 0;
}

.trl-module__card[data-expanded="true"] {
  border-color: var(--tds-color-granite);
  box-shadow: var(--tds-shadow-xs);
}

[data-theme="dark"] .trl-module__card {
  background: var(--trl-surface);
  border-color: var(--trl-border);
  box-shadow: none;
}

[data-theme="dark"] .trl-module__card[data-expanded="true"] {
  border-color: var(--trl-border-strong);
}

/* Module Header (milestone-header style) */
.trl-module__header {
  padding: 20px;
}

.trl-module__info {
  width: 100%;
}

/* Milestone title (milestone-title style) */
.trl-module__title {
  font-family: "ITC Avant Garde", "AvantGarde-Demi", var(--tds-font-family-sans);
  font-size: var(--tds-font-size-xl);
  font-weight: 600;
  color: var(--tds-color-midnight);
  margin: 0 0 5px 0;
  line-height: 1.4;
  cursor: default;
}

[data-theme="dark"] .trl-module__title {
  color: var(--color-text);
}

/* Milestone description (milestone-description style) */
.trl-module__desc {
  font-size: var(--tds-font-size-md);
  color: var(--tds-color-black);
  margin: 0;
  line-height: 24px;
}

[data-theme="dark"] .trl-module__desc {
  color: var(--color-text);
}

/* Milestone footer (milestone-footer style) */
.trl-module__meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 16px 0 -4px 0;
  font-size: var(--tds-font-size-sm);
  color: var(--tds-color-meteorite);
}

[data-theme="dark"] .trl-module__meta {
  color: var(--color-text-secondary);
}

.trl-module__points {
  color: var(--tds-color-meteorite);
  font-weight: var(--tds-font-weight-semibold);
}

[data-theme="dark"] .trl-module__points {
  color: var(--color-text-secondary);
}

.trl-module__steps {
  color: var(--tds-color-meteorite);
  text-align: end;
}

[data-theme="dark"] .trl-module__steps {
  color: var(--color-text-secondary);
}

/* Show/Hide Details Toggle (milestone-details-drawer style) */
.trl-module__card .trl-module__toggle {
  display: flex;
  align-items: center;
  gap: 0;
  background: transparent;
  border: none;
  border-top: 1px solid var(--tds-color-fog);
  color: var(--tds-color-ocean);
  font-size: 16px;
  font-weight: 600;
  cursor: pointer;
  padding: 16px 20px;
  min-height: 50px;
  width: 100%;
  margin: 0;
  align-self: stretch;
  justify-content: center;
  border-radius: 0;
  text-decoration: none;
  text-align: center;
}

.trl-module__toggle-text {
  margin-inline-start: 10px;
}

[dir="rtl"] .trl-module__card .trl-module__toggle {
  flex-direction: row-reverse;
  justify-content: center;
}

[data-theme="dark"] .trl-module__toggle {
  color: var(--color-text-accent);
  border-color: var(--trl-border);
}

.trl-module__toggle-icon {
  transition: transform var(--tds-duration-short) ease;
  flex-shrink: 0;
}

.trl-module__card[data-expanded="true"] .trl-module__toggle-icon {
  transform: rotate(180deg);
}

[dir="rtl"] .trl-module__toggle-icon {
  transform: scaleX(-1);
}

[dir="rtl"] .trl-module__card[data-expanded="true"] .trl-module__toggle-icon {
  transform: scaleX(-1) rotate(180deg);
}

.trl-module__toggle:hover .trl-module__toggle-text {
  text-decoration: underline;
}

.trl-module__toggle:focus {
  outline: none;
}

.trl-module__toggle:focus-visible {
  outline: var(--tds-a11y-outline-focus);
  outline-offset: var(--tds-a11y-outline-offset-focus);
}

/* Module Content (expanded) - milestone-steps style */
.trl-module__content {
  padding: 0;
  border-top: 1px solid var(--tds-color-fog);
  max-height: 0;
  overflow: hidden;
  visibility: hidden;
  transition: max-height 0.5s ease, visibility 0.5s;
}

.trl-module__card[data-expanded="true"] .trl-module__content {
  visibility: visible;
  max-height: 5000px;
}

[data-theme="dark"] .trl-module__content {
  border-color: var(--trl-border);
}

.trl-module__empty {
  padding: 20px;
  color: var(--tds-color-meteorite);
  font-size: var(--tds-font-size-sm);
}

[data-theme="dark"] .trl-module__empty {
  color: var(--color-text-secondary);
}

/* Locked Module State */
.trl-module--locked .trl-module__card {
  border-style: solid;
  background: var(--tds-color-white);
}

[data-theme="dark"] .trl-module--locked .trl-module__card {
  background: var(--trl-surface);
}

/* ==========================================================================
   Sub-steps (units within a module) - milestone-step style
   ========================================================================== */

.trl-substeps {
  list-style: none;
  padding: 0;
  margin: 0;
}

.trl-substep {
  display: flex;
  padding: 20px;
  border-bottom: 1px solid var(--tds-color-fog);
}

[data-theme="dark"] .trl-substep {
  border-color: var(--trl-border);
}

.trl-substep:last-child {
  border-bottom: none;
}

/* milestone-step check icon */
.trl-substep__check {
  width: 30px;
  height: 30px;
  background: var(--tds-color-sand);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin-top: 3px;
}

[data-theme="dark"] .trl-substep__check {
  background: var(--trl-surface-soft);
}

.trl-substep--completed .trl-substep__check {
  background: var(--tds-color-success);
}

.trl-substep__check svg {
  width: 14px;
  height: 14px;
  color: var(--tds-color-white);
}

/* milestone-info style */
.trl-substep__body {
  flex: 1;
  margin-inline-start: 16px;
}

/* milestone-step-type style */
.trl-substep__type {
  display: block;
  font-size: var(--tds-font-size-sm);
  color: var(--tds-color-meteorite);
  margin-bottom: 0;
}

[data-theme="dark"] .trl-substep__type {
  color: var(--color-text-secondary);
}

/* milestone-step-title style */
.trl-substep__title {
  display: flex;
  font-size: var(--tds-font-size-lg);
  font-weight: 600;
  color: var(--tds-color-ocean);
  text-decoration: none;
  margin: 5px 0;
  line-height: 24px;
  transition: color var(--tds-duration-short) ease;
}

[data-theme="dark"] .trl-substep__title {
  color: var(--color-text-accent);
}

.trl-substep__title:hover {
  text-decoration: underline;
}

.trl-substep__desc {
  font-size: var(--tds-font-size-sm);
  color: var(--tds-color-meteorite);
  line-height: 1.5;
  margin: 0 0 var(--tds-spacing-2) 0;
}

[data-theme="dark"] .trl-substep__desc {
  color: var(--color-text-secondary);
}

.trl-substep__meta {
  display: flex;
  justify-content: space-between;
  font-size: var(--tds-font-size-sm);
  color: var(--tds-color-meteorite);
  margin-top: 16px;
}

.trl-substep__meta > span:first-child {
  font-weight: 700;
}

[data-theme="dark"] .trl-substep__meta {
  color: var(--color-text-secondary);
}

/* Locked substep state */
.trl-substep--locked .trl-substep__title {
  color: var(--tds-color-meteorite);
  pointer-events: none;
  text-decoration: none;
}

[data-theme="dark"] .trl-substep--locked .trl-substep__title {
  color: var(--color-text-muted);
}

.trl-substep--locked .trl-substep__desc {
  color: var(--tds-color-stormcloud);
}

[data-theme="dark"] .trl-substep--locked .trl-substep__desc {
  color: var(--color-text-muted);
}

.trl-substep--locked .trl-substep__check {
  background: var(--tds-color-fog);
}

.trl-substep--locked .trl-substep__check svg {
  fill: var(--tds-color-fraggle);
  color: var(--tds-color-fraggle);
}

[data-theme="dark"] .trl-substep--locked .trl-substep__check {
  background: var(--trl-surface-soft);
}

[data-theme="dark"] .trl-substep--locked .trl-substep__check svg {
  fill: var(--color-text-muted);
  color: var(--color-text-muted);
}

/* ==========================================================================
   Completion Message
   ========================================================================== */

.trl-module--completion {
  margin-bottom: 0;
  padding-bottom: 0;
}

.trl-module--completion .trl-completion-msg {
  padding: 0;
  margin: 0;
}

.trl-completion-msg__content {
  padding-top: 0;
}

/* Hide nodes/lines on tablet/mobile like legacy */
@media (max-width: 1020px) {
  .trl-module__node,
  .trl-module__line {
    display: none;
  }

  .trl-module {
    gap: 0;
    padding-inline-start: 0;
  }
}

@media (max-width: 48rem) {
  .trl-module__toggle {
    width: calc(100% + 40px);
    margin: 0 -20px;
  }
}

.trl-completion-msg__title {
  font-family: "ITC Avant Garde", "AvantGarde-Demi", var(--tds-font-family-sans);
  font-size: var(--tds-font-size-xl);
  font-weight: 600;
  color: var(--tds-color-midnight);
  margin: 0 0 5px 0;
}

[data-theme="dark"] .trl-completion-msg__title {
  color: var(--color-text);
}

.trl-completion-msg__text {
  font-size: var(--tds-font-size-md);
  color: var(--tds-color-black);
  line-height: 24px;
  margin: 0 0 var(--tds-spacing-2) 0;
}

[data-theme="dark"] .trl-completion-msg__text {
  color: var(--color-text);
}

.trl-completion-msg__date {
  display: block;
  font-size: var(--tds-font-size-sm);
  color: var(--tds-color-meteorite);
}

[data-theme="dark"] .trl-completion-msg__date {
  color: var(--color-text-secondary);
}

[dir="rtl"] .trl-completion-msg__content {
  text-align: right;
}

@media (prefers-reduced-motion: reduce) {
  .trl-module__toggle-icon {
    transition: none;
  }
}

/* ==========================================================================
   TDS Discover Card Component
   ========================================================================== */

.tds-discover-card {
  display: flex;
  flex-direction: column;
  background-color: white;
  border-radius: 8px;
  padding: var(--tds-spacing-4);
  text-decoration: none;
  text-align: left;
}

[data-theme="dark"] .tds-discover-card {
  background-color: var(--trl-surface);
  border: 1px solid var(--trl-border);
}

.tds-discover-card:hover {
  text-decoration: none;
}

[data-theme="dark"] .tds-discover-card:hover {
  border-color: var(--color-text-accent);
}

.tds-discover-card:focus-visible {
  outline: var(--tds-a11y-outline-focus);
  outline-offset: var(--tds-a11y-outline-offset-focus);
}

.tds-discover-card__icon {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin-bottom: var(--tds-spacing-3);
  background: linear-gradient(135deg, rgba(27, 150, 255, 0.15) 0%, rgba(1, 118, 211, 0.1) 100%);
}

[data-theme="dark"] .tds-discover-card__icon {
  background: var(--trl-surface-soft);
}

.tds-discover-card__icon svg,
.tds-discover-card__icon img {
  height: 24px;
  width: 24px;
  color: var(--tds-color-ocean);
}

[data-theme="dark"] .tds-discover-card__icon svg {
  color: var(--color-text-accent);
}

/* Purple icon variant */
.tds-discover-card__icon--purple {
  background: linear-gradient(135deg, rgba(147, 51, 234, 0.15) 0%, rgba(126, 34, 206, 0.1) 100%);
}

.tds-discover-card__icon--purple svg {
  color: #9333ea;
}

[data-theme="dark"] .tds-discover-card__icon--purple {
  background: rgba(147, 51, 234, 0.15);
}

[data-theme="dark"] .tds-discover-card__icon--purple svg {
  color: #a855f7;
}

/* Green icon variant */
.tds-discover-card__icon--green {
  background: linear-gradient(135deg, rgba(46, 132, 74, 0.15) 0%, rgba(34, 116, 60, 0.1) 100%);
}

.tds-discover-card__icon--green svg {
  color: var(--tds-color-evergreen);
}

[data-theme="dark"] .tds-discover-card__icon--green {
  background: rgba(46, 132, 74, 0.15);
}

[data-theme="dark"] .tds-discover-card__icon--green svg {
  color: #4ade80;
}

/* Orange icon variant */
.tds-discover-card__icon--orange {
  background: linear-gradient(135deg, rgba(234, 88, 12, 0.15) 0%, rgba(194, 65, 12, 0.1) 100%);
}

.tds-discover-card__icon--orange svg {
  color: #ea580c;
}

[data-theme="dark"] .tds-discover-card__icon--orange {
  background: rgba(234, 88, 12, 0.15);
}

[data-theme="dark"] .tds-discover-card__icon--orange svg {
  color: #fb923c;
}

.tds-discover-card__title {
  font-size: var(--tds-font-size-lg);
  font-weight: bold;
  color: var(--tds-color-ocean);
  margin: 0;
  line-height: 1.3;
}

[data-theme="dark"] .tds-discover-card__title {
  color: var(--color-text-accent);
}

.tds-discover-card:hover .tds-discover-card__title {
  text-decoration: underline;
}

.tds-discover-card__desc {
  font-size: var(--tds-font-size-md);
  color: var(--tds-color-meteorite);
  line-height: 1.5;
  margin-top: var(--tds-spacing-2);
  flex: 1;
}

[data-theme="dark"] .tds-discover-card__desc {
  color: var(--color-text-secondary);
}

.tds-discover-card__meta {
  display: flex;
  align-items: center;
  gap: var(--tds-spacing-2);
  margin-top: var(--tds-spacing-4);
  font-size: var(--tds-font-size-xs);
  color: var(--tds-color-meteorite);
}

[data-theme="dark"] .tds-discover-card__meta {
  color: var(--color-text-secondary);
}

.tds-discover-card__arrow {
  width: 16px;
  height: 16px;
  color: var(--tds-color-brand);
  margin-top: var(--tds-spacing-3);
  transition: transform var(--tds-duration-short) ease;
}

[data-theme="dark"] .tds-discover-card__arrow {
  color: var(--color-text-accent);
}

.tds-discover-card:hover .tds-discover-card__arrow {
  transform: translateX(4px);
}

[dir="rtl"] .tds-discover-card:hover .tds-discover-card__arrow {
  transform: translateX(-4px);
}

.tds-discover-card--image {
  padding: 0;
  overflow: hidden;
}

.tds-discover-card__image {
  width: 100%;
  height: 160px;
  object-fit: cover;
}

.tds-discover-card--image .tds-discover-card__content {
  padding: var(--tds-spacing-4);
}

.tds-discover-card--horizontal {
  flex-direction: row;
  align-items: center;
  gap: var(--tds-spacing-4);
}

.tds-discover-card--horizontal .tds-discover-card__icon {
  margin-bottom: 0;
  flex-shrink: 0;
}

.tds-discover-card--horizontal .tds-discover-card__content {
  flex: 1;
}

/* ==========================================================================
   Trail Preview Discover Section
   ========================================================================== */

.trl-discover {
  background: var(--tds-color-white);
  padding: var(--tds-spacing-5) var(--tds-spacing-6) var(--tds-spacing-10);
}

[data-theme="dark"] .trl-discover {
  background: var(--trl-surface);
}

.trl-discover__inner {
  max-width: 960px;
  margin: 0 auto;
}

.trl-discover__title {
  font-size: var(--tds-font-size-lg);
  font-weight: var(--tds-font-weight-bold);
  color: var(--tds-color-midnight);
  margin: 0 0 var(--tds-spacing-2) 0;
}

[data-theme="dark"] .trl-discover__title {
  color: var(--color-text);
}

.trl-discover__subtitle {
  font-size: var(--tds-font-size-sm);
  color: var(--tds-color-meteorite);
  line-height: 1.6;
  margin: 0 0 var(--tds-spacing-5) 0;
  max-width: 680px;
}

[data-theme="dark"] .trl-discover__subtitle {
  color: var(--color-text-secondary);
}

.trl-discover__grid {
  display: flex;
  flex-wrap: wrap;
  column-gap: var(--tds-spacing-5);
  row-gap: 36px;
  margin-bottom: var(--tds-spacing-5);
}

.trl-discover-card {
  display: flex;
  flex-direction: column;
  flex: 0 0 calc(33.33% - 15px);
  box-sizing: border-box;
  padding: var(--tds-spacing-4);
  background: var(--tds-color-white);
  border: 1px solid transparent;
  border-radius: 8px;
  text-decoration: none;
  text-align: left;
  transition: all var(--tds-duration-short) ease;
}

[data-theme="dark"] .trl-discover-card {
  background: var(--trl-surface);
  border: 1px solid var(--trl-border);
}

.trl-discover-card:hover {
  border-color: var(--tds-color-azure);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.trl-discover-card:hover .trl-discover-card__title {
  text-decoration: underline;
}

[data-theme="dark"] .trl-discover-card:hover {
  border-color: var(--color-text-accent);
}

.trl-discover-card__icon {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin-bottom: var(--tds-spacing-3);
  background: linear-gradient(135deg, rgba(27, 150, 255, 0.15) 0%, rgba(1, 118, 211, 0.1) 100%);
}

[data-theme="dark"] .trl-discover-card__icon {
  background: var(--trl-surface-soft);
}

.trl-discover-card__icon svg,
.trl-discover-card__icon img {
  width: 24px;
  height: 24px;
  color: var(--tds-color-ocean);
}

[data-theme="dark"] .trl-discover-card__icon svg {
  color: var(--color-text-accent);
}

.trl-discover-card__icon--purple {
  background: linear-gradient(135deg, rgba(147, 51, 234, 0.15) 0%, rgba(126, 34, 206, 0.1) 100%);
}

[data-theme="dark"] .trl-discover-card__icon--purple {
  background: rgba(147, 51, 234, 0.15);
}

.trl-discover-card__icon--purple svg {
  color: #9333ea;
}

.trl-discover-card__icon--green {
  background: linear-gradient(135deg, rgba(46, 132, 74, 0.15) 0%, rgba(34, 116, 60, 0.1) 100%);
}

[data-theme="dark"] .trl-discover-card__icon--green {
  background: rgba(46, 132, 74, 0.15);
}

.trl-discover-card__icon--green svg {
  color: var(--tds-color-evergreen);
}

.trl-discover-card__icon--orange {
  background: linear-gradient(135deg, rgba(234, 88, 12, 0.15) 0%, rgba(194, 65, 12, 0.1) 100%);
}

[data-theme="dark"] .trl-discover-card__icon--orange {
  background: rgba(234, 88, 12, 0.15);
}

.trl-discover-card__icon--orange svg {
  color: #ea580c;
}

.trl-discover-card__title {
  font-size: var(--tds-font-size-lg);
  font-weight: var(--tds-font-weight-bold);
  color: var(--tds-color-ocean);
  margin: 0;
}

[data-theme="dark"] .trl-discover-card__title {
  color: var(--color-text-accent);
}

.trl-discover-card__desc {
  font-size: var(--tds-font-size-md);
  color: var(--tds-color-meteorite);
  line-height: 1.5;
  margin-top: var(--tds-spacing-2);
}

[data-theme="dark"] .trl-discover-card__desc {
  color: var(--color-text-secondary);
}

.trl-discover__more {
  display: block;
  margin: 0 auto;
  background: none;
  border: none;
  color: var(--tds-color-ocean);
  font-size: var(--tds-font-size-xs);
  font-weight: var(--tds-font-weight-semibold);
  cursor: pointer;
}

[data-theme="dark"] .trl-discover__more {
  color: var(--color-text-accent);
}

.trl-discover__more:hover {
  text-decoration: underline;
}

@media (max-width: 80rem) {
  .trl-discover__grid .trl-discover-card {
    flex: 0 0 calc(50% - 10px);
  }
}

@media (max-width: 48rem) {
  .trl-discover__grid {
    flex-direction: column;
    row-gap: var(--tds-spacing-2);
  }

  .trl-discover__grid .trl-discover-card {
    flex: 1 1 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .trl-discover-card {
    transition: none !important;
  }
}

.tds-discover-card--horizontal .tds-discover-card__title {
  margin-bottom: var(--tds-spacing-1);
}

.tds-discover-card--compact {
  padding: var(--tds-spacing-4);
}

.tds-discover-card--compact .tds-discover-card__icon {
  width: 40px;
  height: 40px;
  margin-bottom: var(--tds-spacing-3);
}

.tds-discover-card--compact .tds-discover-card__icon svg {
  width: 20px;
  height: 20px;
}

.tds-discover-card--compact .tds-discover-card__title {
  font-size: var(--tds-font-size-md);
}

.tds-discover-card--compact .tds-discover-card__desc {
  font-size: var(--tds-font-size-xs);
}

/* RTL: direction:rtl on parent handles mirroring - don't use row-reverse */

.tds-discover-grid {
  display: flex;
  column-gap: var(--tds-spacing-5);
  row-gap: 36px;
  flex-direction: row;
  flex-wrap: wrap;
}

.tds-discover-grid .tds-discover-card {
  flex: 0 0 calc(33.33% - 15px);
  box-sizing: border-box;
}

@media (max-width: 768px) {
  .tds-discover-grid .tds-discover-card {
    flex: 0 0 calc(50% - 10px);
  }
}

@media (max-width: 520px) {
  .tds-discover-grid {
    flex-direction: column;
    row-gap: var(--tds-spacing-2);
  }

  .tds-discover-grid .tds-discover-card {
    flex: 1 1 100%;
  }
}

/* ==========================================================================
   TDS Stats Bar Component
   ========================================================================== */

.tds-stats-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-evenly;
  padding: var(--tds-spacing-4) 0;
  background-color: var(--tds-color-sand);
  border-radius: 56px;
  font-size: 14px;
}

[data-theme="dark"] .tds-stats-bar {
  background-color: var(--trl-surface);
  border: 1px solid var(--trl-border);
}

.tds-stats-bar__item {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: var(--tds-color-midnight);
  font-weight: bold;
}

.tds-stats-bar__icon {
  width: 16px;
  height: 16px;
  margin-right: var(--tds-spacing-2);
  flex-shrink: 0;
}

[data-theme="dark"] .tds-stats-bar__icon {
  color: var(--color-text-accent);
}

.tds-stats-bar__value {
  font-size: 14px;
  color: var(--tds-color-midnight);
  white-space: nowrap;
}

[data-theme="dark"] .tds-stats-bar__value {
  color: var(--color-text-secondary);
}

.tds-stats-bar__item--completed .tds-stats-bar__value {
  color: var(--tds-color-evergreen);
  font-weight: var(--tds-font-weight-bold);
}

[data-theme="dark"] .tds-stats-bar__item--completed .tds-stats-bar__value {
  color: var(--tds-color-success);
}

.tds-stats-bar__divider {
  width: 1px;
  height: 16px;
  background-color: var(--tds-color-fog);
  flex-shrink: 0;
}

[data-theme="dark"] .tds-stats-bar__divider {
  background-color: var(--trl-border);
}

/* RTL: direction:rtl on parent handles mirroring - don't use row-reverse */

/* Tablet breakpoint - 2x2 grid layout */
@media screen and (max-width: 1224px) and (min-width: 801px),
(max-width: 680px) {
  .tds-stats-bar {
    flex-wrap: wrap;
    border-radius: 12px;
  }
  .tds-stats-bar__item {
    padding: var(--tds-spacing-3) var(--tds-spacing-6);
    width: 50%;
  }
  .tds-stats-bar__item:first-child {
    border-bottom: 1px solid var(--tds-color-fog);
    border-right: 1px solid var(--tds-color-fog);
  }
  .tds-stats-bar__item:nth-child(3) {
    border-bottom: 1px solid var(--tds-color-fog);
  }
  .tds-stats-bar__item:nth-child(5) {
    border-right: 1px solid var(--tds-color-fog);
  }
  .tds-stats-bar__divider {
    display: none;
  }
  [dir="rtl"] .tds-stats-bar__item:first-child {
    border-right: none;
    border-left: 1px solid var(--tds-color-fog);
  }
  [dir="rtl"] .tds-stats-bar__item:nth-child(5) {
    border-right: none;
    border-left: 1px solid var(--tds-color-fog);
  }
}

/* Mobile breakpoint */
@media screen and (max-width: 640px) {
  .tds-stats-bar {
    padding: var(--tds-spacing-2) var(--tds-spacing-4);
    border-radius: 12px;
  }
  .tds-stats-bar__icon {
    display: none;
  }
  [dir="rtl"] .tds-stats-bar {
    align-items: flex-end;
  }
}

/* ==========================================================================
   Trail Preview Stats Bar
   ========================================================================== */

.trl-stats-bar {
  display: flex;
  align-items: center;
  justify-content: space-evenly;
  flex-wrap: nowrap;
  background: var(--tds-color-sand);
  border-radius: 56px;
  padding: var(--tds-spacing-4) 0;
  margin-bottom: var(--tds-spacing-8);
  font-size: 14px;
  gap: 0;
}

[data-theme="dark"] .trl-stats-bar {
  background: var(--trl-surface-soft);
}

.trl-stats-bar__item {
  display: flex;
  align-items: center;
  font-weight: 700;
  color: var(--tds-color-midnight);
  justify-content: center;
  text-align: center;
  padding: 0 20px;
  white-space: nowrap;
}

[data-theme="dark"] .trl-stats-bar__item {
  color: var(--color-text);
}

.trl-stats-bar__icon {
  width: 16px;
  height: 16px;
  color: var(--tds-color-midnight);
  flex-shrink: 0;
  margin-inline-end: 6px;
}

[data-theme="dark"] .trl-stats-bar__icon {
  color: var(--color-text);
}

.trl-stats-bar__value {
  font-size: 14px;
  font-weight: 700;
  color: var(--tds-color-midnight);
  white-space: nowrap;
}

[data-theme="dark"] .trl-stats-bar__value {
  color: var(--color-text);
}

.trl-stats-bar__divider {
  width: 1px;
  height: 16px;
  background: var(--tds-color-fog);
  flex-shrink: 0;
}

[data-theme="dark"] .trl-stats-bar__divider {
  background: var(--trl-border);
}

@container (max-width: 600px) {
  .trl-stats-bar {
    flex-wrap: wrap;
    border-radius: 12px;
    padding: 0;
  }

  .trl-stats-bar__item {
    padding: var(--tds-spacing-3) var(--tds-spacing-6);
    width: 50%;
  }

  .trl-stats-bar__item:first-child {
    border-bottom: 1px solid var(--tds-color-fog);
    border-inline-end: 1px solid var(--tds-color-fog);
  }

  .trl-stats-bar__item:nth-child(3) {
    border-bottom: 1px solid var(--tds-color-fog);
  }

  .trl-stats-bar__item:nth-child(5) {
    border-inline-end: 1px solid var(--tds-color-fog);
  }

  .trl-stats-bar__divider {
    display: none;
  }

  .trl-stats-bar__icon {
    display: none;
  }
}

.tds-stats-bar--compact {
  padding: var(--tds-spacing-3) var(--tds-spacing-4);
  gap: var(--tds-spacing-1);
}

.tds-stats-bar--compact .tds-stats-bar__icon {
  width: 16px;
  height: 16px;
}

.tds-stats-bar--compact .tds-stats-bar__value {
  font-size: var(--tds-font-size-xs);
}

.tds-stats-bar--inline {
  background-color: transparent;
  box-shadow: none;
  padding: 0;
  border: none;
}

[data-theme="dark"] .tds-stats-bar--inline {
  background-color: transparent;
  border: none;
}

/* ==========================================================================
   TDS Taxonomy Section Component
   ========================================================================== */

.tds-taxonomy {
  margin-bottom: var(--tds-spacing-6);
}

.tds-taxonomy__title {
  color: var(--tds-color-meteorite);
  font-weight: 700;
  font-size: 16px;
  margin: 0 0 var(--tds-spacing-2) 0;
}

[data-theme="dark"] .tds-taxonomy__title {
  color: var(--color-text);
}

.tds-taxonomy__subtitle {
  color: var(--tds-color-meteorite);
  font-size: 14px;
  margin: 0 0 var(--tds-spacing-4) 0;
  line-height: 1.5;
}

[data-theme="dark"] .tds-taxonomy__subtitle {
  color: var(--color-text-secondary);
}

.tds-taxonomy__subtitle a {
  text-decoration: underline;
}

[data-theme="dark"] .tds-taxonomy__subtitle a {
  color: var(--color-text-accent);
}

.tds-taxonomy__tags {
  display: flex;
  flex-wrap: wrap;
  gap: var(--tds-spacing-2);
  margin-bottom: var(--tds-spacing-3);
}

.tds-taxonomy__tag--hidden {
  display: none;
}

.tds-taxonomy[data-expanded="true"] .tds-taxonomy__tag--hidden,
.tds-taxonomy--expanded .tds-taxonomy__tag--hidden {
  display: inline-block;
}

.tds-taxonomy__toggle {
  display: inline-flex;
  align-items: center;
  gap: var(--tds-spacing-1);
  font-size: var(--tds-font-size-sm);
  font-weight: var(--tds-font-weight-bold);
  color: var(--tds-color-brand);
  background: transparent;
  border: none;
  padding: 0;
  cursor: pointer;
  transition: color var(--tds-duration-short) ease;
}

[data-theme="dark"] .tds-taxonomy__toggle {
  color: var(--color-text-accent);
}

.tds-taxonomy__toggle:hover {
  text-decoration: underline;
}

.tds-taxonomy__toggle:focus-visible {
  outline: var(--tds-a11y-outline-focus);
  outline-offset: var(--tds-a11y-outline-offset-focus);
}

.tds-taxonomy__toggle--hidden {
  display: none;
}

.tds-taxonomy__toggle-icon {
  width: 12px;
  height: 12px;
  transition: transform var(--tds-duration-short) ease;
}

.tds-taxonomy[data-expanded="true"] .tds-taxonomy__toggle-icon,
.tds-taxonomy--expanded .tds-taxonomy__toggle-icon {
  transform: rotate(180deg);
}

/* RTL: direction:rtl on parent handles mirroring - don't use row-reverse */

.tds-taxonomy--compact {
  margin-bottom: var(--tds-spacing-4);
}

.tds-taxonomy--compact .tds-taxonomy__title {
  font-size: var(--tds-font-size-md);
  margin-bottom: var(--tds-spacing-1);
}

.tds-taxonomy--compact .tds-taxonomy__tags {
  gap: var(--tds-spacing-1);
  margin-bottom: var(--tds-spacing-2);
}

.tds-taxonomy--inline {
  margin-bottom: 0;
}

.tds-taxonomy--inline .tds-taxonomy__title {
  display: none;
}

.tds-taxonomy--inline .tds-taxonomy__tags {
  margin-bottom: 0;
}

/* ==========================================================================
   Trail Preview Taxonomy
   ========================================================================== */

.trl-taxonomy {
  display: flex;
  flex-direction: column;
  gap: var(--tds-spacing-1);
  margin-top: var(--tds-spacing-4);
}

.trl-taxonomy__title {
  font-size: 16px;
  font-weight: 700;
  color: var(--tds-color-meteorite);
  margin: 0;
  padding-bottom: var(--tds-spacing-1);
}

[data-theme="dark"] .trl-taxonomy__title {
  color: var(--color-text-secondary);
}

.trl-taxonomy__subtitle {
  font-size: 14px;
  color: var(--tds-color-meteorite);
  margin: 0;
  line-height: 1.4;
}

[data-theme="dark"] .trl-taxonomy__subtitle {
  color: var(--color-text-secondary);
}

.trl-taxonomy__subtitle a {
  color: var(--tds-color-ocean);
  text-decoration: underline;
}

[data-theme="dark"] .trl-taxonomy__subtitle a {
  color: var(--color-text-accent);
}

.trl-taxonomy__tags {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  margin-top: var(--tds-spacing-4);
  gap: 0;
}

.trl-taxonomy__toggle {
  display: inline-block;
  background: none;
  border: none;
  color: var(--tds-color-ocean);
  font-size: 14px;
  font-weight: var(--tds-font-weight-semibold);
  padding: 0;
  cursor: pointer;
  text-align: start;
  margin-top: var(--tds-spacing-2);
}

.trl-taxonomy__toggle:hover {
  text-decoration: underline;
}

[data-theme="dark"] .trl-taxonomy__toggle {
  color: var(--color-text-accent);
}

/* ==========================================================================
   TDS Series Link Component
   ========================================================================== */

.tds-series-link {
  display: inline-flex;
  align-items: center;
  gap: var(--tds-spacing-2);
  font-size: var(--tds-font-size-sm);
  font-weight: var(--tds-font-weight-bold);
  color: var(--tds-color-brand);
  text-decoration: none;
  padding: var(--tds-spacing-3) 0;
  transition: color var(--tds-duration-short) ease;
}

[data-theme="dark"] .tds-series-link {
  color: var(--color-text-accent);
}

.tds-series-link:hover {
  text-decoration: underline;
}

.tds-series-link:focus-visible {
  outline: var(--tds-a11y-outline-focus);
  outline-offset: var(--tds-a11y-outline-offset-focus);
}

.tds-series-link__icon {
  width: 16px;
  height: 16px;
  transition: transform var(--tds-duration-short) ease;
  flex-shrink: 0;
}

.tds-series-link:hover .tds-series-link__icon {
  transform: translateX(4px);
}

/* RTL: direction:rtl on parent handles mirroring - don't use row-reverse */
[dir="rtl"] .tds-series-link__icon {
  transform: scaleX(-1);
}

[dir="rtl"] .tds-series-link:hover .tds-series-link__icon {
  transform: scaleX(-1) translateX(-4px);
}

.tds-series-link--large {
  font-size: var(--tds-font-size-md);
  padding: var(--tds-spacing-4) 0;
}

.tds-series-link--large .tds-series-link__icon {
  width: 20px;
  height: 20px;
}

.tds-series-link--small {
  font-size: var(--tds-font-size-xs);
  padding: var(--tds-spacing-2) 0;
}

.tds-series-link--small .tds-series-link__icon {
  width: 12px;
  height: 12px;
}

.tds-series-link--block {
  display: flex;
  width: 100%;
  justify-content: space-between;
  padding: var(--tds-spacing-4);
  background-color: var(--tds-color-sand);
  border-radius: var(--tds-radius-md);
}

[data-theme="dark"] .tds-series-link--block {
  background-color: var(--trl-surface-soft);
}

.tds-series-link--block:hover {
  background-color: var(--tds-color-fog);
  text-decoration: none;
}

[data-theme="dark"] .tds-series-link--block:hover {
  background-color: rgba(255, 255, 255, 0.1);
}

/* ==========================================================================
   Trail Preview Series Link
   ========================================================================== */

.trl-series-link {
  display: inline-flex;
  align-items: center;
  gap: var(--tds-spacing-1);
  color: var(--tds-color-ocean);
  font-size: var(--tds-font-size-sm);
  font-weight: var(--tds-font-weight-semibold);
  text-decoration: none;
  margin-top: var(--tds-spacing-8);
}

.trl-series-link:hover {
  text-decoration: underline;
}

[data-theme="dark"] .trl-series-link {
  color: var(--color-text-accent);
}

.trl-series-link svg {
  width: 16px;
  height: 16px;
}

/* ==========================================================================
   TDS Select Component
   Ported from th-components-main/src/elements/tds/select
   ========================================================================== */

.tds-select {
  display: flex;
  flex-direction: column;
}

.tds-select__wrapper {
  position: relative;
  display: inline-flex;
  width: 100%;
}

.tds-select__control {
  appearance: none;
  -webkit-appearance: none;
  background-color: var(--tds-color-white);
  border: 1px solid var(--tds-color-granite);
  border-radius: var(--tds-radius-md);
  color: var(--tds-color-black);
  cursor: pointer;
  font-family: inherit;
  font-size: var(--tds-font-size-sm);
  line-height: var(--tds-line-height-normal);
  padding: var(--tds-spacing-2) var(--tds-spacing-10) var(--tds-spacing-2) var(--tds-spacing-3);
  min-width: 120px;
  transition: border-color var(--tds-duration-short) ease, box-shadow var(--tds-duration-short) ease;
}

[dir="rtl"] .tds-select__control {
  padding: var(--tds-spacing-2) var(--tds-spacing-3) var(--tds-spacing-2) var(--tds-spacing-10);
}

.tds-select__control:hover {
  border-color: var(--tds-color-brand);
}

.tds-select__control:focus {
  outline: none;
  border-color: var(--tds-color-brand);
  box-shadow: 0 0 0 2px var(--tds-color-foundation-blue);
}

.tds-select__control:focus-visible {
  outline: var(--tds-a11y-outline-focus);
  outline-offset: var(--tds-a11y-outline-offset-focus);
}

[data-theme="dark"] .tds-select__control {
  background-color: var(--trl-surface);
  border-color: var(--trl-border);
  color: var(--color-text);
}

[data-theme="dark"] .tds-select__control:hover {
  border-color: var(--color-text-accent);
}

[data-theme="dark"] .tds-select__control:focus {
  border-color: var(--color-text-accent);
  box-shadow: 0 0 0 2px var(--trl-surface-soft);
}

/* Dropdown icon */
.tds-select__icon {
  position: absolute;
  right: var(--tds-spacing-3);
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
  color: var(--tds-color-meteorite);
  width: 12px;
  height: 12px;
}

[dir="rtl"] .tds-select__icon {
  right: auto;
  left: var(--tds-spacing-3);
}

[data-theme="dark"] .tds-select__icon {
  color: var(--color-text-secondary);
}

/* Disabled state */
.tds-select--disabled .tds-select__control {
  background-color: var(--tds-color-fog);
  border-color: var(--tds-color-granite);
  color: var(--tds-color-stormcloud);
  cursor: not-allowed;
}

[data-theme="dark"] .tds-select--disabled .tds-select__control {
  background-color: var(--trl-surface-soft);
  color: var(--color-text-muted);
}

/* Size variants */
.tds-select--small .tds-select__control {
  font-size: var(--tds-font-size-xs);
  padding: var(--tds-spacing-1) var(--tds-spacing-8) var(--tds-spacing-1) var(--tds-spacing-2);
}

.tds-select--large .tds-select__control {
  font-size: var(--tds-font-size-md);
  padding: var(--tds-spacing-3) var(--tds-spacing-12) var(--tds-spacing-3) var(--tds-spacing-4);
}

/* Error state */
.tds-select--error .tds-select__control {
  border-color: var(--tds-color-destructive);
}

.tds-select--error .tds-select__control:focus {
  box-shadow: 0 0 0 2px var(--tds-color-pearl);
}

/* Label */
.tds-select__label {
  display: block;
  font-size: var(--tds-font-size-sm);
  font-weight: var(--tds-font-weight-bold);
  color: var(--tds-color-meteorite);
  margin-bottom: var(--tds-spacing-1);
}

[data-theme="dark"] .tds-select__label {
  color: var(--color-text-secondary);
}

/* Help text */
.tds-select__help {
  font-size: var(--tds-font-size-xs);
  color: var(--tds-color-meteorite);
  margin-top: var(--tds-spacing-1);
}

[data-theme="dark"] .tds-select__help {
  color: var(--color-text-secondary);
}

.tds-select--error .tds-select__help {
  color: var(--tds-color-destructive);
}


/* ==========================================================================
   TDS Modal Component
   Ported from th-components-main/src/elements/tds/modal
   ========================================================================== */

.tds-modal {
  position: var(--tds-position, fixed);
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: var(--tds-z-index-modal);
  display: none;
}

.tds-modal--open {
  display: block;
}

/* Backdrop */
.tds-modal__backdrop {
  position: var(--tds-position, fixed);
  z-index: var(--tds-z-index-overlay);
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background-color: hsla(var(--tds-color-meteorite-h), var(--tds-color-meteorite-s), var(--tds-color-meteorite-l), 0.75);
}

[data-theme="dark"] .tds-modal__backdrop {
  background-color: rgba(0, 0, 0, 0.8);
}

/* Container */
.tds-modal__container {
  display: flex;
  flex-direction: column;
  justify-content: center;
  margin: 0 auto;
  padding: var(--tds-spacing-12) 0 var(--tds-spacing-2);
  width: calc(100% - var(--tds-spacing-4) * 2);
  height: 100%;
  position: relative;
  z-index: calc(var(--tds-z-index-modal) + 1);
}

@media screen and (min-width: 48rem) {
  .tds-modal__container {
    width: 80%;
    max-width: var(--tds-modal_container-max-width, 40rem);
    min-width: var(--tds-modal_container-min-width, 20rem);
  }

  /* Size variants */
  .tds-modal--x-small .tds-modal__container {
    width: 40%;
    max-width: 30rem;
    min-width: 20rem;
  }

  .tds-modal--small .tds-modal__container {
    width: 60%;
    max-width: 52.0625rem;
    min-width: 40rem;
  }

  .tds-modal--medium .tds-modal__container {
    width: 70%;
    max-width: 75rem;
    min-width: 40rem;
  }

  .tds-modal--large .tds-modal__container {
    width: 90%;
    max-width: none;
    min-width: 40rem;
  }
}

/* Header */
.tds-modal__header {
  background-color: var(--tds-color-white);
  border-top-right-radius: var(--tds-radius-xl);
  border-top-left-radius: var(--tds-radius-xl);
  border-bottom: var(--tds-modal_header-border-bottom, none);
  padding: var(--tds-modal_header-padding, var(--tds-spacing-8) var(--tds-spacing-6) var(--tds-spacing-8) var(--tds-spacing-8));
  text-align: var(--tds-modal_header-text-align, left);
}

[dir="rtl"] .tds-modal__header {
  text-align: var(--tds-modal_header-text-align, right);
}

[data-theme="dark"] .tds-modal__header {
  background-color: var(--trl-surface);
}

.tds-modal__header-main {
  display: flex;
  position: relative;
  align-items: flex-start;
}

/* Heading */
.tds-modal__heading {
  flex: 1 1 auto;
  font-family: var(--tds-font-family-display);
  font-size: var(--tds-font-size-xl);
  font-weight: normal;
  color: var(--tds-color-midnight);
  margin: 0;
}

[data-theme="dark"] .tds-modal__heading {
  color: var(--color-text);
}

/* Tagline */
.tds-modal__tagline {
  margin-top: var(--tds-spacing-2);
  color: var(--tds-modal_tagline-color, inherit);
}

[data-theme="dark"] .tds-modal__tagline {
  color: var(--color-text-secondary);
}

/* Close button */
.tds-modal__close {
  -webkit-appearance: none;
  appearance: none;
  background: transparent;
  border-radius: var(--tds-spacing-1);
  border: 1px solid transparent;
  color: var(--tds-color-brand);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: inherit;
  line-height: inherit;
  width: 1.25rem;
  height: 1.25rem;
  flex: 0 1 auto;
  margin-inline-start: auto;
  text-decoration: none;
  user-select: none;
  white-space: normal;
  z-index: var(--tds-modal-close-z-index, 1000);
  padding: 0;
}

.tds-modal__close:focus {
  outline-color: currentColor;
}

.tds-modal__close:active {
  color: var(--tds-color-fog);
}

.tds-modal__close:focus-visible {
  outline: var(--tds-a11y-outline-focus);
  outline-offset: var(--tds-a11y-outline-offset-focus);
}

[data-theme="dark"] .tds-modal__close {
  color: var(--color-text-accent);
}

/* Content */
.tds-modal__content {
  background-color: var(--tds-color-white);
  overflow: var(--tds-modal_content-overflow, hidden);
  overflow-y: var(--tds-modal_content-overflow-y, auto);
  padding: var(--tds-modal_content-padding, var(--tds-spacing-8));
  min-height: var(--tds-modal_content-min-height, var(--tds-spacing-24));
}

[data-theme="dark"] .tds-modal__content {
  background-color: var(--trl-surface);
}

/* Content with no footer - apply border radius */
.tds-modal--no-footer .tds-modal__content {
  border-bottom-right-radius: var(--tds-radius-xl);
  border-bottom-left-radius: var(--tds-radius-xl);
  box-shadow: 0 1px 0 0 hsla(var(--tds-color-black-h), var(--tds-color-black-s), var(--tds-color-black-l), 0.1);
}

/* Footer */
.tds-modal__footer {
  background-color: var(--tds-modal_footer-background-color, var(--tds-color-sand));
  border-top: var(--tds-modal_footer-border-top, 2px solid var(--tds-color-fog));
  border-bottom-right-radius: var(--tds-radius-xl);
  border-bottom-left-radius: var(--tds-radius-xl);
  padding: var(--tds-modal_footer-padding, var(--tds-spacing-6) var(--tds-spacing-8));
  text-align: right;
  box-shadow: 0 1px 0 0 hsla(var(--tds-color-black-h), var(--tds-color-black-s), var(--tds-color-black-l), 0.1);
}

[dir="rtl"] .tds-modal__footer {
  text-align: left;
}

[data-theme="dark"] .tds-modal__footer {
  background-color: var(--trl-surface-soft);
  border-color: var(--trl-border);
}

/* Footer button spacing */
.tds-modal__footer .tds-button + .tds-button {
  margin-inline-start: var(--tds-spacing-4);
}

/* Full-screen variant */
.tds-modal--full-screen .tds-modal__container {
  min-width: 100%;
  padding: 0;
}

.tds-modal--full-screen .tds-modal__header {
  border-top-right-radius: 0;
  border-top-left-radius: 0;
  padding: var(--tds-modal_header-padding, var(--tds-spacing-5) var(--tds-spacing-8) 0 0);
}

.tds-modal--full-screen .tds-modal__header-main {
  align-items: center;
}

.tds-modal--full-screen .tds-modal__content {
  height: 100%;
  border-radius: 0;
  padding-top: 52px;
  background-repeat: no-repeat;
  background-size: contain;
  background-position: bottom;
  backdrop-filter: blur(10px);
}

@media (max-height: 680px) {
  .tds-modal--full-screen .tds-modal__content {
    padding-top: 24px;
  }
}

.tds-modal--full-screen .tds-modal__close {
  color: var(--tds-color-brand);
  top: 20px;
  right: 25px;
  height: 2rem;
  width: 2rem;
}

[dir="rtl"] .tds-modal--full-screen .tds-modal__close {
  right: auto;
  left: 25px;
}

/* Toast area for announcements */
.tds-modal__toast {
  position: absolute;
  z-index: var(--tds-z-index-negative);
}

/* Full height variant */
.tds-modal--full-height .tds-modal__content {
  height: 100%;
}

/* Animation */
@keyframes tds-modal-fade-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes tds-modal-slide-up {
  from {
    transform: translateY(20px);
    opacity: 0;
  }
  to {
    transform: translateY(0);
    opacity: 1;
  }
}

.tds-modal--open .tds-modal__backdrop {
  animation: tds-modal-fade-in var(--tds-duration-normal) ease;
}

.tds-modal--open .tds-modal__container {
  animation: tds-modal-slide-up var(--tds-duration-normal) ease;
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  .tds-modal--open .tds-modal__backdrop,
  .tds-modal--open .tds-modal__container {
    animation: none;
  }
}


/* ==========================================================================
   TDS Toaster Component
   Ported from th-components-main/src/elements/tds/toaster
   ========================================================================== */

.tds-toaster {
  position: fixed;
  bottom: var(--tds-spacing-6);
  right: var(--tds-spacing-6);
  z-index: var(--tds-z-index-toast);
  display: flex;
  flex-direction: column-reverse;
  gap: var(--tds-spacing-2);
  pointer-events: none;
}

[dir="rtl"] .tds-toaster {
  right: auto;
  left: var(--tds-spacing-6);
}

/* Toast message */
.tds-toast {
  display: flex;
  align-items: flex-start;
  gap: var(--tds-spacing-3);
  padding: var(--tds-spacing-4);
  background-color: var(--tds-color-white);
  border-radius: var(--tds-radius-lg);
  box-shadow: var(--tds-shadow-lg);
  min-width: 280px;
  max-width: 400px;
  pointer-events: auto;
  animation: tds-toast-slide-in var(--tds-duration-normal) ease;
}

[data-theme="dark"] .tds-toast {
  background-color: var(--trl-surface);
  border: 1px solid var(--trl-border);
}

@keyframes tds-toast-slide-in {
  from {
    transform: translateX(100%);
    opacity: 0;
  }
  to {
    transform: translateX(0);
    opacity: 1;
  }
}

[dir="rtl"] .tds-toast {
  animation-name: tds-toast-slide-in-rtl;
}

@keyframes tds-toast-slide-in-rtl {
  from {
    transform: translateX(-100%);
    opacity: 0;
  }
  to {
    transform: translateX(0);
    opacity: 1;
  }
}

.tds-toast--exiting {
  animation: tds-toast-slide-out var(--tds-duration-short) ease forwards;
}

@keyframes tds-toast-slide-out {
  from {
    transform: translateX(0);
    opacity: 1;
  }
  to {
    transform: translateX(100%);
    opacity: 0;
  }
}

[dir="rtl"] .tds-toast--exiting {
  animation-name: tds-toast-slide-out-rtl;
}

@keyframes tds-toast-slide-out-rtl {
  from {
    transform: translateX(0);
    opacity: 1;
  }
  to {
    transform: translateX(-100%);
    opacity: 0;
  }
}

/* Toast icon */
.tds-toast__icon {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.tds-toast__icon svg {
  width: 100%;
  height: 100%;
}

/* Toast content */
.tds-toast__content {
  flex: 1;
  min-width: 0;
}

.tds-toast__title {
  font-size: var(--tds-font-size-sm);
  font-weight: var(--tds-font-weight-bold);
  color: var(--tds-color-black);
  margin: 0 0 var(--tds-spacing-1) 0;
}

[data-theme="dark"] .tds-toast__title {
  color: var(--color-text);
}

.tds-toast__message {
  font-size: var(--tds-font-size-sm);
  color: var(--tds-color-meteorite);
  margin: 0;
  line-height: 1.4;
}

[data-theme="dark"] .tds-toast__message {
  color: var(--color-text-secondary);
}

/* Toast close button */
.tds-toast__close {
  flex-shrink: 0;
  appearance: none;
  background: transparent;
  border: none;
  cursor: pointer;
  padding: var(--tds-spacing-1);
  color: var(--tds-color-meteorite);
  border-radius: var(--tds-radius-sm);
  transition: color var(--tds-duration-short) ease, background-color var(--tds-duration-short) ease;
}

.tds-toast__close:hover {
  color: var(--tds-color-black);
  background-color: var(--tds-color-fog);
}

.tds-toast__close:focus-visible {
  outline: var(--tds-a11y-outline-focus);
  outline-offset: var(--tds-a11y-outline-offset-focus);
}

[data-theme="dark"] .tds-toast__close {
  color: var(--color-text-secondary);
}

[data-theme="dark"] .tds-toast__close:hover {
  color: var(--color-text);
  background-color: var(--trl-surface-soft);
}

.tds-toast__close svg {
  width: 14px;
  height: 14px;
}

/* Toast variants */
.tds-toast--success .tds-toast__icon {
  color: var(--tds-color-success);
}

.tds-toast--error .tds-toast__icon {
  color: var(--tds-color-destructive);
}

.tds-toast--warning .tds-toast__icon {
  color: var(--tds-color-warning-60);
}

.tds-toast--info .tds-toast__icon {
  color: var(--tds-color-brand);
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  .tds-toast {
    animation: none;
  }

  .tds-toast--exiting {
    animation: none;
    opacity: 0;
  }
}

/* Responsive */
@media (max-width: 30rem) {
  .tds-toaster {
    left: var(--tds-spacing-4);
    right: var(--tds-spacing-4);
    bottom: var(--tds-spacing-4);
  }

  [dir="rtl"] .tds-toaster {
    left: var(--tds-spacing-4);
    right: var(--tds-spacing-4);
  }

  .tds-toast {
    max-width: none;
    min-width: auto;
    width: 100%;
  }
}


/* ==========================================================================
   TDS Global Header Component
   ========================================================================== */

.tds-global-header {
  background-color: var(--tds-color-white);
  border-bottom: 1px solid var(--tds-color-fog);
  position: sticky;
  top: 0;
  z-index: var(--tds-z-index-sticky);
}

[data-theme="dark"] .tds-global-header {
  background-color: var(--trl-surface);
  border-color: var(--trl-border);
}

.tds-global-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  /* No max-width - header spans full viewport like original Trailhead */
  padding: var(--tds-spacing-3) var(--tds-spacing-5);
  gap: var(--tds-spacing-4);
}

.tds-global-header__logo {
  display: flex;
  align-items: center;
  text-decoration: none;
  flex-shrink: 0;
}

.tds-global-header__logo-icon {
  width: 28px;
  height: 28px;
  color: var(--tds-color-brand);
}

[data-theme="dark"] .tds-global-header__logo-icon {
  color: var(--color-text-accent);
}

.tds-global-header__nav {
  display: flex;
  align-items: center;
  gap: var(--tds-spacing-1);
  flex: 1;
  justify-content: center;
}

.tds-global-header__nav-link {
  font-size: var(--tds-font-size-sm);
  color: var(--tds-color-meteorite);
  text-decoration: none;
  padding: var(--tds-spacing-2) var(--tds-spacing-3);
  border-radius: var(--tds-radius-md);
  transition: color var(--tds-duration-short) ease, background-color var(--tds-duration-short) ease;
  white-space: nowrap;
}

[data-theme="dark"] .tds-global-header__nav-link {
  color: var(--color-text-secondary);
}

.tds-global-header__nav-link:hover {
  color: var(--tds-color-brand);
  background-color: var(--tds-color-sand);
}

[data-theme="dark"] .tds-global-header__nav-link:hover {
  color: var(--color-text-accent);
  background-color: var(--trl-surface-soft);
}

.tds-global-header__nav-link:focus-visible {
  outline: var(--tds-a11y-outline-focus);
  outline-offset: var(--tds-a11y-outline-offset-focus);
}

.tds-global-header__actions {
  display: flex;
  align-items: center;
  gap: var(--tds-spacing-3);
  flex-shrink: 0;
}

.tds-global-header__search {
  display: flex;
  align-items: center;
  gap: var(--tds-spacing-2);
  font-size: var(--tds-font-size-sm);
  color: var(--tds-color-meteorite);
  padding: var(--tds-spacing-2) var(--tds-spacing-3);
  border-radius: var(--tds-radius-md);
  cursor: pointer;
  transition: background-color var(--tds-duration-short) ease;
}

[data-theme="dark"] .tds-global-header__search {
  color: var(--color-text-secondary);
}

.tds-global-header__search:hover {
  background-color: var(--tds-color-sand);
}

[data-theme="dark"] .tds-global-header__search:hover {
  background-color: var(--trl-surface-soft);
}

.tds-global-header__search svg {
  width: 16px;
  height: 16px;
}

.tds-global-header__phone {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: var(--tds-radius-full);
  background: transparent;
  border: none;
  color: var(--tds-color-meteorite);
  cursor: pointer;
  transition: background-color var(--tds-duration-short) ease;
}

[data-theme="dark"] .tds-global-header__phone {
  color: var(--color-text-secondary);
}

.tds-global-header__phone:hover {
  background-color: var(--tds-color-sand);
}

[data-theme="dark"] .tds-global-header__phone:hover {
  background-color: var(--trl-surface-soft);
}

.tds-global-header__phone svg {
  width: 18px;
  height: 18px;
}

.tds-global-header__avatar {
  width: 32px;
  height: 32px;
  border-radius: var(--tds-radius-full);
  overflow: hidden;
}

.tds-global-header__avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.tds-theme-toggle {
  display: flex;
  gap: var(--tds-spacing-1);
  background-color: var(--tds-color-sand);
  border-radius: var(--tds-radius-md);
  padding: 2px;
}

[data-theme="dark"] .tds-theme-toggle {
  background-color: var(--trl-surface-soft);
}

.tds-theme-toggle__btn {
  padding: var(--tds-spacing-1) var(--tds-spacing-2) !important;
  font-size: var(--tds-font-size-xs) !important;
  border: none !important;
  background-color: transparent !important;
}

.tds-theme-toggle__btn:hover {
  background-color: var(--tds-color-fog) !important;
}

[data-theme="dark"] .tds-theme-toggle__btn:hover {
  background-color: rgba(255, 255, 255, 0.1) !important;
}

.tds-theme-toggle__btn--active {
  background-color: var(--tds-color-white) !important;
  box-shadow: var(--tds-shadow-sm);
}

[data-theme="dark"] .tds-theme-toggle__btn--active {
  background-color: var(--trl-surface) !important;
}

/* RTL: direction:rtl on parent handles mirroring - don't use row-reverse */

@media (max-width: 800px) {
  .tds-global-header__nav {
    display: none;
  }
  .tds-global-header__search span {
    display: none;
  }
}

@media (max-width: 640px) {
  .tds-global-header__inner {
    padding: var(--tds-spacing-2) var(--tds-spacing-3);
  }
  .tds-global-header__actions {
    gap: var(--tds-spacing-2);
  }
  .tds-theme-toggle {
    display: none;
  }
}


/* ==========================================================================
   TDS Trailhead Header Component
   ========================================================================== */

.tds-trailhead-header {
  background-color: var(--tds-color-white);
  border-bottom: 1px solid var(--tds-color-fog);
}

[data-theme="dark"] .tds-trailhead-header {
  background-color: var(--trl-surface);
  border-color: var(--trl-border);
}

.tds-trailhead-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  /* No max-width - header spans full viewport like original Trailhead */
  padding: var(--tds-spacing-4) var(--tds-spacing-5);
  gap: var(--tds-spacing-6);
}

.tds-trailhead-header__logo {
  display: flex;
  align-items: center;
  gap: var(--tds-spacing-2);
  text-decoration: none;
  flex-shrink: 0;
}

.tds-trailhead-header__logo-icon {
  width: 36px;
  height: 36px;
}

.tds-trailhead-header__logo-text {
  font-family: var(--tds-font-family-display);
  font-size: var(--tds-font-size-xl);
  font-weight: var(--tds-font-weight-bold);
  color: var(--tds-color-midnight);
}

[data-theme="dark"] .tds-trailhead-header__logo-text {
  color: var(--color-text);
}

.tds-trailhead-header__nav {
  display: flex;
  align-items: center;
  gap: var(--tds-spacing-1);
  flex: 1;
}

.tds-trailhead-header__nav-link {
  display: inline-flex;
  align-items: center;
  gap: var(--tds-spacing-1);
  font-size: var(--tds-font-size-md);
  font-weight: var(--tds-font-weight-bold);
  color: var(--tds-color-midnight);
  text-decoration: none;
  padding: var(--tds-spacing-2) var(--tds-spacing-3);
  border-radius: var(--tds-radius-md);
  background: transparent;
  border: none;
  cursor: pointer;
  transition: color var(--tds-duration-short) ease, background-color var(--tds-duration-short) ease;
  white-space: nowrap;
}

[data-theme="dark"] .tds-trailhead-header__nav-link {
  color: var(--color-text);
}

.tds-trailhead-header__nav-link:hover {
  color: var(--tds-color-brand);
  background-color: var(--tds-color-sand);
}

/* ==========================================================================
   Trail Preview Theme Toggle
   ========================================================================== */

.trl-theme-toggle {
  display: inline-flex;
  gap: 0;
  padding: 2px;
  border: 1px solid #e5e5e5;
  border-radius: 4px;
  background: #f3f3f3;
  height: 32px;
}

[data-theme="dark"] .trl-theme-toggle {
  background: var(--trl-surface-soft);
  border-color: var(--trl-border);
}

.trl-theme-toggle__btn {
  border: none;
  background: transparent;
  color: #444444;
  font-family: "Salesforce Sans", system-ui, sans-serif;
  font-size: 12px;
  font-weight: 700;
  padding: 4px 12px;
  border-radius: 3px;
  cursor: pointer;
  transition: all 0.15s ease;
  white-space: nowrap;
}

.trl-theme-toggle__btn:hover {
  background: #e5e5e5;
  color: #032d60;
}

.trl-theme-toggle__btn:focus {
  outline: none;
}

.trl-theme-toggle__btn:focus-visible {
  outline: 2px solid #0176d3;
  outline-offset: 1px;
}

.trl-theme-toggle__btn--active,
[data-theme="light"] .trl-theme-toggle__btn:first-child,
[data-theme="dark"] .trl-theme-toggle__btn:last-child {
  background: #ffffff;
  color: #032d60;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
}

[data-theme="dark"] .trl-theme-toggle__btn {
  color: var(--color-text-secondary);
}

[data-theme="dark"] .trl-theme-toggle__btn:hover {
  background: var(--trl-surface);
  color: var(--color-text);
}

[data-theme="dark"] .trl-theme-toggle__btn--active,
[data-theme="dark"] .trl-theme-toggle__btn:last-child {
  background: var(--trl-surface);
  color: var(--color-text);
}

[data-theme="dark"] .tds-trailhead-header__nav-link:hover {
  color: var(--color-text-accent);
  background-color: var(--trl-surface-soft);
}

.tds-trailhead-header__nav-link:focus-visible {
  outline: var(--tds-a11y-outline-focus);
  outline-offset: var(--tds-a11y-outline-offset-focus);
}

.tds-trailhead-header__nav-link svg {
  width: 12px;
  height: 12px;
  transition: transform var(--tds-duration-short) ease;
}

.tds-trailhead-header__nav-link[aria-expanded="true"] svg {
  transform: rotate(180deg);
}

.tds-trailhead-header__actions {
  display: flex;
  align-items: center;
  gap: var(--tds-spacing-3);
  flex-shrink: 0;
}

.tds-trailhead-header__menu-btn {
  display: none;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: var(--tds-radius-md);
  background: transparent;
  border: none;
  color: var(--tds-color-midnight);
  cursor: pointer;
}

[data-theme="dark"] .tds-trailhead-header__menu-btn {
  color: var(--color-text);
}

.tds-trailhead-header__menu-btn svg {
  width: 24px;
  height: 24px;
}

/* RTL: direction:rtl on parent handles mirroring - don't use row-reverse */

@media (max-width: 800px) {
  .tds-trailhead-header__nav {
    display: none;
  }
  .tds-trailhead-header__menu-btn {
    display: flex;
  }
}

@media (max-width: 640px) {
  .tds-trailhead-header__inner {
    padding: var(--tds-spacing-3) var(--tds-spacing-4);
  }
  .tds-trailhead-header__logo-icon {
    width: 28px;
    height: 28px;
  }
  .tds-trailhead-header__logo-text {
    font-size: var(--tds-font-size-lg);
  }
}

/* ==========================================================================
   TDS Footer Component
   Ported from th-components-main/src/elements/tds/footer
   ========================================================================== */

.tds-footer {
  background-color: var(--tds-color-white);
  padding: var(--tds-spacing-10) var(--tds-spacing-6);
  border-top: 1px solid var(--tds-color-fog);
}

[data-theme="dark"] .tds-footer {
  background-color: var(--trl-surface);
  border-color: var(--trl-border);
}

.tds-footer__inner {
  max-width: var(--tds-container-xl);
  margin: 0 auto;
}

/* Footer links grid */
.tds-footer-links {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: var(--tds-spacing-8);
  margin-bottom: var(--tds-spacing-8);
}

.tds-footer-links__section {
  display: flex;
  flex-direction: column;
  gap: var(--tds-spacing-3);
}

.tds-footer-links__heading {
  font-size: var(--tds-font-size-xs);
  font-weight: var(--tds-font-weight-bold);
  color: var(--tds-color-midnight);
  margin: 0;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

[data-theme="dark"] .tds-footer-links__heading {
  color: var(--color-text);
}

.tds-footer-links__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: var(--tds-spacing-2);
}

.tds-footer-links__link {
  font-size: var(--tds-font-size-sm);
  color: var(--tds-color-meteorite);
  text-decoration: none;
  transition: color var(--tds-duration-short) ease;
}

.tds-footer-links__link:hover {
  color: var(--tds-color-brand);
  text-decoration: underline;
}

[data-theme="dark"] .tds-footer-links__link {
  color: var(--color-text-secondary);
}

[data-theme="dark"] .tds-footer-links__link:hover {
  color: var(--color-text-accent);
}

/* Footer global section */
.tds-footer-global {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--tds-spacing-4);
  padding-top: var(--tds-spacing-6);
  border-top: 1px solid var(--tds-color-fog);
}

[data-theme="dark"] .tds-footer-global {
  border-color: var(--trl-border);
}

/* Copyright */
.tds-footer-global__copyright {
  font-size: var(--tds-font-size-xs);
  color: var(--tds-color-meteorite);
}

[data-theme="dark"] .tds-footer-global__copyright {
  color: var(--color-text-secondary);
}

/* Legal links */
.tds-footer-global__legal {
  display: flex;
  flex-wrap: wrap;
  gap: var(--tds-spacing-4);
}

.tds-footer-global__legal-link {
  font-size: var(--tds-font-size-xs);
  color: var(--tds-color-meteorite);
  text-decoration: none;
}

.tds-footer-global__legal-link:hover {
  text-decoration: underline;
}

[data-theme="dark"] .tds-footer-global__legal-link {
  color: var(--color-text-secondary);
}

/* Social links */
.tds-footer__social {
  display: flex;
  gap: var(--tds-spacing-3);
}

.tds-footer__social-link {
  width: 36px;
  height: 36px;
  background-color: var(--tds-color-brand);
  border-radius: var(--tds-radius-full);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--tds-color-white);
  text-decoration: none;
  transition: background-color var(--tds-duration-short) ease, transform var(--tds-duration-short) ease;
}

.tds-footer__social-link:hover {
  background-color: var(--tds-color-midnight);
  transform: scale(1.05);
}

.tds-footer__social-link:focus-visible {
  outline: var(--tds-a11y-outline-focus);
  outline-offset: var(--tds-a11y-outline-offset-focus);
}

.tds-footer__social-link svg {
  width: 18px;
  height: 18px;
}

/* Language selector */
.tds-footer__language {
  display: flex;
  align-items: center;
  gap: var(--tds-spacing-1);
}

.tds-footer__language-link {
  font-size: var(--tds-font-size-sm);
  color: var(--tds-color-meteorite);
  text-decoration: none;
  display: flex;
  align-items: center;
  gap: var(--tds-spacing-1);
}

.tds-footer__language-link:hover {
  text-decoration: underline;
}

[data-theme="dark"] .tds-footer__language-link {
  color: var(--color-text-secondary);
}

.tds-footer__language-icon {
  width: 16px;
  height: 16px;
}

/* App download buttons */
.tds-footer__apps {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--tds-spacing-4);
  margin-bottom: var(--tds-spacing-6);
  padding-bottom: var(--tds-spacing-6);
  border-bottom: 1px solid var(--tds-color-fog);
}

[data-theme="dark"] .tds-footer__apps {
  border-color: var(--trl-border);
}

.tds-footer__apps-label {
  font-size: var(--tds-font-size-sm);
  font-weight: var(--tds-font-weight-bold);
  color: var(--tds-color-midnight);
}

[data-theme="dark"] .tds-footer__apps-label {
  color: var(--color-text);
}

.tds-footer__apps-buttons {
  display: flex;
  gap: var(--tds-spacing-3);
}

.tds-footer__app-btn {
  display: inline-flex;
  align-items: center;
  gap: var(--tds-spacing-2);
  padding: var(--tds-spacing-2) var(--tds-spacing-4);
  background-color: var(--tds-color-black);
  color: var(--tds-color-white);
  border-radius: var(--tds-radius-md);
  text-decoration: none;
  font-size: var(--tds-font-size-xs);
  font-weight: var(--tds-font-weight-bold);
  transition: background-color var(--tds-duration-short) ease;
}

.tds-footer__app-btn:hover {
  background-color: var(--gray-700);
}

.tds-footer__app-btn svg {
  width: 20px;
  height: 20px;
}

/* RTL support */
[dir="rtl"] .tds-footer-links {
  direction: rtl;
}

/* RTL: direction:rtl on parent handles mirroring - don't use row-reverse */

/* Responsive */
@media (max-width: 48rem) {
  .tds-footer-links {
    grid-template-columns: repeat(2, 1fr);
  }

  .tds-footer-global {
    flex-direction: column;
    align-items: flex-start;
  }

  .tds-footer__apps {
    flex-direction: column;
    align-items: flex-start;
  }
}

@media (max-width: 30rem) {
  .tds-footer-links {
    grid-template-columns: 1fr;
  }
}

/* ==========================================================================
   Trail Preview Footer
   ========================================================================== */

.trl-footer {
  background: var(--tds-color-white);
  padding: 40px 24px 24px;
  border-top: 1px solid #e5e5e5;
}

[data-theme="dark"] .trl-footer {
  background: var(--trl-surface);
  border-color: var(--trl-border);
}

.trl-footer__inner {
  max-width: 1200px;
  margin: 0 auto;
}

.trl-footer__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 48px;
  margin-bottom: 40px;
}

.trl-footer__section {
  display: flex;
  flex-direction: column;
  gap: var(--tds-spacing-4);
}

.trl-footer__heading {
  font-size: var(--tds-font-size-xs);
  font-weight: var(--tds-font-weight-bold);
  color: var(--tds-color-midnight);
  margin: 0;
}

[data-theme="dark"] .trl-footer__heading {
  color: var(--color-text);
}

.trl-footer__links {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: var(--tds-spacing-3);
}

.trl-footer__links a {
  font-size: var(--tds-font-size-xs);
  color: var(--tds-color-meteorite);
  text-decoration: none;
  transition: color var(--tds-duration-short) ease;
}

[data-theme="dark"] .trl-footer__links a {
  color: var(--color-text-secondary);
}

.trl-footer__links a:hover {
  color: var(--tds-color-ocean);
  text-decoration: underline;
}

[data-theme="dark"] .trl-footer__links a:hover {
  color: var(--color-text-accent);
}

.trl-footer__apps {
  display: flex;
  align-items: center;
  gap: var(--tds-spacing-4);
  padding-bottom: var(--tds-spacing-6);
  border-bottom: 1px solid var(--tds-color-fog);
  margin-bottom: var(--tds-spacing-6);
}

[data-theme="dark"] .trl-footer__apps {
  border-color: var(--trl-border);
}

.trl-footer__apps-label {
  font-size: var(--tds-font-size-xs);
  font-weight: var(--tds-font-weight-semibold);
  color: var(--tds-color-midnight);
}

[data-theme="dark"] .trl-footer__apps-label {
  color: var(--color-text);
}

.trl-footer__apps-btns {
  display: flex;
  gap: var(--tds-spacing-3);
}

.trl-footer__app-btn {
  display: inline-flex;
  align-items: center;
  gap: var(--tds-spacing-2);
  padding: var(--tds-spacing-2) var(--tds-spacing-4);
  background: var(--tds-color-black);
  color: var(--tds-color-white);
  border-radius: var(--tds-radius-md);
  text-decoration: none;
  font-size: var(--tds-font-size-xs);
  font-weight: var(--tds-font-weight-semibold);
  transition: background var(--tds-duration-short) ease;
}

.trl-footer__app-btn svg {
  width: 20px;
  height: 20px;
}

.trl-footer__app-btn:hover {
  background: var(--gray-700);
}

.trl-footer__social {
  display: flex;
  gap: var(--tds-spacing-3);
  justify-content: flex-end;
  padding-bottom: var(--tds-spacing-6);
  border-bottom: 1px solid var(--tds-color-fog);
  margin-bottom: var(--tds-spacing-6);
}

[data-theme="dark"] .trl-footer__social {
  border-color: var(--trl-border);
}

.trl-footer__social-link {
  width: 40px;
  height: 40px;
  background: var(--tds-color-ocean);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--tds-color-white);
  text-decoration: none;
  transition: background var(--tds-duration-short) ease, transform var(--tds-duration-short) ease;
}

.trl-footer__social-link[aria-label*="Facebook"] {
  background: #1877F2;
}

.trl-footer__social-link[aria-label*="Twitter"] {
  background: #000000;
}

.trl-footer__social-link[aria-label*="LinkedIn"] {
  background: #0A66C2;
}

.trl-footer__social-link[aria-label*="Trailblazer"] {
  background: #00A1E0;
}

.trl-footer__social-link[aria-label*="Podcast"] {
  background: #FF6D3D;
}

.trl-footer__social-link:hover {
  background: var(--tds-color-azure);
}

.trl-footer__social-link svg {
  width: 20px;
  height: 20px;
}

.trl-footer__legal {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--tds-spacing-4);
  font-size: var(--tds-font-size-xs);
  color: var(--tds-color-meteorite);
}

[data-theme="dark"] .trl-footer__legal {
  color: var(--color-text-secondary);
}

.trl-footer__copyright {
  color: var(--tds-color-meteorite);
}

[data-theme="dark"] .trl-footer__copyright {
  color: var(--color-text-secondary);
}

.trl-footer__legal-links {
  display: flex;
  flex-wrap: wrap;
  gap: var(--tds-spacing-4);
}

.trl-footer__legal-links a {
  color: var(--tds-color-meteorite);
  text-decoration: none;
  transition: color var(--tds-duration-short) ease;
}

[data-theme="dark"] .trl-footer__legal-links a {
  color: var(--color-text-secondary);
}

.trl-footer__legal-links a:hover {
  text-decoration: underline;
}

.trl-footer__lang {
  display: flex;
  align-items: center;
  gap: var(--tds-spacing-1);
  color: var(--tds-color-meteorite);
  cursor: pointer;
}

[data-theme="dark"] .trl-footer__lang {
  color: var(--color-text-secondary);
}

.trl-footer__lang svg {
  width: 16px;
  height: 16px;
}

.trl-footer__lang-link {
  color: var(--tds-color-meteorite);
  text-decoration: none;
  font-size: var(--tds-font-size-sm);
}

[data-theme="dark"] .trl-footer__lang-link {
  color: var(--color-text-secondary);
}

.trl-footer__lang-link:hover {
  text-decoration: underline;
}

@media (max-width: 80rem) {
  .trl-footer__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: var(--tds-spacing-8);
  }
}

@media (max-width: 48rem) {
  .trl-footer__grid {
    grid-template-columns: 1fr;
    gap: var(--tds-spacing-6);
  }

  .trl-footer__apps {
    flex-direction: column;
    align-items: flex-start;
  }

  .trl-footer__social {
    justify-content: flex-start;
  }

  .trl-footer__legal {
    flex-direction: column;
    align-items: flex-start;
  }
}

@media (prefers-reduced-motion: reduce) {
  .trl-footer__social-link {
    transition: none !important;
  }
}

