@charset "UTF-8";

img {
  -webkit-user-drag: none;
  user-drag: none;
  user-select: none;
  pointer-events: none; /* 透明カバー併用するなら外してもOK */
}

/* ========================================
  @media screen and (min-width: 768px), print
======================================== */
@media screen and (min-width: 768px),print {
main {
  max-width: 1920px;
  margin-inline: auto;
  width: 100%;
}
/* common
-------------------------------------*/
.img-txt{
  font-weight: 400;
  font-size: 16px;
  line-height: 2.6666;
  display: flex;
  justify-content: space-between;
  letter-spacing: 0;
  padding: 2px 0 0;
}
.sec-enttl {
  text-align: center;
  margin-bottom: 22px;
}
.sec-ttl {
  font-weight: 600;
  font-size: 24px;
  line-height: 1.4583;
  letter-spacing: 0.1em;
  text-align: center;
  margin-bottom: 60px;
}
.sec-ttl02 {
  text-align: left;
  font-size: 32px;
  line-height: 1.4375;
  letter-spacing: 0.05em;
  margin-bottom: 80px;
}

/* mv
-------------------------------------*/
.mv .inner {
  width: 1860px;
  margin-inline: auto;
  display: grid;
  grid-template-columns: 1fr 58.818%;
  position: relative;
  top: -61px;
  margin-bottom: -61px;
  padding-bottom: 122px;
}
.mv .ttl-box {position: relative;padding: 0 0 0 10px;}
.mv h1 {margin-bottom: 38px;}
.mv h2 {
  padding: 0 0 0 73px;
}
.mv .img-box {
  position: relative;
}


/* concept
-------------------------------------*/
.concept {
  background: url(../images/index/concept-bg.png)no-repeat top center;
  background-size: cover;
}
.concept .inner {
  width: min(95%, 1600px);
  margin-inline: auto;
  position: relative;
  padding-bottom: 80px;
  z-index: 0;
  margin-bottom: 114px;
}
.concept .inner::before {
  position: absolute;
  content: "";
  background: url(../images/index/concept-en.svg)no-repeat;
  background-size: contain;
  width: 174px;
  height: 1028px;
  top: 79px;
  right: 0;
  z-index: -1;
}
.concept .txt {
  font-weight: 500;
  font-size: 18px;
  letter-spacing: 0.1em;
  line-height: 1.8888;
  margin-bottom: 35px;
  position: relative;
  z-index: 3;
}
.concept .txt:nth-last-of-type(1) {
  margin-bottom: 0;
}
.concept .inBox01 {
  display: grid;
  grid-template-columns: 60.625% 1fr;
  padding: 192px 0 92px;
  gap: 80px;
}
.concept .inBox01 .txt-box {
  padding: 76px 104px 0 0;
}
.concept .inBox01 .txt-box h2 {
  margin-bottom: 31px;
  padding: 0 0 0 17px;
  position: relative;
}
.concept .inBox01 .txt-box h2::before {
  position: absolute;
  content: "";
  background: url(../images/index/concept-deco01.png)no-repeat;
  background-size: contain;
  width: 226px;
  height: 194px;
  top: -268px;
  left: -43px;
}
.concept .inBox01 .txt-box h3 {
  font-weight: 600;
  font-size: 24px;
  line-height: 1.4583;
  letter-spacing: 0.1em;
  position: relative;
  margin-bottom: 77px;
  text-align: center;
}
.concept .inBox01 .txt-box h3::before,
.concept .inBox01 .txt-box h3::after {
  content: "";
  position: absolute;
  top: 58%;
  width: 30px;
  height: 1px;
  background-color: #25252A;
  transform: translateY(-50%);
}
.concept .inBox01 .txt-box h3::before {
  left: 7px;
}
.concept .inBox01 .txt-box h3::after {
  right: 7px;
}
.concept .inBox02 {
  width: min(95%, 1440px);
  margin-inline: auto;
  display: grid;
  grid-template-columns: 44.44% 1fr;
  gap: 80px;
  position: relative;
}
.concept .inBox02::before {
  position: absolute;
  content: "";
  background: url(../images/index/concept-deco02.png)no-repeat;
  background-size: contain;
  width: 262px;
  height: 252px;
  top: -201px;
  right: -80px;
}
.concept .inBox02::after {
  position: absolute;
  content: "";
  background: url(../images/index/concept-deco03.png)no-repeat;
  background-size: contain;
  width: 113px;
  height: 369px;
  bottom: -81px;
  left: -112px;
}
.concept .inBox02 .txt-box {
  padding: 36px 0 0;
}
.concept .inBox02 .txt:nth-child(3) {
  margin-bottom: 29px;
}
.concept .inBox02 .txt-box .lead {
  font-weight: 600;
  font-size: 20px;
  letter-spacing: 0.1em;
  line-height: 2;
}
.concept .inBox02 .img-box {
  padding-right: 88px;
}
.concept .inBox02 .img-txt {
  display: grid;
  justify-content: flex-end;
  padding: 0;
}
.concept .inBox02 .img-txt span {
  text-align: right;
  margin-top: -16px;
}

/* highlights共通
-------------------------------------*/
.highlights-box {
  background: url(../images/index/con01-bg.png)repeat;
  background-size: auto;
  padding: 192px 0 0;
  height: 3379px;
}
.highlights-box .enttl {
  width: min(95%, 1600px);
  margin-inline: auto;
  padding: 0 0 0 2px;
  margin-bottom: 35px;
}
.highlights-box h2 {
  width: min(95%, 1600px);
  margin-inline: auto;
  font-weight: 600;
  font-size: 32px;
  line-height: 1.4375;
  letter-spacing: 0.05em;
}
.highlights .inBox01 .img-box {
  position: relative;
  z-index: 0;
}
.highlights .inBox01 .txt {
  font-weight: 500;
  font-size: 18px;
  letter-spacing: 0.1em;
  line-height: 1.8888;
  margin-bottom: 35px;
}
.highlights .inBox01 .txt:nth-last-of-type(1) {
  margin-bottom: 0;
}
.highlights .inBox02 {
  width: min(95%, 1760px);
  margin-left: auto;
  display: grid;
  grid-template-columns: 1fr 86.3636%;
  gap: 18px;
}
.highlights .inBox02 h4 {
  font-weight: 600;
  font-size: 24px;
  line-height: 1.4583;
  letter-spacing: 0.05em;
  margin-bottom: 79px;
}
.highlights .inBox02 .left {
  position: sticky;
  top: 120px;
  align-self: start;
  height: fit-content;
  z-index: 3;
}
.highlights .inBox02 .left .item {
  position: relative;
  padding-left: 20px; 
  list-style: none;
}
.highlights .inBox02 .left .item::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 5px;
  width: 1px; 
  height: 86%;
  background: #25252A; 
  transform: translateY(-50%);
}
.highlights .inBox02 .item li{
  font-weight: 500;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  position: relative;
  margin-bottom: 24px;
  cursor: pointer;
}
.highlights .inBox02 .left .item li::before {
  content: "";
  position: absolute;
  left: -20px; /* 線の上に点を配置 */
  top: 7px;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: #25252A; /* デフォルト点色 */
  transition: 0.3s;
}
.highlights .inBox02 .left .item li.is-active::before {
  background: #747DA4; /* アクティブ時の点色 */
}
.highlights .inBox02 .right {
  background: #fff;
  box-shadow: 0px 20px 40px rgba(37, 37, 42, 0.1);
  padding: 40px 160px 120px;
}
.highlights .inBox02 .right .list li {
  display: grid;
  grid-template-columns: 33.33% 61.6666%;
  gap: 60px;
  padding: 80px 0 0;
}
.highlights .inBox02 .right .list li .img {
  text-align: center;
}
.highlights .inBox02 .right .list li .txt-box {
  position: relative;
  padding: 40px 0 0;
}
.highlights .inBox02 .right .list li h5 {
  font-weight: 600;
  font-size: 32px;
  line-height: 1.4375;
  letter-spacing: 0.1em;
  margin-bottom: 21px;
}
.highlights .inBox02 .right .list li .txt {
  font-weight: 500;
  font-size: 16px;
  letter-spacing: 0.05em;
  line-height: 1.875;
}
.highlights .inBox02 .right .list li .subtxt {
  font-weight: 400;
  font-size: 16px; /* img-txt と同じサイズに揃える */
  letter-spacing: 0.05em;
  line-height: 1.25;
  position: absolute;
  bottom: 0;
}

