@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=Gothic+A1:wght@400;700;800&family=Shippori+Mincho+B1:wght@500;700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Oswald:wght@400;600;700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700&display=swap');
body {

  font-family: "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN",  Meiryo, sans-serif;
  color: #333;
  font-size: 1.1rem;
  line-height: 1.75;
  word-wrap: break-word;
background-color: rgba(0,0,0,0.8);
}
@media screen and (max-width:992px) {
  body {
    font-size: 1.1em;
  }
}
/* ------------
* common 
 ------------ */
ul, li {
  margin: 0;
  padding: 0;
  list-style: none;
}
a {
  color: #333;
  outline: none;
  text-decoration: none;
}
a:hover, a:active {
  text-decoration: none;
}
*:focus {
  outline: none;
}
img {
  width: 100%;
  height: auto;
  vertical-align: bottom;
}
a:hover img {
  opacity: 0.9;
  filter: alpha(opacity=90);
}
.text-center {
  text-align: center;
  margin: 0 auto;
}
.text-left {
  text-align: left;
  margin: 0;
}
.text-right {
  text-align: right;
  margin: 0;
}
.red {
  color: #8f2122;
}
p {
  text-align: justify;
}
#wrapper {
  width: 100%;
  overflow-x: hidden;   /* 横だけ隠す */
  overflow-y: visible;  /* 縦は sticky を殺さない */
}
main {
  width: 100%;
}
/* ------------
 * font-family
 ------------ */
.{
font-family: "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN",  Meiryo, sans-serif;
}
.{
  font-family: 'Shippori Mincho B1', serif;
}
h2,.copyright,.bnMenu__head,.news-date,.joinGuestArtistCard__dates,.joinGuestCard__dates,.joinGuestTitle__en{
  font-family: 'Oswald', sans-serif;
}


/* ===== RESET H2 (neutral) ===== */
h2{
  margin: 0 0 18px;
  padding: 0;
  background: none;
  text-align: center;

 
  font-weight: 700;
  font-size: clamp(2.0rem, 3.2vw, 2.7rem);
  letter-spacing: .10em;
  line-height: 1.15;

  color: rgba(248,245,238,.95);
  text-shadow:
    1px 1px 6px rgba(255,235,180,.35),
   -1px -1px 6px rgba(255,235,180,.35),
    2px -2px 10px rgba(220,170,90,.45),
   -2px 2px 10px rgba(220,170,90,.45),
    0 0 18px rgba(160,120,40,.45),
    0 0 32px rgba(90,70,30,.3);
}

h2 span{
  display:block;
  margin-top: 8px;
  font-family: 'Gothic A1', sans-serif;
  font-weight: 700;
  font-size: .85rem;
  letter-spacing: .26em;
  color: rgba(245,241,232,.62);
}


/* ------------------------------------------------------------------- 
 * loading
 * ------------------------------------------------------------------- */
.fixed_bg {
  background-color: #000;
  background-size: cover;
  background-position: center center;
  display: block;
  height: 100%;
  position: fixed;
  top: 0;
  left: 0;
  z-index: -2;
  width: 100%;
  overflow: hidden;
  opacity: 0;
  transition:7.5s;
}
.fixed_bg.active {
  opacity: 1;
}
.fixed_bg.active.normal {
  opacity: 1;
}
.fixed_bg video {
  height: 100%;
  width: 100%;
  object-fit: cover;
  object-position: top center;
}
.fixed_logo {
  position: fixed;
  top: 15%;
  left: 48%;
  z-index: 1;
  width: 60%;
  height: auto;
  margin: 0 auto;
  animation: sk-scaleout 1.0s infinite ease-in-out;
}


@keyframes sk-scaleout {
  0% {
    -webkit-transform: scale(0);
    transform: scale(0);
  }
  100% {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: 0;
  }
}
.fixed_logo_img {
  width: 20px;
}
/* ------------------------------------------------------------------- 
 * loading
 * ------------------------------------------------------------------- */
.loading {
  position: fixed;
  top: 0;
  left: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100vh;
  z-index: 9999;
  background-color: #ad0233;
}
.loading .loader {
  width: 32px;
  height: 32px;
  margin: 0 auto;
  animation: loader 1s infinite ease-in-out;
}
.loading .loader img {
  width: 32px;
  height: 32px;
}

loading.is-hidden {
  opacity: 0;
  pointer-events: none;
  transition: opacity .4s ease;
}
@keyframes loader {
  0% {
    transform: rotate(360deg);
    opacity: 1;
  }
  100% {
    transform: rotate(0deg);
    opacity: 0;
  }
}
/* ------------------------------------------------------------------- 
 * responsive:
 * loading
 * ------------------------------------------------------------------- */
@media screen and (max-width: 992px) {
  .fixed_logo_img {
    width: 60px;
  }
}


/* ------------------------------------------------------------------- 
 * top 8d1e24
 * ------------------------------------------------------------------- */
#top {
  position: relative;
  width: 100%;
  overflow: hidden;
  /*opacity: 0;*/
  transition: 3s;
  /*background-color: rgba(141, 30, 36, 0.8);*/
    padding:0;
}
#top.active {
  opacity: 1;
}
#top .bg_mc {
  width: 100%;
  max-width: 800px;
 margin: 0 auto;
  text-align: center;
  overflow: hidden;
  position: relative;animation: blurblur 3s linear 1;
}

#top .title {
  position: absolute;
  left: 68%;
  width: 13%;
  top: 16%;
  filter: drop-shadow(0px 0px 10px rgba(255, 255, 255, 0.9)) drop-shadow(0px 0px 10px rgba(255, 255, 255, 0.8));
}
#top .title img {
  animation: blurblur 3s linear 1;
}

.title_logo {
  text-align: center;
  margin: 40px 0;
}

.circle-logo {
  display: inline-block;
  position: relative;
  width: 260px;
  height: 260px;
}

.circle-text {
  width: 100%;
  height: 100%;
  animation: rotateCircle 10s linear infinite;
}

.circle-text text {
  font-size: 20px;
  letter-spacing: 5px;
  text-transform: uppercase;
  fill: #f5f5f5; /* 好きな色に変更 */
}

@keyframes rotateCircle {
  100% {
    transform: rotate(360deg);
  }
}

.logo-center {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 26px;line-height: 1.4;
  font-weight: bold;
  color: #f5f5f5; /* センター文字の色#bfa14b */
}



/* ------------------------------------------------------------------- 
 * responsive:
 * top
 * ------------------------------------------------------------------- */
@media screen and (max-width: 992px) {
  #top {
    width: 100%;
    height: 100%;
  }
  #top .bg_mc {
    max-width: 100%;padding: 14% 0 0;
  }
  #top .bg_mc video {
    height: 100vh;
  }
  #top .title {
    position: static;
    width: fit-content;        /* ←これを追加すると中央になる */
    margin: 0 auto;
    text-align: center;
    left: auto !important;
    right: auto !important;
    transform: none !important;
  }

    .logo-center {
  font-size:22px;
}
    
    
} /*end*/


