/* ==============================================================
   TOKI: Clean CSS
   Keep: .p-news / .p-schedule / .p-ticket / .p-single
   Hide: #faq, #goods, #special (temporary)
   Breakpoint: 960px
================================================================= */

/* ==============================================================
   RESET CSS
================================================================= */
/**
 * uaplus.css version 0.0.1
 */
*,*::after,*::before{box-sizing:border-box}:focus-visible{outline-offset:3px}:where(html){-webkit-text-size-adjust:none;text-size-adjust:none}:where(html){line-height:1.5}:where(html){scrollbar-gutter:stable}:where(h1){font-size:2em;margin-block:.67em}:where(abbr[title]){cursor:help;text-decoration-line:underline;text-decoration-style:dotted}@media (forced-colors:active){mark{color:HighlightText;background-color:Highlight}}:where(del,ins,s)::before,:where(del,ins,s)::after{clip-path:inset(100%);clip:rect(1px,1px,1px,1px);height:1px;width:1px;overflow:hidden;position:absolute;white-space:nowrap;content:"test"}:where(s)::before{content:"stricken text start "}:where(s)::after{content:" stricken text end"}:where(del)::before{content:"deletion start "}:where(del)::after{content:" deletion end"}:where(ins)::before{content:"insertion start "}:where(ins)::after{content:" insertion end"}:where(audio,iframe,img,svg,video){max-block-size:100%;max-inline-size:100%}:where(fieldset){min-inline-size:0}:where(label):has(+:where(textarea,input,select)){display:block}:where(textarea:not([rows])){min-block-size:6em}:where(button,input,select,textarea){font-family:inherit;font-size:inherit}:where([type="search"]){-webkit-appearance:textfield}@supports (-webkit-touch-callout:none){:where([type="search"]){border:1px solid -apple-system-secondary-label;background-color:canvas}}:where([type="tel"],[type="url"],[type="email"],[type="number"]):not(:placeholder-shown){direction:ltr}:where(table){border-collapse:collapse;border:1px solid}:where(th,td){border:1px solid;padding:.25em .5em}:where(dialog)::backdrop{background:oklch(0% 0 0 / .3)}:where(dialog),:where(dialog)::backdrop{opacity:0;transition:opacity 300ms ease-out,display 300ms allow-discrete,overlay 300ms allow-discrete}:where(dialog[open]),:where(dialog[open])::backdrop{opacity:1}@starting-style{:where(dialog[open]),:where(dialog[open])::backdrop{opacity:0}}[hidden]:not([hidden="until-found"]){display:none!important}

/* リストリセット */
ul,
ol {
  list-style: none;
  padding-left: 0;
  margin-left: 0;
}
/* ==============================================================
   VARS
================================================================= */
:root {
  --color-bg: #000;
  --color-white: #fff;
  --color-main: #2D363E;
  --color-accent: #2D363E;     /* gold */
  --color-line2: #c69c6d;      /* borders */
  --color-red: #ff1616;
  --color-blue: #007CF8;  /* titles / schedule */    /* corner dots */
  --ease_out: cubic-bezier(.2,.8,.2,1);
}
/* ==============================================================
   BASE
================================================================= */
html {
  font-family: "Oswald","YuGothic","游ゴシック","Yu Gothic",sans-serif;
  font-weight: 700;
  font-size: 56%; /* 16px基準 → 約9px相当で全体を一段コンパクトに */
}

@media (max-width: 960px) {
  html {
    font-size: 60%; /* SPは少し大きめに戻して読みやすさキープ */
  }
}

body {
  color: var(--color-main);
  background: var(--color-bg);
  line-height: 1.8;
  letter-spacing: 0.08em;
}
body::before{
  content:"";
  opacity:0.75;
  position:fixed;
  inset:-6%;
  z-index:-1;
  pointer-events:none;

  background:
    linear-gradient(to bottom, rgba(0,0,0,.78) 0%, rgba(0,0,0,.28) 45%, rgba(0,0,0,.18) 100%),
    url("/static/bucktick/official/feature/specialsite_fto_2026-V4QQByVBYmDi/images/YMsxnnpM2jh2_background.webp")
    no-repeat center center / cover;

  will-change: transform;
  animation: smokeFloat 28s ease-in-out infinite alternate;
}

@keyframes smokeFloat {

  0%{
    transform: translate3d(0,0,0) scale(1);
  }

  50%{
    transform: translate3d(-3%, -2%, 0) scale(1.08);
  }

  100%{
    transform: translate3d(3%, -4%, 0) scale(1.12);
  }

}


body::after{
  content:"";
  position:fixed;
  inset:-10%;
  z-index:-1;
  pointer-events:none;

  background:url("/static/bucktick/official/feature/specialsite_fto_2026-V4QQByVBYmDi/images/YMsxnnpM2jh2_background.webp")
  no-repeat center bottom / cover;

  opacity:.25;
  mix-blend-mode:screen;
  filter:blur(16px);

  animation: smokeDrift 18s ease-in-out infinite alternate;
}

@keyframes smokeDrift{

  0%{
    transform:translate3d(-4%,2%,0) scale(1.05);
  }

  100%{
    transform:translate3d(5%,-3%,0) scale(1.15);
  }

}
/* 背景スクロール固定（JSで body に付く） */
body.is-nav-open {
  overflow: hidden;
}

/* PCのナビ：横並びで右側に */
@media (min-width: 961px) {
  #globalNav {
    max-width: calc(100% - 200px);
  }

  .navWrap {
    display: flex;
    justify-content: flex-end;
    align-items: center;
  }

  .mainNav a {
    font-size: 1.3rem;
    letter-spacing: 0.16em;
  }
}

/* SPナビ：全画面オーバーレイで「ヘッダー隠した」印象 */
@media (max-width: 960px) {
  #globalNav {
    position: fixed;
    inset: 0;
    display: none;
    z-index: 9998;
    background: rgba(0,0,0,0.96);
    backdrop-filter: blur(4px);
  }

  #globalNav.is-open {
    display: block;
  }

  .navWrap {
    width: 100vw;
    height: 100svh;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .mainNav {
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 2.4rem;
  }

  .mainNav a {
    font-size: 2rem;
    letter-spacing: 0.2em;
  }
  #top img {
  width: 100% !important;
}
}

img{
  max-width:100%;
  height:auto;
  display:block;
}
#top img {
  width: 60%;
  display: block;
  margin: 23rem auto 20rem;
  -webkit-user-drag: none;
  -webkit-touch-callout: none; /* iPhone長押しメニュー抑制 */
  user-select: none;
  -webkit-user-select: none;
  pointer-events: none; /
}
.header__logo img{
  width: 60%;
}

a {
  color: var(--color-blue);
  text-decoration: none;
  transition: color .3s var(--ease_out), opacity .3s var(--ease_out);
}

.hamburger-nav__list--01 {
  font-size: 22px;
}
.hamburger-nav__list--01 a {
  color: var(--color-blue);
  text-decoration: none;
  transition: color .3s var(--ease_out), opacity .3s var(--ease_out);
}

@media (hover:hover) and (pointer:fine) {
  a:hover { opacity: 1; }
}

.p-section { position: relative; }

.p-title__text.js-sticky-title{
  will-change: transform;
}


@media (max-width: 960px) {
  #top .p-section__container {
    margin-top: 6rem;
  }
}



/* 251211 追加 */

.is-sp {
  display: none;
}

.is-tb-pc a {
  display: none;
  color: var(--color-white);
}
@media (min-width: 961px) {
  .is-tb-pc {
    display: block;
  }
}
@media (max-width: 960px) {
  .is-tb-pc {
    display: none;
  }
  .is-sp {
    display: block;
  }
}

.header {
  display: flex;
  z-index: 10001;
  top: 0;
  left: 0;
  align-items: center;
  justify-content: center;
  width: 100%;
  position: fixed;
    transition:
    transform .45s cubic-bezier(.22,.61,.36,1),
    opacity .45s ease,
    background-color .35s ease;
  will-change: transform, opacity;
}
.header.is-hide{
  transform: translateY(-110%);
}

.header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 95%;
  height: 100%;
  padding: 0 20px 0px;
  z-index: 3;
  position: relative;
  background-color: #2D363E;
    border-radius: 20px;
    margin: 10px 0px;
}
@media (max-width: 960px) {
  .header__inner {
    background: #2D363E;
     position: relative;
    z-index: 10001;
  }
  .hamburger-button{
    position: relative;
    z-index: 10003;
  }

}
.header__left,
.header__right {
  display: flex;
  align-items: center;
  height: 100%;
}
.header__left .header__nav ul,
.header__right .header__nav ul {
  display: flex;
  align-items: center;
  gap: 3rem;
  font-weight: 600;
  font-size: 2rem;
}

