@charset "UTF-8";
/* CSS Document */

/* ////////////////////////////////////////////////////////////////////////////////

	Common

//////////////////////////////////////////////////////////////////////////////// */

html {
  scroll-behavior: smooth;
}
body {
  font-family: "Noto Sans JP", sans-serif;
  font-size: min(3.2vw, 14px);
  line-height: 1.8;
  letter-spacing: 0.05em;
  -webkit-text-size-adjust: 100%;
  -webkit-font-smoothing: antialiased;
  background-color: #151720;
  color: #fff;
  word-break: break-word;
}

img {
  max-width: 100%;
  height: auto;
}
ul {
  list-style: none;
}

.anim {
  opacity: 0;
  transition: all 0.6s ease-out;
}
.anim.on {
  opacity: 1;
}

@media screen and (min-width: 821px) {
  .sp {
    display: none;
  }

  a {
    transition: all 0.3s ease-out;
  }
  a:hover {
    opacity: 0.5;
  }
}
@media screen and (max-width: 820px) {
  .pc {
    display: none;
  }
}

.wovn-languages .langIcon {
  white-space: nowrap !important;
  width: 7em !important;
  left: 0px !important;
}
.wovn-languages::before {
  border-bottom: solid 2px #fff !important;
  border-right: solid 2px #fff !important;
}

@media screen and (max-width: 769px) {
  .wovn-languages {
    top: 20px;
    right: 15px;
  }
}

#mainvisual {
  padding: 0 min(4vw, 80px);
  max-width: 1440px;
  height: 100vh;
  height: 100svh;
  min-height: 720px;
  margin: 0 auto;
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
}
#mainvisual .tourLogo {
  position: absolute;
  top: 10%;
  left: 50%;
  width: min(42vw, 460px);
  transform: translateX(-50%);
  z-index: 2;

  background-color: #000;
  mix-blend-mode: lighten;

  filter: contrast(25) blur(0px);
  overflow: hidden;
  animation: op3_2 4s linear 0s forwards;
  will-change: transform, animation, position;
}
#mainvisual .tourLogo img {
  animation: op3 4s linear 0s forwards;
  will-change: transform, animation, position;
  opacity: 0;
}

#mainvisual .mvTitle {
  position: absolute;
  bottom: 12vh;
  left: 50%;
  transform: translateX(-50%);
  white-space: nowrap;
  z-index: 2;

  /*
  background-color: #000;
  mix-blend-mode: lighten;

  filter: contrast(25) blur(0px);
  overflow: hidden;
  animation: op3_2 4s linear 0s forwards;
*/
}
#mainvisual .mvTitle h1 {
  color: #fff;
  font-family: "tt-commons-pro", sans-serif;
  font-weight: 500;
  font-size: min(4vw, 42px);
  text-align: center;
  line-height: 1.4;

  animation: op4 1s linear 4s forwards;
  opacity: 0;
}
#mainvisual .mvTitle h1 span {
  display: block;
  color: #fff;
  border-bottom: #fff solid 1px;
  font-size: 1.23em;
  text-shadow: 0px 4px 7px rgba(0, 0, 0, 0.7);
}

#mainvisual .artistLogo {
  width: 45%;
  margin: min(4vw, 5vh) auto 0;

  animation: op4 1s linear 4s forwards;
  opacity: 0;
}

@keyframes op3 {
  0% {
    filter: contrast(25) blur(20px);
    opacity: 0;
  }
  100% {
    filter: contrast(1) blur(0px);
    opacity: 1;
  }
}
@keyframes op3_2 {
  0% {
    filter: contrast(25) blur(0);
  }
  100% {
    filter: contrast(1) blur(0);
  }
}

@keyframes op4 {
  0% {
    filter: blur(0);
    opacity: 0;
  }
  100% {
    filter: blur(0);
    opacity: 1;
  }
}

#mainvisual .mvImg {
  line-height: 0;
  clip-path: polygon(0 50%, 100% 50%, 100% 50%, 0 50%);
  animation: op1 1.2s cubic-bezier(0.85, 0, 0.15, 1) 4s forwards;
}
@keyframes op1 {
  0% {
    clip-path: polygon(0 50%, 100% 50%, 100% 50%, 0 50%);
  }
  100% {
    clip-path: polygon(0 0, 100% 0, 100% 100%, 0% 100%);
  }
}

