:root {
  --sans-serif: "Noto Sans JP", "ヒラギノ角ゴシック", "Hiragino Sans",
    "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", sans-serif;
  --serif: "Noto Serif JP", serif;
  --base-color: #000000cf;
  --main-color: #fff;
  --header-h: 10rem;
  --inner-w: 120rem;
  --inner-report-w: 104rem;
  --inner-space: 10%;
  --text-size1: 2rem;
  --text-size2: 2.4rem;
  --text-size3: 2.8rem;
}

@media screen and (max-width: 798px) {
  :root {
    --header-h: 7.5rem;
    --inner-space: 15%;
    --inner-minus-inline: -4.7%;
    --inner-one-side-space-sm: 3.5%;
    --text-size1: 2.8rem;
    --text-size2: 3.2rem;
    --text-size3: 3.6rem;
  }
}

/* -------------------------------------------------------------
   Reset
------------------------------------------------------------- */

body,
h1,
h2,
h3,
h4,
h5,
h6,
p,
dl,
dt,
dd,
ol,
ul,
figure {
  all: unset;
  display: revert;
}

body {
  line-height: 1;
}

ol,
ul {
  list-style: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

img {
  vertical-align: middle;
}

html {
  scroll-behavior: smooth;
  font-size: 62.5%;
}

@media screen and (max-width: 798px) {
  html {
    font-size: 1.7vw;
  }
}

body {
  background: var(--base-color);
  min-width: 320px;
  font-family: var(--sans-serif);
  font-size: 1.6rem;
  line-height: 1.8;
  color: var(--main-color);
  overflow-x: hidden;
}

@media screen and (max-width: 798px) {
  /* body {
    font-size: 1.4rem;
  } */
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

img,
svg,
iframe,
video,
picture {
  max-width: 100%;
}

img {
  letter-spacing: 0;
  font-size: 12px;
  height: auto;
}

small {
  font-size: 80%;
  line-height: normal;
}

button,
input[type="button"],
input[type="submit"] {
  cursor: pointer;
  font: inherit;
}

button,
input,
select,
textarea {
  font: inherit;
  color: inherit;
}

label {
  cursor: pointer;
  display: inline-block;
}

a {
  text-decoration: none;
  color: inherit;
}

section{
	max-width: 1200px;
	margin: 0 auto;
}


header.is-open {
  background-color: rgba(12, 28, 41, 0.95); /* 好きな色に変更可 */
  transition: background-color 0.3s ease;
}
.pre-pc {
	display: block;
}
.pc-only {
  display: block !important;
}

.sp-only {
  display: none !important;
}

/* 1270px以下の場合 */
@media screen and (max-width: 1270px) {
	/* .l-page .l-page__header {
		position: sticky;
	} */
  .pc-only {
    display: none !important;
  }

  .sp-only {
    display: block !important;
  }
}
/* ハンバーガーメニュー展開中は画面スクロールを禁止 */
body.is-fixed {
    overflow: hidden;
    height: 100vh;
    touch-action: none; /* スマホの慣性スクロール防止 */
}
/* ふだんのロゴ */
header .sponsor-logo .tt_logo {
  content: url("./img/tt_logo.png");
}

/* ハンバーガーメニューを開いたときだけ SP ロゴに差し替え */
header.is-open .sponsor-logo .tt_logo {
  content: url("./img/tt_logo-sp.png");
}
h2 {
	font-weight: bold;
	font-size: 2.6rem;
	line-height: 1.6;
    margin-bottom: 2rem;
}
h3{
	display: inline-block;
	font-weight: bold;
	color: #fff;
    margin: 6rem 0 2rem;
	font-size: 2.4rem;
}
h3 span {
	background-color: #332909;
    padding: 0 0.5rem 0.2rem;
}
h4{
	font-weight: bold;
	font-size: 2.4rem;
	margin-bottom: 4rem;
}
h5 {
	font-size: 2rem;
	font-weight: 900;
	margin-top: 1rem;
}
mark {
	background-color: initial;
	color: #ffdb00;
}
/* -------------------------------------------------------------
   Fade-in Animation
------------------------------------------------------------- */

.js-fade-in {
  filter: blur(30px) opacity(0);
  transform: translateY(60px);
  transition: all 1.5s cubic-bezier(0.23, 1, 0.32, 1) 0.2s;
  will-change: transform;
}

.js-fade-in.is-active {
  filter: blur(0) opacity(1);
  transform: translateY(0);
}

.js-fade-in {
  opacity: 1;
}


/* 200% 固定をやめて、画像幅に応じて自動拡張 */
/* .scroll-infinity__wrap {
  display: inline-flex !important;
  width: max-content !important;
  white-space: nowrap;
  overflow: visible;
  vertical-align: top;
} */

/* 各 ul の幅も自動にする（100%固定を無効化） */
/* .scroll-infinity__list {
  width: auto !important;
} */

/* 画像の横幅を自然に並べる（潰れ防止） */
.scroll-infinity__item {
  flex: 0 0 auto;
}

/* 左スクロール */
.scroll-infinity__list--left {
  animation: infinity-scroll-left 80s linear infinite;
}

/* 右スクロール */
.scroll-infinity__list--right {
  animation: infinity-scroll-right 80s linear infinite;
}
/* -------------------------------------------------------------
   Hedder
------------------------------------------------------------- */
header {
	font-family: "Noto Serif JP", serif;
}

/* -------------------------------------------------------------
   MV
------------------------------------------------------------- */
.top-mv{
	position: relative;
	width: 100%;
    margin-top: -100px;
}
.mv-logo {
	position: absolute;
	top: 12%;
	left: 50%;
	transform: translateX(-50%);
	width: 35%!important;
}

.kikaku_btn {
	position: absolute;
	top: 75%;
	left: 50%;
    transform: translateX(-50%);
	display: flex;
	justify-content: center;
	align-items: flex-end;
	gap: 20px;
	z-index: 30;
	width: 75%;
}
	 .pc-movie {
		display: block;
	}
	.sp-movie {
		display: none;
	}

/* 背景動画 */
.mv-video {
    width: 100%;
}
/* -------------------------------------------------------------
   Overview
------------------------------------------------------------- */
section.overview {
    width: 100%;
    max-width: initial;
    position: relative;
    z-index: 10;
    background-image: url(/img/kumo.jpg);
    background-size: contain;
    margin: -3rem 0 0;
    padding: 1rem 0 15rem;
}
  .read-ph {
	margin: 0 auto 4rem;
  }
.kumo-ue {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	z-index: 20;
	transform: translateY(-99%);
	display: block;
}
.kumo-shita {
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	z-index: 20;
	transform: translateY(99%);
	display: block;
}
.read-box{
	max-width: var(--inner-report-w);
	margin: 4rem auto;
	background-image: url(/img/plf-bg.png);
	position: relative;
}
.read-box .read-ue{
	position: absolute;
	top: -10px;
}

.read-box .read-sita{
	position: absolute;
	bottom: 0;
}


.read .plf{
	font-size: 1.8rem;
	font-weight: 400;
    display: flex;
	text-align: left;
	margin-top: 2.7rem;
	padding: 4rem 3rem 3rem;
	justify-content: space-between;
}
.read .plf img {
	width: 120px;
	height: 120px;
}
.plf-text {
	width: 85%;
}
.f-text p {
	font-size: 1.8rem;
}
.plf-name {
	text-align: right;
	margin-top: 1rem;
}
.read-t {
	font-size: 2.4rem;
	font-weight: bold;
	margin-bottom: 3rem;
}
h2.read-midashi {
	font-size: 1.8rem;
}

.f-box{
position: relative;
    display: flex;
    margin: 2rem 0 3rem;
    justify-content: space-between;
    align-items: flex-start;
}
.f-box p {
	font-size: 1.8rem;
}
.f-box .f-text{
	width: 45%;
	margin-bottom: 8.5rem;
}
.line{
	border: solid 2px #332909;
}
.overview-box {
	color: #332909;
}

.overview-box .box-t {
    width: 60%;
	margin: 0 auto;
	font-weight: bold;
}
.box-t .sk-box {
	margin-top: 3rem;
}
.box-t .sk-box p:first-child{
	border-top: #000 solid 1px;
}
.box-t .sk-box p {
	border-bottom: #000 solid 1px;
	padding: 1rem 0;
	text-indent: -6.5rem;
    padding-left: 6.5rem;
}

/* -------------------------------------------------------------
   Plan
------------------------------------------------------------- */
.plan-bg {
	background-color: #022f4e;
  	background-image: url(/img/bg.jpg);
	background-size: cover;
	background-repeat: no-repeat;
	background-position: center bottom;
	padding-bottom: 40rem;
}
section.plan {
	position: relative;
	z-index: 30;
		background-color: rgba(247, 241, 225, 0.9);
	border-radius: 11px;
	color: #332909;
	padding: 8rem;
    margin: -5rem auto;
	font-weight: bold;
}
.k-midashi {
	position: absolute;
    top: -4rem;
    left: -5rem;
}
.t-flex {
	display: flex;
	padding: 3rem 4rem;
	justify-content: space-between;
	align-items: center;
	font-size: 2rem;
}
.f-btn {
	display: block;
	text-align: center;
}
.k-btn {
    display: block;
}
.k-btn img{
    height: 37px;
	margin-left: -1rem;
}
.midashi-img {
	display: block;
	margin: 0 auto 6rem;
	max-width: 95%;
}

.bus-tour-img {
width: 66rem!important;
    position: absolute;
    right: -12rem;
}
.plf-tour .plf-tour-img{
	width: 30%;
	text-align: center;
	margin-right: 1rem;
}
.tour-skj-img {
	display: block;
	width: 60%;
	margin: 4rem auto 0;
}
.dinner-tour p{
    width: 42%;
    padding-right: 1.5rem;
}
.present-tour{
	margin-bottom: 6rem;
}
.pre-t{
	padding-right: 4rem;
}
figcaption {
	font-size: 1.6rem;
	margin-top: 0.5rem;
}
@media screen and (min-width: 1480px) {
  section.overview {
    background-image:
        /* url(/img/read-bg-ph-l.png), */
        /* url(/img/read-bg-ph-r.png), */
        url(/img/kumo.jpg);
    background-size:
        /* 25%, */
        /* 25%, */
        cover;
    background-position:
        /* left center, */
        /* right center, */
        center top;
    background-repeat: no-repeat;
    /* padding: 10rem 0 20rem; */
  }
  .read-ph {
	display: none;
  }
}

.true-bt {
	text-align: center;
}
.true-bt .f-btn  {
	display: inline-block!important;
}

/* -------------------------------------------------------------
   yakei
------------------------------------------------------------- */
section.yakei {
	position: relative;
	padding: 10rem 0 2rem;
	width: 100%!important;
	max-width: initial;
	z-index: 15;
	color: #332909;
	background-image: url(/img/yakei-bg.jpg);
	background-size: cover;
	text-align: center;
	margin-top: -25rem;
	font-weight: bold;
}
section.yakei a{
	pointer-events:none;
}
.yakei-ue {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	z-index: 20;
	transform: translateY(-99%);
	display: block;
}
.yakei-sita {
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	z-index: 20;
	transform: translateY(99%);
	display: block;
}

.yakei-box {
	max-width: var(--inner-w);
	margin: 0 auto;
	position: relative;
}
.yakei .k-midashi {
	position: absolute;
	top: -15rem;
	left: -5rem;
	z-index: 50;
}
.yakei .yakei-midashi {
	margin: 0 auto 2rem;
	padding-right: 8rem;
}
.kikan {
	display: inline-block;
	border: solid 2px #332909;
	background-color: #fff;
	font-size: 2.6rem;
	padding: 0 1rem 0.2rem;
	margin: 3rem 0;
}
.yakei-t {
	text-align: left;
	max-width: 90%;
	font-size: 2.4rem;
	margin: 0 auto 6rem;
}
.yakei-t span{
	font-size: 3rem;
	background-color: #332909;
	color: #fff;
    padding: 0 1rem;
	margin-right: 0.6rem;
}
.yakei-t-box {
	display: flex;
	align-items: flex-start;
}
.yakei-t-box img {
	width: 40%;
	padding-top: 3rem;
}
.t-btn {
	display: inline-block;
	margin: 4rem;
}

.touhyo {
	font-size: 2.4rem;
}
.splide__slide img {
  height: auto;
  width: 100%;
}
/* -------------------------------------------------------------
   Premium Night
------------------------------------------------------------- */
section.premium {
	position: relative;
	padding: 20rem 0;
	width: 100%!important;
	max-width: initial;
	z-index: 10;
	color: #332909;
	background-image: url(/img/kikaku_03_bg.png.jpg);
	background-size: cover;
	text-align: center;
}
.premium-box {
	max-width: var(--inner-w);
	margin: 0 auto;
	position: relative;
}
.premium-box .k-midashi {
	top: -10rem;
}

.kikaku_03_bg-sita {
    width: 100%;
    position: absolute;
    bottom: 0;
    left: 0;
}
.premium-day {
	color: #fff;
	font-size: 4.2rem;
	margin-top: 5rem;
}
.comming {
	font-size: 7.4rem;
	color: #fff;
	font-weight: 500;
}
/* -------------------------------------------------------------
   Notes
------------------------------------------------------------- */
section.notes {
	font-size: 1.8rem;
    position: relative;
    max-width: initial;
    background-color: #102231;
    z-index: 30;
	padding-bottom: 8rem;
}
.noto-f {
	margin-top: 10rem;
}
.notes-box {
	max-width: 1040px;
	margin: 0 auto;
	line-height: 2.1;
}
/* 背景を画面幅いっぱい */
.tokyo-official {
  width: 100vw;
  margin-left: 50%;
  transform: translateX(-50%);
  background-color: #ffffff;
  padding: 8rem 0;
  color: #000;
  font-weight: 500;
  margin-bottom: 10rem;
}

/* 中身だけ元の notes-box の幅に揃える */
.tokyo-official-inner {
  max-width: 1040px; /* notes-box と同じ幅 */
  margin: 0 auto;
}
.official-btn {
	text-align: center;
    margin: 4rem 0 0;
}
.official-btn a {
	display: inline-block;
	padding: 1.5rem 4rem;
	background-color: #ffffff;
	color: #fff;
	font-size: 2rem;
	font-weight: bold;
	border-radius: 5px;
}
.official-btn a img{
	width: 350px;
}
.notes hr {
	border: solid 1px #fff;
	margin: 0 0 6rem;
}
.notes li {
   text-indent: -1em;
   padding-left: 1em;
}
.notes li a {
overflow-wrap: anywhere;
	   text-decoration: underline;
   text-underline-offset: 2px;
}
.notes p{
margin-top: 4rem;
}
.schedule-item {
  display: flex;
  gap: 3rem; /* ← 時間と内容のスペースを調整 */
  align-items: flex-start;
}

.time {
  min-width: 5rem; /* 時間幅を固定したい場合 */
  font-weight: bold;
}

/* -------------------------------------------------------------
   Footer
------------------------------------------------------------- */

.l-footer {
  background-color: #0c1c29;
  width: 100%;
}
.l-footer p {
	font-weight: bold;
	font-size: 2.4rem;
	line-height: 1.6;
	margin-bottom: 1rem;
}
.l-footer .l-footer__inner {
  padding: 8rem 0 0;
}
.sponser {
	margin: 6rem 0;
	text-align: center;
}
.sponser a {
display: inline-block;
}
.sponser .f-box{
	justify-content: space-between;
	margin: 4rem 0;
}
.sponser .f-box a{
	display: inline-block;
	width: 49%;
}
.sponser .f-box img{
	width: 100%;
	height: auto;
}
@media screen and (max-width: 798px) {
  .l-footer .l-footer__logo {
    width: 90%;
  }
}

.l-footer .l-footer__content {
	display: flex;
	justify-content: center;
	font-size: 1.4rem;
  margin-top: 7rem;
  font-weight: 300;
}

.l-footer__content a {
	display: inline-block;
	margin: 0 1rem;
}

@media (any-hover: hover) {
  .l-footer .l-footer__policy a:hover {
    text-decoration: none;
  }
}

.l-footer .l-footer__copyright {
	text-align: center;
	padding-bottom: 3rem;
	margin: 0.5rem;

}

.l-footer .l-footer__copyright small {
  font-size: 1.4rem;
}

@media screen and (max-width: 798px) {
  .l-footer .l-footer__copyright small {
    font-size: 1rem;
  }
}

/* -------------------------------------------------------------
   Header
------------------------------------------------------------- */

.l-header {
  width: 100%;
  height: var(--header-h);
}

.l-header .l-header__inner {
    width: 100%;
    display: flex;
    align-items: center;
    height: inherit;
justify-content: space-around;
}
.l-header__logo {
	display: flex;
    justify-content: space-between;
	align-items: center;
	width: 32%;
	margin-right: 3rem;
}
.l-header__logo img{
	width: 20%;
	height: 45px;
}

@media screen and (max-width: 798px) {
  .l-header .l-header__inner {
    --inner-space: 8%;
  }
}

.l-header .l-header__content {
  display: flex;
  justify-self: end;
  gap: 2rem;
  align-items: center;
}

@media screen and (max-width: 798px) {
  .l-header .l-header__content {
    gap: 3.8rem;
  }
}

@media screen and (max-width: 798px) {
	.l-header .l-header__content {
		justify-content: space-between;
	}
  .l-header .l-header__logo {
    width: 42%;
	line-height: 1.6;
	font-size: 1.1rem;
  }
  header .sponsor-logo .tt_logo {
	height: auto!important;
	max-height: 40px;
	margin-right: 20px;
  }
  .l-header .l-header__content {
	align-items: center;
  }
}

.l-header .l-header__lang {
  align-self: center;
}

.l-header .l-header__lang.is-hidden {
  opacity: 0;
}

.l-header .l-header__lang-list {
  display: inline-flex;
  align-items: center;
  border: 1px solid #fff;
}

.l-header .l-header__lang-link {
  display: block;
  padding: 0.7rem 1.5rem;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1;
  color: #fff;
  font-style: normal;
}

@media screen and (max-width: 798px) {
  .l-header .l-header__lang-link {
    padding: 1.1rem 2.3rem;
    font-size: 2.5rem;
  }
}

.l-header .l-header__lang-link.is-active {
  background-color: #fff;
  color: #0c1427;
}

/* -------------------------------------------------------------
   Navigation - Button & Lines
------------------------------------------------------------- */

.l-header .l-header__nav-wrap {
	width: 46%;
  align-self: center;
}

.l-nav.is-open .l-nav__menu {
  right: 0;
  visibility: visible;
}

.l-nav.is-open .l-nav__line {
  width: 110%;
}

@media screen and (max-width: 798px) {
  .l-nav.is-open .l-nav__line {
    width: 100%;
  }
}

.l-nav.is-open .l-nav__line.l-nav__line--1 {
  transform: rotate(25deg);
}

@media screen and (max-width: 798px) {
  .l-nav.is-open .l-nav__line.l-nav__line--1 {
    transform: rotate(28deg);
  }
}

.l-nav.is-open .l-nav__line.l-nav__line--2 {
  opacity: 0;
}

.l-nav.is-open .l-nav__line.l-nav__line--3 {
  transform: rotate(-25deg);
}

@media screen and (max-width: 798px) {
  .l-nav.is-open .l-nav__line.l-nav__line--3 {
    transform: rotate(-28deg);
  }
}

.l-nav .l-nav__btn {
  display: none;
}

@media screen and (max-width: 1270px) {
  .l-nav .l-nav__btn {
    display: block;
    position: relative;
    background-color: rgba(0, 0, 0, 0);
    border: none;
    width: 4rem;
    height: 2rem;
    margin: 0;
    padding: 0;
  }
  .l-header .l-header__nav-wrap {
	width: 10%;
  }
  .l-header .l-header__content {
	justify-content: space-around;
  }
  .l-header__logo {
    width: 32%;
    margin-right: 2rem;
}
.l-header__logo img {
    width: 17%;
    height: 30px;
	margin-right: 0.4rem;
}
header .sponsor-logo .tt_logo {
	margin-left: 0;
}
}

@media screen and (max-width: 798px) {
  .l-nav .l-nav__btn {
    width: 7.6rem;
    height: 4rem;
  }
}

.l-nav .l-nav__line {
  display: block;
  position: absolute;
  background-color: #fff;
  width: 100%;
  height: 2px;
  transition: 0.5s;
  transition-property: opacity, transform;
  transform-origin: left;
}

.l-nav .l-nav__line.l-nav__line--1 {
  top: 0;
}

.l-nav .l-nav__line.l-nav__line--2 {
  inset-block: 0;
  margin-block: auto;
}

.l-nav .l-nav__line.l-nav__line--3 {
  bottom: 0;
}

/* -------------------------------------------------------------
   Navigation - Menu
------------------------------------------------------------- */

@media screen and (max-width: 1270px) {
  .l-nav .l-nav__menu {
    display: block;
    position: fixed;
    top: var(--header-h);
    right: -100%;
    background-color: #0c1c29f2;
    width: 100%;
    height: 100%;
    padding: 8rem 5.5rem;
    overscroll-behavior-y: contain;
    transition: 0.5s;
    overflow: auto;
    visibility: hidden;
    z-index: 99;
  }
}

.l-nav .l-nav__list {
	text-align: center;
  display: flex;
  gap: 3.8rem;
}

@media screen and (max-width: 1270px) {
  .l-nav .l-nav__list {
    flex-direction: column;
    gap: 5.5rem;
  }
}

.l-nav .l-nav__link {
  display: block;
  position: relative;
  font-size: 1.6rem;
  font-weight: 200;
  letter-spacing: 0.04rem;
  color: #fff;
}

@media screen and (max-width: 1270px) {
  .l-nav .l-nav__link {
    font-size: 3.2rem;
  }
}
.l-nav .l-nav__link span {
  position: relative;
  background: linear-gradient(#fff, #fff) 100% 100% / 0 1px no-repeat;
}
/* スクロール時に背景色を付ける*/
  header.is-scrolled {
    background-color: rgba(35, 52, 68, 0.717);
    backdrop-filter: blur(6px);
    transition: background-color 0.3s ease;
  }
@media screen and (max-width: 1270px) {
  .l-nav .l-nav__link::after {
    content: "";
    display: block;
    position: absolute;
    inset-block: -1rem 0;
    right: 0;
    transform: var(--arrow-rotate, rotate(45deg));
    border-top: 1px solid #fff;
    border-right: 1px solid #fff;
    aspect-ratio: 1;
    width: 2rem;
    height: 2rem;
    margin-block: auto;
  }
}

@media (hover: hover) {
  .l-nav .l-nav__link span {
    transition: background-size 0.5s cubic-bezier(0.39, 0.575, 0.565, 1);
  }

  .l-nav .l-nav__link:hover span {
    background-position: 0 100%;
    background-size: 100% 1px;
  }
}

/* -------------------------------------------------------------
   Page Layout
------------------------------------------------------------- */

.l-page .l-page__header {
  /* grid-area: header; */
  position: relative;
  top: 0;
  left: 0;
  z-index: 100;
}


/* -------------------------------------------------------------
   Inner Container
------------------------------------------------------------- */

.inner {
  max-width: min(100% - var(--inner-space), var(--inner-w));
  margin-inline: auto;
}
/* -------------------------------------------------------------
   Screen Reader
------------------------------------------------------------- */

.screen-reader-text {
  clip: rect(1px, 1px, 1px, 1px);
  height: 1px;
  overflow: hidden;
  position: absolute;
  width: 1px;
  word-wrap: normal;
}

header .sponsor-logo .tt_logo {
	height: 45px;
	margin-left: 2rem;
}

header .sponsor-logo .tcvb_logo {
	height: 50px;
}

@media screen and (max-width: 798px) {
  .top-bnr-nav .top-bnr-nav__inner {
    padding-block: 13rem;
  }
}

.top-mv {
  position: relative;
  width: 100%;
}

.top-mv a {
  display: block;
}

.top-mv img {
  width: 100%;
  /* height: 100%; */
}

@media screen and (max-width: 798px) {
  .top-mv .top-mv__inner {
    --inner-space: 17%;
  }
}

.top-news {
  padding-block: 4.5rem;
}

@media screen and (max-width: 798px) {
  .top-news {
    padding-block: 7rem;
  }
}

/* 左方向に無限スクロール */
@keyframes infinity-scroll-left {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-100%);
  }
}

/* 右方向に無限スクロール */
@keyframes infinity-scroll-right {
  from {
    transform: translateX(-100%);
  }
  to {
    transform: translateX(0);
  }
}

/* 左方向に無限スクロール */
@keyframes infinity-scroll-left {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-100%);
  }
}

