/*
 * LIVE TOUR 2027 theme overrides
 * Final text and supplied image assets can be replaced without changing this file.
 */

@font-face {
  font-family: "Science Gothic";
  src: url("fonts/ScienceGothic-Bd.ttf") format("truetype");
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}

:root {
  --tour-2027-cyan: #00c8c8;
  --tour-2027-cyan-bright: #2ff7ee;
  --tour-2027-navy: #06141f;
  --tour-2027-teal-dark: #123d46;
  --tour-2027-green: #00aa89;
  --tour-2027-lime: #c9d71a;
  --tour-2027-yellow: #ebbf02;
  --tour-2027-purple: #4b00e3;
}

.rbt__content.rbt__theme--2027 {
  background: var(--tour-2027-navy);
}

.rbt__content.rbt__theme--2027 header div.rbt__box__menu .rbt__button.rbt__button__menu {
  background-color: #fff;
}

.rbt__content.rbt__theme--2027 header div.rbt__box__menu .rbt__button.rbt__button__cart {
  background-color: #fac000;
}

.rbt__content.rbt__theme--2027 header nav {
  background-color: #0c1722;
  background-image: linear-gradient(180deg, #0c1621 0%, #0c1d27 58%, #0a1520 100%);
  overflow-x: hidden;
  overflow-y: auto;
}

.rbt__content.rbt__theme--2027 header nav a.rbt__button.rbt__button__close {
  width: clamp(56px, 17vw, 70px);
  height: clamp(56px, 17vw, 70px);
}

.rbt__content.rbt__theme--2027 header nav a.rbt__button.rbt__button__close img {
  width: clamp(23px, 7vw, 28px);
}

.rbt__content.rbt__theme--2027 header nav ol.rbt__nav__inner {
  width: 100%;
  padding-top: clamp(130px, 22vh, 182px);
  padding-bottom: 0;
  overflow: visible;
}

.rbt__content.rbt__theme--2027 header nav ol.rbt__nav__inner li:not(:first-of-type) {
  margin-top: clamp(56px, 10vh, 82px);
}

.rbt__content.rbt__theme--2027 header nav ol.rbt__nav__inner li a {
  display: block;
  line-height: 0;
}

.rbt__content.rbt__theme--2027 header nav ol.rbt__nav__inner li a img {
  width: auto;
  height: clamp(22px, 6.75vw, 27px);
  filter:
    brightness(0)
    invert(1)
    drop-shadow(0 0 3px #bafff9)
    drop-shadow(0 0 9px #00e6d4)
    drop-shadow(0 0 24px rgba(0, 214, 200, 0.92))
    drop-shadow(0 0 46px rgba(0, 181, 177, 0.6));
}

.rbt__content.rbt__theme--2027 header nav a.rbt__link__official {
  margin-top: clamp(96px, 19vh, 157px);
  line-height: 0;
}

.rbt__content.rbt__theme--2027 header nav a.rbt__link__official img {
  width: auto;
  height: clamp(34px, 10.5vw, 42px);
  filter: drop-shadow(0 0 6px rgba(0, 154, 142, 0.28));
}

.rbt__content.rbt__theme--2027 header nav ul.rbt__box__link__sns {
  padding-top: clamp(22px, 3.3vh, 27px);
  padding-bottom: 24px;
}

.rbt__content.rbt__theme--2027 header nav ul.rbt__box__link__sns li.rbt__link__sns__facebook {
  display: none;
}

.rbt__content.rbt__theme--2027 section div.rbt__section__inner h2 img.rbt__en {
  display: block;
  width: auto;
  height: auto;
  max-height: 48px;
  margin: 0 auto;
}

.rbt__content.rbt__theme--2027 section div.rbt__section__inner h2 {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
  text-align: center;
}

.rbt__content.rbt__theme--2027 section div.rbt__section__inner h2 p.rbt__jp {
  margin: 0;
}

.rbt__content.rbt__theme--2027 section.rbt__news h2 img.rbt__en {
  max-width: 252px;
}

.rbt__content.rbt__theme--2027 section.rbt__main h2 img.rbt__en.rbt__en__mod01 {
  max-width: 501px;
  filter:
    brightness(0)
    invert(1)
    drop-shadow(0 0 3px #bafff9)
    drop-shadow(0 0 9px #00e6d4)
    drop-shadow(0 0 24px rgba(0, 214, 200, 0.92))
    drop-shadow(0 0 46px rgba(0, 181, 177, 0.6));
}

.rbt__content.rbt__theme--2027 section.rbt__tickets h2 img.rbt__en {
  max-width: 319px;
}

.rbt__content.rbt__theme--2027 section.rbt__news {
  background-color: var(--tour-2027-cyan);
  background-image: url("../../../../images/mobile_nananaoto/live/2027_tour/bg_1.jpg");
  background-position: center -1060px;
  background-repeat: no-repeat;
  background-size: 1920px auto;
}

.rbt__content.rbt__theme--2027 section.rbt__tickets {
  background-color: var(--tour-2027-cyan);
  background-image: url("../../../../images/mobile_nananaoto/live/2027_tour/bg_1.jpg");
  background-position: center bottom;
  background-repeat: no-repeat;
  background-size: cover;
}

.rbt__content.rbt__theme--2027 section.rbt__news div.rbt__section__inner div.rbt__box.rbt__box__news {
  background-color: #fff;
  border-color: #000;
  box-shadow: 0 10px 24px rgba(0, 70, 80, 0.18);
}

.rbt__content.rbt__theme--2027 section.rbt__news div.rbt__section__inner div.rbt__box.rbt__box__news ol.rbt__news__body li div.rbt__news__inner p.rbt__news__date {
  color: #00c8c8;
  font-family: "Science Gothic", sans-serif;
  font-weight: 700;
}

.rbt__content.rbt__theme--2027 section.rbt__main {
  background-color: #171717;
  background-image: url("../../../../images/mobile_nananaoto/live/2027_tour/bg_2.jpg");
  background-position: center top;
  background-repeat: no-repeat;
  background-size: cover;
  color: #fff;
}

.rbt__content.rbt__theme--2027 .rbt__provisional {
  width: fit-content;
  margin: 24px auto -24px;
  padding: 7px 14px;
  border: 1px solid rgba(47, 247, 238, 0.55);
  border-radius: 999px;
  color: #d8fffc;
  background: rgba(3, 18, 27, 0.72);
  font-size: 12px;
  letter-spacing: 0.03em;
}

.rbt__content.rbt__theme--2027 section.rbt__main div.rbt__section__inner ol.rbt__box__schedule {
  border-color: #fff;
  background: rgba(4, 25, 34, 0.72);
  box-shadow:
    0 0 5px 2px #b9fff9,
    0 0 15px 6px #00e8d7,
    0 0 32px 13px rgba(0, 216, 202, 0.75),
    inset 0 0 5px 2px #b9fff9,
    inset 0 0 15px 6px #00e8d7,
    inset 0 0 32px 13px rgba(0, 216, 202, 0.75);
}

.rbt__content.rbt__theme--2027 section.rbt__main div.rbt__section__inner ol.rbt__box__schedule::before {
  display: none;
}

.rbt__content.rbt__theme--2027 section.rbt__main div.rbt__section__inner ol.rbt__box__schedule li.rbt__schedule div.rbt__schedule__inner {
  border-bottom-color: rgba(255, 255, 255, 0.23);
}

.rbt__content.rbt__theme--2027 section.rbt__main div.rbt__section__inner ol.rbt__box__schedule li.rbt__schedule:not(:first-of-type) div.rbt__schedule__inner p.rbt__date {
  font-family: "Science Gothic", sans-serif;
  font-weight: 700;
  letter-spacing: -0.025em;
}

@media screen and (min-width: 768px) {
  /* CONTACTボタンの幅を確保するため、外周余白と各列の余剰幅を再配分
     （DATE 25%→24% / AREA 10%→7.2% / HALL 26%→25.5% / OPEN-START 14%→12.5% / CONTACT 25%→30.8%、
       左右パディング 48px→28px。列位置は全行で揃えたまま） */
  .rbt__content.rbt__theme--2027 section.rbt__main div.rbt__section__inner ol.rbt__box__schedule {
    padding-left: 28px;
    padding-right: 28px;
  }

  .rbt__content.rbt__theme--2027 section.rbt__main div.rbt__section__inner ol.rbt__box__schedule li.rbt__schedule div.rbt__schedule__inner p.rbt__date {
    width: 24%;
    white-space: nowrap;
  }

  .rbt__content.rbt__theme--2027 section.rbt__main div.rbt__section__inner ol.rbt__box__schedule li.rbt__schedule div.rbt__schedule__inner div.rbt__box__prefecture {
    width: 7.2%;
  }

  .rbt__content.rbt__theme--2027 section.rbt__main div.rbt__section__inner ol.rbt__box__schedule li.rbt__schedule div.rbt__schedule__inner p.rbt__date span.rbt__large {
    margin-right: 0.1em;
    margin-left: 0.1em;
  }

  .rbt__content.rbt__theme--2027 section.rbt__main div.rbt__section__inner ol.rbt__box__schedule li.rbt__schedule div.rbt__schedule__inner p.rbt__place {
    width: 25.5%;
  }

  .rbt__content.rbt__theme--2027 section.rbt__main div.rbt__section__inner ol.rbt__box__schedule li.rbt__schedule div.rbt__schedule__inner p.rbt__sotime {
    width: 12.5%;
  }

  .rbt__content.rbt__theme--2027 section.rbt__main div.rbt__section__inner ol.rbt__box__schedule li.rbt__schedule div.rbt__schedule__inner div.contact {
    width: 30.8%;
    letter-spacing: normal;
  }

  /* 右端の矢印と文字が干渉しないよう、右側に逃げを確保。
     margin-left は OPEN / START との間隔用（列幅は変えずボタンだけを縮める） */
  .rbt__content.rbt__theme--2027 section.rbt__main div.rbt__section__inner ol.rbt__box__schedule li.rbt__schedule div.rbt__schedule__inner div.contact a {
    padding: 6px 30px 6px 6px;
    margin-left: 16px;
  }

  /* 会場名が長い公演は列幅を変えず、文字サイズで収める
     （DATE / HALL / OPEN-START / CONTACT の列位置を全行で統一するため） */
  .rbt__content.rbt__theme--2027 section.rbt__main div.rbt__section__inner ol.rbt__box__schedule li.rbt__schedule div.rbt__schedule__inner p.rbt__place--fukushima {
    font-size: 15px;
  }

  .rbt__content.rbt__theme--2027 section.rbt__main div.rbt__section__inner ol.rbt__box__schedule li.rbt__schedule div.rbt__schedule__inner p.rbt__place--niterra {
    font-size: 15px;
    letter-spacing: 0.1em;
  }
}

@media screen and (max-width: 639.9px) {
  /* SPのみ：「かぶりつきンティライミ指定席…の座席について」ボタンを
     ブロック末尾（＝「販売・枚数制限について」の直前）へ移動する。
     HTMLの並びは変えていないので、PCレイアウトは従来どおり。
     SPでは .rbt__ticket__inner が block のため、flex 化して order で入れ替える */
  .rbt__content.rbt__theme--2027 section.rbt__tickets div.rbt__section__inner ol.rbt__box__tickets li.rbt__ticket div.rbt__ticket__inner--kaburi {
    display: flex;
    flex-direction: column;
  }

  .rbt__content.rbt__theme--2027 section.rbt__tickets div.rbt__section__inner ol.rbt__box__tickets li.rbt__ticket div.rbt__ticket__inner--kaburi a.rbt__button.rbt__button__kaburituki {
    order: 1;
  }

  /* 「ファミリー席について」ボタンの下に1行分の余白。
     直下の ※注記 の margin-top 2.6666666667vw と相殺（マージン結合）されるため、
     それ + 注記1行分 4.8vw = 7.4666666667vw を指定する */
  .rbt__content.rbt__theme--2027 section.rbt__tickets div.rbt__section__inner ol.rbt__box__tickets li.rbt__ticket div.rbt__ticket__inner a.rbt__button.rbt__button__family {
    margin-bottom: 7.4666666667vw;
  }

  .rbt__content.rbt__theme--2027 section.rbt__main div.rbt__section__inner ol.rbt__box__schedule li.rbt__schedule div.rbt__schedule__inner p.rbt__place--fukushima .rbt__spe br,
  .rbt__content.rbt__theme--2027 section.rbt__main div.rbt__section__inner ol.rbt__box__schedule li.rbt__schedule div.rbt__schedule__inner p.rbt__place--niterra br {
    display: block;
  }
}

.rbt__content.rbt__theme--2027 section.rbt__main div.rbt__section__inner ol.rbt__box__schedule li.rbt__schedule div.rbt__schedule__inner div.contact a {
  background: linear-gradient(105deg, var(--tour-2027-green), var(--tour-2027-lime));
  border: 0;
  box-shadow: 0 5px 14px rgba(0, 0, 0, 0.2);
}

.rbt__content.rbt__theme--2027 section.rbt__main div.rbt__section__inner ol.rbt__box__schedule li.rbt__schedule div.rbt__schedule__inner div.contact a::after {
  border-color: #fff;
}

.rbt__content.rbt__theme--2027 section.rbt__tickets div.rbt__section__inner {
  box-shadow: 0 14px 36px rgba(0, 80, 85, 0.18);
}

@media screen and (min-width: 768px) {
  .rbt__content.rbt__theme--2027 section.rbt__tickets {
    padding-bottom: 330px;
  }

  .rbt__content.rbt__theme--2027 section.rbt__tickets div.rbt__section__inner h2 {
    padding-top: 103px;
  }

  .rbt__content.rbt__theme--2027 section.rbt__tickets div.rbt__section__inner ol.rbt__box__tickets li.rbt__ticket div.rbt__ticket__inner.rbt__mod02 {
    padding-bottom: 100px;
  }
}

.rbt__content.rbt__theme--2027 section.rbt__tickets div.rbt__section__inner ol.rbt__box__tickets li.rbt__ticket h3,
.rbt__content.rbt__theme--2027 section.rbt__tickets div.rbt__section__inner ol.rbt__box__tickets li.rbt__ticket.rbt__fc h3 {
  background: var(--tour-2027-purple);
}

.rbt__content.rbt__theme--2027 section.rbt__tickets div.rbt__section__inner ol.rbt__box__tickets li.rbt__ticket h3.rbt__sub,
.rbt__content.rbt__theme--2027 section.rbt__tickets div.rbt__section__inner ol.rbt__box__tickets li.rbt__ticket h3.rbt__h3__mod01 {
  background: var(--tour-2027-yellow);
  color: #000;
}

.rbt__content.rbt__theme--2027 section.rbt__tickets div.rbt__section__inner ol.rbt__box__tickets > li.rbt__ticket:not(.rbt__fc) h3 {
  background: var(--tour-2027-yellow);
  color: #000;
}

/* The three advance-reservation blocks are part of the 2027 design itself. */
.rbt__content.rbt__theme--2027 section.rbt__tickets div.rbt__section__inner ol.rbt__box__tickets > li.rbt__ticket.rbt__advance h3.rbt__sub {
  margin-top: 36px;
  background: var(--tour-2027-purple);
  color: #fff;
}

.rbt__content.rbt__theme--2027 section.rbt__tickets li.rbt__ticket.rbt__advance + li.rbt__ticket.rbt__advance h3.rbt__sub {
  margin-top: 12px;
}

.rbt__content.rbt__theme--2027 section.rbt__tickets li.rbt__ticket._rbt__fc {
  margin-top: 18px;
}

.rbt__content.rbt__theme--2027 section.rbt__tickets div.rbt__section__inner ol.rbt__box__tickets li.rbt__ticket div.rbt__ticket__inner p.rbt__caption.rbt__caption--sold::after {
  color: #000;
}

.rbt__content.rbt__theme--2027 section.rbt__tickets div.rbt__section__inner ol.rbt__box__tickets ul.rbt__attention li,
.rbt__content.rbt__theme--2027 section.rbt__tickets a {
  color: #00c8c8;
}

.rbt__content.rbt__theme--2027 section.rbt__tickets div.rbt__section__inner a:not(.rbt__button) {
  color: #00c8c8;
}

.rbt__content.rbt__theme--2027 section.rbt__tickets a.rbt__button[data-label] {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 54px;
  padding: 10px 48px 10px 22px;
  border-radius: 999px;
  color: #fff;
  background: linear-gradient(105deg, var(--tour-2027-green), var(--tour-2027-lime));
  box-shadow: 0 5px 12px rgba(0, 95, 85, 0.18);
  text-decoration: none;
  font-weight: 700;
  line-height: 1.35;
}

.rbt__content.rbt__theme--2027 section.rbt__tickets a.rbt__button[data-label]::before {
  content: attr(data-label);
}

.rbt__content.rbt__theme--2027 section.rbt__tickets a.rbt__button.rbt__button__kaburituki[data-label]::before {
  white-space: pre-line;
  text-align: center;
}

.rbt__content.rbt__theme--2027 section.rbt__tickets a.rbt__button[data-label]::after {
  content: "";
  position: absolute;
  right: 24px;
  width: 9px;
  height: 9px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  transform: rotate(45deg);
}

.rbt__content.rbt__theme--2027 div.rbt__box__modal div.rbt__modal__inner h3 {
  background: #ebbf02;
}

.rbt__content.rbt__theme--2027 footer {
  background: #02090e;
}

.rbt__content.rbt__theme--2027 footer li.rbt__link__sns__facebook {
  display: none;
}

@media screen and (max-width: 767px) {
  .rbt__content.rbt__theme--2027 section.rbt__news {
    background-image: url("../../../../images/mobile_nananaoto/live/2027_tour/sp/bg_1.jpg");
    background-position: center top;
    background-repeat: no-repeat;
    background-size: 100% auto;
  }

  .rbt__content.rbt__theme--2027 section.rbt__main {
    background-image: url("../../../../images/mobile_nananaoto/live/2027_tour/sp/bg_2.jpg");
    background-position: center top;
    background-repeat: no-repeat;
    background-size: cover;
  }

  .rbt__content.rbt__theme--2027 section.rbt__tickets {
    background-image: url("../../../../images/mobile_nananaoto/live/2027_tour/sp/bg_1.jpg");
    background-position: center bottom -31vw;
    background-repeat: no-repeat;
    background-size: 100% auto;
    padding-bottom: 33.3333333333vw;
  }

  .rbt__content.rbt__theme--2027 section div.rbt__section__inner h2 {
    gap: 2.6666666667vw;
  }

  .rbt__content.rbt__theme--2027 section div.rbt__section__inner h2 img.rbt__en {
    height: auto;
    max-height: none;
  }

  .rbt__content.rbt__theme--2027 section.rbt__news div.rbt__section__inner h2 img.rbt__en {
    width: 33.6vw;
  }

  .rbt__content.rbt__theme--2027 section.rbt__main div.rbt__section__inner h2 img.rbt__en.rbt__en__mod01 {
    width: 66.8vw;
    filter:
      brightness(0)
      invert(1)
      drop-shadow(0 0 0.7vw #bafff9)
      drop-shadow(0 0 1.8vw #00e6d4)
      drop-shadow(0 0 4vw rgba(0, 214, 200, 0.92))
      drop-shadow(0 0 7.5vw rgba(0, 181, 177, 0.6));
  }

  .rbt__content.rbt__theme--2027 section.rbt__tickets div.rbt__section__inner h2 img.rbt__en {
    width: 42.533333vw;
  }

  .rbt__content.rbt__theme--2027 .rbt__provisional {
    width: calc(100% - 12vw);
    margin-top: 4vw;
    margin-bottom: -2vw;
    padding: 2vw 3vw;
    border-radius: 2vw;
    font-size: 2.8vw;
    line-height: 1.55;
    text-align: center;
  }

  .rbt__content.rbt__theme--2027 section.rbt__main div.rbt__section__inner ol.rbt__box__schedule {
    border-width: 0.5333333333vw;
    background: rgba(4, 25, 34, 0.78);
    box-shadow:
      0 0 0.6vw 0.25vw #b9fff9,
      0 0 1.8vw 0.7vw #00e8d7,
      0 0 3.6vw 1.5vw rgba(0, 216, 202, 0.72),
      inset 0 0 0.6vw 0.25vw #b9fff9,
      inset 0 0 1.8vw 0.7vw #00e8d7,
      inset 0 0 3.6vw 1.5vw rgba(0, 216, 202, 0.72);
  }

  /* 日付と地名を必ず同じ行に収める（最長「北海道」基準で約7pxの余裕） */
  .rbt__content.rbt__theme--2027 section.rbt__main div.rbt__section__inner ol.rbt__box__schedule li.rbt__schedule div.rbt__schedule__inner p.rbt__date {
    flex: 0 0 auto;
    margin: 0 3vw 3.2vw 0;
    white-space: nowrap;
  }

  .rbt__content.rbt__theme--2027 section.rbt__main div.rbt__section__inner ol.rbt__box__schedule li.rbt__schedule div.rbt__schedule__inner p.rbt__date span.rbt__large {
    margin-right: 0.1em;
    margin-left: 0.1em;
  }

  .rbt__content.rbt__theme--2027 section.rbt__main div.rbt__section__inner ol.rbt__box__schedule li.rbt__schedule div.rbt__schedule__inner div.rbt__box__prefecture {
    flex: 0 0 auto;
    margin: 0 0 1.3333333333vw;
    white-space: nowrap;
  }

  .rbt__content.rbt__theme--2027 section.rbt__main div.rbt__section__inner ol.rbt__box__schedule li.rbt__schedule:not(:first-of-type) div.rbt__schedule__inner p.rbt__place,
  .rbt__content.rbt__theme--2027 section.rbt__main div.rbt__section__inner ol.rbt__box__schedule li.rbt__schedule:not(:first-of-type) div.rbt__schedule__inner p.rbt__sotime {
    flex: 0 0 100%;
    width: 100%;
    margin-right: 0;
    margin-left: 0;
  }

  .rbt__content.rbt__theme--2027 section.rbt__main div.rbt__section__inner ol.rbt__box__schedule li.rbt__schedule div.rbt__schedule__inner p.rbt__sotime span.rbt__open::before {
    content: "OPEN ";
  }

  .rbt__content.rbt__theme--2027 section.rbt__main div.rbt__section__inner ol.rbt__box__schedule li.rbt__schedule div.rbt__schedule__inner p.rbt__sotime span.rbt__start::before {
    content: "START ";
  }

  .rbt__content.rbt__theme--2027 section.rbt__tickets a.rbt__button[data-label] {
    width: min(80vw, 100%);
    min-height: 13vw;
    padding: 2vw 10vw 2vw 5vw;
    font-size: 3.2vw;
  }

  .rbt__content.rbt__theme--2027 section.rbt__tickets div.rbt__ticket__inner a:not(.rbt__button) {
    overflow-wrap: anywhere;
    word-break: break-all;
  }

  .rbt__content.rbt__theme--2027 section.rbt__tickets div.rbt__ticket__inner ol.rbt__box__prices li.rbt__price p.rbt__seat {
    width: 62%;
  }

  .rbt__content.rbt__theme--2027 section.rbt__tickets div.rbt__ticket__inner ol.rbt__box__prices li.rbt__price p.rbt__value {
    width: 38%;
    font-size: 3.4666666667vw;
    white-space: nowrap;
  }

  .rbt__content.rbt__theme--2027 section.rbt__tickets div.rbt__ticket__inner ol.rbt__box__prices li.rbt__price--kaburi p.rbt__seat {
    width: 70%;
    white-space: nowrap;
  }

  .rbt__content.rbt__theme--2027 section.rbt__tickets div.rbt__ticket__inner ol.rbt__box__prices li.rbt__price--kaburi p.rbt__value {
    width: 30%;
  }

  .rbt__content.rbt__theme--2027 section.rbt__tickets div.rbt__ticket__inner.rbt__mod02 a.rbt__button[data-label] {
    width: calc(100% - 4vw);
    margin-right: auto;
    margin-left: auto;
  }

  .rbt__content.rbt__theme--2027 section.rbt__tickets a.rbt__button[data-label]::after {
    right: 5vw;
    width: 2vw;
    height: 2vw;
  }

  .rbt__content.rbt__theme--2027 section.rbt__tickets div.rbt__section__inner ol.rbt__box__tickets > li.rbt__ticket.rbt__advance h3.rbt__sub {
    margin-top: 8vw;
  }

  .rbt__content.rbt__theme--2027 section.rbt__tickets li.rbt__ticket.rbt__advance + li.rbt__ticket.rbt__advance h3.rbt__sub {
    margin-top: 2.6666666667vw;
  }
}