/* con01
-------------------------------------*/
.con01 .inBox01 {
  width: min(95%, 1600px);
  margin-inline: auto;
  display: grid;
  grid-template-columns: 65% 1fr;
  padding: 80px 0 133px;
}
.con01 .inBox01 .img-box::before {
  position: absolute;
  content: "";
  background: url(../images/index/con01-num.svg)no-repeat;
  background-size: contain;
  width: 457px;
  height: 384px;
  top: -318px;
  right: -154px;
  z-index: -1;
}
.con01 .inBox01 h3 {
  position: relative;
  top: -138px;
  margin-bottom: -138px;
}
.con01 .inBox01 .img-txt {
  padding: 0;
  margin-bottom: 70px;
}


/* con02
-------------------------------------*/
.con02 {
  background: url(../images/index/con02-bg.png)no-repeat;
  background-size: contain;
  padding: 407px 0 0;
}
.con02 .inBox01 {
  width: min(95%, 1600px);
  margin-inline: auto;
  display: grid;
  grid-template-columns: 35% 65%;
  padding: 80px 0 10px;
}
.con02 .inBox01 h3 {
  position: relative;
  left: -26px;
}
.con02 .inBox01 .img-box::before {
  position: absolute;
  content: "";
  background: url(../images/index/con02-num.svg)no-repeat;
  background-size: contain;
  width: 551px;
  height: 384px;
  top: -128px;
  right: -61px;
  z-index: -1;
}
.con02 .inBox01 .img-box {
  padding: 145px 0 0;
}
.con02 .middle {
  width: min(95%, 1600px);
  margin-inline: auto;
  display: grid;
  grid-template-columns: 50% 45%;
  gap: 80px;
  /* align-items: center; */
  padding-bottom: 104px;
}
.con02 .middle .txt {
  font-weight: 500;
  font-size: 18px;
  letter-spacing: 0.1em;
  line-height: 1.8888;
  margin-bottom: 32px;
}
.con02 .middle .txt:nth-last-of-type(1) {
  margin-bottom: 0;
}
.con02 #section-8 span {
  display: grid;
  justify-content: flex-end;
}



/* gallery
-------------------------------------*/
.gallery .inner {
  margin: 196px 0 0;
  padding-bottom: 240px;
}
.gallery .txt {
  font-weight: 400;
  font-size: 9px;
  line-height: 1.25;
  letter-spacing: 0;
  padding: 1px 20px;
}
.gallery .img {
  margin: 0 10px;
}
.slider-top .img::after {
  content: attr(data-no);
  display: block;
  margin-top: 5px;
  font-family: 'Abril Fatface', serif;
  font-size: 12px;
  letter-spacing: 0.1em;
  color: #333;
}
.slider-bottom .img::after {
  content: attr(data-no);
  display: block;
  margin-top: 5px;
  font-family: 'Abril Fatface', serif;
  font-size: 12px;
  letter-spacing: 0.1em;
  color: #333;
}


/* howto
-------------------------------------*/
.howto {
  background: url(../images/index/howto-bg.png)no-repeat top center;
  background-size: cover;
}
.howto .inner {
  width: min(95%, 1440px);
  margin-inline: auto;
  padding: 155px 0 242px;
}
.howto .sec-ttl {
  margin-bottom: 160px;
}
.howto .list {
  display: grid;
  gap: 200px;
}
.howto .list li{
  display: grid;
  grid-template-columns: 52.778% 41.667%;
  gap: 80px;
  position: relative;
}
.howto .list li::before {
  position: absolute;
  content: "";
  background: #FFFFFF;
  width: 88.88%;
  height: 600px;
  pointer-events: none;
  top: 50%;
  transform: translateY(-50%);
  left: 0;
}

.howto .list li.list01{
  margin:0 0 -50px 0;
}

.howto .list li.list01::before {
  height: 680px;
}


.howto .list li .txt-box {
  padding-left: 120px;
  position: relative;
  padding-top: 60px;
  padding-bottom: 40px;
}
.howto .list li .num {
  margin-bottom: 35px;
}
.howto .list li h3 {
  font-weight: 600;
  font-size: 27px;
  letter-spacing: 0.1em;
  line-height: 1.6;
  margin-bottom:40px;
}
.howto .list li .txt {
  font-weight: 500;
  font-size: 16px;
  letter-spacing: 0.05em;
  line-height: 1.875;
  margin:0 0 25px 0;
}

.howto .list li .txt .menu-color{
  font-weight: bold;
  color: #6391C1;
}

.howto .list li .photo {
  position: relative;
}

.howto .list li .photo01{
  top: 95px;
}


.insta-name-inline {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.insta-icon-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  text-decoration: none;
  padding: 4px;
  transition: opacity 0.2s ease;
  border: none;
  box-shadow: 0 0 0 1px rgba(0,0,0,0.08);
}
.insta-icon-link:hover {
  opacity: 0.7;
  text-decoration: none;
}
.insta-icon-link .fab.fa-instagram {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #fff;
  color: #E4405F;
  font-size: 13px;
}
/* Font Awesome の擬似要素にもカラーを強制して、SPでも黒にならないようにする */
.insta-icon-link .fab.fa-instagram::before {
  color: #E4405F !important;
}

/* event
-------------------------------------*/
.event  {
  background: url(../images/index/event-bg.png)no-repeat;
  background-size: cover;
}
.event .inner  {
  width: min(95%, 1600px);
  margin-inline: auto;
  padding: 214px 0 149px;
  position: relative;
}
.event .inner::after {
  position: absolute;
  content: "";
  background: url(../images/index/event-deco02.png)no-repeat;
  background-size: contain;
  width: 262px;
  height: 252px;
  bottom: -115px;
  right: 0;
}
.event .sec-enttl {
  text-align: left;
  position: relative;
  margin-bottom: 34px;
  display: inline-block;
}
.event .sec-enttl::before {
  position: absolute;
  content: "";
  background: url(../images/index/event-deco01.png)no-repeat;
  background-size: contain;
  width: 194px;
  height: 226px;
  top: -145px;
  right: -361px;
}
.event .sec-enttl::after {
  position: absolute;
  content: "";
  background: url(../images/index/event-human.png)no-repeat;
  background-size: contain;
  width: 190px;
  height: 213px;
  top: -43px;
  right: -224px;
}
.event .top-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 80px;
  margin-bottom: 70px;
}
.event .top-list .img {
  margin-bottom: 32px;
}
.event .top-list h3 {
  font-weight: 600;
  font-size: 40px;
  line-height: 1.45;
  letter-spacing: 0.05em;
  margin-bottom: 13px;
}
.event .top-list .amb-profile {
  margin-top: 20px;
  padding: 20px 24px;
  border: 1px solid #aaa;
  background-color: #fff;
}
.event .top-list .amb-profile h4 {
  font-weight: 600;
  font-size: 24px;
  line-height: 1.45;
  letter-spacing: 0.05em;
  margin-bottom: 13px;
}
.event .bottom-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 68px 80px;
}
.event .bottom-list li {
  display: flex;
  flex-direction: column;
}
.event .bottom-list .img {
  margin-bottom: 0;
  flex-shrink: 0;
}
.event .bottom-list .img img {
  width: 100%;
  height: auto;
  display: block;
}
.event .bottom-list .event-slider {
  position: relative;       /* 画像枠として基準にする */
  margin-bottom: 0;
}
.event .bottom-list .event-slider .slick-dots {
  position: absolute !important;  /* 画像の中に固定 */
  bottom: 16px;                   /* dots の縦位置（好みで 12〜20px くらいで調整） */
  left: 50%;
  transform: translateX(-50%);
  margin-bottom: 0 !important;
  margin-top: 0 !important;
  width: 100%;
  text-align: center;
  z-index: 2;
}
.event .bottom-list .event-slider .slick-dots li {
  display: inline-block;
  margin: 0 5px;
}
.event .bottom-list .event-slider .slick-dots li button {
  font-size: 0;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  border: none;
  background-color: #ccc;
  padding: 0;
  cursor: pointer;
}
.event .bottom-list .event-slider .slick-dots li button:before {
  display: none;
}
.event .bottom-list .event-slider .slick-dots li.slick-active button {
  background-color: #333;
}
.event .bottom-list .img + h3 {
  margin-top: 23px;
}
.event .bottom-list .event-slider + h3 {
  margin-top: 0;
}
.event .bottom-list h3.museum-talk-ttl {
  margin-top: 20px;
}
.event .bottom-list h3 {
  font-weight: 600;
  font-size: 24px;
  line-height: 1.4583;
  letter-spacing: 0.1em;
  margin-bottom: 3px;
  min-height: 70px;
  display: flex;
  align-items: flex-start;
}
.event li .txt {
  font-weight: 500;
  font-size: 16px;
  letter-spacing: 0.05em;
  line-height: 1.875;
  margin-top: 0;
}