.header__left .header__nav ul a,
.header__left .header__nav ul button,
.header__left .header__nav ul input,
.header__right .header__nav ul a,
.header__right .header__nav ul button,
.header__right .header__nav ul input {
  position: relative;
  transition: 0.2s ease-in-out;
}
.header__left .header__nav ul a:not(.header__nav--button),
.header__left .header__nav ul button:not(.header__nav--button),
.header__right .header__nav ul a:not(.header__nav--button),
.header__right .header__nav ul button:not(.header__nav--button) {
  display: block;
}

.header__right .header__nav ul {
  justify-content: flex-end;
}

.header__logo {
  margin-right: 1.875rem;
  max-width: 200px;
}

@media (max-width: 960px) {
  .header__logo {
    margin-right: 1.875rem;
    max-width: 100px;
  }
}

.hamburger-button {
  position: relative;
  aspect-ratio: 1;
  width: 30px;
  height: 26px;
  translate: 0 0;
  background: transparent;
  appearance: none;
  outline: none;
  border: none;
}
.hamburger-button span,
.hamburger-button:before,
.hamburger-button:after {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100%;
  height: 0.125rem;
  background: #fff;
  content: "";
  transition: translate 0.2s 0.2s, rotate 0.1s;
}
.hamburger-button:before {
  translate: -50% -6px;
  rotate: 0deg;
}
.hamburger-button:after {
  translate: -50% 6px;
  rotate: 0deg;
}
.hamburger-button span {
  translate: -50% 0;
  transition: scale 0.1s;
}
.hamburger-button.is-open span {
  scale: 0 1;
}
.hamburger-button.is-open:before,
.hamburger-button.is-open:after {
  transition: translate 0.2s, rotate 0.3s 0.2s ease-out;
}
.hamburger-button.is-open:before {
  translate: -50% 0rem;
  rotate: 225deg;
}
.hamburger-button.is-open:after {
  translate: -50% 0rem;
  rotate: -225deg;
}

.hamburger-nav {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  translate: -100% 0;
  backdrop-filter: blur(10px);
  transition: 0.2s ease-in;
  z-index: 10000;
  padding: 120px 4%;
  background: #000;
}

.hamburger-nav li {
  translate: -0.3125rem 0;
  opacity: 0;
  transition: 0.4s ease;
}
.hamburger-nav.is-open {
  transform: translateX(0);
}
.hamburger-nav.is-open li {
  translate: 0 0;
  opacity: 1;
  font-size: 2em;
    text-align: left;
    padding: 0 0.8em;
}

body.is-nav-open {
  overflow: hidden;
}

/* end//251211 追加 */

@media (min-width: 961px) {
  /* セクション全体を2カラムに */
  .p-section__container {
    align-items: center;
    gap: 3.5rem;
    margin: 0 auto;
    max-width: 1500px;
    padding: 4rem 48px 0rem;
  transition: padding 0.4s var(--ease_out);
  position: relative;
  z-index: 2;
  margin-bottom: 8rem;
  }

  /* 左カラム：縦SCHEDULEエリア */
  .p-section__header {
    flex: 0 0 clamp(70px, 9vw, 110px); /* 画像みたいな縦帯の幅 */
    padding-top: 0.5rem;
  }

  .p-section__inner {
    flex: 1 1 auto;
  }

#schedule .p-section__inner {
  padding-left: 0;
  padding-right: 0;
  margin-top: 15px;
}

/* p-schedule 本体も中央に */
#schedule .p-schedule {
transform: translateX(-1px);

}

/* NEWS 日付サイズ：画面幅で可変 */
.p-news_article__date-day {
  font-size: clamp(2.2rem, 3vw, 3.1rem);
}

/* SCHEDULE 日付・会場も可変 */
.p-schedule_data__date {
  font-size: clamp(2.4rem, 3.2vw, 3.8rem);
}

.p-schedule_data__place {
  font-size: clamp(1.6rem, 2.2vw, 2.2rem);
}

/* ユーティリティ */
.u-center {
  display: flex;
  justify-content: center;
  align-items: center;
}

.u-visuallyhidden {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap; border: 0;
}

/* 共通ボタン（必要ならそのまま使用可） */
.u-btn {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  gap: .6em;
  min-width: 220px;
  height: 56px;
  padding: 0 1.6em;
  border-radius: 999px;
  line-height: 1.2;
  font-weight: 700;
  background: var(--color-accent);
  color: #000;
}

@media (max-width: 960px) {
  .u-btn {
    width: 70vw;
    max-width: 320px;
    min-width: unset;
    height: min(14vw, 64px);
  }
}
}
  .p-schedule_data__info a {
    margin-left: 10px;
}
/* ==============================================================
   HEADER / NAV
================================================================= */


#globalNav {
  max-width: calc(100% - 200px);
}

/* hidden 明示的に非表示 */
#globalNav[hidden] {
  display: none !important;
}

.mainNav {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  margin: 0;
  padding: 0;
}

.mainNav a {
  font-family: "Inter","Noto Sans JP",system-ui,sans-serif;
  font-weight: 800;
  font-size: 18px;
}

/* ハンバーガー初期状態は非表示（PC） */
.menu-button {
  display: none;
  border: none;
  background: transparent;
}

@media (max-width: 960px) {

  #globalNav {
    position: fixed;
    inset: 0;
    display: none;
    z-index: 9998;
  }
  #globalNav.is-open {
    display: block;
  }

  .navWrap {
    width: 100vw;
    height: 100svh;
    background: #000;
  }

  .mainNav {
    flex-direction: column;
    justify-content: center;
    align-items: center;
    height: 100%;
  }

  .mainNav a {
    font-size: 4vh;
    letter-spacing: .1em;
  }

  .menu-button {
    display: block;
    position: fixed;
    top: 3vw;
    right: 3vw;
    width: 44px;
    height: 44px;
    z-index: 9999;
  }

  .menu-button span[aria-hidden="true"] {
    position: absolute;
    left: 10px;
    right: 10px;
    height: 2px;
    background: #fff;
    transition: .3s;
  }

  .menu-button span[aria-hidden="true"]:nth-of-type(1) { top: 12px; }
  .menu-button span[aria-hidden="true"]:nth-of-type(2) { top: 21px; }
  .menu-button span[aria-hidden="true"]:nth-of-type(3) { top: 30px; }

  .menu-button.is-active span[aria-hidden="true"]:nth-of-type(1) {
    transform: translateY(9px) rotate(45deg);
  }
  .menu-button.is-active span[aria-hidden="true"]:nth-of-type(2) {
    opacity: 0;
  }
  .menu-button.is-active span[aria-hidden="true"]:nth-of-type(3) {
    transform: translateY(-9px) rotate(-45deg);
  }
}

/* ==============================================================
   SECTION TITLE（装飾込み画像版）
================================================================= */

/* 縦書き見出し本体 */
  .p-title__text {
  top: 0;
  left: 0;
  line-height: 1;
  font-size: 9rem;
  margin: 0;
  font-family: "Oswald", system-ui, sans-serif;
  font-weight: 700;
  text-align: center;
  /* ↓ ここが肝 */
  color: #007CF8;
  background-size: cover;
  background-repeat: repeat;
  background-position: center;

  -webkit-background-clip: text;
  background-clip: text;
  pointer-events: none;
  user-select: none;
}

  /* position: relative を付けておく */
  .p-section {
    position: relative;
  }


@media (max-width: 960px) {
  .p-title__text {
    position: static;
  margin: 0px;
    top: 0;
    left: 0;
    line-height: 1;
    font-size: 7rem;

    font-family: "Oswald", system-ui, sans-serif;
    font-weight: 700;

    color: #007CF8;
  background-size: cover;
  background-repeat: repeat;
  background-position: center;
  
  -webkit-background-clip: text;
  background-clip: text;

  pointer-events: none;
  user-select: none;
  }
  .p-section {
    position: relative;
  }
}


/* ==============================================================
   NEWS
================================================================= */

.p-news {
  position: relative;
}

@media (max-width: 960px) {
  .p-news {
    padding-top: 0rem;
  }
}

.p-news__list-item {
  position: relative;
  background-color: #2D363E;
  border-radius:999px;
     margin: 1.5rem 0 2rem;
     height: 100px; /* 好みで調整（80〜120くらい） */
  display: flex;
  align-items: center;
}

.p-news_article {
  width: 100%;
  display: contents;
  align-items: center;
  gap: 1rem;
  padding: 0;
  cursor: pointer;
  transition: color .4s var(--ease_out);
  height: 100%;
  padding: 0 2rem;
}

@media (hover:hover) and (pointer:fine) {
  .p-news_article:hover { opacity: .7; }
}

