/* CAW interaction scheme approved in the September 8, 2026 task:
   quiet color feedback, 1px primary-action lift, 2px clickable-card lift.
   Keep geometry, content, and activation behavior unchanged. */
:root {
  --interaction-duration: 160ms;
  --interaction-card-duration: 200ms;
  --interaction-ease: ease-out;
  --interaction-tint: #eaf4f2;
  --interaction-link: #247d72;
  --interaction-focus: #087e8b;
}

/* Text links, including dynamically rendered chat links. Exclude surfaces. */
body a[href]:not(.btn, .cc-button, .card, .ind-card, .nav-logo, .footer-logo, .brand-link, .shortcut-link):not(.cc-final-actions a, .v5c-action-buttons a) {
  text-decoration-line: underline;
  text-decoration-color: transparent;
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
  transition: color var(--interaction-duration) var(--interaction-ease), text-decoration-color var(--interaction-duration) var(--interaction-ease), background-color var(--interaction-duration) var(--interaction-ease);
}

/* Shared action feedback. Component colors remain local through these tokens. */
body :is(button, .btn, .cc-button, .cc-final-actions a, .v5c-action-buttons a, summary, .shortcut-link) {
  transition: background-color var(--interaction-duration) var(--interaction-ease), border-color var(--interaction-duration) var(--interaction-ease), box-shadow var(--interaction-duration) var(--interaction-ease), color var(--interaction-duration) var(--interaction-ease), transform var(--interaction-duration) var(--interaction-ease);
}
body a:is(.card, .ind-card) {
  transition: border-color var(--interaction-card-duration) var(--interaction-ease), box-shadow var(--interaction-card-duration) var(--interaction-ease), transform var(--interaction-card-duration) var(--interaction-ease);
}
body :is(.nav-logo, .footer-logo, .brand-link) {
  transition: opacity var(--interaction-duration) var(--interaction-ease);
}
body summary > svg {
  transition: transform var(--interaction-card-duration) var(--interaction-ease);
}

.btn-primary, .cc-button-primary, .cc-final-actions a, .button {
  --interaction-hover-bg: #102033;
  --interaction-hover-border: #102033;
}
/* Keep primary actions visible against the matching navy section background. */
:is(.section-dark, .cta-section) .btn-primary {
  --interaction-hover-bg: var(--color-primary);
  --interaction-hover-border: var(--color-accent);
}
.btn-secondary, .btn-outline, .cc-final-actions a:last-child {
  --interaction-hover-bg: #eaf4f2;
  --interaction-hover-border: #247d72;
}
.btn-ghost {
  --interaction-hover-bg: rgba(255, 255, 255, .1);
  --interaction-hover-border: rgba(255, 255, 255, .8);
}
.v5c-action-buttons a {
  --interaction-hover-bg: #1f3a5f;
}
.v5c-actions { --interaction-focus: #fff; }
body :is(.section-dark, .cta-section, .footer, .chat-cta-inline--dark) {
  --interaction-link: #77c7be;
  --interaction-focus: #77c7be;
}

@media (hover: hover) and (pointer: fine) {
  body a[href]:not(.btn, .cc-button, .card, .ind-card, .nav-logo, .footer-logo, .brand-link, .shortcut-link):not(.cc-final-actions a, .v5c-action-buttons a):not([aria-disabled="true"]):hover {
    color: var(--interaction-link);
    text-decoration-color: currentColor;
  }
  body :is(button, .btn, .cc-button, .cc-final-actions a, .v5c-action-buttons a):not(:disabled):not([aria-disabled="true"]):hover {
    background-color: var(--interaction-hover-bg, var(--interaction-tint));
    border-color: var(--interaction-hover-border, #247d72);
  }
  body :is(.btn-primary, .cc-button-primary, .cc-final-actions a:first-child, .v5c-action-buttons a):not(:disabled):not([aria-disabled="true"]):hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(16, 32, 51, .16);
  }
  body a:is(.card, .ind-card):not([aria-disabled="true"]):hover {
    border-color: #247d72;
    box-shadow: var(--shadow-card-hover, 0 12px 30px rgba(16, 32, 51, .1));
    transform: translateY(-2px);
  }
  body :is(summary, .shortcut-link, .dropdown-link):not([aria-disabled="true"]):hover {
    background-color: var(--interaction-tint);
  }
  body :is(.nav-logo, .footer-logo, .brand-link):hover { opacity: .8; }
  body .sms-consent:has(input:enabled):hover { background-color: var(--interaction-tint); }
  body label:has(.switch-input:enabled):hover .switch-track { border-color: #247d72; box-shadow: 0 0 0 2px rgba(42, 157, 143, .16); }
}

body .sms-consent { transition: background-color var(--interaction-duration) var(--interaction-ease); }

/* Press feedback also works on touch; it never depends on hover. */
body :is(button, .btn, .cc-button, .cc-final-actions a, .v5c-action-buttons a, summary, .shortcut-link):not(:disabled):not([aria-disabled="true"]):active {
  background-color: var(--interaction-hover-bg, var(--interaction-tint));
  box-shadow: inset 0 0 0 2px rgba(16, 32, 51, .12);
  transform: none;
}
body a:is(.card, .ind-card):not([aria-disabled="true"]):active {
  transform: none;
  border-color: #247d72;
}
body a[href]:not([aria-disabled="true"]):focus-visible {
  text-decoration-color: currentColor;
}
body :is(a[href], button, summary):not(:disabled):not([aria-disabled="true"]):focus-visible {
  outline: 3px solid var(--interaction-focus);
  outline-offset: 4px;
}

/* Accessibility overrides intentionally win over scoped component motion. */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  body :is(a[href], button, summary, .dropdown-panel, .chevron, .related-arrow, .shortcut-link svg, summary > svg, .sms-consent, .switch-track),
  body .switch-track::after {
    transition: none !important;
  }
  body :is(a.btn, a.cc-button, a.card, a.ind-card, .cc-final-actions a, .v5c-action-buttons a, button):is(:hover, :active),
  body a:hover .related-arrow {
    transform: none !important;
  }
}