@media screen and (max-width: 820px) {
  #mainvisual {
    height: 120vw;
    min-height: auto;
  }
  #mainvisual .tourLogo {
    /* bottom: 63%; */
    width: 56vw;
  }
  #mainvisual .mvTitle {
    bottom: 10vw;
  }
  #mainvisual .mvTitle h1 {
    font-size: 5.6vw;
  }
  #mainvisual .artistLogo {
    width: 48%;
    margin: min(6vw, 5vh) auto 0;
  }
}

main {
  padding: min(8vw, 60px) min(6vw, 60px);
}
main section {
  max-width: 980px;
  margin: 0 auto;
  padding: min(8vw, 60px) 0;
}
section h2 {
  text-align: center;
  font-family: Helvetica, "sans-serif";
  font-weight: bold;
  font-size: min(8.6vw, 48px);
  line-height: 1.2;
  letter-spacing: 0.14em;
  margin-bottom: min(8vw, 40px);
}

.dateList {
  border-top: #ccc solid 1px;
}
.dateList li {
  padding: min(4vw, 20px) 0;
  border-bottom: #ccc solid 1px;
  font-size: min(3.4vw, 16px);
}
.dateList li p + p {
  margin-top: min(4vw, 20px);
}
.dateList li a{
  color: #fff;
}

.ticketBox {
  margin-bottom: min(6vw, 30px);
}
#tickets .ticketBox {
  background-color: #fff;
  color: #000;
  padding: min(6vw, 30px);
}
.ticketBox .ticketWrap + .ticketWrap {
  margin-top: min(8vw, 60px);
}

.ticketBox .ticketWrap .text-line-right {
  display: flex;
  align-items: center;
  font-size: min(5.2vw, 26px);
  font-weight: bold;
  color: #333;
  margin-bottom: min(4vw, 20px);
}
.ticketBox .ticketWrap .text-line-right:after {
  content: "";
  flex-grow: 1;
  height: 1px;
  display: block;
  margin-left: 0.4em;
  background: #333;
}
.ticketHead {
  display: inline-block;
  /* border: 1px solid #000; */
  color: #fff;
  background-color: #000;
  padding: 0.2em 0.8em;
  margin-right: 0.5em;
}
.ticketBox .ticketWrap .priceBoxBg {
  background-color: #666;
  color: #fff;
  padding: min(3vw, 15px) min(4vw, 20px);
  margin-bottom: min(6vw, 30px);
  margin-top: min(6vw, 30px);
}
.ticketBox .ticketWrap .priceBox {
  display: flex;
  justify-content: space-between;
  position: relative;
  align-items: flex-start;
  font-size: min(3.4vw, 20px);
  font-weight: bold;
}
.ticketBox .ticketWrap .priceBox::before {
  content: "";
  display: block;
  width: 100%;
  height: 1px;
  background-color: #ccc;
  position: absolute;
  top: 0.9em;
  left: 0;
  z-index: 0;
}
.ticketBox .ticketWrap .priceBox .ticketKind {
  background-color: #666;
  padding-right: min(4vw, 20px);
  position: relative;
  z-index: 1;
}
.ticketBox .ticketWrap .priceBox .price {
  background-color: #666;
  text-decoration: none;
  padding-left: min(4vw, 20px);
  margin: 0;
  position: relative;
  z-index: 1;
  text-align: right;
}
.ticketBox .ticketWrap .priceBox .price span {
  font-weight: normal;
  font-size: 0.8em;
}
.ticketBox .ticketWrap .priceSub {
  text-align: right;
  margin-top: min(2vw, 10px);
}

.ticketBox .ticketWrap .note {
  margin-bottom: min(6vw, 30px);
}
.ticketBox .ticketWrap .note p + p {
  margin-top: min(4vw, 20px);
}
.ticketBox .ticketWrap .note a {
  color: #000;
  text-decoration: underline;
}
.ticketBox .ticketWrap .buyLogo {
  padding-top: 0;
  border-top: none;
  margin-bottom: min(8vw, 20px);
}
.ticketBox .ticketWrap h4 {
  font-size: min(3.6vw, 18px);
  margin-bottom: min(4vw, 20px);
}

.ticketBox .ticketWrap h4 img,
.dateList li img {
  height: 1em;
  vertical-align: -0.1em;
}

.ticketBox h4 a {
  color: #000;
}