/* 右方向に無限スクロール */
@keyframes infinity-scroll-right {
  from {
    transform: translateX(-100%);
  }
  to {
    transform: translateX(0);
  }
}

/* 外側であふれを隠す（ドラッグ不要なら cursor は外してOK） */
.scroll-infinity {
  overflow: hidden;
  width: 100%;
}

/* 中身：2つのリストを横に並べる（幅は中身に合わせて伸びる） */
.scroll-infinity__wrap {
  display: flex;
  width: max-content;
}

/* 左流れ・右流れのアニメーションは wrap にかける */
.scroll-infinity__wrap--left {
  animation: infinity-scroll-left 60s linear infinite;
}
.scroll-infinity__wrap--right {
  animation: infinity-scroll-right 60s linear infinite;
}

/* 1セット分のリスト */
.scroll-infinity__list {
  display: flex;
  list-style: none;
  margin: 0;
  padding: 0;
}

/* アイテムは横一列に並べる */
.scroll-infinity__item {
  flex: 0 0 auto;
}
.beside {
	height: 80%;
}
/* 画像の見た目 */
.scroll-infinity__item img {
  display: block;
  width: auto;
  height: 272px;
  pointer-events: none;
}

@media screen and (max-width: 798px) {
  .scroll-infinity__item img {
    height: 200px;
  }
}