@keyframes blurblur {
  0% {
filter: blur(30px);
  transform: scale(1.2);
  }
  66.6% {
  filter: blur(0);
  transform: scale(1);
  }
  100% {
  filter: blur(0);
  transform: scale(1);
  }
}
@keyframes fadeup {
  0% {
    transform: translateY(30px);
    opacity: 0;
  }
  80% {
    opacity: 1;
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

/* ------------------------------------------------------------------- 
 * topics
 * ------------------------------------------------------------------- */
#topics {
    
  position: relative;
  padding: 30px 0;

}
.topics-content{
  width: 100%;
  max-width: 980px; /*調整*/
  margin: 0 auto;
  text-align: center;
}


/* =====================
   NEWS
===================== */
.news-list{
  list-style:none;
  margin:0;
  padding:0;
}

.news-item{margin-bottom: 15px;text-align: left;
  display:grid;
  grid-template-columns: 120px 1fr;
  gap:24px;
  padding:16px 30px;
  border: 1px solid rgba(214,177,90,.18);
  background: rgba(0,0,0,.28);
  box-shadow: 0 10px 26px rgba(0,0,0,.22);
  border-radius: 0; /* 千重子は角丸しない寄り */
}


.news-date{color: #ceac56;
  letter-spacing:.08em;
  opacity:.8;
}

.news-title{color: rgba(255,255,255,.88);
  line-height:1.6;
  text-decoration:none;
}

.news-title:hover{
  text-decoration:underline;
}


/* NEWS一覧ボタンだけ別表情にする */
.latest_more .tourSchedule__tab{
  font-family: "Noto Sans JP", sans-serif; /* 日本語寄り */
  font-size: 13px;
  letter-spacing: .12em;

  color: rgba(245,241,232,.78);
  border-color: rgba(214,177,90,.22);

  background: rgba(255,255,255,.03);
}

.latest_more .tourSchedule__tab:hover{
  color: rgba(245,241,232,.95);
  border-color: rgba(214,177,90,.42);
  background: rgba(255,255,255,.07);
}


/* ------------------------------------------------------------------- 
 * responsive:
 * topics
 * ------------------------------------------------------------------- */
@media screen and (max-width:992px) {
  #topics {

  }
.topics-content{
  max-width: 90%;
}

  .news-item{
    grid-template-columns: 1fr;
    gap:6px;
  }


} /*end*/


/* ------------------------------------------------------------------- 
 * intro
 * ------------------------------------------------------------------- */

.bnIntro{
  position: relative;
  padding: 60px 0 30px;
}

.bnIntro__inner{
  width: min(800px, 92vw);
  margin: 0 auto;
}

/* subtle top/bottom hairlines */
.bnIntro::before,
.bnIntro::after{
  content:"";
  display:block;
  height: 1px;
  margin: 0 auto;
  background: linear-gradient(to right, transparent, rgba(214,177,90,.55), transparent);
  opacity: .85;
}
.bnIntro::before{ margin-bottom: 22px; }
.bnIntro::after{ margin-top: 22px; }

.bnIntro__head{
  text-align: center;
  margin-bottom: 26px;
}

.bnIntro__kicker{
  margin: 0 auto 10px;text-align:center;
  font-family: 'Oswald', sans-serif;
  font-weight: 600;
  letter-spacing: .26em;
  font-size: .78rem;
  color: rgba(245,241,232,.62);
}




/* “program paper” */
.bnIntro__body{
  /*background: rgba(47,15,18,.88);*/
  /*border: 1px solid rgba(214,177,90,.28);*/
  box-shadow: 0 18px 44px rgba(0,0,0,.28);
  padding: 26px 26px 22px;
color: rgba(255,255,255,.82);
}

.bnIntro__body p{
  margin: 0 0 16px;
  line-height: 1.9;
  letter-spacing: .02em;
}

.bnIntro__accent{
  font-weight: 800;
  letter-spacing: .04em;
  border-left: 3px solid #ad0233;
  padding-left: 14px;
}

.bnIntro__closing{
  margin-bottom: 0;
  font-weight: 800;
  letter-spacing: .04em;
}

/* ===== SP ===== */
@media (max-width: 960px){
  .bnIntro{ padding: 52px 0 60px; }
  .bnIntro__inner{ width: 94vw; }
  .bnIntro__lead{ font-size: 1.12rem; }
  .bnIntro__body{ padding: 20px 18px 18px; }
}

/* ===== COMMENT styling ===== */
@media (min-width:992px){
	
	.bnIntro__body p{text-align: center;
  margin: 0 auto 16px;
  line-height: 2;
  letter-spacing: .02em;
}
	
	
}

.bnIntro__voice{
  font-size: 1.1rem;
  letter-spacing: .06em;
}

.bnIntro__heart{
  display: inline-block;
  transform: translateY(-1px);
}

.bnIntro__closing{
  margin-top: 8px;
  font-weight: 800;
  letter-spacing: .08em;
}

.bnIntro__sign{
  margin-top: 38px;
  text-align: right;
  font-weight: 700;
  letter-spacing: .08em;
}


.kokuchi-content {
    padding: 30px;
    width: 100%;
    max-width:200px;
    margin: 0 auto;
    text-align: center;
}


.kokuchi-content img:hover,.kokuchi-content img:active {
  filter:   hue-rotate(320deg );opacity: 0.8;
    animation:none;
}


.yura{
   animation: yurayura 2.5s infinite;
  opacity: 1;
}

@keyframes yurayura {
 0%, 80% {
    transform: skew(0deg, 0deg);
  }
  5% {
    transform: skew(2deg, 2deg);
  }
  10% {
    transform: skew(-1deg, -1deg);
  }
  15% {
    transform: skew(1deg, 1deg);
  }
  20% {
    transform: skew(-2deg, -2deg);
  }
  25% {
    transform: skew(1deg, 1deg);
  }
  30% {
    transform: skew(-0.6deg, -0.6deg);
  }
  35% {
    transform: skew(0deg, 0deg);
  }
}
@media screen and (max-width:768px) {
.kokuchi-content {

    max-width:60%;
 
}
}/**/


/* ------------------------------------------------------------------- 
 * overlay banner
 * ------------------------------------------------------------------- */
.foot-kokuchi img {
  width: 130px;
  height: 133px;
}
.foot-kokuchi-img {
  width: 100%;
}
.foot-adjust {
  padding-left: 30px;
}
.fix-pc {
  position: fixed;
  animation-name: fadey_bottom_start;
  animation-duration: 9s;
  z-index: 998;
  left: 0;
  bottom: 0;
}
.fix-pc-wrap {
  margin: 0;
  line-height: 1;
}
.fix-pc-wrap a {
  display: flex;
  position: relative;
  padding: 0.1rem 0 0;
  min-width: 160px;
  transition: 0.3s;
}
.fix-pc-wrap a:hover {
  opacity: 0.8;
  filter: alpha(opacity=80);
}
/* ------------------------------------------------------------------- 
 * responsive:
 * overlay banner
 * ------------------------------------------------------------------- */