.event li .txt table{ width: 100%; font-feature-settings: "palt"; margin: 10px 0 0 0;}
.event li .txt table th{ width: 50px; text-align: left;padding: 0 0 10px 0;vertical-align: top;}
.event li .txt table td{width: 420px;padding: 0px 0px 10px 0px;}
.event li .txt table td span{ display: inline-block;border-left:1px solid #aaa;padding: 0px 0px 0px 15px;}
.event li .txt table td span.insta-name-inline{ border-left: none; padding: 0;}
.event li .txt a:not(.insta-icon-link){
  text-align: center;
  background-color: #fff;
  display: block;
  border: 1px solid #ddd;
  padding: 10px 0 10px 0;
  margin: 10px 0 0 0;
}

/* sec-wrap
-------------------------------------*/
.sec-wrap {
  background: url(../images/index/sec-bg.png)repeat-y;
  background-size: contain;
  overflow: hidden;
}

/* about
-------------------------------------*/
.about {
  width: min(95%, 1200px);
  margin-inline: auto;
  padding: 212px 0 120px;
}
.about .sec-enttl {
  text-align: left;
  margin-bottom: 33px;
}
.about .sec-ttl02 {
  text-align: left;
  margin-bottom: 39px;
}
.about tr {
  border-bottom: 1px solid #C9CED3;
  display: grid;
  grid-template-columns: 26.6% 1fr;
}
.about th,
.about td {
  font-weight: 400;
  font-size: 20px;
  letter-spacing: 0.1em;
  line-height: 1.8;
  text-align: left;
  color: #25252a;
  padding: 36px 0;
}
.about th {
  font-weight: 600;
}

/* access
-------------------------------------*/
#link08 {
  position: relative;
  top: -120px; 
  display: block;
  height: 0;
}
.access {
  width: min(95%, 1200px);
  margin-inline: auto;
  padding: 54px 0 120px;
}
.access .sec-enttl {
  text-align: left;
  margin-bottom: 34px;
}
.access .sec-ttl02 {
  text-align: left;
  margin-bottom: 61px;
}
.access .inBox {
  display: grid;
  grid-template-columns: 53.334% 41.667%;
  gap: 60px;
}
.access .map {
  height: auto;
  margin: 0 0 10px 0;
}
.access .map picture,
.access .map img {
  width: 100%;
  height: auto;
  display: block;
}
.access .map-box .txt {
  font-weight: 400;
  text-decoration: underline;
  font-size: 12px;
  line-height: 1.4167;
  letter-spacing: 0.1em;
  text-align: right;
  position: relative;
  padding: 7px 19px 0 0;
}
.access .map-box .txt::after {
  position: absolute;
  content: "";
  background: url(../images/index/open-icon.svg);
  background-size: contain;
  width: 12px;
  height: 12px;
  top: 50%;
  right: 0px;
}
.access .map iframe {
  aspect-ratio: 16 / 9;
  width: 100%;
  height: 100%;
}
.access table {
  margin-top: -109px;
}
.access table tr {
  display: grid;
  grid-template-columns: 30% 1fr;
  border-bottom: 1px solid #C9CED3;
}
.access table tr:first-child {
  border-top: 1px solid #C9CED3;
}
.access table th,
.access table td {
  font-weight: 400;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.1em;
  padding: 40px 0;
  text-align: left;
}
.access table th {
  font-weight: 600;
}
.access table td {padding: 40px 0px 40px 30px;}
.access table td a {
  text-decoration: underline;
}
.access table td .add-txt {
  display: block;
  margin: 23px 0 0;
}

/* ticket
-------------------------------------*/
#link09 {
  position: relative;
  top: -120px; 
  display: block;
  height: 0;
}
.ticket {
  width: min(95%, 1200px);
  margin-inline: auto;
  padding: 51px 0 120px;
}
.ticket .sec-enttl {
  text-align: left;
  margin-bottom: 33px;
}
.ticket .sec-ttl02 {
  text-align: left;
  margin-bottom: 40px;
}
.ticket .ticket-table {
  margin-bottom: 54px;
}
.ticket table {
  width: 100%;
  margin-bottom: 19px;
}
.ticket table tr {
  border-bottom: 1px solid #C9CED3;
}
.ticket table th,
.ticket table td {
  font-size: 18px;
  letter-spacing: 0.05em;
  line-height: 1.5555;
  padding: 18px 0;
}
.ticket table th {
  background: #4A4F59;
  color: #FFFFFF;
  font-weight: 600;
}
.ticket table .heading {
  text-align: center;
}
.ticket table .heading:last-child {
  border-left: 1px solid #C9CED3;
}
.ticket table .none {
  background: none;
}
.ticket table td {
  text-align: center;
  background: #FFFFFF;
  font-weight: 500;
}
.ticket table .ttl {
  width: 26.667%;
  text-align: left;
  padding: 18px 60px;
}
.ticket table .price {
  width: 440px;
}
.ticket table .price:last-child {
  border-left: 1px solid #C9CED3;
}
.ticket .ticket-table .desc {
  font-weight: 400;
  font-size: 14px;
  letter-spacing: 0.05em;
  line-height: 2;
}
.ticket .ticket-place {
  width: min(95%, 1040px);
  margin-inline: auto;
}
.ticket .ticket-place h3 {
  font-weight: 600;
  font-size: 24px;
  letter-spacing: 0.05em;
  line-height: 1.1666;
  text-align: center;
  color: #fff;
  background: #4A4F59;
  padding: 29px 0;
}
.ticket .ticket-place .list {
  background: #FFFFFF;
  padding: 57px 80px;
}
.ticket .ticket-place .list li {
  font-weight: 500;
  font-size: 18px;
  letter-spacing: 0.1em;
  line-height: 1.8888;
  padding-left: 20px;
  position: relative;
}
.ticket .ticket-place .list li::before {
  position: absolute;
  content: "・";
  font-size: 18px;
  left: 0;
  top: 0;
}

/* faq
-------------------------------------*/
#link10 {
  position: relative;
  top: -120px; 
  display: block;
  height: 0;
}
.faq {
  width: min(95%, 1200px);
  margin-inline: auto;
  padding: 51px 0 160px;
  overflow: hidden;
}
.faq .sec-enttl {
  text-align: left;
  margin-bottom: 19px;
}
.faq .sec-ttl02 {
  text-align: left;
  margin-bottom: 59px;
}
.faq .list {
  border-top: 1px solid #C9CED3;
  margin-bottom: 120px;
}
.faq .list li {
  border-bottom: 1px solid #C9CED3;
  padding: 46px 60px 36px 116px;
}
.faq .list li h3 {
  font-weight: 600;
  font-size: 18px;
  line-height: 1.4444;
  letter-spacing: 0.1em;
  position: relative;
  margin-bottom: 29px;
}
.faq .list li h3::before {
  position: absolute;
  content: "";
  background: url(../images/index/q.svg)no-repeat;
  background-size: contain;
  width: 40px;
  height: 40px;
  top: 50%;
  left: -56px;
  transform: translateY(-50%);
}
.faq .list li .txt {
  font-weight: 400;
  font-size: 16px;
  letter-spacing: 0.05em;
  line-height: 1.875;
  position: relative;
}
.faq .list li .txt::before {
  position: absolute;
  content: "";
  background: url(../images/index/a.svg)no-repeat;
  background-size: contain;
  width: 40px;
  height: 40px;
  top: 4px;
  left: -56px;
}
.faq .yt-item {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 80px;
}
.faq .yt-item li {
  height: 316px;
}
.faq .yt-item li iframe {
  width: 100%;
  height: 100%;
}

}

