/*
 * Hover Effects
 * Global, lightweight interaction polish for buttons, cards, images and links.
 * Loaded site-wide (registered in inc/register-styles.php, enqueued in functions.php).
 *
 * Only additive properties are used (transform, box-shadow, opacity, filter,
 * background, color) so existing layout/colors are never broken.
 *
 * Smoothness: a single shared easing curve, GPU-accelerated translate3d/scale3d,
 * and backface-visibility:hidden to avoid sub-pixel flicker on zoom.
 */

:root {
  /* gentle "soft landing" easing shared by every hover transition */
  --hover-ease: cubic-bezier(0.22, 0.61, 0.36, 1);
}

/* Pointer-only: don't trigger hover transforms on touch devices */
@media (hover: hover) {

  /* ---------- Buttons ---------- */
  .btn {
    transition:
      transform 0.45s var(--hover-ease),
      box-shadow 0.45s var(--hover-ease),
      background-color 0.45s var(--hover-ease),
      color 0.45s var(--hover-ease),
      filter 0.45s var(--hover-ease);
    backface-visibility: hidden;
    transform: translate3d(0, 0, 0);
  }

  .btn:hover {
    transform: translate3d(0, calc(-3 * var(--vw)), 0);
    box-shadow: 0 calc(12 * var(--vw)) calc(26 * var(--vw)) rgba(40, 30, 15, 0.18);
    filter: brightness(1.05);
  }

  .btn:active {
    transform: translate3d(0, calc(-1 * var(--vw)), 0);
    transition-duration: 0.15s;
  }

  /* Outline / secondary buttons fill softly on hover */
  .btn.outline:hover,
  .btn.secondary:hover {
    background-color: rgba(255, 255, 255, 0.14);
    filter: none;
  }

  /* ---------- Cards (lift + deepen shadow) ---------- */
  .card,
  .tile,
  .room,
  .award,
  /* .review, */
  .approach-card,
  .setting-card,
  .team-item,
  .point,
  .blog-card {
    transition:
      transform 0.55s var(--hover-ease),
      box-shadow 0.55s var(--hover-ease);
    backface-visibility: hidden;
    transform: translate3d(0, 0, 0);
  }

  .card:hover,
  .tile:hover,
  .room:hover,
  .award:hover,
  /* .review:hover, */
  .approach-card:hover,
  .setting-card:hover,
  .blog-card:hover {
    transform: translate3d(0, calc(-6 * var(--vw)), 0);
    box-shadow: 0 calc(22 * var(--vw)) calc(50 * var(--vw)) rgba(40, 30, 15, 0.16);
  }

  /* Small pill items get a gentler lift */
  .point:hover,
  .team-item:hover {
    transform: translate3d(0, calc(-3 * var(--vw)), 0);
  }

  /* ---------- Image zoom inside CARDS only ----------
     Standalone images (.image-card, .image-lux) are intentionally excluded. */
  .setting-card,
  .room,
  .blog-card {
    overflow: hidden;
  }

  .setting-card img,
  .room .room-img,
  .room img,
  .blog-card img {
    transition: transform 0.8s var(--hover-ease);
    backface-visibility: hidden;
    transform: scale3d(1, 1, 1);
  }

  .setting-card:hover img,
  .room:hover .room-img,
  .room:hover img,
  .blog-card:hover img {
    transform: scale3d(1.06, 1.06, 1);
  }

  /* ---------- Links ---------- */
  a {
    transition: color 0.35s var(--hover-ease), opacity 0.35s var(--hover-ease);
  }

  /* Footer / nav text links fade slightly */
  footer a:hover,
  .nav a:hover,
  .footer-grid a:hover {
    opacity: 0.7;
  }

  /* Underline-style links inside content */
  .breadcrumbs a {
    transition: color 0.35s var(--hover-ease);
  }

  .breadcrumbs a:hover {
    color: #a98f58;
  }
}

/* Respect users who prefer reduced motion */
@media (prefers-reduced-motion: reduce) {
  .btn,
  .card,
  .tile,
  .room,
  .award,
  /* .review, */
  .approach-card,
  .setting-card,
  .team-item,
  .point,
  .blog-card,
  .setting-card img,
  .room .room-img,
  .blog-card img,
  a {
    transition: none !important;
  }
}

/* Touch / no-hover: keep things crisp, no lingering transform state */
@media (hover: none) {
  .btn:active {
    transform: scale3d(0.98, 0.98, 1);
  }
}