@media (max-width: 960px) {
  .p-news_article {
    padding: 2.1rem 0 1.9rem;
    align-items: center;
    gap: .5rem;
  }

}

.p-news_article__date {
  min-width: 12.8rem;
  color: var(--color-white);
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-left: 5rem;
}

@media (max-width: 960px) {
  .p-news_article__date {
    min-width: 8rem;
    margin-left: 1rem;
  }
}

.p-news_article__date-year {
  font-size: 2rem;
  font-weight: 700;
  line-height: .8;
  font-family: "Oswald","Noto Sans JP",system-ui,sans-serif;
}

@media (min-width: 961px) {
  .p-news_article__date-year {
      font-size: 2rem;
  font-weight: 700;
  line-height: .8;
  font-family: "Oswald","Noto Sans JP",system-ui,sans-serif;
    writing-mode: vertical-lr;
  }
}
@media (max-width: 960px) {
  .p-news_article__date-year {
    font-size: clamp(1.4rem, 2vw, 2rem);
    font-weight: 700;
    line-height: .8;
    font-family: "Oswald","Noto Sans JP",system-ui,sans-serif;
    writing-mode: vertical-lr;
    color: #fff;
  }
}

.p-news_article__date-day {
  font-size: 5rem;
  letter-spacing: .2rem;
  font-family: "Oswald","Noto Sans JP",system-ui,sans-serif;
  font-weight: 800;
}

@media (max-width: 960px) {
  .p-news_article__date-day {
    font-size: clamp(3rem,5vw,4.5rem);
    line-height: 1.2;
    letter-spacing: 0;
    color: #fff;
  }
}

.p-news_article__title {
  flex: 1 1 0;
  min-width: 0;
  font-size: 2.5rem;
  margin: 0;       /* ←これが結構効いてる */
  padding-left: 2rem;
  line-height: 1.4;
  letter-spacing: .05rem;
  text-align: left;
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  color: var(--color-white);
}
.p-news_article__title {
  font-weight: 700;
  margin: 1.2rem;
  padding-left: 2rem;
}

@media (max-width: 960px) {
  .p-news_article__title {
    margin-top: -.5em;
    -webkit-line-clamp: 5;
  font-size: 16px;
  padding-left: clamp(0rem, 1vw, 2rem) !important;
  margin:clamp(0.1rem,1vw,1.2rem);
    line-height: 1.6;
  }
}
/* ==============================================================
   SCHEDULE
================================================================= */

.p-schedule {
  position: relative;
}

@media (max-width: 960px) {
  .p-schedule {
    padding-top: 0;
  }
}

.p-schedule__list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2rem;
}
.p-schedule__list-item {
  background-size: 50%;
  background-image: url('../images/texture.webp');
  border-radius: 20px;
  
  transition:
    transform .45s cubic-bezier(.22,.61,.36,1),
    box-shadow .45s cubic-bezier(.22,.61,.36,1),
    background-size .35s var(--ease_out);
}

@media (max-width: 960px) {
  .p-schedule__list {
    grid-template-columns: 1fr;
    gap: 1.2rem;
  }
}

.p-schedule_data {
  transition: padding 0.4s var(--ease_out), transform 0.3s var(--ease_out), box-shadow 0.3s var(--ease_out);
}

@media (max-width: 960px) {
  .p-schedule__list {
    grid-template-columns: 1fr;
    gap: 1.2rem;
  }
}

.p-schedule_data {
  position: relative;
  padding: 1rem 3rem 3rem;
  background-size: 10%;
}
/* hover時に少しだけ浮かせてスタイリッシュに */
@media (hover:hover) and (pointer:fine){
  .p-schedule__list-item:hover{
    background-size: 50%;
    transform: translateY(-4px);
     box-shadow:
      0 12px 28px rgba(0,0,0,.35),
      0 4px 8px rgba(0,0,0,.2);
  }
}

@media (max-width: 960px) {
  .p-schedule_data {
    padding: 1rem 2rem 2rem;
    background-image: url('../images/texture.webp');
    border-radius: 20px;
  }
}

.p-schedule_data::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  border-radius: 20px;
}

.p-schedule_data::after {
  content: "";
  position: absolute;
  top: -.7rem;
  left: -.7rem;
  width: calc(100% + 1.4rem);
  height: calc(100% + 1.4rem);
  pointer-events: none;
}

.p-schedule_data__date {
  font-family: "Oswald","Noto Sans JP",system-ui,sans-serif;
  font-size: 5rem;
  font-weight: 800;
  color: #fff;
}

@media (max-width: 960px) {
  .p-schedule_data__date {
    font-size: 3rem;
    letter-spacing: .05rem;
  }
}

.p-schedule_data__area {
  font-size: 25px;
  font-weight: 600;
  display: inline-block;
  background: #007CF8;
  color: #fff;
      padding: 0.5rem 1rem 1rem; /* 周囲1remくらいの余白 */
  border-radius: 8px;
  line-height: 1;
  margin-bottom: 0.6rem; /* 会場名との間隔 */
        margin-top: 0.6rem;
  letter-spacing: 0.05em;
}

.p-schedule_data__place {
  margin-top: 0;
      font-size: 25px;
    font-weight: 600;
    color: #007CF8;
    padding: 0px 0px 10px;
}




.p-schedule_data__time {
  font-size: 18px;
  font-family: "Inter","Noto Sans JP",system-ui,sans-serif;
  line-height: 1.75;
  color: #fff;
}

@media (max-width: 960px) {
  .p-schedule_data__time {
    margin-top: .8rem;
    font-size: 1.1rem;
  }
}

.p-schedule_data__footer {
  margin-top: 1rem;
  padding-top: 1rem;
  position: relative;
  color: #fff;
}

.p-schedule_data__footer::before {
  content: "";
  position: absolute;
  inset: 0;
  border-top: 1px solid #fff;
  border-radius: 0px;
}

.p-schedule_data__info {
  font-size: 18px;
    color: #fff;
}

.p-schedule_data__info a {
  font-size: 1.3rem;
  color: #fff;
}
/* ==============================================================
   TICKET
================================================================= */

.p-ticket {
  position: relative;
}

@media (max-width: 960px) {
  .p-ticket {
    padding-top: 0;
  }
}

.p-ticket__content {
  position: relative;
}

.p-ticket__notice {
  margin: 6rem auto 0;
  position: relative;
}

@media (max-width: 960px) {
  .p-ticket__notice {
    margin-top: 4rem;
  }
}

.p-ticket__notice::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 1px;
  border-top: 1px solid var(--color-line2);
}

/* content block */
.p-ticket_content {
  position: relative;
}

.p-ticket_content + .p-ticket_content {
  margin-top: 7.2rem;
  padding-top: 6.5rem;
}

@media (max-width: 960px) {
  .p-ticket_content + .p-ticket_content {
    margin-top: 3.8rem;
    padding-top: 3.8rem;
  }
}

.p-ticket_content + .p-ticket_content::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 1px;
  border-top: 1px solid var(--color-line2);
}

.p-ticket_content__header {
  margin-bottom: 4rem;
  position: relative;
  z-index: 1;
}

@media (max-width: 960px) {
  .p-ticket_content__header {
    margin-bottom: 2.2rem;
    z-index: 1;
  }
}

.p-ticket_content__title {
  text-align: center;
  font-weight: 800;
  color: var(--color-blue-dark);
  font-size: 4rem;
  line-height: 1.2;
  transform: scale(1.15, 1);
}

@media (max-width: 960px) {
  .p-ticket_content__title {
    font-size: 2rem;
  }
}

.p-ticket_content__inner {
  position: relative;
}

/* frame + cross corners */
.p-ticket_content__content {
  position: relative;
}

@media (max-width: 960px) {
  .p-ticket_content__content {
    margin-top: 0;
  }
}




@media (max-width: 960px) {
  .p-ticket_content__content::after {
    top: -0.4rem;
    left: -0.4rem;
    width: calc(100% + 0.8rem);
    height: calc(100% + 0.8rem);
  }
}


/* 価格ブロック */
.p-ticket_content__price {
  display: flex;
  flex-direction: column;
  gap: 2rem;
  align-items: stretch;
  margin-bottom: 3rem;
}

.p-ticket_content__price-item {
  flex: none;
}
.p-ticket_box {
  margin-bottom: 3em;
}

.p-ticket_price {
  padding: 1.6rem 1.8rem 1.8rem;
   background-color: #2D363E;
   border-radius: 20px;
  margin-top: 15px;
}
.p-special__body {
  margin-top: 15px;
}

.p-ticket_price_2 {
  background-color: #2D363E;
  padding: 1.6rem 1.8rem 1.8rem;
  border-radius: 20px;
}

