/* =====================================
   フローティングリンク（固定）
===================================== */
.floating-link {
  position: fixed;
  bottom: 24px;
  right: 24px;
  background-color: rgba(0, 0, 0, 0.6);
  color: white;
  padding: 8px 16px;
  font-size: 0.75rem;
  border-radius: 20px;
  text-decoration: none;
  z-index: 1000;
  transition: all 0.3s ease;
  opacity: 0.6;
}

.floating-link:hover {
  opacity: 1;
  background-color: #000;
  transform: scale(1.05);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}

@media (max-width: 500px) {
  /* ... (中略) ... */
  .floating-link {
    font-size: 0.65rem; /* スマホでは少し文字を小さく */
    padding: 6px 12px;  /* 余白も小さく */
    bottom: 16px;       /* 右下への固定位置を少し内側に */
    right: 16px;        /* 右下への固定位置を少し内側に */
  }
  /* ... (後略) ... */
}

/* ===============================
   基本画像スタイル
=============================== */
.main-img {
  width: 100%;
  max-width: 100%;
  height: auto;
  display: block;
  margin: 0 auto;
}
/* ===============================
   文字に色をつける蛍光ペン
=============================== */
.highlight {
  position: relative;
  background-image: linear-gradient(120deg, #fff8bb 0%, #fff8bb 100%);
  background-repeat: no-repeat;
  background-size: 0% 100%;
  transition: background-size 1s ease;
}

.highlight.active {
  background-size: 100% 100%;
}

/* ===============================
   メインビジュアル（トップ画像と重ねる要素）
=============================== */
.example { /* 親div */
  position: relative;
}

.example p { /* 中央配置テキスト */
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  -ms-transform: translate(-50%,-50%);
  -webkit-transform: translate(-50%,-50%);
  margin: 0;
  padding: 0;
  /* 文字装飾は別途 */
}

.logo-img { /* 中央に重ねるロゴ */
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 700px;  /* PCロゴサイズ */
  height: auto;
  pointer-events: none; /* クリック操作を透過 */
}

@media (max-width: 600px) {
  .logo-img {
    width: 400px; /* スマホ用ロゴサイズ */
  }
}

/* ===============================
   キャプション（雑誌風）
=============================== */
.product-caption {
  max-width: 400px;
  margin: 20px auto;
  padding: 0;                 /* 余白なしでスッキリ */
  text-align: justify;        /* 両端揃えで雑誌風 */
  font-family: 'Yu Mincho', 'Hiragino Mincho ProN', serif;
  font-size: 0.9rem;
  line-height: 1.9;
  letter-spacing: 0.05em;
  color: #333;
}

@media (max-width: 600px) {
  /* ... (その他のスマホ用スタイルは省略) ... */
  
  /* キャプションの余白調整 */
  .product-caption {
    /* 上下のpaddingは0のまま、左右に16pxの余白を追加 */
    padding: 0 16px; 
    
    /* max-widthを上書きすることで、親要素の幅いっぱいに広がるようにする */
    max-width: 100%; 
    
    /* フォントサイズも少し小さくするとバランスが良くなります（任意） */
    font-size: 0.85rem;
  }
}



/* ===============================
   全体基本フォント
=============================== */
body {
  font-family: 'Hiragino Mincho ProN', 'serif'; /* 上品な明朝体系 */
  font-size: 15px; /* ベースサイズ */
  line-height: 1.8;
  color: #333;
}

/* ===============================
   LP冒頭（イントロメッセージ）
=============================== */
.intro-message {
  text-align: center;
  padding: 140px 16px;
  max-width: 800px;
  margin: 0 auto;
}

.intro-message p {
  word-break: keep-all;
  white-space: normal;
  font-family: inherit;
  font-size: 15px;
  line-height: 1.8;
  color: #333;
}

@media (max-width: 600px) {
  .intro-message p {
    font-size: 13px;
    line-height: 1.6;
  }
}

/* ===============================
   スライダー
=============================== */
.slider-container {
  position: relative;
  max-width: 600px;
  margin: 0 auto;
  overflow: hidden;
  margin-top: 20px;
  touch-action: pan-y;
  overscroll-behavior: contain;
}

.slider {
  display: flex;
  transition: transform 0.5s ease-in-out;
  width: 100%; /* スライド枚数に応じて調整 */
}

.slider img {
  width: 100%;
  height: auto;
  display: block;
}

/* ===============================
   メインコンテンツ
=============================== */
.main-image-wrapper {
  position: relative;
  width: 100%;
  max-width: 600px; /* PCで固定感 */
  margin: 0 auto;
}

.main-image {
  width: 100%;
  height: auto;
  display: block;
}

.main-description {
  text-align: center;
  padding: 40px 16px;
  max-width: 800px;
  margin: 0 auto;
}

.main-description p {
  font-size: 15px;
  line-height: 1.8;
  word-break: keep-all;
  white-space: normal;
}

@media (max-width: 600px) {
  .main-label {
    font-size: 7rem;
    top: -100px;
    left: -12px;
  }

  .main-image {
    max-width: 100%; /* スマホは全幅 */
  }
}

/* ===============================
   サブスライド（メイン下）
=============================== */
.sub-slide {
  width: 100%;
  height: auto;
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0;
  transition: opacity 1s ease;
  z-index: 0;
}

.sub-slider {
  position: relative;
  width: 100%;
  max-width: 400px;
  margin: 30px auto 0;
  height: auto; /* ← 効かない可能性あり */
  aspect-ratio: 3 / 4; /* 高さ比率確保 */
}

.sub-slide.active {
  opacity: 1;
  z-index: 1;
}

.point-label {
  position: absolute;
  top: -30px;      
  left: 0px;
  font-family: 'Dancing Script', cursive;
  font-size: 2rem;
  color: rgb(55, 55, 55);
  transform: rotate(-15deg);
  pointer-events: none;
  z-index: 20;

  text-shadow: 
    1px 1px 0 #fff,
   -1px 1px 0 #fff,
    1px -1px 0 #fff,
   -1px -1px 0 #fff,
    0  2px 0 #fff,
    2px  0 0 #fff,
   -2px  0 0 #fff,
    0 -2px 0 #fff;
}

/* 📱 スマホ用に調整 */
@media (max-width: 600px) {
  .point-label {
    position: relative;   /* ←絶対配置を解除して通常の流れに */
    top: 0;
    left: 0;
    display: block;
    margin-bottom: 8px;   /* リストと余白を取る */
    transform: none;      /* 回転をやめたいなら外す（残してもOK） */
    text-align: left;     /* or center にして好みで */
  }
}

/* ===============================
   商品グリッド
=============================== */
.product-box {
  max-width: 800px;
  margin: 60px auto;
  padding: 20px;
  text-align: center;
}

.product-title {
  font-size: 1.5rem;
  margin-bottom: 20px;
  letter-spacing: 1px;
}

.product-image {
  width: 100%;
  max-width: 600px;
  height: auto;
  margin-bottom: 20px;
}

.product-description {
  font-size: 1rem;
  line-height: 1.8;
  color: #444;
  margin-bottom: 20px;
  padding: 0 16px;
}

.product-links {
  display: flex;
  flex-direction: row;
  justify-content: center;
  gap: 16px;
  flex-wrap: wrap;
  margin-top: 20px;
}

.buy-button {
  display: inline-block;
  padding: 8px 16px;
  font-size: 0.9rem;
  border: 1.5px solid #000;
  text-decoration: none;
  color: #000;
  transition: all 0.3s ease;
  min-width: 140px;
  text-align: center;
}

.buy-button:hover {
  background-color: #000;
  color: #fff;
}

.product-sub-images {
  max-width: 600px;
  width: 100%;
  display: flex;
  gap: 10px;
  justify-content: center;
  margin-top: 20px;
  flex-wrap: wrap;
  margin: 0 auto; /* ★ 上とmargin指定がダブり */
}

.product-sub-images img {
  width: 48%;
  height: auto;
  max-width: 100%;
  display: block;
  object-fit: cover;
  border-radius: 4px;
}

@media (max-width: 600px) {
  .product-sub-images {
    flex-direction: column;
    align-items: center;
  }

  .product-sub-images img {
    width: 100%;
  }
}

/* ===============================
   固定リンクボタン
=============================== */
.floating-link {
  position: fixed;
  bottom: 20px;
  right: 20px;
  background-color: #000;
  color: #fff;
  padding: 10px 14px;
  font-size: 0.85rem;
  text-decoration: none;
  border-radius: 4px;
  opacity: 0.6;
  transition: all 0.3s ease;
  z-index: 999;
}

.floating-link:hover {
  opacity: 1;
  background-color: #111;
}

/* ===============================
   サムネイル一覧
=============================== */
.thumbnail-grid {
  display: grid;
  
  /* ★修正1: 列の定義を固定の3列に変更します★ */
  /* auto-fitではなく、3列で固定します。 */
  grid-template-columns: repeat(3, minmax(120px, 1fr)); 
  
  /* ★修正2: アイテムが少ない場合、残りのアイテムを中央に配置する★ */
  /* これが、1つになってもデカくならず、3つ並びの中央に収まるようにする鍵です。 */
  justify-content: center; /* グリッドトラック全体を中央寄せ（既存） */
  justify-items: center;   /* ★追記★: 各セル内のアイテムを中央寄せ */

  gap: 20px;
  max-width: 500px;
  margin: 60px auto;
  padding: 0 16px;
}

.thumbnail-item {
  background-color: #fff;
  text-decoration: none;
  color: #000;
  border-radius: 4px;
  overflow: hidden;
  box-shadow: none;
  transition: box-shadow 0.3s ease;
  display: block;
  padding: 10px;
}

.thumbnail-item:hover {
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.thumbnail-item img {
  width: 100%;
  height: auto;
  display: block;
}

.thumb-info {
  padding: 12px;
  text-align: center;
}

.thumb-name {
  /* フォントサイズ（希望のサイズに変更） */
  font-size: 0.85rem; 
  
  /* ★行の高さを詰めて、改行時のスペースを減らす★ */
  line-height: 1.2; 
  
  /* ★上下のマージンをリセットし、間隔を制御★ */
  margin: 0; 
  
  /* 元々の設定で必要だった場合は、下マージンだけを設定 */
  margin-bottom: 4px; 
}

.thumb-price {
  font-size: 0.85rem;
  color: #555;
}

@media (max-width: 600px) {
  .thumbnail-grid {
    grid-template-columns: repeat(3, 1fr); 
    
    /* ★修正1: 左右のpaddingとmarginを削除し、画面幅いっぱいに広げる★ */
    padding-left: 0;
    padding-right: 0;
    margin-left: 0;
    margin-right: 0;
  }
  
  /* ★修正2: 各アイテムの内側の余白を削除し、画像を最大化★ */
  .thumbnail-item {
    padding: 0; /* padding: 10px; を上書きし、画像を枠いっぱいに */
    border-radius: 0;
    box-shadow: none;
  }

  /* ★【ここから追記】サムネイル内のテキストサイズをさらに縮小します★ */
  
  .thumbnail-grid .thumb-name {
    /* 現在 0.95rem から 0.85rem に調整しましたが、さらに小さくします */
    font-size: 0.75rem; /* 例: 非常に小さくして3列に収まりやすく */
    line-height: 1.1;   /* 行間も詰めて改行時の高さを減らします */
  }

  .thumbnail-grid .thumb-price {
    font-size: 0.7rem; /* 価格も小さくします */
    line-height: 1.1;
  }
}

.thumbnail-heading {
  text-align: center;
  font-size: 1.4rem;
  font-family: 'Yu Mincho', 'Hiragino Mincho ProN', serif;
  margin: 60px 0 20px;
  color: #333;
  letter-spacing: 1px;
}

/* ===============================
   メイン画像の説明（sub-description）
=============================== */
.sub-description {
  background-color: #f9f9f9;
  border: 1px solid #ddd;
  padding: 20px;
  max-width: 800px;
  margin: 40px auto 0;
  font-family: 'Hiragino Mincho ProN', 'Yu Mincho', serif;
  font-size: 13px;
  line-height: 1.8;
  color: #444;
  text-align: left;
  text-indent: 1em;
  letter-spacing: 0.03em;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05);
}

@media (max-width: 600px) {
  .sub-description {
    font-size: 12px;
    
    /* 1. 幅の設定: 親の幅を上限として、左右のマージンで余白を確保 */
    width: auto;
    max-width: 100%;
    
    /* 2. 左右のマージンで、画面端との間に余白を確保し、はみ出しを防ぐ */
    margin: 30px 16px 0 16px; 
    
    /* 3. Paddingを幅に含めることで、左右の余白が幅オーバーの原因になるのを防ぐ */
    box-sizing: border-box; 
    
    /* 4. 内側の余白 */
    padding: 16px; 
    
    position: static;
  }

  /* 2. リスト要素の余白リセット */
  .sub-description .point-list {
    padding-left: 0; 
    margin: 0;        
    list-style: none; 
  }
}

/* ===== PC版だけの重なり表示設定 ===== */
@media (min-width: 601px) {
  .sub-slider-wrapper {
    position: relative;
    max-width: 1000px;
    margin: 60px auto;
  }

  .sub-slider {
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
    display: block;
  }

  .sub-description {
    position: absolute;
    bottom: 20px;
    right: 0; /* デフォルトは右下 */
    width: 400px;
    margin: 0;
    padding-top: 16px;
    z-index: 10;
  }

  /* 偶数番目の main-content 内だけ左下に */
  .main-content:nth-of-type(even) .sub-description {
    right: auto;
    left: 0;
  }
}

.sub-description p {
  word-break: keep-all;
  white-space: normal;
}

@media (max-width: 600px) {
  .sub-description {
    font-size: 12px;
    padding: 16px;
    margin: 10px auto 0;
    max-width: 400px; /* ← 画像（sub-slider）のmax-widthに揃える */
    width: 100%;
  }
}


/* ===============================
   商品名と金額
=============================== */

/* 商品行全体 */
.product-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  max-width: 600px;
  margin: 10px auto;
  padding: 8px 0;
  border-bottom: 1px solid #eee;
  gap: 12px; /* スマホ時にも詰まりすぎないように */
  flex-wrap: wrap; /* ← ここがポイント！ 改行OKに */
}