.ticketBox .ticketWrap .buyLogo ul {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: min(4vw, 20px) 2%;
}
.ticketBox .ticketWrap .buyLogo ul li {
  width: 32%;
  margin: 0;
  padding: 0;
}
.ticketBox .ticketWrap .buyLogo ul li a {
  display: flex;
  align-items: center;
  justify-content: center;
  border: #000 solid 2px;
  padding: min(3vw, 15px) min(3vw, 30px);
  height: 80px;
}
.ticketBox .ticketWrap .buyLogo ul li p {
  margin-top: min(1vw, 5px);
}

.ticketBox dl dt {
  background-color: #666;
  color: #fff;
  padding: 5px 15px;
  font-size: 16px;
  font-weight: bold;
  margin-bottom: 20px;
}
.ticketBox dl dd h5 {
  margin-bottom: min(3vw, 15px);
  border-bottom: #666 solid 1px;
  padding-bottom: min(1vw, 5px);
  font-size: min(3.4vw, 16px);
}
.tableFlex {
  display: flex;
  justify-content: space-between;
  margin-bottom: min(8vw, 60px);
}
.tableFlex .tableFlexinr {
  width: 48%;
}
.tableWrap table {
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0;
  background-color: #555;
  color: #fff;
}
.tableWrap table th,
.tableWrap table td {
  width: 50%;
  padding: min(2vw, 10px);
  font-size: min(3vw, 12px);
  font-weight: normal;
  border: 1px #ddd solid;
  line-height: 1.6;
  text-align: left;
}
.tableWrap table thead th {
  background-color: #555;
  color: #fff;
  padding: min(4vw, 20px) min(2vw, 10px);
}
.tableWrap table thead td {
  text-align: center;
  line-height: 0;
  background-color: #fff;
  padding: min(4vw, 20px);
}
.tableWrap table tbody th {
  background-color: #222;
  color: #fff;
}
.tableWrap table td a {
  word-break: break-all;
  color: #fff;
  text-decoration: underline;
}

.benefitsWrap {
  background: #222222;
  padding: 30px;
  margin: 15px 0;
  color: #fff;
  border: solid 1px #ffffff4a;
}
.benefitsWrap h4 {
  text-align: center;
  font-size: 22px !important;
  margin: 0 0 15px;
}
.benefitsTitle {
  margin: 0;
  font-weight: bold;
  font-size: 18px;
}
.benefitsSpec {
  padding: 0 0 20px 0;
  font-size: 16px;
}
.benefitsBox {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  padding: 0 0 20px 0;
}
.benefitsRight {
  width: 35%;
}
.benefitsLeft {
  width: 60%;
}
.btnWhite {
  text-align: center;
  margin-bottom: 40px;
}
.btnWhite a {
  display: inline-block;
  background-color: #fff;
  border: #000 solid 1px;
  text-align: center;
  font-size: 16px;
  font-weight: bold;
  line-height: 1.6;
  color: #000;
  text-decoration: none;
  padding: 15px 50px;
  margin: 0 20px;
}

@media screen and (max-width: 820px) {
  .ticketBox .ticketWrap .priceBox .ticketKind {
    line-height: 1.6;
  }
  .ticketBox .ticketWrap .priceSub {
    font-size: min(2.8vw, 12px);
  }

  .ticketBox .ticketWrap .buyLogo ul li {
    width: 48%;
  }
  .ticketBox .ticketWrap .buyLogo ul li a {
    height: 16vw;
  }

  .tableFlex {
    flex-direction: column;
    gap: min(6vw, 30px);
  }
  .tableFlex .tableFlexinr {
    width: 100%;
  }

  .benefitsWrap {
    margin: 0;
    padding: 6vw;
  }
  .benefitsWrap h4 {
    font-size: 4vw !important;
  }
  .benefitsTitle {
    font-size: 3.6vw;
  }
  .benefitsSpec {
    font-size: 3.2vw;
  }
  .benefitsWrap .note {
    font-size: 3vw;
  }
  .benefitsBox {
    padding: 0 0 3vw 0;
  }
  .benefitsRight {
    width: 100%;
  }
  .benefitsLeft {
    width: 100%;
  }
  .btnWhite a {
    font-size: 3.4vw;
    padding: 3vw 8vw;
    margin: 0;
  }
}

footer {
  padding: min(4vw, 20px);
}
footer .ftrLogo {
  width: min(30vw, 110px);
  margin: 0 auto;
}