.p-ticket_price__header {
  margin-bottom: .8rem;
}

.p-ticket__title {
  background-color: #007CF8;
  font-family: "Oswald", sans-serif;
  font-size: 25px;
  font-weight: 700;
  color: #fff;
  letter-spacing: 0.08em;
  margin: 1rem 0 2rem;
  position: relative;
  display: flex;   /* 幅＝文字幅 */
  left: 50%;               /* ここで中央へ */
  transform: translateX(-50%);
  padding: 8px 4rem;
  border-radius: 999px;
}


.ticket__title-wrap {
  text-align: center;
  margin-bottom: 2rem;
}

.ticket__title {
  font-family: "Oswald", sans-serif;
  font-size: clamp(2.4rem, 3vw, 3.6rem);
  font-weight: 700;
  color: #c69c6d;
  letter-spacing: 0.08em;
  position: relative;
  display: inline-block;   /* 幅＝文字 */
  cursor: pointer;
}
.ticket__title::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -6px;
  width: 100%;
  height: 1px;
  background: #c69c6d;
  transform: scaleX(0);               /* 初期は見えない */
  transform-origin: left;             /* 左から伸びる */
  transition: transform 0.4s ease;    /* 気持ちいい速さ */
}

.ticket__title:hover::after {
  transform: scaleX(1);
}
.p-ticket_price__title {
  font-size: 2.2rem;
  font-weight: 700;
  margin-bottom: auto;
  color: #fff;
}

@media (max-width: 960px) {
.p-ticket_price__title {
  font-size: 16px!important;
}
}

#ticket .p-ticket_price__text {
  font-size: 18px;
  font-weight: 700;
  margin-bottom: 1.2rem;
  padding-left: 2rem;
  color: #fff;
}
@media (max-width: 960px) {
#ticket .p-ticket_price__text {
  padding-left: 2rem ;
  font-size: 14px;
}
}

.p-ticket_price__list {
  font-size: 15px;
  font-weight: 700;
  margin-bottom: 1.2rem;
  list-style: disc;
  padding-left: 0.6rem;
  color: #fff;
}

@media (max-width: 960px) {
.p-ticket_price_list_dd {
  margin-left: clamp(2rem, 6vw, 3rem) !important;
  font-size: 18px;
}
.p-ticket_price__list{
  padding-left: none !important;

}
}

.p-ticket_price__data {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem .8rem;
  font-size: 1.2rem;
}

.p-ticket_price__data-cap {
  padding: .1rem .6rem;
  border: 1px solid var(--color-line2);
  font-size: 1.1rem;
}

.p-ticket_price__data-text {
  font-size: 1.2rem;
}

/* 補足テキスト・ボタン */
.p-ticket_content__note {
  font-size: 1.2rem;
  margin-top: 1.2rem;
  line-height: 1.7;
}

.p-ticket_content__text {
    font-size: 18px;
  font-weight: 700;
  margin-bottom: 1.2rem;
  justify-content: center;
  display: flex;   /* 幅を文字に合わせる */
  padding: 0.6em 1.2em;          /* 内側の余白 */  /* 四角の線 */
  color: var(--color-white);
}
@media (max-width: 960px) {
.p-ticket_content__text {
        padding-left: clamp(0rem, 1vw, 2rem) !important;
        font-size: 18px;
    }
}

.p-ticket_content__link {
  margin-top: 2.4rem;
  text-align: center;
}

/* =========================
   TICKET : 先行スケジュール
========================= */
.p-ticket_box--schedule {
  margin-bottom: 3em;
}

.p-ticket-schedule {
  display: flex;
  flex-direction: column;
  gap: 2.4rem;
}

.p-ticket-schedule__item {
  padding: 2.2rem 2rem;
  text-align: center;
}

.p-ticket-schedule__item + .p-ticket-schedule__item {
  margin-top: 0;
}

.p-ticket-schedule__heading {
  font-size: 2.2rem;
  line-height: 1.5;
  color: #fff;
  margin-bottom: 1.4rem;
}

.p-ticket-schedule__period {
  margin-bottom: 1.6rem;
}

.p-ticket-schedule__period-label {
  display: inline-block;
  font-size: 1.5rem;
  color: #007CF8;
  margin-bottom: 0.6rem;
}

.p-ticket-schedule__period-text {
  font-size: 2rem;
  line-height: 1.6;
  color: #fff;
  font-weight: 700;
}

.p-ticket-schedule__notes {
  margin: 1.2rem 0 0;
  padding-left: 0;
}

.p-ticket-schedule__notes li {
  font-size: 1.5rem;
  line-height: 1.9;
  color: #fff;
}

.p-btn--entry {
  min-width: 320px;
}

#ticket .p-ticket_box--schedule .p-ticket_content__link {
  margin-top: 1.4rem;
}

#ticket .p-ticket_box--schedule .p-btn,
#ticket .p-ticket_box--schedule .p-btn_2 {
  min-width: 320px;
}

@media (max-width: 960px) {
  .p-ticket-schedule {
    gap: 1.6rem;
  }

  .p-ticket-schedule__item {
    padding: 1.6rem 1.4rem;
    border-radius: 14px;
  }

  .p-ticket-schedule__heading {
    font-size: 1.7rem;
    line-height: 1.6;
    margin-bottom: 1rem;
  }

  .p-ticket-schedule__period-label {
    font-size: 1.2rem;
  }

  .p-ticket-schedule__period-text {
    font-size: 1.5rem;
    line-height: 1.7;
  }

  .p-ticket-schedule__notes li {
    font-size: 1.3rem;
    line-height: 1.8;
  }

  #ticket .p-ticket_box--schedule .p-btn,
  #ticket .p-ticket_box--schedule .p-btn_2,
  .p-btn--entry {
    width: 100%;
    min-width: 0;
  }
}
/* 共通ボタン */
.p-btn {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  min-width: 240px;
  padding: 1.1rem 2.4rem;
  color: #fff;
  font-size: 2rem;
  letter-spacing: .12em;
  text-transform: uppercase;
    border-radius: 100px;
  position: relative;
  overflow: hidden;
  z-index: 0;
  border:1px solid #fff;
  transition: transform .3s var(--ease_out),
              box-shadow .3s var(--ease_out),
              opacity .3s var(--ease_out);
}
.p-btn::before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  height:100%;
  width:0;                 /* ←最初はゼロ */
  background:#ffffff;         /* ←ホバー時の背景色（元ルールを踏襲） */
  z-index:-1;              /* 背面に敷く */
  transition: width .3s var(--ease_out);
  
}

@media (hover:hover) and (pointer:fine){
  .p-btn:hover{
    transform: none;
    color:#000;
    opacity:1;
    border:1px solid #000;
  }
  .p-btn:hover::before{
    width:100%;            /* ←左→右に塗りが走る */
  }
  .p-btn:hover::after{
    right:1.8rem;
    border-top:2px solid #000;
  border-right:2px solid #000;
  }
}

.p-btn__text {
  display: inline-block;
}

.p-btn_2{
  background: #007CF8;
  border:1px solid #fff;
  display:inline-flex;
  min-width:300px;
  justify-content:center;
  align-items:center;
  padding:1.1rem 2.4rem;
  margin-bottom:2rem; 
  border-radius: 100px;
  color:#fff;

  letter-spacing:.12em;
  text-transform:uppercase;

  position:relative;
  overflow:hidden;
  z-index:0;

  transition:
    box-shadow .3s var(--ease_out),
    color .3s var(--ease_out),
    opacity .3s var(--ease_out);
}

/* 塗りアニメーション用 */
.p-btn_2::before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  width:0;
  height:100%;
  background: #ffffff; /* 反転用カラー */
  z-index:-1;
  transition: width .3s var(--ease_out);
}


@media (hover:hover) and (pointer:fine){
  .p-btn_2:hover{
    color:#fff;
    opacity:1;
    border:1px solid #fff;
  }
  .p-btn_2:hover::before{
    width:100%;
  }
  .p-btn_2:hover::after{
    right:1.8rem;
    border-top:2px solid #fff;
  border-right:2px solid #fff;
  }
}

/* SP */
@media (max-width:960px){
  .p-btn_2{
    width:auto;
    padding:1.5rem 5rem !important;
  }
  .p-btn__text_2{
    display:inline-block;
    font-size:13px;
    font-family:"Inter","Noto Sans JP",system-ui,sans-serif;
  }
  .faqList dt{
        font-size: 16px;
  }
  .faqList dd
  {
    font-size: 14px !important;
    margin-left: 20px;
    margin-right: 20px;
  }
}

@media (max-width: 960px) {
.p-btn__text{
display: inline-block;
font-size: 13px !important;
}
.p-special__btn .p-btn_2{
      background-size: 80% !important;
}
.p-btn_2 .p-btn__text_2{
  font-size: 1.5rem !important;
}
}