/* 商品名 */
.product-name {
  font-size: 1.2rem;
  font-family: 'Yu Mincho', 'Hiragino Mincho ProN', serif;
  color: #333;
  letter-spacing: 0.05em;
  margin: 0;
  flex: 1 1 auto; /* 可変幅 */
  min-width: 200px; /* 強制的に潰れないように */
}

/* 金額 */
.price-check .price {
  font-size: 1rem;
  font-weight: 700;
  color: #000;
  text-decoration: none;
  transition: opacity 0.2s ease;
}

.price-check .price:hover {
  opacity: 0.7;
}

/* CHECKボタン */
.price-check .check-btn {
  background-color: #000;
  color: #fff;
  padding: 4px 8px;
  font-size: 0.75rem;
  font-weight: 700;
  text-decoration: none;
  border-radius: 3px;
  transition: opacity 0.2s ease;
}

.price-check .check-btn:hover {
  opacity: 0.7;
}

/* 金額＋Check */
.price-check {
  display: flex;
  align-items: center;
  gap: 8px;
  white-space: nowrap; /* 金額とcheckが折れないように */
}

/* スマホでは縦並びに変更 */

@media (max-width: 600px) {
  .product-row {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }
  
  /* ★【ここに追加または修正が必要です】★ */
  .product-name {
    /* 1rem（標準サイズ）から小さくします */
    font-size: 0.9rem !important; 
    /* 0.85rem など、お好みのサイズに調整してください */
    
    /* 念のため、他の重要な設定も確認 */
    width: 100% !important;
    white-space: normal !important;
    margin: 0 !important;
    
    /* ※もしこのブロック内に記述がない場合は、以前のCSSから探して修正してください */
  }

  .price-check {
    margin-top: 6px;
  }
}



