/* =========================================
   COLUMN SECTION – OPTIMIZED FINAL
========================================= */

/* ===============================
   セクション全体
================================ */
.p-column{
  height:100vh;
  overflow:hidden;
  display:flex;
  flex-direction:column;
}
.p-column__inner{
  flex:1;
  display:flex;
  flex-direction:column;
}
.p-column__header{
  flex:0 0 auto;
  position:relative;
}

/* ===============================
   ステージ
================================ */
.p-column__stage{
  flex:1 1 auto;
  position:relative;
  display:grid;
  grid-template-columns:20% 60% 20%;
  height:100%;
}

/* ===============================
   サイド（最終定義）
================================ */
.p-column__side{
  display:flex;
  justify-content:center;
  align-items:flex-end;   /* 下揃え */
  height:100%;
}
.p-column__side-img{
  height:75%;
  object-fit:contain;
  opacity:.45;
  transform:scale(.8);
  transform-origin:bottom center;
}

/* ===============================
   メインレイヤー
================================ */
.p-column__main{
  position:relative;
  height:100%;
  width:100%;
}
.p-column__layer{
  position:absolute;
  inset:0;
}

/* 背景 */
.p-column__layer--bg{
  display:flex;
  justify-content:flex-end;
  align-items:flex-start;
  z-index:1;
}
.p-column__layer--bg img{
  height:75%;
  opacity:.12;
  object-fit:contain;
}

/* 人物 */
.p-column__layer--person{
  display:flex;
  justify-content:center;
  align-items:center;
  z-index:2;
}
.p-column__layer--person img{
  height:115%;
  object-fit:contain;
}

/* テキスト層 */
.p-column__layer--content{
  position:absolute;
  inset:0;
  z-index:3;
}

/* ===============================
   右ブロック
================================ */
.p-column__right-content{
  position:absolute;
  top:0;
  right:0;
  width:40%;
  height:100%;
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  text-align:right;
  z-index:4;
}
.p-column__en{
  position:absolute;
  top:8%;
  right:0;
  font-family:"Noto Serif JP",serif;
  font-weight:900;
  color:#ed7b7b;
  font-size:clamp(28px,4vw,54px);
  line-height:1;
}
.p-column__festival{
  position:absolute;
  top:22%;
  right:0;
  font-family:"Noto Serif JP",serif;
  font-weight:900;
  font-size:clamp(28px,5vh,58px);
  line-height:1.05;
  writing-mode:vertical-rl;
  text-orientation:mixed;
  max-height:78vh;
  margin-top:14px;
}

/* ===============================
   左ブロック
================================ */
.p-column__left-content{
  position:absolute;
  left:0;
  bottom:0;
  width:42%;
  max-width:520px;
  height:50%;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  padding-bottom:3%;
  z-index:5;
}

/* ===============================
   帯（赤・黒共通）
================================ */
.p-column__label{
  font-family:"Noto Serif JP",serif;
  font-weight:600;
  font-size:14px;
  padding:12px 20px;
  width:82%;
  margin:0;
}
.p-column__label + .p-column__label{
  margin-top:8px;
}
.p-column__label--red{
  background:#ba000e;
  color:#fff;
}
.p-column__label--black{
  background:#130d09;
  color:#fff;
}

/* ===============================
   ボタンブロック
================================ */
.p-column__buttons{
  display:flex;
  flex-direction:column;
  gap:12px;
  width:82%;
  margin-top:16px;
}

/* ===============================
   ボタン
================================ */
.p-column .c-button{
  width:100%;
  padding:12px 20px;
  font-size:13px;
  border-radius:999px;
  justify-content:space-between;
  margin:0 !important;
}
.p-column .c-article-card__button{
  margin-top:0 !important;
}

/* ===============================
   ナビボタン
================================ */
.p-column__nav{
  position:absolute;
  top:50%;
  left:0;
  width:100%;
  transform:translateY(-50%);
  pointer-events:none;
}
.p-column__nav--prev,
.p-column__nav--next{
  position:absolute;
  pointer-events:auto;
}
.p-column__nav--prev{ left:2%; }
.p-column__nav--next{ right:2%; }

.c-slider-nav{
  display:flex;
  align-items:center;
  justify-content:center;
}

/* 赤と黒の間 */
[data-column-active-black]{
  margin-top:8px;
}

/* 黒帯同士 */
[data-column-active-black] .p-column__label + .p-column__label{
  margin-top:8px;
}