/* 念のため：中のテキストも色を追従 */
.p-btn_2 .p-btn__text_2{
  color: inherit;
  font-size: 2rem;
}

/* ================= TRADE ================= */
.p-trade {
  margin: 0 auto;
  text-align: center;
  font-size: 18px;
  align-items: center;
}

.p-trade__lead {
  margin-bottom: 2.4rem;
  line-height: 1.9;
  color: var(--color-white);
}
@media (max-width: 960px) {
.p-trade__lead {
  font-size: 16px;
}
}
@media (max-width: 960px) {
.p-trade__btn .p-btn {
  min-width: 240px;
  width: auto;
  padding: 1.5rem 5rem !important;
  font-size: 18px !important;
}
}

/* ================= FAQ ================= */

.p-faq {
  margin-top: 2rem;
}

/* dt 行 */
.faqList dt {
  position: relative;
  padding: 1.6rem 3.6rem 1.6rem 3rem;
  font-size: 18px;


  cursor: pointer;

}

.faqList div:last-child dt {
  border-bottom: 1px solid var(--color-line2);
}

@media (hover:hover) and (pointer:fine){
  .faqList dt{
    position: relative;
    overflow: hidden;
  }

  .faqList dt::before{
    content:"";
    position:absolute;
    inset:0;
    opacity:0;
    transition: opacity .25s var(--ease_out);
    z-index:-1;
  }

  .faqList dt:hover::before{
    opacity:1;
  }

  .faqList dt{
    transition: color .25s var(--ease_out);
  }

  .faqList dt:hover{
    color:#fff;
  }
}

/* プラス／マイナスアイコン（span 2本） */
.faqList dt span {
  position: absolute;
  right: 3rem;
  top: 50%;
  width: 1.6rem;
  height: 2px;
  background: var(--color-white);
  transform: translateY(-50%);
  transition: transform .25s var(--ease_out), opacity .25s var(--ease_out);
pointer-events: none;
}

.faqList dt span:nth-of-type(2) {
  transform: translateY(-50%) rotate(90deg);
}

/* open 時は「−」だけにする */
.faqList dt.open span:nth-of-type(2) {
  opacity: 0;
}

/* 回答エリア */
.faqList dd {
  display: none;
  padding: .2rem 1.2rem 1.8rem;
  font-size: 15px;
  line-height: 1.9;
}

/* dtの線は全部やめる */
.faqList dt { border-top: none; }
.faqList div:last-child dt { border-bottom: none; }

/* 項目に線を持たせる */
.faqList .p-faq__item {
  background-color: #2D363E;
  color: #fff;
  margin-bottom: 1rem;
  border-radius: 20px;
  transition: border-radius 0.35s ease;
}

/* 展開時 */
.faqList .p-faq__item .open {
  border-radius: 30px 30px 0 0; /* 上だけ丸くするとより上品 */
}


/* ================= GOODS ================= */

.p-goods__image {
  max-width: 640px;
  margin: 0 auto 3rem;
  padding: 1.2rem;
  border: 1px solid var(--color-line2);
  background: rgba(0, 0, 0, 0.4);
}

.p-goods__body {
  font-size: 15px;
  line-height: 1.9;
}

.p-goods__text + .p-goods__text {
  margin-top: 1.6rem;
}

.p-goods__text a {
  text-decoration: underline;
}

.p-goods__list {
  margin-bottom: 2em;
  margin-block-start: 0;
}

.p-goods__title {
  font-size: 18px;
  font-weight: 700;
  margin-bottom: 2rem;
  border-bottom: 1px solid #fff;
  color:#fff;
  padding: 0 1em 0.5em;
}

@media (max-width: 960px) {
.p-goods__title {
  font-size: 16px;
  padding: 0 1em 0.5em;
  }
  .p-goods__body{
    font-size: 14px;
  }
}

.p-goods__item {
  position: relative;          /* ← これ必須 */
  margin-bottom: 0.8rem;
  margin-top: 1rem;
  line-height: 1.6;
  padding-left: 1.4em;   
  margin-inline-start: 1em; 
  color: #fff;  /* ※の分だけ全行イzンデント */
}

@media (max-width: 960px) {
.p-goods__title {
  padding: 1em;
  }
  .p-goods__item {
  margin-inline-start: clamp(0em,1vw,1em);
}
}
.p-goods__item::before {
  content: "◼︎";
  position: absolute;          /* ← これが抜けてた */
  left: 0;
  top: 0;
  color: #fff;
  font-weight: 700;
}

.p-goods__note {
  font-size: 15px;
  opacity: 0.8;
  line-height: 1.5;
  margin-inline-start: 1em; 
  color:#fff;
}

.p-goods__contact {
  margin-top: 1.2rem;
  font-size: 1em;
  margin-inline-start: 1em; 
}

.p-goods__contact-link {
  color: #fff;
  text-decoration: none;
}

.p-goods__contact-link:hover {
  opacity: 0.7;
  border-color: rgba(198, 156, 109, 1);
}

.p-goods__contact-link::after {
  content: " ▶︎ ";
  font-size: 0.9em;
}

.p-goods__schedule {
  margin: 0;
  padding: 0;
  list-style: none;
}

.p-goods__schedule-item {
  margin-bottom: 0.6rem;
  line-height: 1.6;
}

.p-goods__schedule-note {
  margin-top: 0.8rem;
  font-size: 0.9em;
  opacity: 0.8;
}

/* ================= SPECIAL : CARD LAYOUT ================= */

:root{
  --special-card-bg: rgb(224 224 224 / 85%);
  --special-ink: #0a0a0a;
  --special-shadow: 0 18px 50px rgba(0,0,0,.35);
}

/* セクション見出し周り（任意：画像っぽく中央寄せ） */
#special .p-title__text{
  text-align:left;
  letter-spacing:.06em;
}

/* カード（dl） */
.p-special__list{
  position: relative; /* ★dt absoluteの基準 */
  background: #007CF8;
  box-shadow: var(--special-shadow);
  padding: clamp(20px, 3vw, 44px);
  margin: 0 0 26px;
  display: grid;
  grid-template-columns: minmax(220px, 0.95fr) minmax(280px, 1.25fr);
  column-gap: clamp(18px, 3vw, 44px);
  row-gap: 0;
  overflow: hidden;
  color: #fff;  
  padding-top: clamp(72px, 6vw, 140px);
  padding-bottom: clamp(72px, 6vw, 140px);
  border-radius: 20px;
}

/* dt（左の大見出し） */
.p-special__title{
  margin: 0;
  padding: 0;
  border: 0;
  color: #fff;
  font-size: clamp(28px, 3.2vw, 50px);
  line-height: 1.05;
  font-weight: 800;
  letter-spacing: .02em;
  text-align: center;
}

/* ================= SPECIAL : ABSOLUTE TITLE ================= */

/* ★dtをレイアウトから外して“左カラム中央固定”にする */
.p-special__list > dt{
  position: absolute;
  top: 50%;
  left: clamp(20px, 3vw, 44px);                 /* カード内左余白に合わせる */
  width: minmax(220px, 0.95fr);                 /* ←無効になるので下で実寸指定 */
  transform: translateY(-50%);
  pointer-events: none;                       /* タイトルクリック不要なら */
}

/* minmaxはabsoluteでは使えないので、左カラム相当の幅を計算で持たせる */
.p-special__list > dt{
  width: calc(
    (100% - (clamp(20px, 3vw, 44px) * 2) - clamp(18px, 3vw, 44px)) * 0.43
  );
}

/* 右カラム：dd 全部（dtと完全に独立） */
.p-special__list > dd{
  grid-column: 2 / 3;
  max-width: 42em;
}

/* 要約 */
.p-special__item.is-lead{
  font-weight: 600;
  margin-bottom: 8px;
    font-size: 18px;
    margin-inline-start: 0;
}
.p-special__item.is-lead span {
 color: #fff !important;
}

/* 本文 */
.p-special__item{
  padding-left: 0;
  margin: 0 0 10px;
  line-height: 1.8;
}
.p-special__item::before{ content:none; }

/* 注釈 */
.p-special__note{
  padding-left: 0;
  margin-top: 6px;
  font-size: 18px;
  margin-inline-start: 0;
}
.p-special__note::before{ content:none; }

/* ボタン：右カラム内で中央寄せ */
.p-special__btn{
  display: flex;
  justify-content: center;
  margin-top: 30px;
  font-size: 18px;
  margin-inline-start: 0;
}

