/* =================================================
   Carousel / Slick 基础样式
================================================= */
.th-carousel {
  position: relative;
  display: block;
  user-select: none;
  touch-action: pan-y;
}

.th-carousel .slick-list {
  overflow: hidden;
}

.th-carousel .slick-track {
  display: flex;
}

/* 默认先隐藏 slide，等初始化再显示，防止闪烁 */
.th-carousel .slick-slide {
  display: none;
}

.th-carousel.slick-initialized .slick-slide {
  display: block;
}

.th-carousel .slick-slide:focus {
  outline: none;
}

.th-carousel .slick-dots {
  list-style: none;
  margin: 10px 0 0;
  padding: 0;
  display: flex;
  justify-content: center;
  gap: 6px;
}

.th-carousel .slick-dots li {
  width: 8px;
  height: 8px;
}

.th-carousel .slick-dots button {
  width: 8px;
  height: 8px;
  padding: 0;
  border-radius: 999px;
  border: 0;
  background: rgba(0,0,0,0.25);
  font-size: 0;
}

.th-carousel .slick-dots .slick-active button {
  background: #ff4f00;
}

/* =================================================
   Category / Carousel Card（通用卡片）
================================================= */
.category-grid {
  height: 100%;
}

.category-grid_img2 {
  position: relative;
  width: 100%;
  overflow: hidden;
  border-radius: 16px;
}

.category-grid_img2 img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
  transition: transform .25s ease;
}

.category-grid_img2:hover img {
  transform: scale(1.04);
}

.carousel-gallery .category-grid {
  height: auto;
}

.carousel-gallery .category-grid_img2 {
  border-radius: 0;
  overflow: hidden;
}

.carousel-gallery .category-grid_img2 img {
  box-shadow: none;
  transform: none;
}

.carousel-gallery .category-grid_img2:hover img {
  transform: none;
}

/* =================================================
   Gallery · 全站统一 Grid 布局
================================================= */
.gallery__track {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  column-gap: 6px;   /* 横向间距 */
  row-gap: 6px;      /* 纵向间距 */
  max-width: 1200px;
  margin: 0 auto;
  padding-left: 5px;   /* 左右留一点呼吸感 */
  padding-right: 5px;
}

/* 平板及以下：2 列 */
@media (max-width: 768px) {
  .gallery__track {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 6px;
    row-gap: 6px;
  }
}

/* 手机端仍然 2 列 */
@media (max-width: 480px) {
  .gallery__track {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.gallery__item {
  margin: 0;
  padding: 0;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

/* 图片基础样式（默认 3:4 比例） */
.gallery__image {
  display: block;
  width: 100%;
  height: 100%;
  aspect-ratio: 3 / 4;
  object-fit: cover;

  border-radius: 14px;
  box-shadow: 0 6px 18px rgba(15,23,42,.10);
  transition:
    transform .18s ease-out,
    box-shadow .18s ease-out;
}

/* 触摸设备禁用 hover 放大 */
@media (hover: none) {
  .gallery__item:hover .gallery__image {
    transform: none;
    box-shadow: 0 6px 18px rgba(15,23,42,.10);
  }
}

/* =================================================
   不同端的图片比例微调
================================================= */

/* ✅ PC 宽屏：稍微“矮”一点 */
@media (min-width: 1200px) {
  .gallery__image {
    aspect-ratio: 4 / 5;
  }
}

/* ✅ 平板 / 手机：图片更“长”，观感更好 */
@media (max-width: 768px) {
  .gallery__image {
    aspect-ratio: 2 / 3;
    border-radius: 12px;
  }
}

/* =========================================================
 * HOME 顶部大图库：只做一个轻微的上边距
========================================================= */
.home-page #photos-home .gallery__track {
  margin-top: 10px;
}

/* 轮播卡片左右间距（padding + 负 margin 抵消） */
.carousel-gallery .th-carousel .slick-slide {
  padding: 0 6px;
}

.gallery__image {
  display: block;
  width: 100%;
  height: 100%;
  aspect-ratio: 3 / 4;
  object-fit: cover;

  border-radius: 14px;
  box-shadow: 0 6px 18px rgba(15,23,42,.10);

  transition: box-shadow .18s ease, filter .18s ease;
}

/* PC hover：只做轻微提亮，不 scale */
@media (hover:hover){
  .gallery__item:hover .gallery__image{
    box-shadow: 0 14px 34px rgba(15,23,42,.12);
    filter: brightness(1.03);
  }
}

@media (hover:none){
  .gallery__image{
    transition: none;
  }
}
