/* 動畫變數（可調整） */
:root {
  --card-dur: 700ms;
  --card-ease: cubic-bezier(0.19, 1, 0.22, 1);
}

/* 基底：讓外框成為定位區域 */
.card-hover {
  position: relative;
  overflow: hidden;
  padding: 0;
  /* 視需求；若想保留 style-2 原有 padding 可移除 */
  background: #000;
  /* 當圖片不載入時的底色 */
  color: #fff;
}

/* 圖片覆蓋整張卡 */
.card-hover .overlay-container {
  position: absolute;
  inset: 0;
  /* top/right/bottom/left:0 */
}

.card-hover .overlay-container img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform calc(var(--card-dur) * 1.5) var(--card-ease);
  transform-origin: center center;
}

/* 深色漸層 overlay（方便文字閱讀） */
.card-hover::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image: linear-gradient(to bottom,
      rgba(0, 0, 0, 0) 0%,
      rgba(0, 0, 0, .75) 100%);
  transition: transform calc(var(--card-dur) * 2) var(--card-ease);
  transform: translateY(0%);
  /* 初始只覆蓋下半 */
}

/* 內容面板 */
.card-hover .body {
  position: relative;
  /* 改 absolute 也可以；用 relative 依賴內部 transform 區間 */
  z-index: 200;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 1rem .75rem 1.5rem;
  width: 100%;
  transition: transform var(--card-dur) var(--card-ease);
  transform: translateY(calc(13.5rem));
  /* 只露標題區（高度要配合實際內容） */
}

/* 內容元素之間距 */
.card-hover .body>*+* {
  margin-top: .75rem;
}

/* 標題常駐顯示 */
.card-hover .body h4 {
  font-weight: 700;
  margin: 0;
}

/* 其餘內容初始隱藏（往下 + 透明） */
@media (hover:hover) {
  .card-hover .body>*:not(h4) {
    opacity: 0;
    transform: translateY(1rem);
    transition:
      transform var(--card-dur) var(--card-ease),
      opacity var(--card-dur) var(--card-ease);
  }
}

/* 滑入（hover）或鍵盤 focus-within（無障礙） */
@media (hover:hover) {

  .card-hover:hover .overlay-container img,
  .card-hover:focus-within .overlay-container img {
    transform: translateY(-4%) scale(1.05);
  }

  .card-hover:hover::after,
  .card-hover:focus-within::after {
    transform: translateY(0);
    background-image: linear-gradient(to bottom,
        rgba(0, 0, 0, 0.5) 0%,
        rgba(0, 0, 0, .75) 100%);
  }

  .card-hover:hover .body,
  .card-hover:focus-within .body {
    transform: translateY(50%);
  }

  .card-hover:hover .body>*:not(h4),
  .card-hover:focus-within .body>*:not(h4) {
    opacity: 1;
    transform: translateY(0);
    transition-delay: calc(var(--card-dur) / 8);
  }
}

/* 行動裝置（沒有 hover）：直接展開 */
@media (hover:none) {
  .card-hover {
    color: #fff;
  }

  .card-hover .overlay-container img {
    transform: none !important;
  }

  .card-hover::after {
    transform: translateY(0);
  }

  .card-hover .body {
    transform: none;
  }

  .card-hover .body>* {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

.card-hover .body a.btn {
  position: relative;
  z-index: 2;
  /* 高於漸層 */
}

.card-hover.style-2 {
  /* background: transparent; */
  border: none;
  box-shadow: none;
}

@media (min-width: 600px) {
  .card-hover {
    height: 350px;
  }
}