/* HTMLは a が .p-btn_2 なので、これに当てる */
.p-special__btn .p-btn_2{
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 16px 54px 16px 28px;
  border-radius: 999px;
  background-image: url(../images/texture.webp);
  background-size: 200%;
  color: #fff;
  text-decoration: none;
  border: 1px solid rgba(255,255,255,.18);
  transition: transform .25s var(--ease_out), opacity .25s var(--ease_out);
  margin-bottom: 0;
}

.p-special__btn .p-btn_2::after{
  content:"";
  position:absolute;
  right: 22px;
  top: 50%;
  width: 8px;
  height: 8px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  transform: translateY(-50%) rotate(45deg);
}

@media (hover:hover) and (pointer:fine){
  .p-special__btn .p-btn_2:hover{
    opacity: .92;
    color: #007CF8;
  }
}

/* ================= SP ================= */
@media (max-width: 960px){
  .p-special__list{
    grid-template-columns: 1fr;
    min-height: clamp(260px, 32vw, 380px);
    padding-block: clamp(36px, 5vw, 72px);
    display: grid;
  align-items: stretch;
  }
.p-special__title{
    text-align: center;
    font-size: 3.5em;
    margin-bottom: 20px;
  }
  /* ★SPはabsolute解除して自然な縦積みに戻す */
  .p-special__list > dt{
    position: static;
    transform: none;
    width: auto;
    pointer-events: auto;
    margin-bottom: 20px;
    
  }

  .p-special__list > dd{
    grid-column: 1 / -1;
    max-width: none;
  }

  .p-special__btn .p-btn_2{
    width: 100%;
    justify-content: center;
    font-size: 0.8em;
        min-width: 240px;
  }
.p-special__item.is-lead{
    margin-inline-start: 0;
    font-size: 14px;
  }
  .p-special__note{
    margin-inline-start: 0;
    font-size: 14px;
  }
}



/* ==============================================================
   FOOTER
================================================================= */

footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 40px 60px 120px;
}

footer .ftrLogo {
  width: 140px;
  line-height: 0;
}

footer .copyright {
  font-size: 10px;
  color: var(--color-white);
}

@media (max-width: 960px) {
  footer {
    padding: min(10vw, 80px) min(6vw, 60px) min(100vw, 110px);
  }

  footer .ftrLogo {
    width: 90px;
  }

  footer .copyright {
    font-size: min(2.6vw, 10px);
  }
}

/* ==============================================================
   HIDE OLD SECTIONS
================================================================= */

/* 共通囲み */
.p-section__box {
    position: relative;
    padding: 4rem 3rem;
    background-color: #2D363E;
    border-radius: 20px;
    margin-top: 15px;
}


/* ================= ACCORDION (GOODS) ================= */

/* 初期は閉じる */
/* .p-goods__list dd{
  display: none;
} */

/* タイトルをクリック可能に */
.p-goods__list > dt{
  position: relative;
  cursor: pointer;
  padding-right: 4.2rem; /* +アイコン分 */
  user-select: none;
}

/* ＋アイコン（2本線） */
/* .p-goods__list > dt::before,
.p-goods__list > dt::after{
  content: "";
  position: absolute;
  right: 1.2rem;
  top: 50%;
  width: 1.6rem;
  height: 2px;
  background: #fff;
  transform: translateY(-50%);
  transition: opacity .25s var(--ease_out), transform .25s var(--ease_out);
  pointer-events: none;
} */

/* 縦棒 */
.p-goods__list > dt::after {
  transform: translateY(-50%) rotate(90deg);
}

/* open時は「−」だけ（縦棒を消す） */
.p-goods__list > dt.open::after {
  opacity: 0;
}



/* ===== FLOAT TITLE (override) ===== */
.p-title__text.js-float-title{
  opacity: 0;
  filter: blur(6px);
  transition:
    opacity 1s ease,
    translate 1.2s cubic-bezier(.2,.8,.2,1),
    filter 1.2s ease;
}

/* 出現時：section側に is-scroll-active が付いたら発火 */
.p-section.is-scroll-active .p-title__text.js-float-title{
  opacity: 0.9;       /* 好みで 1 でもOK */
  filter: blur(0);
}

@media (hover:hover) and (pointer:fine){
  .header__nav a{
    position: relative;
    transition: color .3s var(--ease_out);
  }

  /* 下線（初期は非表示） */
  .header__nav a::after{
    content: "";
    position: absolute;
    left: 0;
    bottom: -4px;                 /* 文字との距離は好みで */
    width: 100%;
    height: 1px;
    background: #007CF8;          /* 赤 */
    transform: scaleX(0);
    transform-origin: right;      /* ← 右から */
    transition: transform .3s var(--ease_out);
  }

  /* hover時 */
  .header__nav a:hover{
    color: #007CF8;
  }

  .header__nav a:hover::after{
    transform: scaleX(1);
    transform-origin: left;       /* ← 左へ伸びる */
  }
}


@media (hover:hover) and (pointer:fine){
  .p-news_article{
    position: relative;
    transition:
      background-color .25s var(--ease_out),
      color .25s var(--ease_out);
  }
}



@media (hover: hover) and (pointer: fine) {
  .p-ticket_price a{
    position: relative;
    transition: color .3s var(--ease_out);
  }
  .p-ticket_price a::after{
    content: "";
    position: absolute;
    left: 0;
    bottom: -6px;                 /* ナビより少し余裕 */
    width: 100%;
    height: 1px;
    background: #007CF8;          /* 赤 */
    transform: scaleX(0);
    transform-origin: right;      /* 右→左 */
    transition: transform .3s var(--ease_out);
  }
    .p-ticket_price a:hover {
        opacity:1;
        color: #007CF8 !important;
    }
    .p-ticket_price a:hover::after{
    transform: scaleX(1);
    transform-origin: left;
  }
}


/* ===== Reveal (fade-up) ===== */
[data-reveal].is-reveal-ready{
  opacity: 0;
  transform: translateY(18px);
  filter: blur(6px);

  transition:
    opacity .9s ease,
    transform 1.1s cubic-bezier(.2,.8,.2,1),
    filter 1.1s ease;

  will-change: opacity, transform, filter;
}

[data-reveal].is-revealed{
  opacity: 1;
  transform: translateY(0);
  filter: blur(0);
}

/* blurを変数で管理（既存のhue-rotateも保持） */
.p-title__text[data-reveal]{
  --reveal-blur: 10px;
  filter: blur(var(--reveal-blur));
}

/* 初期 */
.p-title__text[data-reveal].is-reveal-ready{
  opacity: 0;
  transform: translateY(28px) scale(.99);
  transition:
    opacity .9s ease,
    transform 1.1s cubic-bezier(.2,.8,.2,1),
    filter 1.1s ease;
    
}

/* 表示後 */
.p-title__text[data-reveal].is-revealed{
  opacity: 1;
  transform: translateY(0) scale(1);
  --reveal-blur: 0px;
    text-align: left;
}

/* ===== HERO image reveal (on image load) ===== */
.p-hero__image[data-reveal][data-reveal-on="imgload"]{
  opacity: 0;
  filter: blur(14px);
  transform: translateY(28px) scale(0.98);
  will-change: opacity, transform, filter;
}

.p-hero__image[data-reveal][data-reveal-on="imgload"].is-reveal-ready{
  transition:
    opacity 1.2s ease,
    transform 1.4s cubic-bezier(.2,.8,.2,1),
    filter 1.4s ease;
}

.p-hero__image[data-reveal][data-reveal-on="imgload"].is-revealed{
  opacity: 1;
  filter: blur(0);
  transform: translateY(0) scale(1);
}

/* ===== NEWS li : SPはロードでふわっと ===== */
@media (max-width: 960px){
  .p-news__list-item[data-reveal]{
    opacity: 0;
    transform: translateY(18px);
    filter: blur(8px);
    transition:
      opacity 0.9s ease,
      transform 1.0s cubic-bezier(.2,.8,.2,1),
      filter 1.0s ease;
    will-change: opacity, transform, filter;
  }

  .p-news__list-item[data-reveal].is-revealed{
    opacity: 1;
    transform: translateY(0);
    filter: blur(0);
  }
}



/* header hide animation */

.header{
  transform: translateY(0);
  opacity: 1;
  transition:
    transform .45s cubic-bezier(.22,.61,.36,1),
    opacity .45s ease,
    background-color .35s ease;
  will-change: transform, opacity;
}

.header.is-fading{
  pointer-events: none;
}


