/* Shared hover and touch feedback across the assessment and booking pages. */
:root {
  --wyatt-hover-ring: #70b99e;
  --wyatt-hover-shadow: 0 16px 36px #164d3520, 0 0 0 1px #84c8ab40;
  --wyatt-hover-ease: 220ms cubic-bezier(.2, .7, .25, 1);
}

/* Keep text and controls opaque; only the panel reveals the autumn video. */
.hero .form-card {
  background: linear-gradient(145deg, rgba(255, 255, 251, .86), rgba(244, 253, 247, .80));
  -webkit-backdrop-filter: blur(5px) saturate(1.15);
  backdrop-filter: blur(5px) saturate(1.15);
  border: 1px solid #ffffffb3;
  box-shadow: 0 24px 70px #001c2945, inset 0 1px 0 #ffffffc7;
  transition: border-color var(--wyatt-hover-ease), box-shadow var(--wyatt-hover-ease);
}
.hero .form-card :is(.fsub, .draft-explainer, .form-contact) { color: #365246; }
.hero .form-card:focus-within {
  border-color: #c9f7df;
  box-shadow: 0 24px 70px #001c2945, 0 0 0 3px #b1edd938, inset 0 1px 0 #fff;
}

:is(.vitem, .stake, .visit-step, .hoppy-ownership, .monthly-offer, .finance-path,
    .veteran-reward, .cash-reward, .promise-tile, .hoppy-profile, .location-rating,
    .hoppy-facts span, .updates-footer-perks li, .riskitem, .hoppy-no-pressure > div,
    .guide, .hoppy-promise, .updates-footer-card, .hero-review, .hoppy-review,
    .booking-selector, .booking-summary, .booking-success, .booking-missing, .journey-card,
    .booking-success-time, .wyatt-text-number, .faq details, .review-location-dropdown,
    .assessment-design-details, .optional-details) {
  transition: transform var(--wyatt-hover-ease), border-color var(--wyatt-hover-ease),
    box-shadow var(--wyatt-hover-ease), background-color var(--wyatt-hover-ease);
}
body :is(a, button, summary, .choice-card, .booking-mode label, .booking-windows label,
    .updates-channel, input, select, textarea) {
  transition: color var(--wyatt-hover-ease), background-color var(--wyatt-hover-ease),
    border-color var(--wyatt-hover-ease), box-shadow var(--wyatt-hover-ease),
    transform var(--wyatt-hover-ease), text-shadow var(--wyatt-hover-ease),
    text-decoration-color var(--wyatt-hover-ease);
}
:is(h1, h2, h3, p, blockquote, legend, .eyebrow, .kick, .service-visual,
    .promise-number, .monthly-price, .path-big, .veteran-discount) {
  transition: text-shadow var(--wyatt-hover-ease), transform var(--wyatt-hover-ease),
    filter var(--wyatt-hover-ease);
}
:is(.hoppy-endorsement img, .hoppy-footer-logo, .promise-logo, .ownership-brand img,
    .booking-logo, .wyatt-hero-personal img, .booking-advisor img, .wyatt-text-person img,
    .guide-img img, .promise-roo, .ck, .ic, .visit-number, .visit-step-top svg,
    .badge-free, .review-stars, .ownership-stars, .hoppy-review .stars) {
  transition: transform var(--wyatt-hover-ease), filter var(--wyatt-hover-ease),
    box-shadow var(--wyatt-hover-ease);
}
.guide-img { overflow: hidden; }

/* Brief touch highlights clear on scroll, cancellation and release. */
body .is-touch-active {
  border-color: var(--wyatt-hover-ring);
  box-shadow: 0 0 0 3px #70b99e40, 0 8px 22px #164d3524;
}
body :is(.btn, button, .booking-primary, .text-wyatt-button, .choice-card,
    .to-top, .booking-mode label, .booking-windows label, .updates-channel).is-touch-active {
  transform: scale(.98);
}
body :is(.monthly-offer, .finance-path).is-touch-active :is(.monthly-price, .path-big) {
  text-shadow: 0 3px 22px #7ebc7070;
}
.promise-tile.is-touch-active .promise-number { text-shadow: 0 3px 0 #062f39, 0 0 30px #69f5e0ad; }
.review-window { touch-action: pan-y pinch-zoom; }
.review-swipe-hint { display:none; }
body :is(a, button, summary, .choice-card, .booking-mode label, .booking-windows label) {
  -webkit-tap-highlight-color: #70b99e38;
}
@media (hover: none), (pointer: coarse) {
  body :is(a, button, summary, .choice-card, .booking-mode label, .booking-windows label) {
    touch-action: manipulation;
  }
  body :is(button, .btn, .booking-primary, .text-wyatt-button):not(:disabled):active {
    box-shadow: 0 0 0 3px #70b99e40;
  }
}
@media (max-width: 900px), (pointer: coarse) {
  .review-swipe-hint { display:block; font-size:13px; color:#365e51; margin:0 0 12px; }
  body :is(.aw-privacy-close, .wyatt-text-close) { min-width:44px; min-height:44px; }
  body :is(input, select, textarea):not([type="radio"]):not([type="checkbox"]):not([type="hidden"]) {
    font-size:16px;
  }
}

/* Keyboard users receive the same emphasis without moving a field as they type. */
:is(.hoppy-profile, .location-rating, .faq details, .review-location-dropdown,
    .assessment-design-details, .journey-card, .booking-selector):focus-within {
  border-color: var(--wyatt-hover-ring);
  box-shadow: 0 0 0 3px #72bca024;
}
:is(.booking-mode label, .booking-windows label, .updates-channel):has(input:focus-visible) {
  outline: 3px solid #087775;
  outline-offset: 3px;
}

@media (hover: hover) and (pointer: fine) {
  :is(.vitem, .stake, .visit-step, .hoppy-ownership, .monthly-offer, .finance-path,
      .veteran-reward, .cash-reward, .hoppy-profile, .location-rating):hover {
    transform: translateY(-4px);
    border-color: var(--wyatt-hover-ring);
    box-shadow: var(--wyatt-hover-shadow);
  }
  .stake:hover { border-top-color: var(--orange); }
  .stake:nth-child(2):hover { border-top-color: #c9432b; }
  .stake:nth-child(3):hover { border-top-color: var(--green-l); }
  .stake:nth-child(4):hover { border-top-color: var(--gold); }
  .vitem:hover { background-color: #ffffff12; box-shadow: 0 10px 30px #001e2926, 0 0 0 1px #b3f6d535; }

  /* Larger panels stay anchored, including the form and moving review track. */
  :is(.guide, .updates-footer-card, .booking-selector, .booking-summary,
      .booking-success, .booking-missing, .journey-card):hover {
    border-color: var(--wyatt-hover-ring);
    box-shadow: var(--wyatt-hover-shadow);
  }
  .hero .form-card:hover {
    border-color: #e9fff4;
    box-shadow: 0 24px 70px #001c2945, 0 0 0 3px #b1edd938, inset 0 1px 0 #fff;
  }
  .hero-review:hover { box-shadow: inset 0 0 0 1px #ffcb7d80, 0 8px 24px #001d2426; }
  .hoppy-review:hover { border-color: var(--wyatt-hover-ring); box-shadow: inset 0 0 0 1px #86c7ab75; }
  :is(.faq details, .review-location-dropdown, .assessment-design-details,
      .optional-details, .booking-success-time, .wyatt-text-number):hover {
    border-color: var(--wyatt-hover-ring);
    box-shadow: inset 0 0 0 1px #86c7ab70;
  }

  /* The original 10/10/10 artwork remains the centerpiece. */
  .hoppy-promise:hover { box-shadow: 0 20px 52px #063a3945, 0 0 0 1px #64d8be70; }
  .promise-tile:hover {
    transform: translateY(-5px);
    border-color: #fff;
    box-shadow: 0 16px 28px #001b3240, inset 0 0 0 1px #ffffffb3;
  }
  .promise-graphic:hover .promise-number { text-shadow: 0 3px 0 #062f39, 0 0 38px #69f5e0ad; }
  .promise-graphic:hover .promise-roo { transform: translateY(-4px) rotate(-3deg); }
  .monthly-offer:hover .monthly-price,
  .finance-path:hover .path-big { text-shadow: 0 3px 22px #7ebc7070; }
  .veteran-reward:hover .veteran-discount { transform: rotate(-3deg) scale(1.025); }

  body :is(a, button):not(:disabled):not([aria-disabled="true"]):hover {
    text-decoration-color: #e6953f;
  }
  body :is(.btn, .booking-primary, .text-wyatt-button, .updates-footer-link,
      .updates-submit, .wyatt-text-actions a, .wyatt-text-actions button,
      .wyatt-text-copy-message, .review-controls button, .booking-month-controls button,
      .booking-day, .booking-time, .to-top):not(:disabled):not([aria-disabled="true"]):hover {
    transform: translateY(-2px);
    box-shadow: 0 9px 22px #0a553b30, 0 0 0 2px #88c6ac38;
  }
  body :is(.btn-primary, .booking-primary):not(:disabled):hover {
    box-shadow: 0 12px 28px #d2682045, 0 0 0 2px #ffd0a459;
  }
  body :is(a, button):not(:disabled):not([aria-disabled="true"]):active { transform: translateY(1px); }
  :is(.assessment-shortcuts a, .form-privacy a, .form-contact a,
      .hero-review a, .booking-contact-summary a, .wyatt-text-alternative a):hover {
    text-shadow: 0 0 16px #85d4b580;
  }
  body summary:hover { text-shadow: 0 1px 18px #4b9c7366; }
  .choice-card:not(:has(input:checked)):hover { border-color: #4b9f88 !important; box-shadow: 0 3px 12px #1e745624; }
  :is(.booking-mode label, .booking-windows label, .updates-channel):hover {
    border-color: #4b9f88;
    box-shadow: 0 3px 12px #1e745624;
  }
  body :is(input, select, textarea):not([type="radio"]):not([type="checkbox"]):not(:disabled):not([readonly]):not([aria-invalid="true"]):hover {
    border-color: #398e76;
    box-shadow: 0 0 0 3px #5ca78a20;
  }

  :is(.hoppy-facts span, .updates-footer-perks li, .riskitem, .hoppy-no-pressure > div):hover {
    transform: translateY(-2px);
  }
  :is(.hoppy-facts span, .badge-free):hover { box-shadow: 0 4px 16px #287d4426; }
  :is(.vitem, .stake, .riskitem):hover :is(.ck, .ic),
  .visit-step:hover :is(.visit-number, .visit-step-top svg) { transform: scale(1.09) rotate(-4deg); }
  :is(.hero-review, .hoppy-ownership, .hoppy-review):hover :is(.review-stars, .ownership-stars, .stars) {
    filter: drop-shadow(0 0 6px #f1b65b66);
  }
  :is(.hoppy-brand-lockup, .wyatt-hero-personal, .booking-advisor, .wyatt-text-person):hover img,
  :is(.hoppy-footer-logo, .promise-logo, .ownership-brand img, .booking-logo):hover {
    transform: scale(1.035);
    filter: drop-shadow(0 3px 8px #65ae753d);
  }
  .guide-img:hover img { transform: scale(1.035); }
  :is(h1, h2, h3, p, blockquote, legend, .eyebrow, .kick, .service-visual):hover {
    text-shadow: 0 2px 20px #72ac8845;
  }
  :is(.hero, .hoppy-promise, .final, .updates-footer-card) :is(h1, h2, h3, p, blockquote):hover {
    text-shadow: 0 2px 22px #d5f1b44d;
  }
  .hero .form-card :is(h2, p):hover { text-shadow: 0 2px 18px #63a78138; }
}

@media (max-width: 640px) {
  .hero .form-card {
    background: linear-gradient(145deg, rgba(255, 255, 251, .89), rgba(244, 253, 247, .84));
  }
}

/* Color and border feedback remain when a visitor asks for less movement. */
@media (prefers-reduced-motion: reduce) {
  body .is-touch-active { transform:none!important; transition:none!important; }
  body :is(a, button, .vitem, .stake, .visit-step, .hoppy-ownership, .monthly-offer,
      .finance-path, .veteran-reward, .cash-reward, .hoppy-profile, .location-rating,
      .promise-tile, .hoppy-facts span, .updates-footer-perks li, .riskitem,
      .hoppy-no-pressure > div, .veteran-discount, .promise-roo, .ck, .ic,
      .visit-number, .visit-step-top svg, .hoppy-brand-lockup img,
      .wyatt-hero-personal img, .booking-advisor img, .wyatt-text-person img,
      .hoppy-footer-logo, .promise-logo, .ownership-brand img, .booking-logo, .guide-img img) {
    transform: none !important;
    transition: none !important;
  }
}
@media (prefers-reduced-transparency: reduce) {
  .hero .form-card { background: #fffef9; -webkit-backdrop-filter: none; backdrop-filter: none; }
}
