:root{
  --black:#09060a;
  --red:#c0202a;
  --gold:#d4a030;
  --gold2:#f0c840;
  --pink:#f05878;
  --cream:#f5e8d0;
  --warm:#9a7060;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{background:var(--black);color:var(--cream);font-family:'Noto Sans JP',sans-serif;overflow-x:hidden;}

/* ========== STICKY CTA ========== */
.sticky{
  position:fixed;bottom:0;left:0;right:0;z-index:200;
  padding:10px 14px 14px;
  background:linear-gradient(180deg,transparent 0%,rgba(9,6,10,0.97) 20%);
  display:flex;gap:10px;
  transform:translateY(110%);transition:transform 0.4s ease;
}
.sticky.show{transform:translateY(0);}
.s-btn{
  flex:1;display:flex;align-items:center;justify-content:center;gap:8px;
  padding:16px 8px;border-radius:60px;
  font-family:'Zen Old Mincho',serif;font-weight:700;
  font-size:clamp(13px,3.8vw,17px);letter-spacing:0.05em;
  text-decoration:none;color:#fff;border:none;
  transition:transform .15s,filter .15s;
  -webkit-tap-highlight-color:transparent;
}
.s-btn:active{transform:scale(0.96);filter:brightness(0.9);}
.s-prime{
  background:linear-gradient(135deg,#1a7040,#0d4a28);
  box-shadow:0 4px 24px rgba(0,180,80,0.3);
  border:1px solid rgba(60,220,100,0.25);
}
.s-unext{
  background:linear-gradient(135deg,#350080,#1e0050);
  box-shadow:0 4px 24px rgba(120,40,240,0.3);
  border:1px solid rgba(140,80,255,0.25);
}
.s-ico{font-size:18px;}

/* ========== HERO: メインビジュアル画像そのまま ========== */
.hero-img-wrap{
  position:relative;
  width:100%;
  max-width:600px;
  margin:0 auto;
  display:block;
  cursor:pointer;
}
.hero-img-wrap img{
  width:100%;
  display:block;
}
/* 画像の下端をフェードアウトして本文へなじませる */
.hero-img-wrap::after{
  content:'';
  position:absolute;
  bottom:0;left:0;right:0;
  height:80px;
  background:linear-gradient(transparent, var(--black));
  pointer-events:none;
}

/* 画像上のCTAオーバーレイ（ボタン部分だけ再現） */
.hero-cta-overlay{
  position:relative;
  max-width:600px;
  margin:0 auto;
  padding:0 20px 32px;
  background:var(--black);
  display:flex;flex-direction:column;align-items:center;gap:10px;
}
.hero-cta-label{
  font-size:12px;letter-spacing:0.3em;
  color:rgba(245,232,208,0.5);
  display:flex;align-items:center;gap:8px;
}
.hero-cta-label::before{content:'＼';color:var(--gold2);}
.hero-cta-label::after{content:'／';color:var(--gold2);}

.hero-btn{
  display:flex;align-items:center;justify-content:center;gap:10px;
  width:100%;max-width:460px;
  padding:20px 24px;border-radius:60px;
  background:linear-gradient(135deg,#e83060,#c0202a,#d45020);
  color:#fff;text-decoration:none;
  font-family:'Zen Old Mincho',serif;font-weight:900;
  font-size:clamp(22px,5.5vw,30px);letter-spacing:0.08em;
  box-shadow:0 6px 32px rgba(220,40,80,0.55),0 0 60px rgba(220,40,80,0.2);
  border:2px solid rgba(255,255,255,0.15);
  transition:transform .2s,box-shadow .2s;
  -webkit-tap-highlight-color:transparent;
}
.hero-btn:hover{transform:translateY(-2px);box-shadow:0 10px 40px rgba(220,40,80,0.7);}
.hero-btn:active{transform:scale(0.97);}
.hero-btn-arrow{
  width:32px;height:32px;border-radius:50%;
  background:rgba(255,255,255,0.2);
  display:flex;align-items:center;justify-content:center;
  font-size:18px;flex-shrink:0;
}

.hero-sub-links{
  display:flex;gap:10px;width:100%;max-width:460px;
}
.sub-link{
  flex:1;display:flex;align-items:center;justify-content:center;gap:6px;
  padding:13px 8px;border-radius:40px;
  font-size:clamp(12px,3vw,14px);font-weight:700;
  text-decoration:none;color:#fff;letter-spacing:0.05em;
  transition:transform .15s;-webkit-tap-highlight-color:transparent;
}
.sub-link:active{transform:scale(0.96);}
.sub-link-prime{
  background:linear-gradient(135deg,#1a7040,#0d4a28);
  border:1px solid rgba(60,200,80,0.3);
  box-shadow:0 3px 16px rgba(0,160,60,0.25);
}
.sub-link-unext{
  background:linear-gradient(135deg,#350080,#1e0050);
  border:1px solid rgba(120,60,240,0.3);
  box-shadow:0 3px 16px rgba(100,30,220,0.25);
}

/* ========== SECTION BASE ========== */
.wrap{max-width:600px;margin:0 auto;padding:60px 20px;}

.sec-label{
  font-size:10px;letter-spacing:0.6em;color:var(--pink);
  text-transform:uppercase;margin-bottom:14px;
  display:flex;align-items:center;gap:12px;
}
.sec-label::after{content:'';flex:1;height:1px;background:linear-gradient(90deg,rgba(240,88,120,0.4),transparent);max-width:70px;}

.sec-heading{
  font-family:'Zen Old Mincho',serif;font-weight:900;
  font-size:clamp(24px,6vw,38px);line-height:1.3;margin-bottom:24px;
}
.sec-heading em{font-style:normal;color:var(--gold2);}

.sec-body{font-size:15px;line-height:2.2;color:rgba(245,232,208,0.75);font-weight:300;}
.sec-body p+p{margin-top:18px;}

/* ========== QUOTE ========== */
.quote{
  border-left:3px solid var(--pink);
  background:rgba(240,88,120,0.06);
  padding:22px 26px;margin:28px 0;
}
.quote p{
  font-family:'Zen Old Mincho',serif;
  font-size:clamp(15px,3.8vw,20px);
  line-height:1.9;color:var(--cream);font-weight:700;
}

/* ========== おすすめリスト ========== */
.recommend-list{display:flex;flex-direction:column;gap:10px;margin-top:24px;}
.recommend-item{
  display:flex;align-items:center;gap:14px;
  padding:14px 16px;
  border:1px solid rgba(212,160,48,0.2);
  background:rgba(212,160,48,0.04);
}
.recommend-item span:first-child{font-size:22px;flex-shrink:0;}
.recommend-item span:last-child{font-size:14px;line-height:1.7;font-weight:300;}

/* ========== PHOTO GRID ========== */
.photo-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  grid-template-rows:repeat(2,170px);
  gap:3px;margin:28px 0;
}
.photo-grid a{display:block;overflow:hidden;}
.photo-grid a:first-child{grid-column:1/3;}
.photo-grid a:nth-child(4){grid-row:2;grid-column:2/4;}
.photo-grid img{
  width:100%;height:100%;
  object-fit:cover;object-position:center top;
  display:block;
  transition:transform .4s,filter .4s;
}
.photo-grid a:hover img{transform:scale(1.04);filter:brightness(1.08);}

/* ========== STATS ========== */
.stats{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:1px;background:rgba(212,160,48,0.2);
  border:1px solid rgba(212,160,48,0.2);margin:28px 0;
}
.stat{background:#100810;padding:28px 12px;text-align:center;}
.stat-n{
  font-family:'Zen Old Mincho',serif;font-weight:900;
  font-size:clamp(36px,8vw,54px);color:var(--gold2);
  display:block;line-height:1;
  text-shadow:0 0 20px rgba(240,200,64,0.4);
}
.stat-u{font-size:15px;font-weight:400;}
.stat-l{font-size:11px;color:var(--warm);margin-top:8px;letter-spacing:0.12em;display:block;}

/* ========== DIVIDER ========== */
.divider{
  position:relative;text-align:center;padding:6px 0;margin:0 20px;
}
.divider::before{
  content:'';display:block;height:1px;
  background:linear-gradient(90deg,transparent,rgba(212,160,48,0.5),transparent);
}
.divider-txt{
  display:inline-block;background:var(--black);
  padding:0 16px;margin-top:-10px;
  font-family:'Zen Old Mincho',serif;font-size:14px;
  color:var(--gold);letter-spacing:0.4em;
}

/* ========== EPISODES ========== */
.ep-grid{
  display:grid;grid-template-columns:repeat(2,1fr);
  gap:1px;background:rgba(192,32,42,0.2);
  border:1px solid rgba(192,32,42,0.2);margin-top:24px;
}
.ep-card{background:#100408;padding:20px 16px;transition:background .3s;}
.ep-card:hover{background:rgba(192,32,42,0.1);}
.ep-n{font-size:10px;letter-spacing:0.4em;color:var(--pink);margin-bottom:5px;font-weight:300;}
.ep-city{font-family:'Zen Old Mincho',serif;font-size:20px;font-weight:700;margin-bottom:5px;}
.ep-shops{font-size:11px;line-height:1.8;color:rgba(154,112,96,0.9);font-weight:300;}
.ep-hotel{font-size:10px;margin-top:6px;color:var(--pink);font-weight:300;}
.ep-hotel::before{content:'🏩 ';}

/* ========== CAST ========== */
.cast-wrap{
  display:grid;grid-template-columns:120px 1fr;gap:28px;
  border-top:1px solid rgba(212,160,48,0.2);padding-top:28px;
}
.cast-ico{
  width:90px;height:90px;border-radius:50%;margin:0 auto 10px;
  background:radial-gradient(circle,rgba(192,32,42,0.3),rgba(10,5,8,0.8));
  border:2px solid rgba(212,160,48,0.35);
  display:flex;align-items:center;justify-content:center;font-size:36px;
}
.cast-name{font-family:'Zen Old Mincho',serif;font-size:18px;font-weight:900;text-align:center;display:block;}
.cast-ruby{font-size:10px;letter-spacing:0.2em;color:var(--pink);display:block;text-align:center;margin-top:3px;}
.cast-desc{font-size:14px;line-height:2;color:rgba(245,232,208,0.65);font-weight:300;}
.cast-desc strong{color:var(--gold2);font-weight:500;}

/* ========== BOTTOM CTA ========== */
.bottom-cta{
  background:linear-gradient(180deg,var(--black),#1a0508 50%,var(--black));
  padding:60px 20px 100px;text-align:center;
}
.bottom-cta-heading{
  font-family:'Zen Old Mincho',serif;font-weight:900;
  font-size:clamp(20px,5vw,32px);margin-bottom:8px;
}
.bottom-cta-sub{font-size:13px;color:rgba(245,232,208,0.5);margin-bottom:28px;letter-spacing:0.1em;}
.bottom-cta-btns{display:flex;flex-direction:column;align-items:center;gap:12px;max-width:460px;margin:0 auto;}
.big-btn{
  display:flex;align-items:center;justify-content:center;gap:10px;
  width:100%;padding:18px 24px;border-radius:60px;
  font-family:'Zen Old Mincho',serif;font-weight:700;
  font-size:clamp(16px,4vw,20px);letter-spacing:0.06em;
  text-decoration:none;color:#fff;
  transition:transform .2s,box-shadow .2s;
  -webkit-tap-highlight-color:transparent;
}
.big-btn:active{transform:scale(0.97);}
.big-btn-prime{
  background:linear-gradient(135deg,#1a8045,#0d5030);
  box-shadow:0 6px 28px rgba(0,180,80,0.35);
  border:1px solid rgba(60,220,100,0.25);
}
.big-btn-prime:hover{box-shadow:0 8px 36px rgba(0,200,100,0.45);}
.big-btn-unext{
  background:linear-gradient(135deg,#4000a0,#220060);
  box-shadow:0 6px 28px rgba(120,40,240,0.35);
  border:1px solid rgba(140,80,255,0.25);
}
.big-btn-unext:hover{box-shadow:0 8px 36px rgba(140,40,255,0.45);}

/* ========== FOOTER ========== */
.footer{
  border-top:1px solid rgba(212,160,48,0.15);
  padding:40px 20px;text-align:center;
}
.footer-logo{
  font-family:'Zen Old Mincho',serif;font-size:16px;font-weight:900;
  color:var(--gold);margin-bottom:6px;
}
.footer-logo span{color:var(--pink);}
.footer-note{font-size:11px;color:rgba(154,112,96,0.5);line-height:2.2;margin-top:12px;}

/* ========== ANIMATIONS ========== */
.au{opacity:0;transform:translateY(28px);transition:opacity .8s ease,transform .8s ease;}
.au.in{opacity:1;transform:none;}

/* ========== RESPONSIVE ========== */
@media(max-width:480px){
  .cast-wrap{grid-template-columns:1fr;}
  .ep-grid{grid-template-columns:1fr;}
  .photo-grid{grid-template-columns:1fr 1fr;grid-template-rows:auto;}
  .photo-grid a:first-child{grid-column:1/3;}
  .photo-grid a:nth-child(4){grid-row:auto;grid-column:1/3;}
}