﻿.contents {
    width: auto;
    overflow: visible;
    margin: 70px auto 80px;
	padding: 30px 0 0;
}
.contents section {
    overflow: visible;
    width: 100%;
    margin: 130px auto 80px;
}
.contents section.sec_lp{
    max-width: 640px;
    width: 100%;
    margin: 30px auto 0;
}
@media screen and (min-width: 768px) and (max-width: 1024px) {
.contents {
    width:95%;
}
}
@media screen and (max-width: 767px) {
    .contents section {
        width: 90%;
        margin: 0 auto;
        padding: 0;
    }
}
.product-section {
  display: flex;
    align-items: flex-start;
  gap: 40px;
  max-width: 900px;
  width: 60%;
  margin: 40px auto;
  padding: 0 20px;
}
@media screen and (max-width: 767px) {
.product-section {
  gap: 40px;
  width: 100%;
}
}
/* ===========================
   Left: Slider Area
=========================== */
.product-slider-area {
  display: flex;
  flex-direction: row;
  gap: 12px;
  flex-shrink: 0;
  width: 48%;
    position: sticky;
    top: 130px;
}

/* サムネイルスライダー */
#thumbnail-slider {
  --thumb-width: 80px;
  --thumb-height: 80px;
  --thumb-gap: 12px;
  --thumb-track-height: 300px;
}
.splide-thumbnails {
  width: 80px;
  flex-shrink: 0;
}
.splide__track--nav>.splide__list>.splide__slide.is-active {
    border: 1px solid #b77b1e;
}
.splide-thumbnails .splide__slide {
  cursor: pointer;
  border: 2px solid transparent;
  opacity: 0.6;
  transition: border-color 0.2s, opacity 0.2s;
}
.splide-thumbnails .splide__slide.is-active {
  border-color: #333;
  opacity: 1;
}
.splide-thumbnails .splide__slide img {
  width: 100%;
  object-fit: cover;
  display: block;
}
@media screen and (max-width: 767px) {
#thumbnail-slider {
  --thumb-width: 50px;
  --thumb-height: 50px;
  --thumb-gap: 6px;
  --thumb-track-height: 280px;
}
}
/* メインスライダー */
.splide-main {
  flex: 1;
}
.splide-main .splide__slide img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  display: block;
}

.splide-main .splide__arrows {
  display: none;
}

/* ===========================
   Right: Product Info
=========================== */
.product-info {
  flex: 1;
}

.product-title {
  font-size: 18px;
  font-weight: bold;
  line-height: 1.5;
  margin-bottom: 16px;
}

/* タグ */
.product-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 16px;
}

.product-tag {
  border: 1px solid #333;
  font-size: 10px;
  padding: 4px 10px;
  border-radius: 2px;
}

/* 説明文 */
.product-description {
  font-size: 13px;
  line-height: 1.8;
  margin-bottom: 36px;
  color: #1b1b1b;
}

/* 内容量・試用期間 */
.product-meta {
    font-size: 13px;
    line-height: 1.8;
    color: #746e68;
    width: fit-content;
    margin: 0 auto 36px 0;
    padding: 0 0 0 14px;
    border-left: 8px solid #f6f0ea;
}
.product-meta p{
    width:fit-content;
}
@media (max-width: 767px) {
.product-meta {
    margin: 0 auto 36px 20px;
}
}
/* 購入ボタン */
.purchase-buttons {
  display: flex;
  flex-direction: column;
  gap: 12px;
  width: 90%;
  margin: 0 auto 0 0;
}

.purchase-btn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border: 1px solid #a8602c;
  padding: 14px 18px;
  text-decoration: none;
  color: #a8602c;
  font-size: 15px;
  font-weight: bold;
  
  /* --- ホバーアニメーション用に追加・変更 --- */
  position: relative;
  overflow: hidden;
  transition: color 0.4s ease-out; /* テキストカラーのフェード設定 */
  z-index: 1; /* 疑似要素を背面に配置するための基準 */
}

/* --- 背景がスライドしてくるアニメーション（疑似要素） --- */
.purchase-btn::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 150%; 
  height: 100%;
  /* ボタンのカラー(#a8602c)に合わせたグラデーション */
  background: linear-gradient(to right, #a8602c, #8c4e22); 
  -webkit-mask-image: linear-gradient(to right, black calc(100% / 1.5), transparent 100%);
  mask-image: linear-gradient(to right, black calc(100% / 1.5), transparent 100%);
  transform: translateX(-100%); 
  transition: transform 0.5s cubic-bezier(0.23, 1, 0.32, 1);
  z-index: -1; /* テキストやアイコンより背面に配置 */
}

/* --- ホバー時の挙動 --- */
.purchase-btn:hover {
  color: #fff; /* テキストを白に変更 */
}

.purchase-btn:hover::before {
  transform: translateX(0); /* 背景をスライドイン */
}

.purchase-btn-icon {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}

@media (max-width: 767px) {
  .purchase-buttons {
    margin: 0 auto;
  }
}
/* ===========================
   Responsive: 768px以下
=========================== */
@media (max-width: 767px) {
  .product-section {
    flex-direction: column;
    gap: 15px;
  }

  .product-slider-area {
    width: 100%;
    margin: 0px auto 20px;
        position: inherit;
  }
  .splide-thumbnails {
    width: 50px;
  }

  .splide-thumbnails .splide__slide img {
    height: auto;
  }
}

/* ===========================
    商品ごと調整
=========================== */
/*-----HT--------------------*/
.layer_item.ht {
    width: 85%;
    left: 50%;
    transform: translateX(-50%);
}