@media screen and (max-width:1024px) {
  .foot-kokuchi img {
    width: 90px;
    height: 99px;
  }
  .foot-kokuchi-img {
    width: 90px;
  }
  .foot-adjust {
    padding-left: 0px;
  }
  .fix-sp {
    width: 100%;
    max-width: 200px;
    position: fixed;
    animation-name: fadey_bottom_start;
    animation-duration: 9s;
    z-index: 998;
    left: 0;
    bottom: 0;
  }
  .fix-sp-wrap {
    margin: 0;
    line-height: 1;
  }
  .fix-sp-wrap a {
    display: flex;
    position: relative;
    padding: 0.1rem 0 0;
    min-width: 90px;
    transition: 0.3s;
  }
  .fix-sp-wrap a:hover {
    opacity: 0.8;
    filter: alpha(opacity=80);
  }
} /*end*/
@keyframes fadey_bottom_start {
  0% {
    opacity: 0;
  }
  90% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
/*-------------------------------------------------------------------*/
.mt-1, .pt-1 {
  padding-top: 0.5em;
}
.mt-2, .pt-2 {
  padding-top: 1em;
}
.mt-3, .pt-3 {
  padding-top: 1.5em;
}
.mt-4, .pt-4 {
  padding-top: 2em;
}
.mt-5, .pt-5 {
  padding-top: 2.5em;
}
.mb-1, .pb-1 {
  padding-bottom: 0.5em;
}
.mb-2, .pb-2 {
  padding-bottom: 1em;
}
.mb-3, .pb-3 {
  padding-bottom: 1.5em;
}
.mb-4, .pb-4 {
  padding-bottom: 2em;
}
.mb-5, .pb-5 {
  padding-bottom: 2.5em;
}
/* ------------------------------------------------------------------- 
 * e.t.c
/*-------------------------------------------------------------------*/
.pc {
  display: block !important;
}
.sp {
  display: none !important;
}
/* ------------------------------------------------------------------- 
 * responsive:
 *  e.t.c
 * ------------------------------------------------------------------- */
@media screen and (max-width: 992px) {
  .pc {
    display: none !important;
  }
  .sp {
    display: block !important;
  }
} /*end*/
/*===========================================================*/
/*ナビ
/*===========================================================*/
/* ===== Hamburger (PC/SP common) ===== */
.bnBurger{
  position: fixed;
  top: 18px;
  right: 18px;
  z-index: 10060;

  display: inline-flex;
  align-items: center;
  gap: 10px;

  padding: 10px 12px;
  border: 1px solid rgba(214,177,90,.28);
  background: rgba(0,0,0,.38);
  color: rgba(245,241,232,.92);
  cursor: pointer;

  backdrop-filter: blur(10px) saturate(1.05);
  -webkit-backdrop-filter: blur(10px) saturate(1.05);

  transition: background .2s ease, border-color .2s ease, transform .2s ease;
}

.bnBurger:hover{
  background: rgba(0,0,0,.52);
  border-color: rgba(214,177,90,.42);
  transform: translateY(-1px);
}

.bnBurger__label{
  font-family: 'Oswald', sans-serif;
  font-size: 12px;
  letter-spacing: .22em;
}

.bnBurger__lines{
  width: 22px;
  height: 16px;
  position: relative;
  display: inline-block;
}

.bnBurger__lines i{
  position: absolute;
  left: 0; right: 0;
  height: 2px;
  background: rgba(245,241,232,.92);
  transform-origin: center;
  transition: transform .24s ease, top .24s ease, opacity .2s ease;
}
.bnBurger__lines i:nth-child(1){ top: 0; }
.bnBurger__lines i:nth-child(2){ top: 7px; opacity: .9; }
.bnBurger__lines i:nth-child(3){ top: 14px; }

.bnMenu.is-open ~ .bnBurger,
.bnBurger.is-open{
  background: rgba(0,0,0,.62);
}

/* メニューが開いてる時はMENUボタンを消してクリックも奪わない */
body:has(.bnMenu.is-open) .bnBurger{
  opacity: 0;
  pointer-events: none;
}



/* ===== Overlay Menu ===== */
.bnMenu{
  position: fixed;
  inset: 0;
  z-index: 10040;
  display: block;

  opacity: 0;
  visibility: hidden;
  pointer-events: none;

  transition:
    opacity .28s ease,
    visibility 0s linear .28s;
}

.bnMenu.is-open{
  opacity: 1;
  visibility: visible;
  pointer-events: auto;

  transition:
    opacity .28s ease,
    visibility 0s;
}

.bnMenu__backdrop{
  position:absolute;
  inset:0;
  background: rgba(0,0,0,.62);

  opacity: 0;
  transition: opacity .28s ease;
}

.bnMenu.is-open .bnMenu__backdrop{
  opacity: 1;
}

/* panel */
.bnMenu__panel{
  position: absolute;
  top: 0;
  right: 0;
  height: 100%;
  width: min(520px, 92vw);

  background:
    radial-gradient(120% 90% at 30% 10%, rgba(255,255,255,.06), rgba(0,0,0,0) 55%),
    linear-gradient(to bottom, rgba(12,12,14,.98), rgba(6,6,7,.98));
  border-left: 1px solid rgba(214,177,90,.22);

  box-shadow: -30px 0 70px rgba(0,0,0,.55);
  padding: 18px 18px 22px;

  transform: translate3d(26px,0,0);
  opacity: 0;

  transition:
    transform .34s cubic-bezier(.22,.8,.22,1),
    opacity .24s ease;

  will-change: transform, opacity;
}

.bnMenu.is-open .bnMenu__panel{
  transform: translate3d(0,0,0);
  opacity: 1;
}

/* subtle gold hairlines */
.bnMenu__panel::before{
  content:"";
  position:absolute;
  left: 18px;
  right: 18px;
  top: 64px;
  height: 1px;
  background: linear-gradient(to right, transparent, rgba(214,177,90,.55), transparent);
  opacity: .9;
}

.bnMenu__head{
  position: relative;
  z-index: 2;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap: 14px;
  padding-bottom: 18px;
}

.bnMenu__brandTop{
  display:block;
  font-family: 'Oswald', sans-serif;
  font-size: 13px;
  letter-spacing: .34em;
  color: rgba(245,241,232,.78);
}

.bnMenu__brandSub{
  display:block;
  margin-top: 6px;
  font-size: 12px;
  letter-spacing: .12em;
  color: rgba(245,241,232,.50);
}

/* CLOSE button */
.bnClose{
  position: relative;
  z-index: 3;
  display:inline-flex;
  align-items:center;
  gap: 10px;
  padding: 10px 12px;
  border: 1px solid rgba(214,177,90,.28);
  background: rgba(255,255,255,.03);
  color: rgba(245,241,232,.92);
  cursor:pointer;
  transition: background .2s ease, border-color .2s ease, transform .2s ease;
}

.bnClose:hover{
  background: rgba(255,255,255,.06);
  border-color: rgba(214,177,90,.42);
  transform: translateY(-1px);
}

.bnClose__label{
  font-family: 'Oswald', sans-serif;
  font-size: 12px;
  letter-spacing: .22em;
}

.bnClose__x{
  width: 16px;
  height: 16px;
  position: relative;
}

.bnClose__x::before,
.bnClose__x::after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width: 16px;
  height: 2px;
  background: rgba(245,241,232,.92);
  transform-origin:center;
}

.bnClose__x::before{ transform: translate(-50%,-50%) rotate(45deg); }
.bnClose__x::after { transform: translate(-50%,-50%) rotate(-45deg); }

/* nav links */
.bnMenu__nav{
  padding: 18px 6px 0;
  display:grid;
  gap: 12px;
}

.bnMenu__link{
  display:flex;
  align-items: baseline;
  gap: 12px;

  padding: 12px 12px;
  border: 1px solid rgba(214,177,90,.14);
  background: rgba(255,255,255,.02);

  text-decoration:none;
  color: rgba(245,241,232,.92);

  font-family: 'Oswald', sans-serif;
  font-size: 18px;
  letter-spacing: .18em;

  opacity: 0;
  transform: translateX(10px);

  transition:
    background .2s ease,
    border-color .2s ease,
    transform .28s ease,
    opacity .28s ease;
}

/* 開いた時だけ順番に出す */
.bnMenu.is-open .bnMenu__link{
  opacity: 1;
  transform: translateX(0);
}

.bnMenu.is-open .bnMenu__link:nth-child(1){ transition-delay: .06s; }
.bnMenu.is-open .bnMenu__link:nth-child(2){ transition-delay: .10s; }
.bnMenu.is-open .bnMenu__link:nth-child(3){ transition-delay: .14s; }
.bnMenu.is-open .bnMenu__link:nth-child(4){ transition-delay: .18s; }
.bnMenu.is-open .bnMenu__link:nth-child(5){ transition-delay: .22s; }
.bnMenu.is-open .bnMenu__link:nth-child(6){ transition-delay: .26s; }

.bnMenu__link:hover{
  background: rgba(255,255,255,.05);
  border-color: rgba(214,177,90,.30);
  transform: translateX(0);
}

/* “赤キー”はhoverの細線だけ */
.bnMenu__link:hover::after{
  content:"";
  position:absolute;
  right: 12px;
  width: 34px;
  height: 2px;
  background:#ad0233;
}



.bnMenu__link{
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
}

/* 英語 */
.bnMenu__en{
  font-family: 'Oswald', sans-serif;
  font-size: 18px;
  letter-spacing: .18em;
}

/* 日本語（控えめ） */
.bnMenu__jp{
  font-family: "Noto Sans JP", sans-serif;
  font-size: 11px;
  letter-spacing: .12em;
  color: rgba(245,241,232,.62);
}