/* ========================================
@media screen and (min-width:768px) and (max-width:1919px) 
======================================== */
@media screen and (min-width:768px) and (max-width:1919px) {
.img-txt{
  font-size: 0.833vw;
  padding: 0.104vw 0 0;
}
/* mv
-------------------------------------*/
.mv .inner {
  width: 96.925vw;
  grid-template-columns: 1fr 58.818%;
  top: -3.179vw;
  margin-bottom: -3.179vw;
  padding-bottom: 6.357vw;
}
.mv .ttl-box {padding: 0 0 0 0.521vw;}
.mv h1 {margin-bottom: 1.98vw;}
.mv h1 img {
  width: 31.371vw;
}
.mv h2 {
  padding: 0 0 0 3.804vw;
}
.mv h2 img {
  width: 27.619vw;
}
.mv .img img {
  width: 100%;
  height: auto;
}
}

/* ========================================
@media screen and (min-width:768px) and (max-width:1640px) 
======================================== */
@media screen and (min-width:768px) and (max-width:1640px) {
/* concept
-------------------------------------*/
.concept .inner {
  padding-bottom: 4.878vw;
  margin-bottom: 6.951vw;
}
.concept .inner::before {
  width: 10.61vw;
  height: 62.683vw;
  top: 4.817vw;
}
.concept .txt {
  font-size: clamp(0.625rem, 0.185rem + 0.92vw, 1.125rem);
  margin-bottom: 2.134vw;
}
.concept .inBox01 {
  grid-template-columns: 60.625% 1fr;
  padding: 11.707vw 0 5.61vw;
  gap: 4.878vw;
}
.concept .inBox01 .txt-box {
  padding: 4.634vw 6.341vw 0 0;
}
.concept .inBox01 .txt-box h2 {
  margin-bottom: 1.89vw;
  padding: 0 0 0 1.037vw;
}
.concept .inBox01 .txt-box h2 img {
  width: 25.854vw;
}
.concept .inBox01 .txt-box h2::before {
  width: 13.78vw;
  height: 11.829vw;
  top: -16.341vw;
  left: -2.622vw;
}
.concept .inBox01 .txt-box h3 {
  font-size: 1.463vw;
  margin-bottom: 4.695vw;
}
.concept .inBox01 .txt-box h3::before,
.concept .inBox01 .txt-box h3::after {
  width: 1.829vw;
  height: 0.061vw;
}
.concept .inBox01 .txt-box h3::before {
  left: 0.427vw;
}
.concept .inBox01 .txt-box h3::after {
  right: 0.427vw;
}
.concept .inBox02 {
  width: 87.805vw;
  grid-template-columns: 44.44% 1fr;
  gap: 4.878vw;
}
.concept .inBox02::before {
  width: 15.976vw;
  height: 15.366vw;
  top: -12.256vw;
  right: -4.878vw;
}
.concept .inBox02::after {
  width: 6.89vw;
  height: 22.5vw;
  bottom: -4.939vw;
  left: -6.829vw;
}
.concept .inBox02 .txt-box {
  padding: 2.195vw 0 0;
}
.concept .inBox02 .txt:nth-child(3) {
  margin-bottom: 1.768vw;
}
.concept .inBox02 .txt-box .lead {
  font-size: 1.22vw;
}
.concept .inBox02 .img-box {
  padding-right: 5.366vw;
}
.concept .inBox02 .img-txt span {
  margin-top: -0.976vw;
}
.concept .img img {
  width: 100%;
  height: auto;
}

}

/* ========================================
@media screen and (min-width:768px) and (max-width:1800px) 
======================================== */
@media screen and (min-width:768px) and (max-width:1800px) {
/* highlights共通
-------------------------------------*/
.highlights-box {
  padding: 10.667vw 0 0;
  height: 195.722vw;
}
.highlights-box .enttl {
  width: 88.889vw;
  padding: 0 0 0 0.111vw;
  margin-bottom: 1.944vw;
}
.highlights-box .enttl img {
  width: 39.278vw;
}
.highlights-box h2 {
  width: 88.889vw;
  font-size: 1.778vw;
}
.highlights .inBox01 .txt {
  font-size: clamp(0.625rem, 0.253rem + 0.78vw, 1.125rem);
  margin-bottom: 1.944vw;
}
.highlights .inBox02 {
  width: 97.778vw;
  grid-template-columns: 1fr 86.3636%;
  gap: 1vw;
}
.highlights .inBox02 h4 {
  font-size: clamp(0.75rem, 0.192rem + 1.16vw, 1.5rem);
  margin-bottom: 4.389vw;
}
.highlights .inBox02 .left {
  top: 6.667vw;
}
.highlights .inBox02 .left .item {
  padding-left: 1.111vw; 
}
.highlights .inBox02 .left .item::before {
  left: 0.278vw;
  width: 0.056vw; 
  height: 86%;
}
.highlights .inBox02 .item li{
  font-size: clamp(0.5rem, 0.128rem + 0.78vw, 1rem);
  margin-bottom: 1.333vw;
}
.highlights .inBox02 .left .item li::before {
  left: -1.111vw;
  top: 0.389vw;
  width: 0.667vw;
  height: 0.667vw;
}
.highlights .inBox02 .right {
  padding: 2.222vw 8.889vw 6.667vw;
}
.highlights .inBox02 .right .list li {
  grid-template-columns: 33.33% 61.6666%;
  gap: 3.333vw;
  padding: 4.444vw 0 0;
}
.highlights .inBox02 .right .list li .txt-box {
  padding: 2.222vw 0 0;
}
.highlights .inBox02 .right .list li h5 {
  font-size: 1.778vw;
  margin-bottom: 1.167vw;
}
.highlights .inBox02 .right .list li .txt {
  font-size: clamp(0.625rem, 0.346rem + 0.58vw, 1rem);
}
.highlights .inBox02 .right .list li .subtxt {
  font-size: 0.833vw; /* img-txt と同じサイズに揃える */
  text-align: left;
}
.highlights .img img {
  width: 100%;
  height: auto;
}

/* con01
-------------------------------------*/
.con01 .inBox01 {
  width: 88.889vw;
  grid-template-columns: 65% 1fr;
  padding: 4.444vw 0 7.389vw;
}
.con01 .inBox01 .img-box::before {
  width: 25.389vw;
  height: 21.333vw;
  top: -17.667vw;
  right: -8.556vw;
}
.con01 .inBox01 h3 {
  top: -7.667vw;
  margin-bottom: -7.667vw;
}
.con01 .inBox01 h3 img {
  width: 32.444vw;
}
.con01 .inBox01 .img-txt {
  margin-bottom: 3.889vw;
}


/* con02
-------------------------------------*/
.con02 {
  padding: 22.611vw 0 0;
}
.con02 .inBox01 {
  width: 88.889vw;
  grid-template-columns: 35% 65%;
  padding: 4.444vw 0 0.556vw;
}
.con02 .inBox01 h3 {
  left: -1.444vw;
}
.con02 .inBox01 h3 img {
  width: 32.444vw;
}
.con02 .inBox01 .img-box::before {
  width: 30.611vw;
  height: 21.333vw;
  top: -7.111vw;
  right: -3.389vw;
}
.con02 .inBox01 .img-box {
  padding: 8.056vw 0 0;
}
.con02 .middle {
  width: 88.889vw;
  grid-template-columns: 50% 45%;
  gap: 4.444vw;
  padding-bottom: 5.778vw;
}
.con02 .middle .txt {
  font-size: 1vw;
  margin-bottom: 1.778vw;
}


}

/* ========================================
@media screen and (min-width:768px) and (max-width:1440px) 
======================================== */
@media screen and (min-width:768px) and (max-width:1440px) {
  .con02 {
    padding: 28.194vw 0 0;
  }
}
/* ========================================
@media screen and (min-width:768px) and (max-width:1100px) 
======================================== */
@media screen and (min-width:768px) and (max-width:1100px) {
  .con02 {
    padding: 35.194vw 0 0;
  }
}

