:root {
  --motion-hover-duration: 260ms;
  --motion-hover-ease: cubic-bezier(0.2, 0.8, 0.2, 1);
  --motion-image-duration: 440ms;
  --motion-image-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --motion-surface-hover: rgba(238, 223, 211, 0.075);
  --motion-border-hover: rgba(238, 223, 211, 0.3);
  --motion-primary-surface: var(--editorial-cta-surface, linear-gradient(100deg, #a8745d 0%, #bd876b 48%, #a97860 100%));
}

/*
 * Shared interaction contract.
 * The hit target never moves on hover: this prevents the cursor from briefly
 * leaving the element at its edge and removes the resulting text "jump".
 */
.nav-button,
.button,
.lead-option,
.standards-tab,
.standard-card,
.standards-cta,
.catalog-card,
.catalog-pagination__button,
.contacts-call-button,
.contacts-modal__close,
.about-group__link,
.mortgage-journey__step,
.mortgage-journey__control,
.inline-cta,
.gallery-arrow,
.house-thumb,
.gallery-lightbox__close,
.gallery-lightbox__arrow,
.house-modal__close,
.comparison-toggle,
.package-table__builder-select,
.related-nav__button,
.calculator-pill-button,
.calculator-page .item-card-help,
.mortgage-questionnaire__form.is-editorial .lead-actions .lead-next {
  transition-timing-function: var(--motion-hover-ease);
}

.house-thumb.is-active,
.calculator-page .item-card-help[aria-expanded="true"] {
  transform: none;
}

body:not(.calculator-page) .button.button--solid,
body:not(.calculator-page) .lead-actions .button.button--solid,
.inline-cta,
.mortgage-questionnaire__form.is-editorial .lead-actions .lead-next {
  transition:
    border-color var(--motion-hover-duration) var(--motion-hover-ease),
    box-shadow var(--motion-hover-duration) var(--motion-hover-ease),
    color var(--motion-hover-duration) var(--motion-hover-ease),
    filter var(--motion-hover-duration) var(--motion-hover-ease);
}

body:not(.calculator-page) :where(
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),
  textarea,
  select
) {
  transform: none;
  transition:
    border-color var(--motion-hover-duration) var(--motion-hover-ease),
    background-color var(--motion-hover-duration) var(--motion-hover-ease),
    box-shadow var(--motion-hover-duration) var(--motion-hover-ease),
    color var(--motion-hover-duration) var(--motion-hover-ease);
}

@media (hover: hover) and (pointer: fine) {
  body:not(.calculator-page) :where(
    input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),
    textarea,
    select
  ):hover:not(:disabled):not([readonly]) {
    border-color: rgba(238, 223, 211, 0.28);
    background-color: rgba(238, 223, 211, 0.055);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.035);
  }

  .nav-button:hover,
  .nav-button:focus-visible,
  .button:hover,
  .button:focus-visible,
  .lead-option:hover,
  .lead-option:focus-within,
  .standards-tab:hover,
  .standards-tab:focus-visible,
  .standard-card:hover,
  .standard-card:focus-within,
  .standards-cta:hover,
  .standards-cta:focus-visible,
  .catalog-pagination__button:hover,
  .catalog-pagination__button:focus-visible,
  .contacts-call-button:hover,
  .contacts-call-button:focus-visible,
  .contacts-modal__close:hover,
  .contacts-modal__close:focus-visible,
  .about-group__link:hover,
  .about-group__link:focus-visible,
  .mortgage-journey__step:hover,
  .mortgage-journey__step:focus-within,
  .mortgage-journey__control:hover:not(:disabled),
  .mortgage-journey__control:focus-visible,
  .inline-cta:hover,
  .inline-cta:focus-visible,
  .house-thumb:hover,
  .house-thumb:focus-visible,
  .gallery-lightbox__close:hover,
  .gallery-lightbox__close:focus-visible,
  .house-modal__close:hover,
  .house-modal__close:focus-visible,
  .comparison-toggle:hover,
  .comparison-toggle:focus-visible,
  .package-table__builder-select:hover,
  .package-table__builder-select:focus-visible,
  .related-nav__button:hover,
  .related-nav__button:focus-visible,
  .calculator-pill-button:hover,
  .calculator-pill-button:focus-visible,
  .calculator-page .item-card-help:hover,
  .calculator-page .item-card-help:focus-visible,
  .mortgage-questionnaire__form.is-editorial .lead-actions .lead-next:hover,
  .mortgage-questionnaire__form.is-editorial .lead-actions .lead-next:focus-visible {
    transform: none;
  }

  .catalog-card:hover,
  .catalog-card:focus-within {
    transform: translateZ(0);
  }

  .gallery-arrow:hover,
  .gallery-arrow:focus-visible,
  .gallery-lightbox__arrow:hover,
  .gallery-lightbox__arrow:focus-visible {
    transform: translateY(-50%);
  }

  .nav-button:hover,
  .nav-button:focus-visible {
    background: rgba(238, 223, 211, 0.105);
  }

  body:not(.calculator-page) .button.button--solid:hover,
  body:not(.calculator-page) .button.button--solid:focus-visible,
  body:not(.calculator-page) .lead-actions .button.button--solid:hover,
  body:not(.calculator-page) .lead-actions .button.button--solid:focus-visible,
  .inline-cta:not(.house-presentation-card__button):hover,
  .inline-cta:not(.house-presentation-card__button):focus-visible {
    background: var(--motion-primary-surface);
    transform: none;
    filter: brightness(1.035) saturate(1.025);
    box-shadow:
      inset 0 1px 0 rgba(255, 255, 255, 0.22),
      0 0.75rem 1.8rem rgba(105, 72, 56, 0.16);
  }

  .house-presentation-card__button:hover,
  .house-presentation-card__button:focus-visible {
    border-color: rgba(238, 223, 211, 0.22);
    color: var(--color-cream);
    background: rgba(238, 223, 211, 0.085);
    filter: none;
    box-shadow:
      inset 0 1px 0 rgba(255, 255, 255, 0.045),
      0 0.55rem 1.2rem rgba(0, 0, 0, 0.08);
  }

  .inline-cta__icon {
    transition: transform var(--motion-hover-duration) var(--motion-hover-ease);
  }

  .inline-cta:hover .inline-cta__icon,
  .inline-cta:focus-visible .inline-cta__icon {
    transform: translateX(0.18rem);
  }

  .standard-card:hover,
  .standard-card:focus-within,
  .catalog-card:hover,
  .catalog-card:focus-within,
  .related-card:hover,
  .related-card:focus-within {
    border-color: var(--motion-border-hover);
    box-shadow:
      inset 0 1px 0 rgba(255, 255, 255, 0.045),
      0 1rem 2.15rem rgba(0, 0, 0, 0.2);
  }

  .related-card:hover,
  .related-card:focus-within {
    transform: none;
  }

  .standard-card__media img,
  .catalog-card__visual img,
  .house-thumb img {
    transition: transform var(--motion-image-duration) var(--motion-image-ease);
  }

  .standard-card:hover .standard-card__media img,
  .standard-card:focus-within .standard-card__media img,
  .catalog-card:hover .catalog-card__visual img,
  .catalog-card:focus-within .catalog-card__visual img,
  .house-thumb:hover img,
  .house-thumb:focus-visible img {
    transform: scale(1.015);
  }

  .lead-option:hover,
  .lead-option:focus-within,
  .standards-tab:hover,
  .standards-tab:focus-visible,
  .comparison-toggle:hover,
  .comparison-toggle:focus-visible,
  .package-table__builder-select:hover,
  .package-table__builder-select:focus-visible,
  .related-nav__button:hover,
  .related-nav__button:focus-visible,
  .gallery-arrow:hover,
  .gallery-arrow:focus-visible,
  .gallery-lightbox__close:hover,
  .gallery-lightbox__close:focus-visible,
  .gallery-lightbox__arrow:hover,
  .gallery-lightbox__arrow:focus-visible,
  .house-modal__close:hover,
  .house-modal__close:focus-visible {
    border-color: var(--motion-border-hover);
    background-color: var(--motion-surface-hover);
  }
}

@media (hover: none), (pointer: coarse) {
  .nav-button:hover,
  .button:hover,
  .lead-option:hover,
  .standards-tab:hover,
  .standard-card:hover,
  .standards-cta:hover,
  .catalog-pagination__button:hover,
  .contacts-call-button:hover,
  .contacts-modal__close:hover,
  .about-group__link:hover,
  .mortgage-journey__step:hover,
  .mortgage-journey__control:hover,
  .inline-cta:hover,
  .house-thumb:hover,
  .gallery-lightbox__close:hover,
  .house-modal__close:hover,
  .comparison-toggle:hover,
  .package-table__builder-select:hover,
  .related-nav__button:hover,
  .related-card:hover,
  .calculator-pill-button:hover,
  .calculator-page .item-card-help:hover,
  .mortgage-questionnaire__form.is-editorial .lead-actions .lead-next:hover {
    transform: none;
  }

  .catalog-card:hover {
    transform: translateZ(0);
  }

  .gallery-arrow:hover,
  .gallery-lightbox__arrow:hover {
    transform: translateY(-50%);
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
}
