/* =========================================================
   子犬詳細ページ（single-puppy）
   - ベース / ヒーロー / サムネイル / 仕様表
   - 販売中カード（一覧）/ CTA セクション
========================================================= */

/* ========== Base ========== */
.puppy{
  max-width:1120px;
  margin:0 auto;
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif;
  color:#333;
}
.puppy-content {
	padding: 24px;
}
	.puppy-title{
  font-size:40px;
  color:#F7A277;
  margin:0 0 80px 0;
  padding:40px 0;
  position:relative;
  text-align:left;
}
.puppy-title::before,
.puppy-title::after{
  content:"";
  position:absolute;
  left:0;
  width:100%;
  height:1px;
  background:#F7A277;
  opacity:.5;
}
.puppy-title::before{ top:0; }
.puppy-title::after{  bottom:0; }

/* ========== Hero ========== */
.puppy-hero{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:40px;
  align-items:start;
  margin-bottom:80px;
}
.puppy-hero__img{
  width:100%;
  height:auto;
  display:block;
  background:#f5f5f5;
  border-radius:16px;
}

.puppy-badge{
  display:inline-block;
  width:160px;
  padding:6px 0;
  text-align:center;
  border-radius:8px;
  font-size:12px;
  font-weight:700;
  margin-bottom:16px;
}
.puppy-badge.is-available{ background:#7FBFBA; color:#fff; }
.puppy-badge.is-reserved{  background:#7248b1; color:#fff; }
.puppy-badge.is-sold{      background:#777;   color:#fff; }

.puppy-name{
  font-size:32px;
  font-weight:700;
  color:#F7A277;
  line-height:1.4;
  margin:4px 0 12px;
}

/* 価格（本文内） */
.price-main{ font-size:32px; font-weight:700; color:#F7A277; }
.price-sub{  font-size:24px; font-weight:700; color:#000;  }

/* 仕様テーブル */
.puppy-spec{
  width:100%;
  border-collapse:collapse;
}
.puppy-spec th{
  width:28%;
  padding:16px 0;
  text-align:left;
  font-weight:700;
  color:#F7A277;
  border-bottom:1px solid #eee;
}
.puppy-spec td{
  padding:10px;
  border-bottom:1px solid #eee;
}

/* ========== Thumbnails ========== */
.puppy-thumbs{
  display:flex;
  gap:12px;
  margin:16px 0 32px;
  flex-wrap:wrap;
}
.puppy-thumbs .thumb{
  width:96px;
  height:96px;
  padding:0;
  border:2px solid transparent;
  border-radius:12px;
  background:#fff;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
}
.puppy-thumbs .thumb img{
  max-width:100%;
  max-height:100%;
  display:block;
  border-radius:10px;
}
.puppy-thumbs .thumb.is-active{ border-color:#f59e0b; }

/* =========================================================
   販売中の子犬（カード）
========================================================= */
.puppy-related{
border-top:1px solid #f1e3ce;
padding: 80px 0;
}
.puppy-related .puppy-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:24px;
  margin-top:16px;
}

.puppy-card{
  background:#fff;
  border-radius:12px;
  padding:12px 12px 16px;
  text-align:center;
}
.puppy-card a{
  display:block;
  color:inherit;
  text-decoration:none;
}

/* 角丸オレンジ枠の画像ボックス */
.puppy-card__imgwrap{
  position:relative;
  border:2px solid #F4A259;
  border-radius:16px;
  overflow:hidden;
  margin-bottom:10px;
}
.puppy-card__imgwrap img{ width:100%; height:auto; display:block; }

/* 左上：犬種／右下：性別ラベル */
.puppy-card__breed,
.puppy-card__sex{
  position:absolute;
  background:#FFE0B9;
  font-size:14px;
  font-weight:700;
  padding:6px 10px;
  border-radius:8px;
}
.puppy-card__breed{ top:0; left:0;   border-radius:8px 0 8px 0; }
.puppy-card__sex{   bottom:0; right:0; border-radius:8px 0 8px 0; }

/* 価格行 */
.puppy-card__price-line{
  display:flex;
  align-items:baseline;
  gap:6px;
  margin-bottom:2px;
}
.puppy-card__price-label{ font-size:12px; color:#666; }
.puppy-card__price-main{
  font-size:18px;
  font-weight:bold;
  color:#F7A277;
  text-align:right;
}
.puppy-card__price-main small{ font-size:12px; }

.puppy-card__price-sub{ font-size:14px; margin-bottom:6px; text-align: right;}
.puppy-card__price-sub small{ font-size:12px; }

.puppy-card__divider{
  border-bottom:1px solid #eee;
  margin-bottom:8px;
}
/* 画像内ステータスバッジ（下中央） */
.puppy-card__statusbadge {
  position: absolute;
  bottom: 8px;
  left: 8px;
text-align: left;
  background: #F4A259;
  font-size: 13px;
  font-weight: 700;
  padding: 6px 14px;
  border-radius: 8px;
  color: #fff;
  z-index: 2;
  white-space: nowrap;
}

/* 状態別カラー */
.puppy-card__statusbadge.is-available { background:#7FBFBA; } /* 緑＝販売中 */
.puppy-card__statusbadge.is-reserved  { background:#7248B1; } /* 紫＝商談中 */
.puppy-card__statusbadge.is-sold      { background:#777; }    /* グレー＝家族決定 */



/* 下部メタ（誕生日/生後日数） */
.puppy-card__meta{
  display:flex;
  justify-content:space-between;
  font-size:12px;
  margin-top:6px;
}

/* 税抜価格だけ右寄せにしたいときの補助 */
.price-align-right{
  margin-left:auto;
  text-align:right;
  display:inline-block;
}



/* =========================================================
   Responsive
========================================================= */
@media (max-width:1024px){
  .puppy-related .puppy-grid{ grid-template-columns:repeat(3,1fr); }
}

@media (max-width:960px){
  .puppy-hero{ display: block; grid-template-columns:1fr; gap:16px; }
}

@media (max-width:640px){
	.puppy-card {
		padding: 0;
	}
	.puppy-card__meta {
		text-align: left;
	}
  .puppy-card__body .puppy-card__meta,
  .puppy-card__body .puppy-card__meta span {
	  display: block;
	}
  .puppy-related .puppy-grid{ grid-template-columns:repeat(2,1fr); }
  .puppy-cta__title{ font-size:20px; }
  .puppy-cta__card{ padding:18px 14px; margin: 0 16px;}
  .puppy-cta__actions{display: inline-grid;gap:8px; }
  .puppy-cta__btn{ width:100%; justify-content:center; }
  .puppy-cta__btn-sub{ margin-left:0; }
  .puppy-title{
    font-size:24px;
    padding:16px 0;
    margin-bottom: 24px;}
    .puppy-thumbs .thumb{
      width:20%;
      height:auto;
    }
	.puppy-hero__meta .puppy-name {
		font-size: 24px;
	}
	.puppy-hero__meta .callout__grid{
		grid-template-columns:1fr !important;
	}

	.puppy-hero__meta .callout__grid {
		gap: 4px;
	}
	.puppy-hero__meta .is-lemon {
		padding: 24px;
	}
}
