:where(body.ctm-design-system, .ctm-city-guide, .ctm-destination-canvas) :where(a, button, input, select, textarea, summary) {
  transition-duration: var(--ctm-duration-fast);
  transition-timing-function: var(--ctm-ease-standard);
}

:where(body.ctm-design-system, .ctm-city-guide, .ctm-destination-canvas) :where(a, button, input, select, textarea, summary):focus-visible {
  outline: var(--ctm-focus-outline) !important;
  outline-offset: 3px !important;
}

:where(body.ctm-design-system, .ctm-city-guide, .ctm-destination-canvas) :where(button, input, select, textarea):disabled,
:where(body.ctm-design-system, .ctm-city-guide, .ctm-destination-canvas) [aria-disabled="true"] {
  cursor: not-allowed;
  opacity: var(--ctm-disabled-opacity);
  transform: none;
}

:where(body.ctm-design-system, .ctm-city-guide, .ctm-destination-canvas) :where(input, select, textarea):disabled {
  border-color: var(--ctm-control-border);
  background: var(--ctm-disabled-bg);
  color: var(--ctm-disabled-text);
}

:where(body.ctm-design-system, .ctm-city-guide, .ctm-destination-canvas) :where(input, select, textarea)[aria-invalid="true"] {
  border-color: var(--ctm-error) !important;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--ctm-error) 16%, transparent) !important;
}

.field__message {
  margin: 0;
  color: var(--ctm-text-muted);
  font-size: var(--ctm-font-size-xs);
}

.field__message--error {
  color: var(--ctm-error);
}

:where(.content-card, .planning-card, .editorial-row, .destination-card) {
  transition: border-color var(--ctm-motion-base), box-shadow var(--ctm-motion-base), transform var(--ctm-motion-base), background-color var(--ctm-motion-base);
}

:where(.filter-chip, .active-filters button)[aria-pressed="true"] {
  border-color: var(--ctm-action-primary-bg);
  background: var(--ctm-action-primary-bg);
  color: var(--ctm-action-primary-text);
}

.accordion__button:hover {
  color: var(--ctm-forest-dark);
}

.state-panel {
  border: 1px solid transparent;
  border-radius: var(--ctm-radius-md);
}

.state-panel--loading {
  color: var(--ctm-text-muted);
}

.state-panel--empty {
  border-color: var(--ctm-border);
  background: var(--ctm-surface-muted);
}

.state-panel--error {
  border-color: color-mix(in srgb, var(--ctm-error) 35%, var(--ctm-border));
  background: color-mix(in srgb, var(--ctm-error) 6%, var(--ctm-surface));
}

.state-panel--error .eyebrow,
.state-panel--error h3 {
  color: var(--ctm-error);
}

[aria-busy="true"] {
  cursor: progress;
}

@media (prefers-reduced-motion: reduce) {
  :where(body.ctm-design-system, .ctm-city-guide, .ctm-destination-canvas),
  :where(body.ctm-design-system, .ctm-city-guide, .ctm-destination-canvas) *,
  :where(body.ctm-design-system, .ctm-city-guide, .ctm-destination-canvas) *::before,
  :where(body.ctm-design-system, .ctm-city-guide, .ctm-destination-canvas) *::after {
    scroll-behavior: auto !important;
    animation-duration: var(--ctm-duration-instant) !important;
    animation-iteration-count: 1 !important;
    transition-duration: var(--ctm-duration-instant) !important;
    transition-delay: 0ms !important;
  }
}
