@charset "UTF-8";

/*//////////////////////////////////////////////////////////////
	layout
//////////////////////////////////////////////////////////////*/

:root{
  --pink-bg-1:#fdeef0;
  --pink-bg-2:#fce4e6;
  --pink-bg-3:#fff3ec;
  --pink-main:#f5a3b8;
  --pink-deep:#e8628a;
  --gold:#c9a24b;
  --green-tnc:#6abf2e;
  --yellow-pale:#fdfbe3;
  --yellow-soft:#faf6d8;
  --ink:#4a3f3f;
  --ink-soft:#6b5d5d;
  --petal:#f6c9d4;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:"Zen Old Mincho","Hiragino Mincho ProN",serif;
  color:var(--ink);
  /* background:linear-gradient(160deg,#242323 0%,#302d2e 34%,#38272b 62%,#141112 100%); */
  background:linear-gradient(160deg,#fff6ee 0%,#fde3e8 34%,#fbd2dc 62%,#fdeaee 100%);
  overflow-x:hidden;
  line-height:1.8;
}
img{max-width:100%;height:auto;display:block}

/* ===== 舞い散る桜の花びら（petal.png） ===== */
.petals{position:fixed;inset:0;pointer-events:none;z-index:0;overflow:hidden}
.petal{
  position:absolute;
  background-image:url("../img/petal.png");
  background-size:contain;
  background-repeat:no-repeat;
  animation:fall linear infinite;
  --drift:-14vw;
  --spin:340deg;
}
@keyframes fall{
  0%{transform:translate(0,-10vh) rotate(0deg)}
  100%{transform:translate(var(--drift),110vh) rotate(var(--spin))}
}

/* ===== TNCメニューボタン ===== */
.tnc-menu{
  position:fixed;top:0;right:24px;z-index:100;
  width:72px;padding:12px 8px 8px;
  background:var(--green-tnc);color:#fff;
  border:none;border-radius:0 0 10px 10px;
  cursor:pointer;text-align:center;
  font-family:"Zen Old Mincho",serif;
  box-shadow:0 3px 8px rgba(0,0,0,.15);
  transition:transform .2s;
}
.tnc-menu:hover,.tnc-menu:focus-visible{transform:translateY(3px)}
.tnc-menu:focus-visible{outline:3px solid #2e6b0e;outline-offset:2px}
.tnc-menu .bars{display:block;width:26px;margin:0 auto 6px}
.tnc-menu .bars span{display:block;height:3px;background:#fff;border-radius:2px;margin:4px 0;position:relative}
.tnc-menu .bars span::before{content:"";position:absolute;left:-7px;top:0;width:3px;height:3px;background:#fff;border-radius:50%}
.tnc-menu .label{font-size:12px;font-weight:700;letter-spacing:.05em;line-height:1.3}
.tnc-menu .label b{display:block;font-size:13px}

main{position:relative;z-index:1}
.inner{max-width:1180px;margin:0 auto;padding:0 5%}

/* ===== ヒーローセクション ===== */
.hero{padding:64px 0 0}
.hero-grid{
  display:grid;
  grid-template-columns:minmax(280px,40%) 1fr;
  gap:clamp(16px,2vw,32px);
  align-items:center;
}
.hero-copy{padding-top:12px}
.hero-logo{
  width:min(100%,520px);
  margin-bottom:8px;
}
.hero-ribbons{margin:32px 0 0}
.hero-ribbons img{
  height:auto;
  margin-bottom:12px;
  filter:drop-shadow(2px 3px 0 rgba(232,98,138,.25));
}
.ribbon-1{width:min(100%,440px)}
.ribbon-2{width:min(84%,368px)}
.onair{
  margin:48px 0 0 clamp(10px,3vw,60px);
  width:clamp(190px,20vw,230px);
  aspect-ratio:1.55/1;
  border:none;
  border-radius:50%;
  display:flex;flex-direction:column;justify-content:center;align-items:center;
  background:rgba(255,255,255,.72);
  color:var(--pink-deep);
  font-weight:700;
  font-size:clamp(17px,1.8vw,22px);
  letter-spacing:.18em;
  line-height:1.7;
  position:relative;
}
/* 内側に入れたピンクの枠線 */
.onair::before{
  content:"";
  position:absolute;
  inset:4px;
  border:1px solid var(--pink-main);
  border-radius:50%;
  pointer-events:none;
}
.hero-photo{width:100%}
.hero-photo img{
  width:min(112%,760px);
  max-width:none;
  margin-left:auto;
  filter:drop-shadow(0 14px 40px rgba(232,98,138,.18));
}

/* ===== 円形英字＋イントロ ===== */
.intro{padding:60px 0 110px}
.intro-wrap{
  position:relative;
  max-width:940px;
  margin:0 auto;
}
/* 黄色フチなしの四角エリア */
.intro-box{
  position:relative;z-index:2;
  background:rgba(253,251,227,.88);
  border:none;
  padding:38px 5%;
  text-align:center;
  font-size:clamp(14px,1.5vw,17px);
  letter-spacing:.12em;
  line-height:2.2;
  color:var(--ink);
}
/* 少しズレた枠線（グレー） */
.intro-box::before{
  content:"";
  position:absolute;
  z-index:3;
  top:8px;left:8px;right:-8px;bottom:-8px;
  border:1px solid #b9b2ac;
  pointer-events:none;
}
.maru-text{
  position:absolute;
  z-index:1;
  width:clamp(180px,22vw,300px);
  /* 円の中心をイントロボックスの右上角に。maru_textはボックスの下 */
  top:0;
  right:0;
  transform:translate(50%,-50%);
  animation:spin 60s linear infinite;
  pointer-events:none;
}
@keyframes spin{to{transform:translate(50%,-50%) rotate(360deg)}}
/* スマホ専用の改行（PCでは非表示） */
.br-sp{display:none}

/* ===== CHECK! セクション ===== */
.check{padding:0 0 40px;text-align:center}
.check-badge{
  width:clamp(224px,26vw,368px);
  margin:0 auto 80px;
  filter:drop-shadow(0 6px 18px rgba(232,98,138,.25));
}
.lab-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:clamp(12px,1.6vw,24px);
  align-items:start;
  max-width:1100px;
  margin:0 auto;
}
.lab-item img{width:100%}

/* ===== 波形ディバイダー & 出演者 ===== */
.wave{display:block;width:100%;height:clamp(70px,10vw,150px);margin-top:70px;margin-bottom:-1px;position:relative;z-index:1}
.cast{
  background:var(--yellow-soft);
  padding:40px 0 110px;
  margin-top:-1px;
}
.cast-grid{
  display:grid;
  grid-template-columns:minmax(230px,300px) 1fr;
  gap:clamp(32px,5vw,72px);
  align-items:center;
  max-width:960px;margin:0 auto;
}
.cast-photo{width:100%}
.cast-name{
  font-size:clamp(20px,2.4vw,28px);
  letter-spacing:.18em;
  font-weight:500;
  color:var(--pink-deep);
  padding-bottom:14px;
  border-bottom:2px solid var(--pink-main);
  margin-bottom:30px;
}
.cast-name .role{font-size:.82em;margin-right:1.2em}
.profile-label{
  font-size:clamp(16px,1.7vw,20px);
  letter-spacing:.3em;
  margin-bottom:14px;
}
.profile-text{
  font-size:clamp(13.5px,1.4vw,16px);
  letter-spacing:.1em;
  line-height:2.2;
}

/* ===== フッター ===== */
footer{
  background:var(--yellow-soft);
  text-align:center;
  padding:20px 5% 26px;
  font-size:11px;
  letter-spacing:.14em;
  color:var(--ink-soft);
}

/* ===== スクロールフェードイン ===== */
.fade{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s ease}
.fade.show{opacity:1;transform:none}