@keyframes bnFade{
  from{ opacity: 0; }
  to  { opacity: 1; }
}
@keyframes bnSlide{
  from{ transform: translateX(22px); opacity: 0; }
  to  { transform: translateX(0); opacity: 1; }
}
@keyframes bnItem{
  to{ opacity: 1; transform: translateX(0); }
}



/* SP tweak */
@media (max-width: 960px){
  .bnBurger{ top: 10px; right: 10px; }
  .bnMenu__panel{ width: min(560px, 96vw); }
  .bnMenu__link{ font-size: 16px; }
}


/* SP UP */
@media (max-width: 960px){

  .bnMenu__panel{
    width: min(560px,96vw);
    padding: 12px 14px 14px;
    overflow-y: auto;           /* ← 入り切らない時はスクロール */
    -webkit-overflow-scrolling: touch;
  }

  .bnMenu__head{
    padding-bottom: 10px;
  }

  .bnMenu__panel::before{
    top: 52px;
  }

  .bnMenu__nav{
    padding-top: 10px;
    gap: 6px;                   /* 12→6 */
  }

  .bnMenu__link{
    padding: 8px 10px;          /* 12px→8px */
  }

  .bnMenu__en{
    font-size: 15px;            /* 16→15 */
    letter-spacing: .14em;
    line-height: 1.1;
  }

  .bnMenu__jp{
    font-size: 10px;            /* 11→10 */
    line-height: 1.2;
  }

  .bnClose{
    padding: 7px 10px;
  }

  .bnClose__label{
    font-size: 11px;
  }

}



/* =========================
   Archive minimal links
========================= */

.archive-links{
  display:flex;
  justify-content:center;
  align-items:center;
  gap: 36px;

  padding: 24px 0;
}

/* ボタンというより“ロゴリンク” */
.archive-btn{
  display:block;
  opacity: .65;
  transition: opacity .25s ease, transform .25s ease;
}

/* SVGサイズ */
.archive-btn img{
  width: 150px;
  max-width: 40vw;
  height: auto;
  display:block;

  /* グレー寄せ（SVGが黒前提の場合） */
  filter: brightness(.85);
}

/* hover */
.archive-btn:hover{
  opacity: 1;
  transform: translateY(-1px);
}

/* SP */
@media (max-width: 768px){
  .archive-links{
    gap: 22px;
  }
  .archive-btn img{
    width: 140px;
  }
}









footer .footer {
  overflow: hidden;
  padding: 60px;
  position: relative;
}
footer .footer .footer_logo {filter: drop-shadow(0px 0px 10px rgba(3, 11,27, 0.9)) drop-shadow(0px 0px 10px rgba(3, 11,27, 0.8));
  max-width: 300px;
  width: 25%;
  margin: 60px auto 20px;

}

footer .footer .footer_sns {
  max-width: 160px;
  width: 50%;
  margin: 60px auto 20px;
   display: flex;
}

img.footer-x{width:65px;margin-right: 20px;}
img.footer-in{width:65px}


  footer .copyright {filter: drop-shadow(0px 0px 10px rgba(3, 11,27, 0.9)) drop-shadow(0px 0px 10px rgba(3, 11,27, 0.8));
    color: #666;
    margin: 0 auto;
    text-align: center;
    font-size: 0.9em;
  }

.footname {
color: rgba(255,255,255,.7);
  font-size: 1rem;
  margin: 0 auto;
  text-align: center;
  letter-spacing: 0;filter: drop-shadow(0px 0px 10px rgba(3, 11,27, 0.9)) drop-shadow(0px 0px 10px rgba(3, 11,27, 0.8));
}



@media screen and (max-width: 992px) {

  footer .footer {
    padding: 60px　0 120px;
  }
  .footname {
    font-size: 0.8rem;
  }

  footer .footer .footer_logo {
    width: 50%;
  }
  footer .copyright {

    font-size: 0.7em;
  }
  .footmeigi {
    max-width: 100%;
  }

} /*end*/
.fadeIn {
  opacity: 0;
  transition: 1s;
  transform: translateY(0px);
}
.fadeIn.is-inview {
  transform: translateY(0);
  opacity: 1;
}
.fadeInUp {
  opacity: 0;
  transition: 1s;
  transform: translateY(20px);
}
.fadeInUp.is-inview {
  transform: translateY(0);
  opacity: 1;
}

.blurUp {
  opacity: 0;
  transition: 1s;
filter: blur(30px);
  transform: scale(1.2);
}

.blurUp.is-inview {
  opacity: 1;
  filter: blur(0);
  transform: scale(1);
}

.blurUpLeft {
  opacity: 0;
  transition: 1s;
  filter: blur(50px);
  clip-path: inset(5%);
}
@media screen and (max-width: 992px) {
  .blurUpLeft {
    clip-path: inset(5%);
  }
}
.blurUpLeft.is-inview {
  opacity: 1;
  clip-path: inset(0%);
  filter: blur(0);
  transform: scale(1);
}
.clipDown {
  opacity: 0;
  transition: 2s;
  clip-path: inset(0% 0% 100% 0);
}
.clipDown.is-inview {
  clip-path: inset(0%);
  opacity: 1;
}
.kokuchi-area {
  padding: 0px 0 30px;
  text-align: center;
  width: 90%;
  max-width: 980px;
  display: flex;
  justify-content: center;
  align-items: stretch;
  margin: 0 auto;
}
.kokuchi-L {
  width: 50%;
  padding: 0 20px 0 0;
}
.kokuchi-R {
  width: 50%;
  padding: 0;
}
.kokcuhi-img {
  width: 90%;
  max-width: 540px;
}
.kokcuhi-img a img:hover {
  opacity: 0.5;
  transition: 0.3s;
}
@media screen and (max-width: 992px) {
  .kokuchi-area {
    display: block;
    padding: 15px 0;
    text-align: center;
    width: 90%;
    max-width: 540px;
    margin: 0 auto;
  }
  .kokuchi-L {
    width: 100%;
    padding: 0 0 20px 0;
  }
  .kokuchi-R {
    width: 100%;
  }
}


/* =========================
   Stage background system
   ========================= */

.bg-stage{
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;

  /* ベース背景（静止） */
  background: url("../img/bg-stage1.jpg") center / cover no-repeat;
  background-color: #000;

  /* ほんのり暗めに寄せて文字を勝たせる */
 filter: saturate(.85) contrast(1.05);
  transform: translateZ(0);
}

/* 1) 暗幕の“呼吸”っぽい明暗 */
.bg-stage::before{
  content:"";
  position:absolute; inset:0;

  /* 暗部を締めつつ、中心だけ少し持ち上げる */
  background:
    radial-gradient(70% 60% at 55% 45%, rgba(255,220,180,.14), rgba(0,0,0,.72) 60%, rgba(0,0,0,.88) 100%),
    radial-gradient(50% 45% at 35% 35%, rgba(255,180,120,.10), rgba(0,0,0,0) 60%),
    linear-gradient(to bottom, rgba(0,0,0,.55), rgba(0,0,0,.78));

  opacity: .95;
  mix-blend-mode: soft-light;

  animation: stageBreath 7.5s ease-in-out infinite;
  will-change: opacity, filter;
}

/* 2) フレア（光が横に流れる“錯覚”） */
.bg-stage::after{
  content:"";
  position:absolute; inset:-10%;

  /* 光筋テクスチャを“CSSだけ”で作る（軽い） */
  background:
    radial-gradient(12% 18% at 20% 40%, rgba(255,220,170,.22), rgba(255,220,170,0) 70%),
    radial-gradient(10% 15% at 75% 30%, rgba(255,210,160,.18), rgba(255,210,160,0) 70%),
    linear-gradient(105deg,
      rgba(255,230,190,0) 0%,
      rgba(255,230,190,.10) 12%,
      rgba(255,230,190,0) 24%,
      rgba(255,230,190,.08) 36%,
      rgba(255,230,190,0) 48%,
      rgba(255,230,190,.06) 60%,
      rgba(255,230,190,0) 72%,
      rgba(255,230,190,.10) 84%,
      rgba(255,230,190,0) 100%
    );

  mix-blend-mode: screen;
  opacity: .35;

  transform: translate3d(-6%, 0, 0) scale(1.02);
  animation: stageSweep 9s linear infinite;
  will-change: transform, opacity;
}