/* ========================================
@media screen and (min-width:768px) and (max-width:1540px)
======================================== */
@media screen and (min-width:768px) and (max-width:1540px) {
/* howto
-------------------------------------*/
.howto .inner {
  width: 93.506vw;
  padding: 10.065vw 0 15.714vw;
}
.howto .sec-ttl {
  margin-bottom: 10.39vw;
}
.howto .list {
  gap: 12.987vw;
}
.howto .list li{
  grid-template-columns: 52.778% 41.667%;
  gap: 5.195vw;
}
.howto .list li::before {
  width: 88.88%;
  height: 38.961vw;
}

.howto .list li.list01::before {
    height: 42.961vw;
}

.howto .list li.list01{
  margin:0 0 -4vw 0;
}

.howto .list li .txt-box {
  padding-left: 7.792vw;
  padding-top: 3.896vw;
}
.howto .list li .num {
  margin-bottom: 2.273vw;
}
.howto .list li h3 {
  font-size: 1.7vw;
  margin-bottom: 3.636vw;
}
.howto .list li .txt {
  font-size: clamp(0.625rem, 0.252rem + 0.78vw, 1rem);
}
.howto .list li .photo img {
  width: 100%;
  height: auto;
}

}

/* ========================================
@media screen and (min-width:768px) and (max-width:1700px)
======================================== */
@media screen and (min-width:768px) and (max-width:1700px) {
/* event
-------------------------------------*/
.event .inner  {
  width: 94.118vw;
  padding: 12.588vw 0 8.765vw;
}
.event .inner::after {
  width: 15.412vw;
  height: 14.824vw;
  bottom: -6.765vw;
}
.event .sec-enttl {
  margin-bottom: 2vw;
}
.event .sec-enttl::before {
  width: 11.412vw;
  height: 13.294vw;
  top: -8.529vw;
  right: -21.235vw;
}
.event .sec-enttl::after {
  width: 11.176vw;
  height: 12.529vw;
  top: -2.529vw;
  right: -13.176vw;
}
.event .top-list {
  gap: 4.706vw;
  margin-bottom: 4.118vw;
}
.event .top-list .img {
  margin-bottom: 1.882vw;
}
.event .top-list .img img {
  width: 100%;
  height: auto;
}
.event .top-list h3 {
  font-size: 2.353vw;
  margin-bottom: 0.765vw;
}
.event .bottom-list {
  gap: 4vw 4.706vw;
}
.event .bottom-list li {
  display: flex;
  flex-direction: column;
}
.event .bottom-list .img {
  margin-bottom: 0;
  flex-shrink: 0;
}
.event .bottom-list .img img {
  width: 100%;
  height: auto;
  display: block;
}
.event .bottom-list .event-slider {
  position: relative;
  margin-bottom: 0;
}
.event .bottom-list .event-slider .slick-dots {
  position: absolute !important;
  bottom: 1.5vw;
  left: 50%;
  transform: translateX(-50%);
  margin-bottom: 0 !important;
  margin-top: 0 !important;
  width: 100%;
  text-align: center;
  z-index: 2;
}
.event .bottom-list .event-slider .slick-dots li {
  display: inline-block;
  margin: 0 0.294vw;
}
.event .bottom-list .event-slider .slick-dots li button {
  font-size: 0;
  width: 0.588vw;
  height: 0.588vw;
  border-radius: 50%;
  border: none;
  background-color: #ccc;
  padding: 0;
  cursor: pointer;
}
.event .bottom-list .event-slider .slick-dots li button:before {
  display: none;
}
.event .bottom-list .event-slider .slick-dots li.slick-active button {
  background-color: #333;
}
.event .bottom-list .img + h3 {
  margin-top: 1.353vw;
}
.event .bottom-list .event-slider + h3 {
  margin-top: 0;
}
.event .bottom-list h3 {
  font-size: clamp(0.813rem, 0.246rem + 1.18vw, 1.5rem);
  margin-top: 1.53vw;
  margin-bottom: 0.2vw;
  min-height: 3.646vw;
  display: flex;
  align-items: flex-start;
}
.event li .txt {
  font-size: clamp(0.625rem, 0.316rem + 0.64vw, 1rem);
  margin-top: 0;
}

.event li .txt table {font-feature-settings: "palt"; margin: 1vw 0 0.5vw 0;}
.event li .txt table th {width: 2.94vw;text-align: left;padding: 0 0 0.59vw 0;vertical-align: top;}
.event li .txt table td {width: 24.71vw;padding: 0vw 0vw 0.59vw 0vw;}
.event li .txt table td span {display: inline-block;border-left:1px solid #aaa;padding: 0vw 0vw 0vw 0.88vw;}
.event li .txt table td span.insta-name-inline{ border-left: none; padding: 0;}

.event li .txt a{
}

}


/* ========================================
@media screen and (min-width:768px) and (max-width:1100px) 
======================================== */
@media screen and (min-width:768px) and (max-width:1100px) {
.access .inBox {
  grid-template-columns: 1fr;
  gap: 5.455vw;
}
.access table {
  margin-top: 0;
}
.ticket table th, .ticket table td {
  font-size: clamp(0.813rem, 0.09rem + 1.51vw, 1.125rem);
}
}



/* ========================================
@media screen and (max-width: 767px)
======================================== */
@media screen and (max-width: 767px) {
/* common
-------------------------------------*/
.insta-name-inline {
  display: inline-flex;
  align-items: center;
  gap: 2.67vw;
}
.insta-icon-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 6vw;
  height: 6vw;
  border-radius: 50%;
  text-decoration: none;
  padding: 1vw;
  transition: opacity 0.2s ease;
  border: none;
  box-shadow: 0 0 0 1px rgba(0,0,0,0.08);
}
.insta-icon-link .fab.fa-instagram {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 5.5vw;
  height: 5.5vw;
  border-radius: 50%;
  background: #fff;
  color: #E4405F !important;
  font-size: 3vw;
}
/* 念のため Font Awesome の擬似要素にも色を指定 */
.insta-icon-link .fab.fa-instagram::before {
  color: #E4405F !important;
}

.img-txt{
  font-weight: 400;
  font-size: 2vw;
  line-height: 1;
  display: flex;
  justify-content: space-between;
  letter-spacing: 0;
  padding: 2.2vw 0 0;
}
.sec-enttl {
  text-align: center;
  margin-bottom: 4.3vw;
}
.sec-ttl {
  font-weight: 600;
  font-size:5.797vw;
  line-height: 1.4583;
  letter-spacing: 0.05em;
  text-align: center;
  margin-bottom: 9.5vw;
}
.sec-ttl02 {
  text-align: left;
  font-size: 5.797vw;
  line-height: 1.4583;
  letter-spacing: 0.05em;
  margin-bottom: 10vw;
}

/* mv
-------------------------------------*/
.mv .inner {
  width: 94.20vw;
  margin-inline: auto;
  display: grid;
  gap: 9.5vw;
  padding-bottom: 35vw;
}
.mv .ttl-box {position: relative;}
.mv h1 {margin: -3vw 0 6vw -2.8vw;}
.mv h2 {
  text-align: right;
  padding: 0 2.2vw 0 0;
}
.mv .img-box {
  position: relative;
}

/* concept
-------------------------------------*/
.concept {
  background: url(../images/index/concept-bg_sp.png)no-repeat bottom center;
  background-size: contain;
}
.concept .inner {
  width: 89.37vw;
  margin-inline: auto;
  position: relative;
  z-index: 0;
  padding-bottom: 24.15vw;
}
.concept .inner::before {
  position: absolute;
  content: "";
  background: url(../images/index/concept-en_sp.svg)no-repeat;
  background-size: contain;
  width: 20.05vw;
  height: 117.87vw;
  top: -14.5vw;
  right: 0;
  z-index: -1;
}
.concept .txt {
  font-weight: 500;
  font-size:3.865vw;
  letter-spacing: 0.1em;
  line-height: 2;
  margin-bottom: 4vw;
  position: relative;
  z-index: 2;
}
.concept .txt:nth-last-of-type(1) {
  margin-bottom: 0;
}
.concept .inBox01 {
  display: grid;
  padding-bottom: 14.5vw;
}
.concept .inBox01 .photo-box {
  order: 3;
  margin-bottom: 7vw;
}
.concept .inBox01 .txt-box {
  display: contents;
}
.concept .inBox01 .txt-box h2 {
  position: relative;
  order: 1;
  text-align: center;
  padding-left: 1.5vw;
  margin-bottom: 4.5vw;
}
.concept .inBox01 .txt-box h2::before {
  position: absolute;
  content: "";
  background: url(../images/index/concept-deco01.png)no-repeat;
  background-size: contain;
  width: 23.91vw;
  height: 20.53vw;
  top: -25vw;
  right: 3.6vw;
}
.concept .inBox01 .txt-box h3 {
  font-weight: 600;
  font-size:3.382vw;
  line-height: 1.42857;
  letter-spacing: 0.1em;
  position: relative;
  margin-bottom: 9.5vw;
  text-align: center;
  order: 2;
}
.concept .inBox01 .txt-box h3::before,
.concept .inBox01 .txt-box h3::after {
  content: "";
  position: absolute;
  top: 58%;
  width: 4.59vw;
  height: 0.2vw;
  background-color: #25252A;
  transform: translateY(-50%);
}
.concept .inBox01 .txt-box h3::before {
  left: 14.5vw;
}
.concept .inBox01 .txt-box h3::after {
  right: 13.8vw;
}
.concept .inBox01 .txt-box .txt {
  order: 4;
}
.concept .inBox01 .img-txt {
  display: grid;
  gap: 1vw;
}
.concept .inBox02 {
  display: grid;
  position: relative;
}
.concept .inBox02::before {
  position: absolute;
  content: "";
  background: url(../images/index/concept-deco02.png)no-repeat;
  background-size: contain;
  width: 22.71vw;
  height: 21.74vw;
  top: -28.2vw;
  right: 0vw;
}
.concept .inBox02::after {
  position: absolute;
  content: "";
  background: url(../images/index/concept-deco03_sp.png)no-repeat;
  background-size: contain;
  width: 14.73vw;
  height: 48.07vw;
  bottom: -13.2vw;
  right: 0;
}
.concept .inBox02 .txt-box {
  order: 2;
}
.concept .inBox02 .txt:nth-child(3) {
  margin-bottom: 7.5vw;
}
.concept .inBox02 .txt-box .lead {
  font-weight: 600;
  font-size:4.348vw;
  letter-spacing: 0.1em;
  line-height: 2;
}
.concept .inBox02 .img-box {
  order: 1;
  margin-bottom: 6.7vw;
}
.concept .inBox02 .img-txt {
  display: grid;
  padding: 2.5vw 0 0;
  gap: 0.8vw;
}

/* highlights共通
-------------------------------------*/
.highlights-box {
  background: url(../images/index/con01-bg_sp.png)repeat;
  background-size: contain;
  padding: 25.5vw 0 19.32vw;
  margin-top: -6vw;
}
.highlights-box .enttl {
  width: 88.99vw;
  margin-inline: auto;
  margin-bottom: 4.2vw;
  position: relative;
  z-index: 2;
}
.highlights-box h2 {
  font-weight: 600;
  font-size:5.797vw;
  line-height: 1.45833;
  letter-spacing: 0.05em;
  width: 88.99vw;
  margin-inline: auto;
  position: relative;
  z-index: 2;
}
.highlights .inBox01 .img-box {
  position: relative;
  z-index: 0;
  order: 2;
}
.highlights .inBox01 .txt {
  font-weight: 500;
  font-size:3.865vw;
  letter-spacing: 0.1em;
  line-height: 2;
  margin-bottom: 3.7vw;
  width: 89.37vw;
  margin-inline: auto;
}
.highlights .inBox01 .txt:nth-last-of-type(1) {
  margin-bottom: 0;
}
.highlights .inBox02 {
  display: grid;
  background: #fff;
  box-shadow: 0px 20px 40px rgba(37, 37, 42, 0.1);
  padding: 15.5vw 0 14.5vw;
  gap: 15.2vw;
}
.highlights .inBox02 h4 {
  font-weight: 600;
  font-size: 7.729vw;
  line-height: 1.4375;
  letter-spacing: 0.05em;
  margin-bottom: 10vw;
  text-align: center;
}
.highlights .inBox02 .left {
  position: relative;
  z-index: 3;
  width: 89.37vw;
  margin-inline: auto;
}
.highlights .inBox02 .left .item {
  position: relative;
  list-style: none;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 3.86vw 2.42vw;
}
.highlights .inBox02 .item li{
  font-weight: 500;
  font-size: 3.865vw;
  line-height: 1.5;
  letter-spacing: 0.05em;
  position: relative;
  cursor: pointer;
  border-bottom: 0.2vw solid #BBBBBB;
}
.highlights .inBox02 .item li a {
  display: block;
  padding-bottom: 1.7vw;
  text-decoration: none;
}
.highlights .inBox02 .left .item li::before {
  content: "▼";
  position: absolute;
  right: 2vw;
  top: 45%;
  transform: translateY(-50%);
  color: #C9CED3;
  font-size:3.382vw;
}
.highlights .inBox02 .right {
  width: 89.37vw;
  margin-inline: auto;
}
.highlights .inBox02 .right .list {
  display: grid;
  gap: 14.5vw;
}
.highlights .inBox02 .right .list li {
  display: grid;
}
.highlights .inBox02 .right .list li .img {
  text-align: center;
  order: 2;
  margin-bottom: 2vw;
}
.highlights .inBox02 .right .list li .txt-box {
  display: contents;
}
.highlights .inBox02 .right .list li h5 {
  font-weight: 600;
  font-size: 5.797vw;
  line-height: 1.458333;
  letter-spacing: 0.1em;
  margin-bottom: 6vw;
  order: 1;
}
.highlights .inBox02 .right .list li .txt {
  font-weight: 500;
  font-size: 3.382vw;
  letter-spacing: 0.05em;
  line-height: 1.85714;
  order: 4;
}
.highlights .inBox02 .right .list li .subtxt {
  font-weight: 400;
  font-size: 2vw;
  letter-spacing: 0;
  line-height: 1.5;
  order: 3;
  margin-bottom: 5.1vw;
  text-align: left;
}

/* con01
-------------------------------------*/
.con01 {
}
.con01 .inBox01 {
  display: grid;
  padding-bottom: 18.5vw;
}
.con01 .inBox01 h3 {
  order: 1;
  text-align: center;
  position: relative;
  top: -15vw;
  left: 4vw;
  margin-bottom: -17vw;
}
.con01 .inBox01 h3::before {
  position: absolute;
  content: "";
  background: url(../images/index/con01-num_sp.svg)no-repeat;
  background-size: contain;
  width: 31.88vw;
  height: 28.50vw;
  top: -7vw;
  left: 19.5vw;
  z-index: 1;
}
.con01 .inBox01 h3 img {
  width: 97.58vw;
}
.con01 .inBox01 .img-txt {
  padding: 2.2vw 2vw 7vw;
  display: grid;
  gap: 1vw;
}

/* con02
-------------------------------------*/
.con02 {
  background: url(../images/index/con02-bg_sp.png)no-repeat;
  background-size: contain;
  padding-bottom: 19.32vw;
}
.con02 .inBox01 {
  display: grid;
  padding: 27.5vw 0 0;
}
.con02 .inBox01 h3 {
  position: relative;
  text-align: center;
  left: 4.5vw;
  z-index: 2;
  margin-bottom: -1vw;
}
.con02 .inBox01 h3::before {
  position: absolute;
  content: "";
  background: url(../images/index/con02-num_sp.svg)no-repeat;
  background-size: contain;
  width: 38.41vw;
  height: 26.81vw;
  top: -7vw;
  left: 2.5vw;
  z-index: -1;
}
.con02 .inBox01 .img-txt {
  display: flex;
  justify-content: flex-start;
  padding: 2.2vw 2vw 7vw;
  gap: 1.4vw;
}
.con02 .middle {
  width: 89.37vw;
  margin-inline: auto;
  display: grid;
  align-items: center;
  padding-bottom: 18.5vw;
}
.con02 .middle .txt-box {
  display: contents;
}
.con02 .middle .txt {
  font-weight: 500;
  font-size:3.865vw;
  letter-spacing: 0.1em;
  line-height: 2;
  margin-bottom: 3.85vw;
}
.con02 .middle .txt:nth-of-type(2) {
  order: 1;
}
.con02 .middle .txt:nth-of-type(3) {
  order: 2;
}
.con02 .middle .txt:nth-of-type(4) {
  order: 3;
}
.con02 .middle .txt:nth-of-type(5) {
  order: 4;
}
.con02 .middle .txt:nth-of-type(6) {
  order: 5;
  margin-bottom: 14.5vw;
}
.con02 .middle .txt:nth-of-type(7) {
  order: 7;
}
.con02 .middle .txt:nth-of-type(8) {
  order: 8;
}
.con02 .middle .txt:nth-of-type(9) {
  order: 9;
}
.con02 .middle .txt:nth-of-type(10) {
  order: 10;
}
.con02 .middle .txt:nth-last-of-type(1) {
  margin-bottom: 0;
  order: 11;
}
.con02 .middle .img {
  order: 6;
  margin-bottom: 6.75vw;
}
.con02 .inBox02 h4 {
  margin-bottom: 11.9vw;
}
.con02 .inBox02 .item li {
  font-size:3.382vw;
}

/* gallery
-------------------------------------*/
.gallery .inner {
  padding: 16vw 0 19.32vw;
}
.gallery .txt {
  font-weight: 400;
  font-size: 2vw;
  line-height: 1.5;
  letter-spacing: 0;
  width: 96.14vw;
  margin-inline: auto;
}
.slider-top .img {
  margin: 0 0.97vw;
}
.slider-bottom .img {
  margin: 0 1.45vw;
}
.slider .img img {
  height: 48.31vw;   
  width: auto;   
}
.slider-top .img::after {
  content: attr(data-no);
  display: block;
  margin-top: 1.8vw;
  font-family: 'Abril Fatface', serif;
  font-size: 2.8vw;
  letter-spacing: 0.1em;
  color: #333;
}
.slider-bottom .img::after {
  content: attr(data-no);
  display: block;
  margin-top: 1.8vw;
  font-family: 'Abril Fatface', serif;
  font-size: 2.8vw;
  letter-spacing: 0.1em;
  color: #333;
}
.slick-slider .slick-track, .slick-slider .slick-list {
  margin: 0 0 1vw!important;
}


/* howto
-------------------------------------*/
.howto {
  background: url(../images/index/howto-bg_sp.png)no-repeat top center;
  background-size: cover;
}
.howto .inner {
  width: 89.37vw;
  margin-inline: auto;
  padding: 22vw 0 15.46vw;
}
.howto .list {
  display: grid;
  gap: 9.66vw;
}
.howto .list li{
  display: grid;
  position: relative;
  background: #FFFFFF;
  padding: 8.2vw 5.79vw 2.2vw;
}
.howto .list li .txt-box {
  display: contents;
}
.howto .list li .num {
  margin-bottom: 4.5vw;
  order: 1;
}
.howto .list li h3 {
  font-weight: 600;
  font-size:3.8vw;
  letter-spacing: 0.1em;
  line-height: 1.7777;
  margin-bottom: 4.8vw;
  order: 2;
}
.howto .list li .txt {
  font-weight: 500;
  font-size:3.382vw;
  letter-spacing: 0.05em;
  line-height: 1.85714;
  order: 4;
  margin:0 0 6vw 0;
}
.howto .list li .txt .menu-color{
  font-weight: bold;
  color: #6391C1;
}

.howto .list li .photo {
  position: relative;
  order: 3;
  margin-bottom: 5.5vw;
}

/* event
-------------------------------------*/
.event  {
  background: url(../images/index/event-bg_sp.png)no-repeat;
  background-size: cover;
}
.event .inner  {
  width: 89.37vw;
  margin-inline: auto;
  padding: 22.46vw 0 15.46vw;
  position: relative;
}
.event .inner::after {
  position: absolute;
  content: "";
  background: url(../images/index/event-deco02.png)no-repeat;
  background-size: contain;
  width: 27.54vw;
  height: 26.33vw;
  bottom: 0vw;
  right: 0;
}
.event .sec-enttl {
  text-align: left;
  position: relative;
  margin-bottom: 4vw;
  display: inline-block;
}
.event .sec-enttl::before {
  position: absolute;
  content: "";
  background: url(../images/index/event-deco01_sp.png)no-repeat;
  background-size: contain;
  width: 22.22vw;
  height: 25.97vw;
  top: -16.5vw;
  right: -35.4vw;
}
.event .sec-enttl::after {
  position: absolute;
  content: "";
  background: url(../images/index/event-human.png)no-repeat;
  background-size: contain;
  width: 21.98vw;
  height: 24.64vw;
  top: -0.5vw;
  right: -24.5vw;
}
.event .top-list {
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  gap: 8.66vw;
  margin-bottom: 8.66vw;
}
.event .top-list .img {
  margin-bottom: 3.86vw;
}
.event .top-list h3 {
  font-weight: 600;
  font-size:5.797vw;
  line-height: 1.4583;
  letter-spacing: 0.1em;
  margin-bottom: 2.3vw;
}
.event .top-list .amb-profile {
  margin-top: 4vw;
  padding: 4vw 4.5vw;
  border: 1px solid #aaa;
  background-color: #fff;
}
.event .top-list .amb-profile h4 {
  font-weight: 600;
  font-size:3.8vw;
  line-height: 1.4583;
  letter-spacing: 0.1em;
  margin-bottom: 2.3vw;
}
.event .top-list .amb-profile p {
  font-size:3.382vw;
  line-height: 1.85714;
}
.event .bottom-list {
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  gap: 9.66vw;
}
.event .bottom-list .img {
  margin-bottom: 3.86vw;
}
.event .bottom-list li {
  display: flex;
  flex-direction: column;
}
.event .bottom-list .img {
  margin-bottom: 0;
  flex-shrink: 0;
}
.event .bottom-list .img img {
  width: 100%;
  height: auto;
  display: block;
}
.event .bottom-list .event-slider {
  position: relative;
  margin-bottom: 0;
}
.event .bottom-list .event-slider .slick-dots {
  position: absolute !important;
  bottom: 4vw;                    /* 画像の下側に少しかぶる位置 */
  left: 50%;
  transform: translateX(-50%);
  margin-bottom: 0 !important;
  margin-top: 0 !important;
  width: 100%;
  text-align: center;
  z-index: 2;
}
.event .bottom-list .event-slider .slick-dots li {
  display: inline-block;
  margin: 0 2vw;
}
.event .bottom-list .event-slider .slick-dots li button {
  font-size: 0;
  width: 2vw;
  height: 2vw;
  border-radius: 50%;
  border: none;
  background-color: #ccc;
  padding: 0;
  cursor: pointer;
}
.event .bottom-list .event-slider .slick-dots li button:before {
  display: none;
}
.event .bottom-list .event-slider .slick-dots li.slick-active button {
  background-color: #333;
}
.event .bottom-list .img + h3 {
  margin-top: 3.86vw;
}
.event .bottom-list .event-slider + h3 {
  margin-top: 3.86vw;       /* .img + h3 と同じ値にして位置を揃える */
}
.event .bottom-list h3 {
  font-weight: 600;
  font-size:5.797vw;
  line-height: 1.4583;
  letter-spacing: 0.1em;
  margin-bottom: 0.8vw;
  min-height: 0;
  display: flex;
  align-items: flex-start;
}
.event li .txt {
  font-weight: 500;
  font-size:3.382vw;
  letter-spacing: 0.05em;
  line-height: 1.85714;
  margin-top: 0;
}
.event .bottom-list .txt {
  display: none;
}
.event li .more-btn {
  font-weight: 500;
  font-size:3.382vw;
  letter-spacing: 0.05em;
  line-height: 1.85714;
  border-bottom: 0.2vw solid #C9CED3;
  display: inline-block;
  padding: 0 9vw 0.8vw 0;
  margin:5vw 0 0 0;
  cursor: pointer;
  position: relative;
}
/* ＋の表示 */
.event li .more-btn::after {
  content: "+";
  position: absolute;
  right: 0;
  top: 38%;
  transform: translateY(-50%);
  font-size: 4.382vw;
  font-family: "Shippori Mincho B1", serif;
}
/* 開いたときは − に変更 */
.event li .more-btn.open::after {
  content: "−";
}

.event li .txt table{width:100%;font-feature-settings:"palt"; margin:2vw 0 0 0;}
.event li .txt table th{width:11vw;text-align:left;padding:0vw 0vw 2.41vw 0vw;vertical-align:top;}
.event li .txt table td{width:80vw;padding:0vw 0vw 2.41vw 0vw;}
.event li .txt table td span{display:inline-block;border-left:0.24vw solid #aaa;padding:0vw 0vw 0vw 3.62vw;}
.event li .txt table td span.insta-name-inline{ border-left: none; padding: 0;}

.event li .txt a{text-align: center;
background-color: #fff;
display: block;
border: 1px solid #ddd;
padding: 1vw 0 1vw 0;
margin: 5vw 0 0vw 0;}

.event li .txt a.insta-icon-link{
  /* スマホでもPC同様に横並びアイコン表示にするため、ボタン風スタイルを解除 */
  text-align: left;
  background-color: transparent;
  display: inline-flex;
  border: none;
  padding: 0;
  margin: 0;
}


/* sec-wrap
-------------------------------------*/
.sec-wrap {
  background: url(../images/index/sec-bg_sp.png)repeat-y;
  background-size: contain;
}

/* about
-------------------------------------*/
.about {
  width: 89.37vw;
  margin-inline: auto;
  padding: 21.5vw 0 15.46vw;
}
.about .sec-enttl {
  text-align: left;
}
.about .sec-ttl02 {
  text-align: left;
  margin-bottom: 3.8vw;
}
.about tr {
  border-bottom: 0.2vw solid #C9CED3;
  display: grid;
  grid-template-columns: 39.6% 1fr;
}
.about th,
.about td {
  font-weight: 500;
  font-size:3.382vw;
  letter-spacing: 0.05em;
  line-height: 1.85714;
  text-align: left;
  color: #25252a;
  padding: 4.95vw 0;
}
.about th {
  font-weight: 600;
  letter-spacing: 0.1em;
}

/* access
-------------------------------------*/
.access {
  width: 89.37vw;
  margin-inline: auto;
  padding: 6.5vw 0 15.46vw;
}
.access .sec-enttl {
  text-align: left;
}
.access .sec-ttl02 {
  text-align: left;
}
.access .inBox {
  display: grid;
  gap: 9.66vw;
}
.access .map {
  height: auto;
  margin: 0 0 3vw 0;
}
.access .map-box .txt {
  font-weight: 400;
  text-decoration: underline;
  font-size:2.898vw;
  line-height: 1.416666;
  letter-spacing: 0.1em;
  text-align: right;
  position: relative;
  padding: 1.5vw 4.5vw 0 0;
}
.access .map-box .txt::after {
  position: absolute;
  content: "";
  background: url(../images/index/open-icon.svg);
  background-size: contain;
  width: 2.90vw;
  height: 2.90vw;
  top: 50%;
  right: 0px;
}
.access .map iframe {
  aspect-ratio: 16 / 9;
  width: 100%;
  height: 100%;
}
.access table tr {
  display: grid;
  grid-template-columns: 39.5% 1fr;
  border-bottom: 0.2vw solid #C9CED3;
}
.access table tr:first-child {
  border-top: 0.2vw solid #C9CED3;
}
.access table th,
.access table td {
  font-weight: 500;
  font-size:3.382vw;
  line-height: 1.85714;
  letter-spacing: 0.05em;
  padding: 4.95vw 0;
  text-align: left;
}
.access table th {
  font-weight: 600;
  letter-spacing: 0.1em;
}
.access table td a {
  text-decoration: underline;
}
.access table td .add-txt {
  display: block;
  margin: 6.5vw 0 0;
}

/* ticket
-------------------------------------*/
.ticket {
  width: 89.37vw;
  margin-inline: auto;
  padding: 6.1vw 0 15.46vw;
}
.ticket .sec-enttl {
  text-align: left;
}
.ticket .sec-ttl02 {
  text-align: left;
  margin-bottom: 9.2vw;
}
.ticket .ticket-table {
  margin-bottom: 8.66vw;
}
.ticket table {
  width: 100%;
  margin-bottom: 2.86vw;
}
.ticket table tr {
  border-bottom: 0.2vw solid #C9CED3;
}
.ticket table th,
.ticket table td {
  font-size:3.382vw;
  letter-spacing: 0.1em;
  line-height: 1.42857;
  padding: 4.8vw 4vw;
  vertical-align: middle;
}
.ticket table th {
  background: #4A4F59;
  color: #FFFFFF;
  font-weight: 600;
}
.ticket table .heading {
  text-align: center;
  padding: 2.42vw 3vw;
}
.ticket table .heading:last-child {
  border-left: 0.2vw solid #C9CED3;
}
.ticket table .none {
  background: none;
}
.ticket table td {
  text-align: center;
  background: #FFFFFF;
  font-weight: 500;
}
.ticket table .ttl {
  width: 31.667%;
  text-align: left;
}
.ticket table .price {
  width: 30.68vw;
}
.ticket table .price:last-child {
  border-left: 0.2vw solid #C9CED3;
}
.ticket .ticket-table .desc {
  font-weight: 500;
  font-size:3.14vw;
  letter-spacing: 0.05em;
  line-height: 1.846153;
}
.ticket .ticket-place h3 {
  font-weight: 600;
  font-size:3.865vw;
  letter-spacing: 0.1em;
  line-height: 1.5;
  text-align: center;
  color: #fff;
  background: #4A4F59;
  padding: 4.83vw 0;
}
.ticket .ticket-place .list {
  background: #FFFFFF;
  padding: 5.80vw 5.8vw 4.5vw;
}
.ticket .ticket-place .list li {
  font-weight: 500;
  font-size:3.382vw;
  letter-spacing: 0.05em;
  line-height: 1.857142;
  padding-left: 3.5vw;
  position: relative;
}
.ticket .ticket-place .list li::before {
  position: absolute;
  content: "・";
  font-size:3.382vw;
  left: 0;
  top: 0;
}

/* faq
-------------------------------------*/
.faq {
  width: 89.37vw;
  margin-inline: auto;
  padding: 7vw 0 53.1vw;
}
.faq .sec-enttl {
  text-align: left;
  margin-bottom: 2vw;
}
.faq .sec-ttl02 {
  text-align: left;
  margin-bottom: 9.5vw;
}
.faq .list {
  border-top: 0.2vw solid #C9CED3;
  margin-bottom: 15.46vw;
}
.faq .list li {
  border-bottom: 0.2vw solid #C9CED3;
  padding: 5.3vw 0 4.8vw 9.18vw;
  display: grid;
  gap: 3vw;
}
.faq .list li h3 {
  font-weight: 600;
  font-size:3.865vw;
  line-height: 1.75;
  letter-spacing: 0.1em;
  position: relative;
}
.faq .list li h3::before {
  position: absolute;
  content: "";
  background: url(/special/white2025/images/index/q.svg)no-repeat;
  background-size: contain;
  width: 7.25vw;
  height: 7.25vw;
  top: 0;
  left: -9.2vw;
}
.faq .list li .txt {
  font-weight: 400;
  font-size:3.382vw;
  letter-spacing: 0.05em;
  line-height: 1.857142;
  position: relative;
}
.faq .list li .txt::before {
  position: absolute;
  content: "";
  background: url(/special/white2025/images/index/a.svg)no-repeat;
  background-size: contain;
  width: 7.25vw;
  height: 7.25vw;
  top: 0;
  left: -9.2vw;
}
.faq .yt-item {
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  gap: 5.80vw;
}
.faq .yt-item li {
  height: 50.48vw;
}
.faq .yt-item li iframe {
  width: 100%;
  height: 100%;
}


}

/* event（PC）画像・スライダーの高さ揃え
-------------------------------------*/
@media screen and (min-width: 768px) {
  /* 下段イベント（スライダー付き含む）の画像高さを統一 */
  .event .bottom-list .img {
    position: relative;
    aspect-ratio: 4 / 3;
    overflow: hidden;
  }

  .event .bottom-list .img .event-slider,
  .event .bottom-list .img .event-slider .slider-item,
  .event .bottom-list .img picture,
  .event .bottom-list .img img {
    width: 100%;
    height: 100%;
  }

  .event .bottom-list .img img {
    object-fit: cover;
    display: block;
  }
}