/* 左方向に無限スクロール（2セット分あるので -50% でちょうど1周） */
@keyframes infinity-scroll-left {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}

/* 右方向に無限スクロール */
@keyframes infinity-scroll-right {
  from {
    transform: translateX(-50%);
  }
  to {
    transform: translateX(0);
  }
}

/* 各アイテム幅は画像に任せる（計算しない！） */
.scroll-infinity__item {
  flex: 0 0 auto;
}

/* 画像は横並びで自然に配置 */
.scroll-infinity__item img {
  display: block;
  width: auto;
  height: 272px;
  pointer-events: none; /* ドラッグ時に画像選択を防止 */
}

@media screen and (max-width: 798px) {
  .scroll-infinity__item img {
    height: 200px;
  }
}



.yakei-scroll {
  margin-left: 50%;
  margin-bottom: 4rem;
  transform: translateX(-50%);
  width: 100vw;
}

@media screen and (max-width: 1300px) {

	.l-page .l-page__header{
		background-image: linear-gradient(#00000040, #0000000f 53%, transparent);
	}
	.k-midashi {
        top: -5rem;
        left: 2rem;
}
.overview-box .box-t {
    width: 100%;
}
	section.plan{
		margin: -2rem auto 2rem;
		padding: 8rem 4rem;
	}
.tour-skj {
	    display: block;
}
    .f-box .f-text {
        width: 100%;
        margin-bottom: 2rem;
    }
.bus-tour-img {
    position: initial;
	height: fit-content;
	height: auto;
}
.yakei .k-midashi {
    position: absolute;
        top: -15rem;
        left: 2rem;
}
section.yakei {
	padding-bottom: 4rem;
}
.notes-box {
	padding: 0 2rem 4rem;
}
.touhyo {
	text-align: left;
	padding: 0 2rem;
}
.yakei-t-box {
	display: block;
}
.yakei-t-box img {
	width: 80%;
	margin: 0 auto 8rem;
}
}




/* -------------------------------------------------------------
スマホ版
------------------------------------------------------------- */
@media screen and (max-width: 798px) {
		.pre-pc {
	display: none;
}
	h2 {
		font-size: 2.2rem;
	}
.inner {
    min-width: 88%;
}

.l-nav .l-nav__btn {
	width: 5.6rem;
	height: 3rem;
}
	 .top-mv {
		margin-top: -7.5rem;
	 }
	.mv-logo {
		width: 60%!important;
		padding-top: 5rem;
	}
	.mv-logo {
		top: 10%;
	}
	 .pc-movie {
		display: none;
	}
	.sp-movie {
		display: block;
	}

	.kikaku_btn {
		top: 70%;
		width: 95%;
		gap: 5px;
	}
	section.overview {
		margin: -6rem 0 0;
	}
	.read-box {
		margin: 3rem auto;
	}
	.read {
    flex-direction: column;
	align-items: center;
	padding: 3rem 4rem 1rem;
}
.read-t {
	font-size: 2rem;
}
.read>p {
	text-align: center;
}

.read .plf {
	width: 100%;
	border-left: none;
	margin: 2rem 0;
	padding: 0;
}
.read .plf img {
	margin-right: 2rem;
}
.plf p.plf-name {
	text-align: right;
}
.overview-box {
	flex-direction: column;
	align-items: center;
}
    .overview-box .box-t {
        width: 100%;
        padding-right: 0;
    }
	.overview-box img{
		position: initial;
		width: 100%;
		margin: 0 auto 2rem;
	}
	section.plan{
		margin: -2rem 2rem;
        padding: 8rem 3rem 4rem;
	}
	.kikan {
		font-size: 2rem;
	}
	.yakei-t {
		font-size: 2rem;
		margin-bottom: 0;
	}
	.yakei-t span {
		font-size: 2.4rem;
	}
	.k-midashi {
        width: 330px;
    }
	.f-box {
		flex-direction: column;
		align-items: center;
		margin: 0;
	}

	.t-flex {
		flex-direction: column;
		align-items: flex-start;
		font-size: 1.8rem;
	}
	.f-btn {
		width: 100%;
		margin: 2rem auto 0;
	}
	.plf-tour {
		flex-direction: initial;
	}
	.plf-tour .plf-tour-img {
    width: 100%;
	margin-right: 2rem;
}
	.plf-tour-img,.dinner-tour p,.present-tour p {
		margin-bottom: 2rem;
	}
	.f-box img {
    width: 100%;
}
.tour-skj-img {
	width: 100%;
	margin: 2rem auto 0;
}
.dinner-tour p {
	width: 100%;
	padding: 0;
}
.pre-t {
	padding: 0;
	margin-bottom: 2rem;
}
.f-btn {
	margin-top: 2rem;
}

section.yakei {
	padding: 0 2rem;
}
    .yakei .k-midashi {
        position: absolute;
        top: -6rem;
        left: 0;
    }
	.touhyo {
	text-align: left;
	font-size: 2rem;
}

.yakei-t-box img {
	width: 90%;
	margin-bottom: 4rem;
}
section.premium {
    padding: 14rem 2rem 8rem;
    }
.premium-box .k-midashi {
	width: 320px;
	top: -90px;
}
.premium-day {
	font-size: 2.8rem;
	margin-top: 3rem;
}
.comming {
	font-size: 5.4rem;
        margin: 0;
}
.tokyo-official {
	padding: 4rem 0;
	margin-bottom: 6rem;
}
.tokyo-official-inner {
	padding: 0 2rem;
}
.notes p {
	margin-top: 3rem;
}
.l-footer p {
	font-size: 2rem;
}
.time {
	min-width: 8rem;
}
.sponser {
	margin-bottom: 0;
}
.sponser .f-box a{
	width: 100%;
	margin-bottom: 1.8rem;
}
.l-footer .l-footer__content{
	margin-top: 4rem;
}
.l-footer .l-footer__content {
	font-size: 1.6rem;
}
.l-footer .l-footer__inner {
	padding: 4rem 0 0;
}
}
@media screen and (max-width: 478px) {
	.l-header .l-header__logo {
		width: 38%;
		margin-left: 0;
	}
	.sponsor-logo {
		width: 35%;
		margin-right: 2rem;
	}
	.l-header__logo img {
		height: 17px;
	}
	h3 {
		font-size: 2rem;
	}
    .k-midashi {
        width: 220px;
        top: -3rem;
        left: 0;
    }
	.premium-box .k-midashi {
		width: 230px;
        top: -80px;
	}
	.read .plf img {
    width: 70px;
    height: 70px;
}
section.overview {
	padding: 1rem 0 10rem;
}
section.plan {
        padding: 4rem 2rem;
    }
	.midashi-img {
    margin: 0 auto 3rem;
	}
	.f-btn {
        width: 85%;
    }

.yakei .yakei-midashi {
	padding-right: 4rem;
	margin: 0 auto 1rem;
}
.yakei-t span {
    font-size: 2.5rem;
}
section.notes {
	padding-bottom: 4rem ;
}
header .sponsor-logo .tt_logo {
	margin-right: 0;
}
header .sponsor-logo .tt_logo {
	max-height: 35px;
}
.l-header .l-header__content {
		gap: 2.2rem;
}
.l-header__logo img {
	width: 18%;
	height: 23px;
}
.k-btn img {
	height: 20px;
}
.official-btn a img {
	width: 250px;
}
}




.ukiyo-img {
	  display: flex;
     align-items: center;
  gap: 1.2rem;
}
.ukiyo-img .ukiyo {
	flex-shrink: 0;
	display: flex;
	align-items: flex-end;
}

.ukiyo img {
  display: block;
  width: auto;
  height: auto;
  max-width: none;
}
.ukiyo.beside img {
  height: 260px;        /* 横画像は低め */
}
.ukiyo.tate img {
  height: 340px;        /* 縦画像は大きく */
}
/* .ukiyo img {
  height: auto;
  width: auto;
  max-height: 320px;
  max-width: 420px;
  height: 300px!important;
  display: block;
} */
.ukiyo img[height][width] {
  aspect-ratio: attr(width) / attr(height);
}
ul.ukiyo-img:first-child {
  padding-right: 1.2rem;
}