/* =========================
   Animations
   ========================= */

@keyframes stageBreath{
  0%, 100% { opacity: .92; filter: blur(0px); }
  50%      { opacity: 1.00; filter: blur(.4px); }
}

@keyframes stageSweep{
  0%   { transform: translate3d(-8%, 0, 0) scale(1.02); opacity: .22; }
  35%  { opacity: .40; }
  70%  { opacity: .28; }
  100% { transform: translate3d(8%, 0, 0) scale(1.02); opacity: .22; }
}


/* imgが基準サイズを作る（inlineの隙間やズレ防止） */
#top .bg_mc > img{
  display: block;
  width: 100%;
  height: auto;
}

/* overlayは画像と同じ範囲にぴったり */
.kvDiamonds{
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 3;
  mix-blend-mode: screen;
}
.kvD{
  position:absolute;
  width: var(--s, 16px);
  height: var(--s, 16px);
  transform: rotate(45deg) scale(.9);
  border-radius: 2px;

  background: radial-gradient(circle,
    rgba(255,255,255,1) 0%,
    rgba(255,245,220,.85) 22%,
    rgba(255,220,150,.35) 48%,
    rgba(255,220,150,0) 72%
  );

  opacity: 0;
  filter:
    drop-shadow(0 0 10px rgba(255,220,150,.35))
    drop-shadow(0 0 2px rgba(255,255,255,.55));

  animation: kvGlowTurn 5.6s ease-in-out infinite;
  animation-delay: var(--d, 0s);
    animation-duration: var(--dur, 5.6s); 
}

@keyframes kvGlowTurn{
  /* 最初と最後は“ほぼ見えない”状態で置いとく（出現感を消す） */
  0%, 18%{
    opacity: 0;
    transform: rotate(0deg) scale(.92);
    filter:
      drop-shadow(0 0 6px rgba(255,220,150,.18))
      drop-shadow(0 0 1px rgba(255,255,255,.25));
  }

  /* ゆっくり現れる */
  40%{
    opacity: .35;
    transform: rotate(18deg) scale(1.00);
    filter:
      drop-shadow(0 0 10px rgba(255,220,150,.24))
      drop-shadow(0 0 2px rgba(255,255,255,.35));
  }

  /* ピーク：45°回って一番光る */
  58%{
    opacity: .95;
    transform: rotate(90deg) scale(1.08);
    filter:
      drop-shadow(0 0 16px rgba(255,220,150,.32))
      drop-shadow(0 0 3px rgba(255,255,255,.55));
  }

  /* ゆっくり消える */
  78%{
    opacity: .22;
    transform: rotate(90deg) scale(.98);
    filter:
      drop-shadow(0 0 9px rgba(255,220,150,.20))
      drop-shadow(0 0 2px rgba(255,255,255,.28));
  }

  100%{
    opacity: 0;
    transform: rotate(90deg) scale(.92);
    filter:
      drop-shadow(0 0 6px rgba(255,220,150,.16))
      drop-shadow(0 0 1px rgba(255,255,255,.22));
  }
}


/* ダイヤに“短い光芒”を足して写真っぽく */
.kvD::before{
  content:"";
  position:absolute;
  inset:-90%;
  background:
    linear-gradient(to right,
      transparent 0%,
      rgba(255,255,255,0) 46%,
      rgba(255,255,255,.95) 50%,
      rgba(255,255,255,0) 54%,
      transparent 100%
    ),
    linear-gradient(to bottom,
      transparent 0%,
      rgba(255,255,255,0) 46%,
      rgba(255,255,255,.95) 50%,
      rgba(255,255,255,0) 54%,
      transparent 100%
    );
  opacity:.55;         /* ←強いと作り物っぽいので控えめ */
  transform: rotate(-45deg); /* ダイヤ回転と干渉して“×”になる */
  filter: blur(.15px);
}


/* =========================
   位置：写真のキラキラ位置寄せ（1202.jpg基準）
========================= */


/* シャンデリアまわり（写真の“×キラッ”が出てる帯＝だいたい35%付近） */
.kvD--c1{ left: 16%; top: 36%; }  /* メインに合わせる */
.kvD--c2{ left: 24%;  top: 24%; }  /* 左の点滅 */


/* TITLEまわり（下の） */
.kvD--t1{ left: 10.0%; top: 76.8%; }   /* 左寄りの文字内グリッター付近 */
.kvD--t2{ left: 80.0%; top: 70.4%; }   /* & 周辺 */
.kvD--t3{ left: 69.0%; top: 65.4%;  }  /* 少し上 */
.kvD--t4{ left: 86.0%; top: 79.4%;  }  /* 少し上 */

@media (max-width: 768px){
  .kvD{ transform: rotate(90deg) scale(.58); }
}



.ticketArchive__toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;

  position: relative;
  transition: all .25s ease;
}

/* 矢印（線で作る） */
.archiveArrow {
  width: 8px;
  height: 8px;
  border-right: 2px solid #fff;
  border-bottom: 2px solid #fff;

  transform: rotate(45deg);
  transition: transform .35s cubic-bezier(.22,.8,.22,1);
}

/* 開いたとき */
.ticketArchive.is-open .archiveArrow {
  transform: rotate(225deg); /* ▲になる */
}

.ticketArchive__body {
  display: block;
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transform: translateY(-6px);
  transition:
    max-height .45s cubic-bezier(.22,.8,.22,1),
    opacity .25s ease,
    transform .35s ease;
}

.ticketArchive.is-open .ticketArchive__body {
  max-height: 2600px;
  opacity: 1;
  transform: translateY(0);
}

.ticketArchive__toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  transition:
    background .25s ease,
    border-color .25s ease,
    transform .25s ease,
    box-shadow .25s ease;
}

.ticketArchive__toggle:hover {
  transform: translateY(-1px);
  box-shadow: 0 8px 20px rgba(0,0,0,.24);
}



/* =========================================================
   JOIN GUEST
========================================================= */
.joinGuest{
  position: relative;
  padding: 30px 0 76px;
}

.joinGuestBlock__head{
  position: relative;
  margin: 0 0 18px;
  padding: 18px 18px 20px;
  text-align: center;

  font-weight: 700;
  font-size: clamp(2.0rem, 3.2vw, 2.7rem);
  letter-spacing: .10em;
  line-height: 1.2;

  color: rgba(248,245,245,1);
  text-shadow:
    1px 1px 6px rgba(255,235,180,.35),
   -1px -1px 6px rgba(255,235,180,.35),
    2px -2px 10px rgba(220,170,90,.45),
   -2px 2px 10px rgba(220,170,90,.45),
    0 0 18px rgba(160,120,40,.45),
    0 0 32px rgba(90,70,30,.3);
}

/* タイトル */
.joinGuestBlock__head .joinGuest{
  display: block;
}

/* JP / EN 改行 */
.joinGuestBlock__head .joinGuestTitle__jp,
.joinGuestBlock__head .joinGuestTitle__en{
  display: block;
}

.joinGuestBlock__head .joinGuestTitle__jp{
  margin-top: 6px;
  font-size: 0.95rem;
}


.joinGuestBlock__head .joinGuestTitle__en{
  font-size: 1.85rem;
  letter-spacing: .26em;
}

/* 上下ライン */
.joinGuestBlock__head::before{
  content:"";
  position:absolute;
  left:16px;
  right:16px;
  height:1px;
  background: linear-gradient(to right, transparent, rgba(214,177,90,.62), transparent);
  opacity:.85;
}

.joinGuestBlock__head::before{ top:-30px; }


.joinGuest__inner{
  width: min(980px, 94vw);
  margin: 0 auto;
  display: grid;
  gap: 54px;
}