/* =========================================================
   SP tuning
========================================================= */
@media (max-width: 960px) {

  /* 全画像の強制縮小を止める */
  img {
    width: auto !important;
    max-width: 100%;
    height: auto;
  }

  /* ヒーロー */
  #top .p-section__container {
    margin-top: 2.4rem;
    padding-top: 190px;
    min-height: calc(60svh - 72px);
    display: flex;
    align-items: center;
    justify-content: center;
  }

  #top .p-hero__image,
  #top img {
    width: min(82vw, 420px) !important;
    margin: 0 auto 4.8rem;
  }

  .scroll {
    bottom: 1.6rem;
  }

  /* セクション共通 */
  .p-section {
    padding: 17vw 6vw;
  }

  .p-section__container {
    padding: 0;
  }

  .p-title__text {
    margin-bottom:0;
    font-size: clamp(2.2rem, 8vw, 3.6rem);
    line-height: 1;
  }

  /* header */
  .header {
    padding: 1.2rem 1.4rem;
  }

  .header__inner {
    min-height: 56px;
  }

  .header__logo img {
    width: 120px !important;
  }

  .hamburger-button {
    width: 44px;
    height: 44px;
  }


  /* NEWS */
  .p-news__list {
    gap: 1.2rem;
  }

  .p-news_article {
    padding: 1.4rem 1.2rem;
  }

  .p-news_article__date-year {
    font-size: 1.2rem;
  }

  .p-news_article__date-day {
    font-size: 2rem;
  }



  /* SCHEDULE */
  .p-schedule__list {
    gap: 1.4rem;
  }

  .p-schedule_data {
    padding: 1.4rem 1.4rem 1.6rem;
    border-radius: 16px;
  }

  .p-schedule_data__date {
    font-size: 45px;
    line-height: 1;
  }

  .p-schedule_data__date small {
    padding: 5px;
  }

  .p-schedule_data__area {
    font-size: 18px;
        padding: 7px 10px;
            margin-top: 1.6rem;
  }
.p-schedule_data__place {
      padding: 3px 0px 0px;
}

  .p-schedule_data__place {
    margin-top: .2rem;
    font-size: 20px;
    line-height: 1.45;
  }


  .p-schedule_data__time {
    margin-top: .8rem;
    font-size: 16px;
    line-height: 1.7;
  }

  .p-schedule__list {
    margin-top: 1.5rem;
  }
  .p-schedule_data__footer {
    margin-top: 1rem;
    padding-top: 1rem;
  }

  .p-schedule_data__info,
  .p-schedule_data__info a {
    font-size: 1.5rem;
    line-height: 1.7;
    word-break: break-word;
  }
  .p-schedule_data__info a{
    margin-left: 10px;
  }
  /* TICKET / TRADE / FAQ / GOODS / SPECIAL 系の箱 */
  .p-ticket__content,
  .p-trade{
    margin-top: 0;
  }
  .p-special__body {
    margin-top: 1.5rem;
  }

  .p-ticket_content__title {
    font-size: clamp(1.8rem, 6vw, 2.4rem);
    line-height: 1.35;
  }

  .p-ticket__title {
    padding: 8px 2rem;
    font-size: 16px;
  }
  .faqList dt {
    font-size: 16px;
  }

  .p-ticket_price,
  .p-ticket_price_2 {
    padding: 1.4rem 1.2rem 1.5rem;
    border-radius: 16px;
  }

  .p-ticket_price__text,
  .p-ticket_content__text,
  .p-ticket_price__list {
    font-size: 14px;
    line-height: 1.8;
  }

  .p-btn,
  .p-btn_2 {
    width: 100%;
    min-width: 0;
  }
  /* =================================
section title tuning
================================ */

.p-title__text{
text-align:left;
margin-left:0;
margin-right:auto;
font-size:clamp(5rem,4vw,4.8rem);
line-height:1.1;
letter-spacing:.04em;
}
.p-section__inner{
text-align:left;
}
}



/* ハンバーガーはSPのみ表示 */
.is-sp,
.hamburger-button,
.hamburger-nav {
  display: none;
}

@media (max-width: 960px) {
  .is-sp {
    display: block;
  }

  .hamburger-button {
    display: block;
  }

  .hamburger-nav {
    display: block;
  }
}

@media (min-width: 961px) {
  .is-sp,
  .hamburger-button {
    display: none !important;
  }
}

@media (max-width: 960px) {
  .hamburger-nav {
    position: fixed;
    inset: 0;
    display: none;
    z-index: 9998;
    background: transparent;
    padding: 0;
    translate: 0 0;
    backdrop-filter: none;
  }

  .hamburger-nav.is-open {
    display: block;
  }

  .hamburger-nav__inner {
    width: 100vw;
    height: 100svh;
    background: #2D363E;
    display: flex;
    text-align: left;
    padding: 120px 24px 40px;
  }

  .hamburger-nav__list--01 {
    display: flex;
    flex-direction: column;
    justify-content: center;
    width: 100%;
    margin: 0;
    padding: 0;
  }

  .hamburger-nav__list--01 a {
    display: block;
    width: 100%;
    text-align: left;
    font-size: 3rem;
    letter-spacing: 0.2em;
    color: #fff;
  }

  .hamburger-button {
    position: fixed;
    right: 3vw;
    z-index: 9999;
  }
  body.is-nav-open .header__logo{
  opacity: 0;
  pointer-events: none;
}

}

/* ========================================
   ticket price / pattern B
   色は既存のまま、見せ方だけ整理
======================================== */
.p-ticket_box--fareline .p-ticket_line + .p-ticket_line {
  margin-top: 2.8rem;
}

.p-ticket_line__label {
  margin: 0 1rem 1.2rem;
  font-size: 24px;
  font-weight: 700;
  color: #007CF8;
  line-height: 1.6;
}

.p-ticket_line__item {
  display: flex;
  align-items: flex-end;
  justify-content: start;
  gap: 5rem;
  padding: 1.2rem 2rem;
}

.p-ticket_line__type {
  font-size: 1.8rem;
  font-weight: 700;
  color: #fff;
  line-height: 1.5;
}

.p-ticket_line__right {
  display: inline-flex;
  align-items: center;
  gap: 0.8rem;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.p-ticket_line__price {
  font-family: "Oswald", sans-serif;
  font-size: clamp(3.2rem, 4.8vw, 5rem);
  line-height: 1;
  font-weight: 700;
  color: #fff;
  letter-spacing: 0.04em;
}

.p-ticket_line__price::before {
  content: "¥";
  display: inline-block;
  margin-right: 0.18em;
  font-size: 0.58em;
  transform: translateY(-0.08em);
}

.p-ticket_line__tax {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0 0.9rem;
  border-radius: 999px;
  background: #007CF8;
  color: #fff;
  font-size: 1.2rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.08em;
}

.p-ticket_line__note {
  margin: 1rem 2rem 0;
  font-size: 15px;
  font-weight: 700;
  color: #fff;
  line-height: 1.8;
}

.p-ticket_line__subnote {
  margin: 1rem 2rem 0;
  font-size: 15px;
  line-height: 1.9;
  color: #fff;
}

@media (max-width: 960px) {
  .p-ticket_box--fareline .p-ticket_line + .p-ticket_line {
    margin-top: 2.2rem;
    padding-top: 2rem;
  }

  .p-ticket_line__label {
    font-size: 1.6rem;
    margin-bottom: 1rem;
  }

  .p-ticket_line__item {
    align-items: flex-start;
    flex-direction: column;
    gap: 0.5rem;
    padding: 1rem 2rem;
  }

  .p-ticket_line__type {
    font-size: 1.5rem;
  }

  .p-ticket_line__right {
    justify-content: flex-start;
  }

  .p-ticket_line__price {
    font-size: 3.4rem;
  }

  .p-ticket_line__tax {
    min-height: 24px;
    padding: 0 0.8rem;
    font-size: 1.1rem;
  }

  .p-ticket_line__note {
    font-size: 1.3rem;
  }

  .p-ticket_line__subnote {
    font-size: 1.35rem;
    line-height: 1.8;
  }
}
/* ===============================
   TICKET / 先行スケジュール 作り替え
================================= */
#ticket .p-ticket-schedule--revamp {
  display: grid;
  gap: 2.4rem;
}

#ticket .p-ticket-schedule--revamp .p-ticket-schedule__item {
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 2.4rem;
  padding: 3.2rem;
  text-align: center;
  backdrop-filter: blur(6px);
}

#ticket .p-ticket-schedule--revamp .p-ticket-schedule__heading {
  margin: 0 0 1.8rem;
  font-size: 2.8rem;
  line-height: 1.5;
  color: #fff;
  letter-spacing: 0.06em;
}

#ticket .p-ticket-schedule--revamp .p-ticket-schedule__period {
  display: flex;
  align-items: flex-start;
  flex-wrap: wrap;
  gap: 1rem 1.4rem;
  margin-bottom: 2rem;
  justify-content: center;
}