/* ===============================
   ポイント説明リスト
=============================== */
.point-title {
  font-family: 'Playfair Display', 'Georgia', serif;
  font-size: 2rem;
  font-weight: bold;
  color: #444;
  margin-top: 0;
  padding-top: 0;
  margin-bottom: 1px;
  letter-spacing: 1px;
  text-align: left;
}

.point-list {
  list-style: none;
  margin: 0;
  padding: 0;
  font-family: "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
  font-size: 14px;
  line-height: 1.5; /* ← 1.8から少しタイトに */
}


.point-list li {
  display: flex;
  align-items: flex-start; /* 上揃えにする */
  gap: 8px;               /* チェックと本文の間隔 */
  margin-bottom: 12px;
}

.point-list li:last-child {
  margin-bottom: 0; /* 最後の余白だけ消す */
}

.point-list li::before {
  content: "";
  display: block;
  width: 16px;            /* 画像のサイズ */
  height: 16px;
  background-image: url("check.png");
  background-size: contain;
  background-repeat: no-repeat;
  margin-top: 4px;        /* テキストと縦位置を微調整 */
}

@media (max-width: 600px) {
  .point-title {
    font-size: 1rem;
  }

  .point-list {
    font-size: 12px;
  }
}




/* ===============================
   アニメーション（フェードイン）
=============================== */
.fade-in-section {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity 1s ease, transform 1s ease;
}

.fade-in-section.visible {
  opacity: 1;
  transform: none;
}