.joinGuestBlock__head{
  padding: 0 6px 10px;
}

.joinGuestPaper{
  padding: 15px 18px 20px;
}


/* artist */
  .joinGuestArtistCard{
    grid-template-columns: 1fr; /* ← 横→縦に変更 */
    gap: 16px;

    max-width: 420px;
    margin: 0 auto;
    text-align: center;
  }

/* ARTIST GUESTだけ */
.joinGuestPaper--artist{
  display:grid;
  grid-template-columns:repeat(2,420px);
  justify-content:center;
  gap:70px;
}

.joinGuestArtistCard__trigger,
.joinGuestCard__trigger{
  display:block;
  width:100%;
  border:0;
  background:none;
  padding:0;
  cursor:pointer;
  text-align:left;
}

.joinGuestArtistCard__thumb,
.joinGuestCard__thumb{
  display:block;
  overflow:hidden;
  background:#120d0d;
  border: 1px solid rgba(214,177,90,.30);
  box-shadow: 0 10px 26px rgba(0,0,0,.18);
}

.joinGuestArtistCard__thumb img,
.joinGuestCard__thumb img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  transition: transform .45s ease, opacity .25s ease;
	  aspect-ratio: 1 / 1;
}

.joinGuestArtistCard__trigger:hover img,
.joinGuestCard__trigger:hover img{
  transform: scale(1.03);
  opacity: .94;
}

.joinGuestArtistCard__body,
.joinGuestCard__body{
  padding: 12px 0 30px;    text-align:center;
}