#ticket .p-ticket-schedule--revamp .p-ticket-schedule__period-label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 9.5rem;
  padding: 0.7rem 1.2rem 0.8rem;
  background: #007CF8;
  color: #fff;
  border-radius: 999px;
  font-size: 1.5rem;
  line-height: 1;
  letter-spacing: 0.08em;
  white-space: nowrap;
}

#ticket .p-ticket-schedule--revamp .p-ticket-schedule__period-text {
  margin: 0;
  font-size: 2rem;
  line-height: 1.7;
  color: #fff;
}

#ticket .p-ticket-schedule--revamp .p-ticket-schedule__notes {
  margin: 0;
  padding: 0;
}

#ticket .p-ticket-schedule--revamp .p-ticket-schedule__notes li {
  position: relative;
  margin: 0;
  padding-left: 1.4em;
  font-size: 1.6rem;
  line-height: 1.9;
  color: rgba(255, 255, 255, 0.88);
}

#ticket .p-ticket-schedule--revamp .p-ticket-schedule__notes li + li {
  margin-top: 0.4rem;
}



#ticket .p-ticket-schedule--revamp .p-ticket-schedule__btns {
  display: flex;
  flex-wrap: wrap;
  gap: 1.2rem 1.6rem;
  margin-top: 2.4rem;
  justify-content: center;
}

#ticket .p-ticket-schedule--revamp .p-ticket_content__link {
  margin: 0;
}

/* p-special__btn の雰囲気を ticket 側に移植 */
#ticket .p-ticket-schedule--revamp .p-btn_2,
#ticket .p-ticket-schedule--revamp .p-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 32rem;
  min-height: 6rem;
  padding: 1.6rem 3rem;
  border-radius: 999px;
  font-size: 1.8rem;
  line-height: 1.2;
  letter-spacing: 0.08em;
  margin-bottom: 0;
  overflow: hidden;
}

/* 申込みボタン：青→赤 */
#ticket .p-ticket-schedule--revamp .p-btn_2 {
  background: #007CF8;
  border: 1px solid #fff;
  color: #fff;
}


/* 入会ボタン：白縁 */
#ticket .p-ticket-schedule--revamp .p-btn--entry {
  background: transparent;
  border: 1px solid #fff;
  color: #fff;
}

#ticket .p-ticket-schedule--revamp .p-btn__text,
#ticket .p-ticket-schedule--revamp .p-btn__text_2 {
  color: inherit;
}

/* hover */
@media (hover:hover) and (pointer:fine) {
  #ticket .p-ticket-schedule--revamp .p-btn_2:hover::before,
  #ticket .p-ticket-schedule--revamp .p-btn--entry:hover::before {
    width: 100%;
  }

  #ticket .p-ticket-schedule--revamp .p-btn_2:hover::after,
  #ticket .p-ticket-schedule--revamp .p-btn--entry:hover::after {
    right: 1.8rem;
  }

  #ticket .p-ticket-schedule--revamp .p-btn--entry:hover {
    color: #007CF8 !important;
    border-color: #007CF8 !important; 
  }

  #ticket .p-ticket-schedule--revamp .p-btn--entry:hover::after {
    border-top-color: #000;
    border-right-color: #000;
  }
}

/* SP */
@media (max-width: 960px) {
  #ticket .p-ticket-schedule--revamp .p-ticket-schedule__item {
    padding: 2.2rem 1.8rem;
    border-radius: 1.8rem;
  }

  #ticket .p-ticket-schedule--revamp .p-ticket-schedule__heading {
    font-size: 1.9rem;
    margin-bottom: 1.4rem;
  }

  #ticket .p-ticket-schedule--revamp .p-ticket-schedule__period {
    gap: 0.8rem;
    margin-bottom: 1.6rem;
  }

  #ticket .p-ticket-schedule--revamp .p-ticket-schedule__period-label {
    font-size: 1.3rem;
    min-width: auto;
    padding: 0.65rem 1rem 0.7rem;
  }

  #ticket .p-ticket-schedule--revamp .p-ticket-schedule__period-text {
    font-size: 1.7rem;
  }

  #ticket .p-ticket-schedule--revamp .p-ticket-schedule__notes li {
    font-size: 1.35rem;
    line-height: 1.8;
  }

  #ticket .p-ticket-schedule--revamp .p-ticket-schedule__btns {
    flex-direction: column;
  }

  #ticket .p-ticket-schedule--revamp .p-btn_2,
  #ticket .p-ticket-schedule--revamp .p-btn {
    width: 100%;
    min-width: 0;
    min-height: 5.4rem;
    font-size: 1.6rem;
    padding: 1.4rem 2rem 1.4rem 2rem;
  }
}
/* fixBtn */
.fixBtn {
    position: fixed;
    bottom: 40px;
    right: 40px;
    z-index: 5;
    transition: all 0.6s ease-in;
    opacity: 0;
    animation: op 1s ease-out 1s forwards;
}
.fixBtn a {
    display: block;
    background-color: #007CF8;
    color: #ffffff;
    text-decoration: none;
    font-size: 18px;
    font-weight: bold;
    padding: 15px 45px;
    border-radius: 80px;
    text-align: center;
    line-height: 1.6;
    letter-spacing: 0.1em;
    border: 1px solid #ffffff;
    transition: all 0.5s ease;
}
.fixBtn a span {
    display: block;
    font-size: 0.7em;
    font-weight: normal;
}
@keyframes op {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
.fixBtn a:hover{
  opacity: 0.6;
}

@media (max-width: 640px) {
      .fixBtn {
        bottom: 30px;
        right: 40px;
        width: calc(100% - 80px);
    }

.fixBtn a {
        font-size: 20px;
        padding: 10px 25px;
        line-height: 1.4;
    }
    .fixBtn a span {
        font-size: 0.5em;
    }
}

.p-ticket_line__noteBox{
  margin-top: 1.2rem;
  padding: 1.4rem 1.6rem;
  border: 1px solid #007CF8;
  border-radius: 12px;
  background: rgba(0,124,248,0.08);
}

.p-ticket_line__noteText{
  font-size: 1.5rem;
  line-height: 1.8;
  color: #fff;
}

.btnWrap{
  text-align: center;
}

#schedule .btnWrap a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 320px;
    height: 64px;
    background-color: var(--color-blue);
    border-radius: 50px;
    border: 1px solid #ffffff;
    font-size: 18px;
    font-weight: bold;
    line-height: 1.2;
    text-align: center;
    text-decoration: none;
    color: #fff;
    margin: 50px auto 0; /* ←これに変更 */
    padding: 1em;
    min-width: fit-content;
}
/*pop開いた時----------*/
#dearFans {
    box-sizing: border-box;
    background-color: #2D363E;
    border: #007CF8 4px solid;
    overflow: auto;
    color: #fff;
    height: 100%;
    width: 100%;
    padding: 32px;
}

#cboxOverlay {
    background: rgba(0, 0, 0, 0.8);
}

#cboxOverlay {
    position: fixed;
    width: 100%;
    height: 100%;
}
#colorbox, #cboxOverlay, #cboxWrapper {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 9999;
    -webkit-transform: translate3d(0, 0, 0);
    overflow: visible !important;
}

#dearFans h3{
  font-size: 2.5rem;
  margin: 24px 0px 36.6px;
  text-align: center;
}

#dearFans h4{
  color: #007CF8;
  font-size: 2.3rem;
}
#dearFans p{
  font-weight: 700;
  line-height: 1.6;
  font-size: 1.8rem;
}

body.is-popup-open {
  overflow: hidden;
  touch-action: none;
}

#colorbox,
#cboxOverlay {
  position: fixed !important;
}

#cboxLoadedContent {
  overflow: auto !important;
  -webkit-overflow-scrolling: touch;
}

/* #dearFans {
  overflow: visible;
} */

/* closeボタンを ss_hh60 系の見た目に寄せる */
#cboxClose {
  position: absolute;
  display: block;
  text-indent: -9999px;
  width: 40px;
  height: 40px;
  top: -60px;
  right: 0;
  border: 0;
  padding: 0;
  margin: 0;
  background: none;
  overflow: visible;
  transition: all .3s ease;
}

#cboxClose::before,
#cboxClose::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 141%;
  height: 2px;
  background: #fff;
  transform-origin: center center;
}

#cboxClose::before {
  transform: translate(-50%, -50%) rotate(-45deg);
}

#cboxClose::after {
  transform: translate(-50%, -50%) rotate(45deg);
}

@media screen and (min-width: 813px) {
  #cboxClose:hover {
    transform: scale(1.1);
  }
}

@media screen and (max-width: 812px) {
  #cboxClose {
    width: 30px;
    height: 30px;
    top: -40px;
  }
}

#cboxLoadedContent {
  overflow: auto !important;
  -webkit-overflow-scrolling: touch;
}

#dearFans {
  max-height: 100%;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
}