.joinGuestArtistCard__name{  color: #111;
  background: linear-gradient(90deg, #d6b15a, #fff1c2, #d6b15a);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  margin:0 0 6px;
  font-size: 1.9rem;
  font-weight: 800;
  letter-spacing: .06em;line-height: 1.4;
}
.joinGuestCard__name{  color: #111;
  background: linear-gradient(90deg, #d6b15a, #fff1c2, #d6b15a);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  margin:0 0 6px;
  font-size: 1.5rem;
  font-weight: 800;
  letter-spacing: .06em;line-height: 1.4;
}
.joinGuestArtistCard__name small,.joinGuestCard__name small{ display: block;
  font-size: 0.8rem;
  font-weight: 400;letter-spacing:0;
}


.joinGuestArtistCard__meta,
.joinGuestCard__meta{
  font-size: .66rem;
  letter-spacing: .2em;
  margin-bottom: 6px;
  text-align: center;
}

/* ■部分 */
.joinGuestArtistCard__meta span,
.joinGuestCard__meta span{
  display:inline-block;
  padding: 0 3px 0 7px;

  border: 1px solid rgba(214,177,90,.3);
  color: #d6b15a;
  background: rgba(0,0,0,.4);

  font-weight: 600;
  letter-spacing: .3em;
}

.joinGuestArtistCard__dates,
.joinGuestCard__dates{
  line-height: 1.5;margin: auto;text-align:center;  display: block; 
  flex-wrap: wrap;
  justify-content: center;
  gap: 6px 10px;
}


.joinGuestArtistCard__dates a,
.joinGuestCard__dates a{font-size: 1.1rem;
  position: relative;
  display: block; 
  align-items: center;
  gap: 6px;

  color: rgba(255,255,255,.75);
  font-weight: 500;
  letter-spacing: .1em;
  text-decoration: none;
}

.joinGuestArtistCard__dates a:hover,
.joinGuestCard__dates a:hover{
 color: rgba(214,177,90,.75); 
}

/* 常時うっすら線 */
.joinGuestArtistCard__dates a::before,
.joinGuestCard__dates a::before{
  content:"";
  position:absolute;
  left:0;
  bottom:-3px;
  width:100%;
  height:1px;
  background: rgba(214,177,90,.35);
}

/* hoverで走る線 */
.joinGuestArtistCard__dates a::after,
.joinGuestCard__dates a::after{
  content:"";
  position:absolute;
  left:0;
  bottom:-3px;
  width:100%;
  height:1px;
  background: rgba(214,177,90,.95);

  transform: scaleX(0);
  transform-origin: left;
  transition: transform .25s ease;
}

.joinGuestArtistCard__dates a:hover::after,
.joinGuestCard__dates a:hover::after{ opacity: 1;
  transform: scaleX(1);
}

/* V矢印 */
.joinGuestArtistCard__dates a span::after,
.joinGuestCard__dates a span::after{
  content:"";
  display:inline-block;
  width:6px;
  height:6px;
  margin-left:6px;

  border-left:1px solid rgba(214,177,90,.8);
  border-bottom:1px solid rgba(214,177,90,.8);

  transform: rotate(-45deg);
  opacity:.8;

  transition: transform .2s ease, opacity .2s ease;
}

/* hoverでちょい動く */
.joinGuestArtistCard__dates a:hover span::after,
.joinGuestCard__dates a:hover span::after{
  transform: rotate(270deg) translateX(-2px);
  opacity: 1;
}

small.daynight{
  letter-spacing: .18em;
font-size: 0.7em;
  margin-left: .38em;

  font-family: "Noto Sans JP", sans-serif;
  vertical-align: .08em;
}

/* 萬みきお 出演見合わせ */
.joinGuestCard__cancel{
  margin: 10px auto 0;text-align: center;
  color: rgba(255,255,255,.82);
  font-size: .8rem;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: .04em;
}

/* family grid */
.joinGuestFamily__grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px 14px;
}


/* アーティストも写真サイズ調整 */
@media (min-width: 993px){

  .joinGuestArtistCard__thumb{
    width: 86%;
    margin: 0 auto 10px;
  }

  .joinGuestArtistCard__body{
    padding-top: 0;
  }

}



/* 写真サイズは揃える */
/* PC: 3 / 3 / 2 / 1 配置 */
@media (min-width: 993px){

  .joinGuestFamily__grid{
    display:grid;
    grid-template-columns: repeat(12, 1fr);
    gap: 22px 24px;
  }

  .joinGuestCard{
    grid-column: span 4;
    transform: none;
  }

  /* ===== 1段目（3人） ===== */
  .joinGuestCard:nth-child(1){ grid-column: 1 / span 4; }
  .joinGuestCard:nth-child(2){ grid-column: 5 / span 4; }
  .joinGuestCard:nth-child(3){ grid-column: 9 / span 4; }

  /* ===== 2段目（3人） ===== */
  .joinGuestCard:nth-child(4){ grid-column: 1 / span 4; }
  .joinGuestCard:nth-child(5){ grid-column: 5 / span 4; }
  .joinGuestCard:nth-child(6){ grid-column: 9 / span 4; }

  /* ===== 3段目（2人・中央寄せ） ===== */
  .joinGuestCard:nth-child(7){ grid-column: 3 / span 4; }
  .joinGuestCard:nth-child(8){ grid-column: 7 / span 4; }

  /* ===== 4段目（1人・中央寄せ） ===== */
  .joinGuestCard:nth-child(9){ grid-column: 5 / span 4; }
} /**/
    

/* modal */
.joinProfileModal{
  position: fixed;
  inset: 0;
  z-index: 10080;

  opacity: 0;
  visibility: hidden;
  pointer-events: none;

  transition: opacity .35s ease;
}

.joinProfileModal.is-open{
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

/* 背景 */
.joinProfileModal__backdrop{
  position:absolute;
  inset:0;
  background: rgba(0,0,0,.72);
  backdrop-filter: blur(4px);

  opacity: 0;
  transition: opacity .35s ease;
}

.joinProfileModal.is-open .joinProfileModal__backdrop{
  opacity: 1;
}

/* ダイアログ（ぬるっとの主役） */
.joinProfileModal__dialog{
  position: absolute;
  top: 50%;
  left: 50%;
  width: min(920px, calc(100vw - 32px));

  transform: translate(-50%, -46%) scale(.96);
  opacity: 0;

  background: rgba(247,245,240,.98);
  color: #111;
  border: 1px solid rgba(214,177,90,.30);
  box-shadow: 0 30px 70px rgba(0,0,0,.42);
  padding: 26px 24px 24px;

  transition:
    transform .4s cubic-bezier(.22,.8,.3,1),
    opacity .3s ease;
	
	  max-height: 85vh;   /* 超重要 */
  overflow-y: auto;   /* 縦スクロール有効 */
  -webkit-overflow-scrolling: touch; /* iOS対応 */
	
}

/* 開いた時 */
.joinProfileModal.is-open .joinProfileModal__dialog{
  transform: translate(-50%, -50%) scale(1);
  opacity: 1;
  transition-delay: .05s;
}

/* CLOSEボタン */
.joinProfileModal__close{
  position: sticky;
  top: 0;

  display: flex;           /* ← flexにする */
  width: 100px;            /* ← 指定幅 */

  margin-left: auto;       /* ← 右寄せの本体 */

  align-items: center;
  justify-content: center; /* ← 中身は中央寄せ */

  z-index: 20;

  gap: 10px;
  padding: 5px 12px;

  border: 1px solid rgba(17,17,17,.28);
  background: rgba(17,17,17,.92);
  color: #fff;

  cursor: pointer;

  font-family: 'Oswald', sans-serif;
  font-size: 12px;
  letter-spacing: .22em;
  line-height: 1;

  transition:
    background .2s ease,
    border-color .2s ease,
    transform .2s ease;
}

.joinProfileModal__close:hover{
  background: rgba(17,17,17,1);
  border-color: rgba(214,177,90,.6);
  transform: translateY(-1px);
}

/* 既存の大きい×は消す */
.joinProfileModal__close::before{
  content: none;
}

/* bnClose流用アイコンをモーダル内では白に */
.joinProfileModal__close .bnClose__x::before,
.joinProfileModal__close .bnClose__x::after{
  background: #fff;
}

.joinProfileModal__close .bnClose__label{
  color: #fff;
}


/* 中身 */
.joinProfileModal__grid{
  display:grid;
  grid-template-columns: 280px 1fr;
  gap: 24px;
  align-items:start;
}

.joinProfileModal__photo img{
  display:block;
  width:100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border: 1px solid rgba(214,177,90,.30);
}

.joinProfileModal__role{
  margin:0 0 8px;
  font-size:.75rem;
  font-weight:800;
  letter-spacing:.18em;
  color: rgba(17,17,17,.52);
}

.joinProfileModal__name{
  margin:0 0 15px;
  font-size: 1.5rem;
  font-weight: 800;
  letter-spacing: .06em;
  color:#111;
  text-align:left;
  text-shadow:none;
}
.joinProfileModal__name small{
  display:block;
  margin-top:4px;
  font-size:.55em;
  font-weight:400;
  letter-spacing:0;
  opacity:.75;
}
.joinProfileModal__text{
  color: rgba(17,17,17,.84);
  line-height:1.7;
  font-size:.98rem;
}

/* ===============================
   SP
=============================== */
@media (max-width: 992px){
  .joinGuest{
    padding: 20px 0 60px;
  }

  .joinGuestPaper{
    padding: 16px 14px 18px;
  }

  .joinGuestArtistCard{
    grid-template-columns: 1fr;
    gap: 14px;
  }

  /* ARTIST GUESTだけ */
    .joinGuestPaper--artist{
    grid-template-columns:1fr;
  }
    
  .joinGuestArtistCard__thumb{
    max-width: 320px;
    margin: 0 auto;
  }

  .joinGuestCard__thumb{
    max-width: 260px;
    margin: 0 auto;
  }

  .joinGuestArtistCard__dates{
    text-align:center;
  }

  .joinProfileModal__dialog{
    width: min(94vw, 720px);
    max-height: 88vh;
    padding: 18px 14px 20px;
  }

  .joinProfileModal__grid{
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .joinProfileModal__photo{
  max-width: 180px; /* ←小さく */
    margin: 0 auto;
  }

	.joinProfileModal__role{
  font-size:.75rem;
   margin: 0 auto;text-align: center;
}
	
  .joinProfileModal__name{
    font-size: 1.4rem;   margin: 0 auto 20px;text-align: center;
  }
}/**/



.tourShow__guest{
  padding: 8px 0 16px;
}

.tourShow__guestLabel{
  display: inline-block;
  margin-bottom: 10px;
  padding: 4px 10px 3px;
  background: #8f1230;
  color: #fff;
  font-family: 'Oswald', sans-serif;
  font-size: .75rem;
  letter-spacing: .18em;
  line-height: 1;
}

.tourShow__guestNames{
  display: flex;
  flex-wrap: wrap;
  gap: 10px 14px;
}

.tourShow__guestNames span{
  display: inline-block;
  font-size: 1.15rem;padding:0 0 2px 2px;
  line-height: 1.2;
  font-weight: 500;
  color: #222;
  white-space: nowrap;
}

.tourShow__guestNames span.tourShow__guest-main{
  flex: 0 0 100%;
  margin-bottom: 3px;
  font-size: 1.25rem;
  font-weight: 700;
}

/* 複数メインにも対応*/
.tourShow__guestNames span[data-main]{
  flex: 0 0 100%;
}
.tourShow__guestNames small{font-size:0.66rem;}

.tourShow__guestNotice{
  margin: 12px 0 0;
  font-size: .82rem;
  line-height: 1.6;
}
.tourShow__guestNotice a{
  color: #8f1230;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.tourShow__guestNotice a:hover{
  text-decoration: none;
}

/* =========================
   JOIN GUEST スパークル 
=========================-*/


.joinGuestArtistCard__thumb,
.joinGuestCard__thumb{
  position: relative;
  overflow: hidden;
}

.fx-sparkle{
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 5;
}

.fx-origin{
  position: absolute;
  top: 2%;
  right: 6%;
  width: 138px;
  height: 108px;
}

.fx-p{
  position: absolute;
  left: var(--sx);
  top: var(--sy);
  width: var(--size);
  height: var(--size);
  border-radius: 50%;
  opacity: 0;
  will-change: transform, opacity;

  background: radial-gradient(circle,
    rgba(255,255,255,1) 0%,
    rgba(255,242,205,.98) 16%,
    rgba(255,214,120,.92) 34%,
    rgba(255,182,72,.58) 56%,
    rgba(255,182,72,.18) 68%,
    rgba(255,182,72,0) 80%
  );

  filter:
    blur(.12px)
    drop-shadow(0 0 7px rgba(255,196,88,.95))
    drop-shadow(0 0 15px rgba(255,182,72,.55));

  animation-name: sparkleDrop;
  animation-timing-function: linear;
  animation-iteration-count: infinite;
}

/* 粒ごとにサイズ・開始位置・落下量・速度・遅延を変える */
.fx-p1{
  --size: 15px;
  --sx: 14%;
  --sy: 4%;
  --x: -2px;
  --y: 42px;
  animation-duration: 2.9s;
  animation-delay: 0s;
}

.fx-p2{
  --size: 10px;
  --sx: 68%;
  --sy: 0%;
  --x: 1px;
  --y: 58px;
  animation-duration: 3.7s;
  animation-delay: .35s;
}

.fx-p3{
  --size: 8px;
  --sx: 44%;
  --sy: 10%;
  --x: -1px;
  --y: 66px;
  animation-duration: 4.4s;
  animation-delay: .8s;
}

.fx-p4{
  --size: 11px;
  --sx: 84%;
  --sy: 18%;
  --x: 2px;
  --y: 50px;
  animation-duration: 3.2s;
  animation-delay: 1.1s;
}

.fx-p5{
  --size: 6px;
  --sx: 24%;
  --sy: 28%;
  --x: -1px;
  --y: 74px;
  animation-duration: 4.9s;
  animation-delay: 1.5s;
}

.fx-p6{
  --size: 5px;
  --sx: 56%;
  --sy: 36%;
  --x: 1px;
  --y: 70px;
  animation-duration: 4.1s;
  animation-delay: 1.9s;
}

.fx-p7{
  --size: 4px;
  --sx: 8%;
  --sy: 22%;
  --x: -2px;
  --y: 56px;
  animation-duration: 3.5s;
  animation-delay: 2.2s;
}

.fx-p8{
  --size: 3px;
  --sx: 92%;
  --sy: 8%;
  --x: 2px;
  --y: 62px;
  animation-duration: 4.7s;
  animation-delay: 2.6s;
}

/* 落下だけ。横はごく小さく */
@keyframes sparkleDrop{
  0%{
    opacity: 0;
    transform: translate3d(0, -16px, 0) scale(.25);
  }
  12%{
    opacity: .95;
  }
  70%{
    opacity: .55;
  }
  100%{
    opacity: 0;
    transform: translate3d(var(--x), var(--y), 0) scale(.42);
  }
}

/* 近藤さんだけ少し強く */
.joinGuestArtistCard__thumb .fx-p{
  filter:
    blur(.1px)
    drop-shadow(0 0 9px rgba(255,200,94,1))
    drop-shadow(0 0 18px rgba(255,186,72,.62))
    drop-shadow(0 0 28px rgba(255,170,52,.26));
}




/* ファミリーに使うなら弱く */


.joinGuestCard__thumb .fx-p{
  filter:
    blur(.15px)
    drop-shadow(0 0 4px rgba(255,196,88,.45))
    drop-shadow(0 0 10px rgba(255,182,72,.22));
}

/* 粒減らす */
.joinGuestCard__thumb .fx-p5,
.joinGuestCard__thumb .fx-p6,
.joinGuestCard__thumb .fx-p7,
.joinGuestCard__thumb .fx-p8{
  display: none;
}


@media (max-width: 768px){
  .fx-origin{
    top: 1%;
    right: 3%;
    width: 108px;
    height: 82px;
  }

  .fx-p1{ --size: 12px; }
  .fx-p2{ --size: 8px; }
  .fx-p3{ --size: 6px; }
  .fx-p4{ --size: 9px; }
  .fx-p5{ --size: 5px; }
  .fx-p6{ --size: 4px; }
  .fx-p7{ --size: 3px; }
  .fx-p8{ --size: 2px; }
}

/* =========================
   FAMILY用（控えめ版）
========================= */

.joinGuestCard__thumb .fx-origin{
  top: 4%;
  right: 4%;
  width: 160px;
  height: 120px;
}

.joinGuestCard__thumb .fx-p{
  filter:
    blur(.15px)
    drop-shadow(0 0 4px rgba(255,196,88,.35))
    drop-shadow(0 0 8px rgba(255,182,72,.18));
}

/* 粒数減らす（4つだけ） */
.joinGuestCard__thumb .fx-p5,
.joinGuestCard__thumb .fx-p6,
.joinGuestCard__thumb .fx-p7,
.joinGuestCard__thumb .fx-p8{
  display: none;
}

/* 動き弱く */
.joinGuestCard__thumb .fx-p1{
  --y: 22px;
  animation-duration: 5.2s;
}

.joinGuestCard__thumb .fx-p2{
  --y: 26px;
  animation-duration: 5.8s;
}

.joinGuestCard__thumb .fx-p3{
  --y: 28px;
  animation-duration: 6.2s;
}

.joinGuestCard__thumb .fx-p4{
  --y: 24px;
  animation-duration: 5.6s;
}



/* モーダル内コメント */
.joinProfileModal__comment{
  display: none;
  margin: 0 ;
  padding: 16px 0;


  color: rgba(17,17,17,.88);
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.8;
  letter-spacing: .04em;
}

.joinProfileModal__comment.is-show{
  display: block;
}


/* fukidashi */
.commentIcon{
  --bg: rgba(20,20,20,.95);
  --line: rgba(214,177,90,.7);

  position: absolute;
  right: 12px;
  bottom: 12px;

  width: 36px;
  height: 26px;

  background: var(--bg);
  border: 1px solid var(--line);

  /* ←ここが一番効く */
  border-radius: 4px;
}

/* 尻尾 */
.commentIcon::after{
  content: "";
  position: absolute;

  right: 14px;
  bottom: -4px;

  width: 8px;
  height: 8px;

  background: var(--bg);
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);

  transform: rotate(45deg);

  /* ←ここ重要 */
  z-index: 0;
}
/* つなぎは消す */
.commentIcon::before{
  content: none;
}

.commentIcon i{
  position: absolute;
  left: 9px;
  height: 1px;
  background: rgba(255,255,255,.9);
  border-radius: 999px;
}

.commentIcon i:nth-child(1){
  top: 9px;
  width: 18px;
}

.commentIcon i:nth-child(2){
  top: 15px;
  width: 14px;
}

/* ホバーでちょい浮かせる（効く） */
.joinGuestArtistCard__trigger:hover .commentIcon{
  transform: translateY(-2px);
  opacity: .95;
}


/* 共通 */
.guestBanner{
  display: block;
}

.guestBanner img{
  width: 100%;
  height: auto;
  display: block;
}

/* ======================
   基準（これ必須）
====================== */


/* ======================
   共通デザイン
====================== */
.guestMiniLink{  position: relative; /* ←これ追加 */
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;

  text-align: center;
  text-decoration: none;
  letter-spacing: .14em;

  color: #fff;

  /* 円ボタンと馴染ませる光 */
  filter: drop-shadow(0 0 10px rgba(255,255,255,.25));
  z-index: 6;
	
  transition: transform .25s ease, filter .25s ease;	
}

/* 英語 */
.guestMiniLink__en{
  font-family: 'Shippori Mincho B1', serif;
  font-size: 1.2rem;
  font-weight: 700;
  color: #d6b15a;
}

/* 日本語 */
.guestMiniLink__jp{
  font-size: .88rem;
  font-weight: 700;
  color: rgba(255,255,255,.85);
}

/* 下の光ライン */
.guestMiniLink::after{
  content:"";
  width: 120px;
  height: 1px;
  margin-top: 6px;

  background: linear-gradient(
    90deg,
    transparent,
    rgba(255,255,255,.9),
    transparent
  );

  box-shadow: 0 0 10px rgba(255,255,255,.75);

  transition: .3s;
}

/* hover */
/* 本体 */
.guestMiniLink:hover{opacity: 0.8;
  filter: drop-shadow(0 0 14px rgba(255,255,255,.9));
}

/* ======================
   PC（KV上に浮かせる）
====================== */
.guestMiniLink--pc{
  position: absolute;
  left: 50%;
  bottom: 42px;

  transform: translateX(-50%);
}

/* ======================
   SP（タイトル下）
====================== */
.guestMiniLink--sp{
  display: none;
  margin: 20px auto 40px;
}

/* ======================
   切り替え
====================== */
@media (max-width: 768px){

  .guestMiniLink--pc{
    display: none;
  }

  .guestMiniLink--sp{
    display: inline-flex;
  }
}

/* セクション主役設計 */
#topics{
  padding: 30px 0 50px;
}

.bnIntro{
  padding: 50px 0 70px;
}

/* ここから主役 */
.joinGuest{
  padding: 95px 0 110px;
}

#schedule{
  padding-top: 120px;
  padding-bottom: 100px;
}

/* 見出し下の呼吸 */
.joinGuest h2,
#schedule h2{
  margin-bottom: 46px;
}

/* ゲスト内の間も広げる */
.joinGuest__inner{
  gap: 76px;
}

/* スケジュールの都市ブロック間 */
.tourSchedule__cities{
  gap: 44px;
}

/* NEW */
.dateUp{
  display:inline-flex;
  align-items:center;
  gap:.5em;
}
.dateUp em{
  width:22px;
  height:22px;

  display:inline-flex;
  align-items:center;
  justify-content:center;

  border-radius:50%;

  background:#ad0233;
  color:#fff;

font-family: "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN",  Meiryo, sans-serif;
  font-size:8px;
  font-weight:700;
  letter-spacing:0.1em;


}