@import url('https://fonts.googleapis.com/css2?family=Zen+Maru+Gothic:wght@400;500;700;900&display=swap');

@import url('https://fonts.googleapis.com/css2?family=M+PLUS+Rounded+1c:wght@400;500;700;800;900&display=swap');

@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@300;400;500;600;700;900&display=swap');

* {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
-o-box-sizing: border-box;
-ms-box-sizing: border-box;
box-sizing: border-box;
}

/* タイトルアニメーション用（FOUC防止） */
.title_move1,
.title_move2,
.title_move3 {
  opacity: 0;
}

:root {
  --color-pink: #eb6ea5;
  --color-pinkred: #fc174c;
  --color-light-pink: #fecee2;
  --color-pale-pink: #f1b6cf;
  --color-blue: #00b8ee;
  --color-dark-blue: #0093c7;
  --color-bluesky: #0a87fb;
  --color-water-blue: #9ae5fb;
  --color-light-yellow: #f7ffda;
  --color-yellow: #ffe100;
  --color-navy: #003F7E;
  --color-light-navy: #004e97;
  --color-red: #f33c4a;
  --color-line: #c6e3fe;
  --color-blue-line: #9accfb;
  --color-important: #f33c53;
  --bg-light-blue: #eef7ff;
  --bg-light-yellow: #fdffcc;
}

html {
overflow: auto;
}

/* Global */
body {
height: 100%;
color: #fff;
font-size: 1em;
font-family: "Zen Maru Gothic", 'Noto Sans JP', "游ゴシック体", "Yu Gothic", "Hiragino Kaku Gothic Pro", "Meiryo", sans-serif;
letter-spacing: 1px;
overflow-wrap: anywhere;
line-break: strict;
position: relative;
display: flex;
flex-flow: column;
min-height: 100vh;
background: #fff;
}

.body_bg {
	background-color: var(--color-blue);
}

/* SVG要素のtransform設定を削除または変更 */
[id^="brand-element"],
#brand-device-element {
  /* transform-box: fill-box; これを削除 */
  /* transform-origin: 50% 50%; これも削除 */
}
.bg_blue {
background: var(--color-blue);
}

#wrap {
flex: 1;
}

img {
max-width: 100%;
height: auto;
}

.ie8 img {
width: auto;
}

a:link {
color: #fff;
text-decoration: none;
transition-property: all;
transition: 0.2s linear;
border-style: none;
}

a:visited {
color: #fff;
}

a:hover {
color: #fff;
text-decoration: underline;
}

.container {
width: 92%;
max-width: 1000px;
margin: auto;
}

.container1010 {
width: 92%;
max-width: 1010px;
margin: auto;
}

.container1080 {
width: 92%;
max-width: 1080px;
margin: auto;
}


.container1200 {
width: 92%;
max-width: 1200px;
margin: auto;
}

.container800 {
width: 92%;
max-width: 800px;
margin: auto;
}



/* ふわっと表示 */
/* 画面外にいる状態 */
.fadein {
opacity: 0;
transform: translate(0, 45px);
transition: all 700ms;
}

/* 画面内に入った状態 */
.fadein.scrollin {
opacity: 1;
transform: translate(0, 0);
}


/* header */
header {
	margin: 0;
	padding: 0;
}

/* Header */
.header {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	background: rgba(255, 255, 255, 0.98);
	backdrop-filter: blur(10px);
	padding-top: 10px;
	z-index: 5000;
	
	/* ✕ 削除：transition: all 0.3s ease; */
	height: 100px;
	opacity: 1;
	padding-left: 20px;
}

.header.scrolled {
	background: rgba(255, 255, 255, 1);
	box-shadow: 0 4px 30px rgba(0,0,0,0.12);
}


.h1_mov {
	width: 15%;
	text-align: left;
	opacity: 1;
	position: absolute;
}

header h1 {
	margin: 0;
	padding: 0;
}

header h1 img {
	margin: 0;
	padding: 0;
	width: 110px;
	position: relative;
	z-index: 100;
}

/* ロゴ横の開催地（東京）ロゴ */
header h1 a {
	display: flex;
	align-items: center;
	flex-wrap: nowrap;
}

header h1 img.h1_area {
	width: 60px;
	margin-left: 8px;
}


h1 a:link,
h1 a:visited {
	color: #000 !important;
}

/* ヘッダーメニュー */
.header_menu {
	text-align: center;
    transition: .6s;
    opacity: 1;
	display: flex;
	justify-content: flex-end;
	align-items: center;
	position: relative;
	margin: 25px 0 0 auto;
	width: 85%;
}

ul.main_menu {
	display: flex;
	margin: 0;
	padding: 0;
	justify-content: flex-end;
}

ul.main_menu li {
	font-family: "M PLUS Rounded 1c", sans-serif;
	font-size: 0.9em;
	line-height: 1.2em;
	font-weight: 700;
	list-style: none;
	margin: 0 40px 0 0;
	padding: 0;
}

ul.main_menu li a {
	color: var(--color-blue);
	position: relative;
}

ul.main_menu li a::after {
/*波線アンダーラインのスタイル*/
  position: absolute;
  content: "";
  display: block;
  width: 100%;
  height: 3px;
  background: repeating-linear-gradient(
    90deg,
    var(--color-pink) 0px,
    var(--color-pink) 4px,
    transparent 4px,
    transparent 8px
  );
  bottom: -8px;
  left: 0;
  /*横方向0で非表示にする*/
  -webkit-transform: scale(0, 1);
  transform: scale(0, 1);
  /*中央を基点にアニメーション*/
  -webkit-transform-origin: center top;
  transform-origin: center top;
  /*アニメーションの速度設定*/
  -webkit-transition: all 0.5s ease;
  transition: all 0.5s ease;
}

ul.main_menu li a:hover::after {
/*横方向等倍まで拡大*/
  transform: scale(1, 1);
}

ul.main_menu li:last-child {
	margin: 0;
}

.header_menu a {
	text-decoration: none;
}

.header_menu a:hover {
	text-decoration: none;
}

.header_sns {
	display: flex;
	justify-content: flex-end;
	margin: 0 0 0 2em;
	padding: 0 30px 0 0;
}

.header_sns img {
	width: auto;
	height: 30px;
	margin: 0 0 0 10px;
}

.lang_switch {
	display: flex;
	gap: 5px;
	font-size: 0.8rem;
	margin-right: 10px;
}

.lang_switch a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 35px;
	height: 35px;
	background: var(--color-yellow);
	color: var(--color-blue);
	text-decoration: none;
	border-radius: 50%;
	font-weight: 600;
	transition: all 0.3s;
}

.lang_switch .no_link {
	display: none;
	align-items: center;
	justify-content: center;
	width: 35px;
	height: 35px;
	background: var(--color-yellow);
	color: #fff;
	text-decoration: none;
	border-radius: 50%;
	font-weight: 600;
	pointer-events: none;
}

/* 言語切替 日⇔英：現在の言語を点灯、もう一方を減光 */
.lang_switch .lang_btn {
	opacity: 0.4;
}
.lang_switch .lang_btn:hover {
	opacity: 1;
}
/* 通常時（日本語ページ）は JP を点灯 */
.lang_switch .lang_ja {
	opacity: 1;
	pointer-events: none;
	cursor: default;
}
/* 翻訳時（is-en-mode）は EN を点灯し、JP を「日本語へ戻る」ボタンに */
html.is-en-mode .lang_switch .lang_ja {
	opacity: 0.4;
	pointer-events: auto;
	cursor: pointer;
}
html.is-en-mode .lang_switch .lang_en {
	opacity: 1;
	pointer-events: none;
	cursor: default;
}


/* General Slides */
.slide {
background-attachment: fixed;
width: 100%;
height: auto;
position: relative;
padding: 0;
}

/* Slide1 */
#slide1 {
position: relative;
margin: 0;
padding: 0 0 120px;
text-align: center;
background-color: #fff;
}

.slide1_kv {
opacity: 0;

}

.slide1_title {
	width: 90%;
	max-width: 700px;
	margin: auto;
}

/* 会期終了のお知らせ */
.slide1_end_box {
	position: relative;
	z-index: 1;
	width: calc(100% - 40px);
	max-width: 650px;
	margin: calc(-1 * clamp(40px, 10vw, 100px)) auto 30px;
	padding: 20px 10px;
	border: 2px dotted var(--color-red);
	border-radius: 16px;
}

.slide1_end {
	color: var(--color-red);
	text-align: center;
	position: relative;
	z-index: 1;
}

.slide1_end_title {
	font-size: clamp(32px, 5vw, 48px);
	font-weight: 700;
	line-height: 1.4;
	margin-bottom: 10px;
}

.slide1_end_text {
	font-size: clamp(15px, 2.5vw, 24px);
	font-weight: 700;
	line-height: 1.6;
}

/* 名古屋展への案内テキスト */
.go_nagoya_text {
	color: #333;
	font-size: 1rem;
	line-height: 1;
	text-align: center;
}

/* リンクの枠は動かさず、中の画像だけ動かす（hover時に下端がリンク外になるのを防ぐ） */
/* 上に4px余白を取り、画像が上がってもリンク枠の中に収まるようにする */
.go_nagoya_link {
	position: relative;
	z-index: 2;
	display: block;
	width: 300px;
	max-width: 100%;
	margin: 0 auto 30px;
	padding-top: 4px;
	cursor: pointer;
	-webkit-user-select: none;
	user-select: none;
}

.go_nagoya {
	display: block;
	max-width: 100%;
	height: auto;
	cursor: pointer;
	-webkit-user-drag: none;
	transition: transform 0.25s ease, filter 0.25s ease;
}

.go_nagoya_link:hover .go_nagoya {
	transform: translateY(-4px);
}


/* Slide2　ニュース */
#slide2 {
margin: -10px 0 0;
padding: 0 0 200px;
width: 100%;
overflow: hidden;
position: relative;
}

/* 楕円背景を画像として表示 */
.ellipse-wrapper {
  position: relative;
  width: 100%;
}

.ellipse-img {
  width: 100%;
  height: auto;
  display: block;
}

/* 100thロゴ配置 */
.ellipse-logo {
  position: absolute;
  top: calc(150 / 1080 * 100%);
  left: 50%;
  transform: translateX(-50%);
  width:calc(200 / 1920 * 100%);
  height: auto;
  z-index: 3;
  margin: 0;
}

.news_h2 {
font-size: 4.5rem;
line-height: 1;
text-align: center;
font-family: "M PLUS Rounded 1c", sans-serif;
font-weight: 700;
font-style: normal;
letter-spacing: 0;
margin: -5rem 0 30px;
}

.news_h2.notice {
font-size: 2.5rem;
letter-spacing: 1px;
}

.notice_sub {
font-size: 1.3rem;
line-height: 1;
text-align: center;
font-family: "M PLUS Rounded 1c", sans-serif;
font-weight: 600;
font-style: normal;
letter-spacing: 2;
margin: 0;
}

.top_notice {
	margin: -30px 0 150px;
	padding: 0;
}

.top_notice ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	padding-top: 10px;
	width: 100%;
	margin: 100px 0 0;
	padding: 0;
	list-style-type: none;
}

.top_notice ul > li {
	font-size: 1rem;
	line-height: 1.5;
	font-weight: 500;
	letter-spacing: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 10px 15px;
	padding: 8px 15px 8px 10px;
	background: #fff;
	border-radius: 8px;
	transition: transform 0.2s ease;
	box-shadow: 0 3px 0 var(--color-dark-blue);
}

.top_notice ul > li:hover {
	transform: translateY(-4px);
}

.top_notice ul > li a {
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--color-pink);
	text-decoration: none;
}

.top_notice ul > li a img {
	width: 40px;
	height: auto;
	margin-right: 8px;
}


.news_wrap {
width: 92%;
max-width: 1000px;
border-bottom: 1px solid #fff;
margin: 0 auto;
padding: 0;
}

.characters-fixed {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 0;
    pointer-events: none;
    z-index: 1000;
    overflow: visible;
}

/* Slide3 */
#slide3 {
	padding: 100px 0 50px;
}

#slide3　SNS {
margin: 0;
padding: 0 0 50px;
width: 100%;
position: relative;
}

.sns_title {
  text-align: center;
}

.sns_h2 {
font-size: 4.5rem;
line-height: 1.2;
text-align: center;
font-family: "M PLUS Rounded 1c", sans-serif;
font-weight: 700;
font-style: normal;
margin: 0;
padding: 0;
letter-spacing: 0;
position: relative;
display: inline-block;
}

.suzu-icon {
  position: absolute;
  left: -30px;   /* h2の左端を基準に */
  top: 0px;    /* h2の上端を基準に */
  transform: translate(-25%, -35%); 
  /* ← Oの上部に少しかぶせる */
  width: 70px;
  height: auto;
  pointer-events: none;
  transform: rotate(-30deg);
}

.sns_link {
	display: flex;
	flex-wrap: wrap;
	 justify-content: center;
	margin: 40px 0 0;
	padding: 0;
}

.sns_link img {
	margin: 0 15px;
	width: 64px;
	height: auto;
}

.sns_link a:hover {
  animation: dora-swing 0.6s ease;
}

@keyframes dora-swing {
  0%   { transform: translateY(0) rotate(0deg); }
  20%  { transform: translateY(-12px) rotate(-8deg) scale(1.1); }
  50%  { transform: translateY(4px) rotate(6deg) scale(0.95); }
  70%  { transform: translateY(-6px) rotate(-4deg) scale(1.05); }
  100% { transform: translateY(0) rotate(0deg) scale(1); }
}

.sns_link a:hover img {
opacity: 1;
}

/* Instagram */
.insta-box {
  border-top: 1px solid #fff;
  position: relative;
  padding: 40px 0; 
  margin: 80px 0;
  text-align: center;
}

/* ← 短い縦線を左右に“だけ”描く（各100px） */
.insta-box::before,
.insta-box::after {
  content: "";
  position: absolute;
  top: 0;
  width: 1px;          /* 線の太さ */
  height: 100px;       /* ★ ご指定の長さ */
  background: #fff;
}
.insta-box::before { left: 0; }   /* 1080px枠の左端から */
.insta-box::after  { right: 0; }  /* 1080px枠の右端から */

/* 見出し部分 */
.insta-title {
  position: absolute;
  top: -35px;
  left: 50%;
  transform: translateX(-50%);
  background: #00b8ee; 
  padding: 0 20px;
  color: #fff;
  font-size: 1.5rem;
  font-family: "M PLUS Rounded 1c", sans-serif;
  font-weight: 400;
  letter-spacing: 4px;
  width: auto;
  white-space: nowrap;
}

.insta-images {
  width: 100%;
  max-width: 1000px;
  margin: 0 auto;
}

.insta-item {
  width: 30%;
  margin-right: 5%;
}

.insta-item:nth-child(3n) {
  margin-right: 0;
}

.insta-item img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;       /* 画像がはみ出す場合に整える */
}


/* slide4　バナーリンク他 */
#slide4 {
margin: 0;
padding: 50px 0 70px;
width: 100%;
position: relative;
}

.txt0327 {
position: absolute;
top: 0;
left: 50%;
transform: translateX(-50%);
width: calc(750 / 1920 * 100%);
opacity: 1;
}

.dora_03 {
position: relative;
top: 0;
left: calc(820 / 1920 * 100%);
width: calc(240 / 1920 * 100%);
opacity: 0;
margin-top: 90px;
}

.banner_link ul {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
width: 100%;
margin: 80px auto auto;
padding: 0;
list-style-type: none;
}

.banner_link li {
width: calc(100% * 290 / 1200);
margin: 0 0 15px;
}

.banner_link li img {
width: 100%;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  border: 3px solid #fff;
}

.banner_link a {
  display: inline-block;
}

.banner_link a:hover img {
  transform: translateY(-4px);
  box-shadow: 0 4px 4px rgba(0, 0, 0, 0.1);
}


/* 共通タイトル */
.title_h2_eg {
font-size: 4.5rem;
line-height: 1;
text-align: center;
font-family: "M PLUS Rounded 1c", sans-serif;
font-weight: 700;
font-style: normal;
letter-spacing: 0;
margin: 0 0 20px;
}

.title_h2_jp {
font-size: 1.2rem;
line-height: 1;
text-align: center;
font-family: "M PLUS Rounded 1c", sans-serif;
font-weight: 700;
font-style: normal;
letter-spacing: 0;
margin: 0 0 60px;
}

.title_h2_jp.line_height {
line-height: 1.6;
}


/* slide5 ピックアップ */
#slide5 {
margin: 0;
padding: 0 0 150px;
width: 100%;
position: relative;
}

.pickup_flex {
	width: 90%;
	margin: 0 auto;
	padding: 0;
	padding-bottom: 40px;
	position: relative;
}

.pickup img {
	width: 100%;
	height: auto;
	display: block;
	box-shadow: 0 1px 10px var(--color-dark-blue);
}

/* ドット（ページネーション）スタイル */
.pickup_flex .swiper-pagination {
	position: relative;
	margin-top: 20px;
	bottom: auto;
}

.pickup_flex .swiper-pagination-bullet {
	color: #fff;
	font-size: 0.85rem;
	line-height: 1;
	width: auto;
	height: auto;
	background: none;
	border-radius: 0;
	opacity: 1;
	margin: 0 3px;
}

.pickup_flex .swiper-pagination-bullet::before {
	content: "★";
}

.pickup_flex .swiper-pagination-bullet-active {
	color: var(--color-yellow);
}


/* slide6 コンセプト */
#slide6 {
margin: 0;
padding: 0;
width: 100%;
position: relative;
overflow: hidden;
}

#slide6 .parallax {
  position: relative;
  min-height: 950px;
}

/* 背景 */
#slide6 .parallax::before {
  content: "";
  position: absolute;
  top: -15%;
  left: 0;
  width: 100%;
  height: 130%; /* ← 動かす余白 */
  background: url(../assets/images/concept/concept_bg.jpg) center / cover no-repeat;
  z-index: 0;
}

#slide6 .parallax {
  --bg-y: 0%;
}

#slide6 .parallax::before {
  top: -35%;          /* ← ここを大きく */
  height: 170%;       /* ← 可動余白を増やす */
  transform: translateY(var(--bg-y));
}

#slide6 .overlay {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;

  /* 上：白が強く、下：透明 */
  background: linear-gradient(
    to bottom,
    rgba(255,255,255,0.9) 0%,
    rgba(255,255,255,0.75) 55%,
    rgba(255,255,255,0.7) 75%,
    rgba(255,255,255,0.35) 100%
  );
  z-index: 1;
  pointer-events: none;
}

.concept {
	text-align: center;
	border-radius: 8px;
	width: 100%;
	margin: 0;
	padding: 13rem 2em 18rem;
	position: relative;
	z-index: 2;
}

.concept .img01 {
	margin: 0 0 50px;
	width: 170px;
}

.concept .sub_title {
	color: var(--color-blue);
	font-size: 2.5rem;
	line-height: 1.5;
	text-align: center;
	font-family: "M PLUS Rounded 1c", sans-serif;
	font-weight: 800;
	margin: 0 0 40px;
	padding: 0;
}

.concept .img02 {
	margin: 0 0 50px;
	width: 170px;
}


.concept p {
	color: var(--color-light-navy);
	font-size: 1.3rem;
	line-height: 2.7;
	text-align: center;
	font-weight: 600;
	margin: 0;
	padding: 0;
}


/* slide7 エリアマップ */
#slide7 {
margin: 0;
padding: 100px 0 0;
width: 100%;
position: relative;
background-color: var(--color-navy);
overflow: hidden;
}

.area_flex {
	display: flex;
	flex-wrap: wrap;
	 justify-content: center;
	width: 100%;
	margin: 0;
	padding: 0;
}

.area_flex img {
	margin: 0 20px 20px;
	max-height: 40px;
	width: auto;
}

.area_wrap {
	font-size: 1rem;
	line-height: 1.8;
	text-align: center;
	margin: 50px 0 0;
	padding: 0 0 100px;
	overflow: hidden;
}

.area_wrap .area_h3 {
    background-color: #007dc3;
    color: #fff;
    font-size: 1.5rem;
    line-height: 1.6;
    text-align: center;
    padding: 15px;
    margin: 0;
}

.area_wrap img {
margin: 30px 0;
}



/* slide8 ギャラリー */
#slide8 {
margin: 0;
padding: 100px 0 150px;
width: 100%;
position: relative;
overflow: hidden;
}


/* slide10 イベント概要*/
#slide10 {
margin: 0;
padding: 100px 0 250px;
width: 100%;
position: relative;
background-color: var(--color-navy);
}

.illust_line {
	margin: 40px 0 0;
	vertical-align: bottom;
}

table.outline { 
	border-collapse: collapse;
	font-size: 1em;
	line-height: 1.8em;
	text-align: left;
	width: 100%;
	margin: 40px 0;
	border: thin solid var(--color-line);
	border-top: 5px solid var(--color-line);
	border-left-style: none;
	border-right-style: none;
}

.outline th { 
	font-weight: normal;
	text-align: left; 
	letter-spacing: 3px; 
	vertical-align: top;
	width: 200px;
	border: thin solid var(--color-line);
	border-left-style: none;
	border-right-style: none;
	padding: 1.5em .5em;
}

.outline td { 
	vertical-align: top;
	border: thin solid var(--color-line);
	border-left-style: none;
	border-right-style: none;
	padding: 1.5em 1em 1.5em 3em;
}

.suzu_center {
	text-align: center;
	margin: auto;
}

.suzu_img {
	width: 40px;
	margin: auto;
}


/* slide11 アクセス*/
#slide11 {
margin: 0;
padding: 0 0 150px;
width: 100%;
position: relative;
}

.g_map {
  width: 100vw;
  margin-left: calc(50% - 50vw); /* 中央寄せレイアウト対策 */
	margin-top: 0;
}

.g_map iframe {
  width: 100%;
  height: 450px;
  border: 0;
  display: block;
}

.access_wrap {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	width: 100%;
	margin: 0 auto;
	padding: 0;
	max-width: 520px;
}

.access_wrap img {
	width: 80px;
	margin: 0;
}

.access_info {
	font-size: 1.1rem;
	line-height: 2em;
	text-align: left;
	width: 100%;
	max-width: 400px;
	margin: 0;
}

.howto_access {
	margin: 70px 0 0;
	border-bottom: thin solid #fff;
}

.howto_access .suzu {
	width: 47px;
}

.suzu_img02 {
    width: 35px;
    margin: auto;
}

.howto_access .howto_ti {
    font-size: 1.3em;
    line-height: 1.8em;
    text-align: left;
    font-weight: 500;
    margin: 0;
}

.howto_txt {
	margin: 0 0 0 3em;
}

.howto_txt p.inner_txt {
    font-size: 0.95em;
    line-height: 1.7em;
    text-align: left;
    margin: 0 0 20px;
}





/* slide12 Food*/
#slide12 {
margin: 0;
padding: 100px 0;
width: 100%;
position: relative;
background-color: var(--bg-light-blue);
}

#slide12 .title_h2_eg,
#slide12 .title_h2_jp {
	color: var(--color-blue);
}

.kitchen_logo {
	max-width: 250px;
	margin: 0 auto;
	padding: 0;
	display: block;
}

.food_txt {
	margin: 30px 0 0;
}

.food_txt h3 {
	color: var(--color-light-navy);
	font-size: 2rem;
	line-height: 1.8;
	margin: 0 0 30px;
	text-align: center;
	font-weight: 700;
}

.food_txt p {
	color: var(--color-light-navy);
	font-size: 1rem;
	line-height: 1.8;
	margin: 0 0 20px;
}

.food_txt p a {
	color: var(--color-pink);
	text-decoration: underline;
}

.note_dotWrap {
	border: 2px dashed var(--color-pale-pink);
	background-color: #fff;
	margin: 0 auto 50px;
	padding: 1em;
	max-width: 850px;
}

.note_dotWrap p {
	font-size: 1rem;
	line-height: 1.8;
	text-align: left;
	font-weight: 400;
	margin: 0;
}

.food_txt p.menu_announce {
	margin: 20px auto 30px;
	color: var(--color-blue);
	font-size: 1.6rem;
	font-weight: 900;
	text-align: center;
	line-height: 1.8;
	display: table;
	text-decoration: underline;
	text-decoration-color: var(--color-pale-pink);
	text-decoration-thickness: 6px;
	text-underline-offset: 4px;
}

@media screen and (max-width: 768px) {
	.food_txt p.menu_announce {
		font-size: 1.2rem;
	}
}


.food_flex {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	width: 100%;
	margin: 50px 0 0;
	padding: 2em;
	background-color: #fff;
	border-radius: 20px;
	border: 8px solid var(--color-water-blue);
}

.food_flex figure {
	width: 40%;
	margin: 0;
	padding: 0;
}

.food_flex figure img {
	width: 100%;
}

.food_flex .description {
	width: 55%;
	margin: 0;
}

.food_flex .description .name {
	color: var(--color-light-navy);
	font-size: 1.1rem;
	line-height: 1.5;
	font-weight: bold;
	margin: 0 0 20px;
}

.food_flex .description .price {
	color: #444;
	font-size: 1rem;
	line-height: 1;
	font-weight: 500;
	margin: 0 0 25px;
}

.food_flex .description .price span {
	font-size: 1.4rem;
}

.food_flex .description p {
	color: #444;
	font-size: 0.95rem;
	line-height: 1.8;
	margin: 0;
	border-top: 2px dashed var(--color-pink);
	padding-top: 25px;
}

.food_link {
	color: #444;
	font-size: 0.95rem;
	line-height: 1.8;
	margin: 40px 0 0;
	text-align: center;
}

.food_link span {
	color: var(--color-pink);
}

.food_link img {
	width: 180px;
    margin: 10px 0 0;
}


/* food第二弾 */
.food_flex_wrap {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	width: 100%;
	margin: 50px 0 0;
}

.food_flex_02 {
	display: flex;
	flex-wrap: wrap;
	flex-direction: column;
	width: 48%;
	margin: 0 0 50px;
	padding: 6px;
	background-color: #fff;
	border-radius: 16px;
	border: 6px solid var(--color-water-blue);
}

.food_flex_02 figure {
	width: 100%;
	margin: 0;
	padding: 0;
	position: relative;
}

.food_flex_02 figure img {
	width: 100%;
}

.food_flex_02 figure .copyright {
	color: #666;
	font-size: 0.7em;
	position: absolute;
	bottom: 5px;
	right: 5px;
}

.food_flex_02 figure .dora01 {
	position: absolute;
	bottom: 20px;
	left: -30px;
	width: 108px;
}

.food_flex_02 figure .dora02 {
	position: absolute;
	bottom: 40px;
	left: -10px;
	width: 93px;
}

.food_flex_02 figure .dora03 {
	position: absolute;
	right: -25px;
	bottom: 30px;
	width: 144px;
}

.food_flex_02 figure .dora04 {
	position: absolute;
	right: 10px;
	bottom: 30px;
	width: 111px;
}

.food_flex_02 .description {
	width: 100%;
	margin: 0;
	padding: 1em;
}

.food_flex_02 .description .name {
	color: var(--color-light-navy);
	font-size: 1.1rem;
	line-height: 1.5;
	font-weight: bold;
	margin: 0 0 20px;
}

.food_flex_02 .description .price {
	color: #444;
	font-size: 1rem;
	line-height: 1;
	font-weight: 500;
	margin: 0 0 25px;
}

.food_flex_02 .description .price span {
	font-size: 1.4rem;
}

.food_flex_02 .description p {
	color: #444;
	font-size: 0.95rem;
	line-height: 1.8;
	margin: 0;
	border-top: 2px dashed var(--color-pink);
	padding-top: 25px;
}

.food_notes {
	color: var(--color-light-navy);
	font-size: 0.8em;
	line-height: 1.7;
	text-align: right;
	margin: -30px 0 0;
}



/* FOOTER */
footer {
margin: 0;
padding: 60px 0 0;
width: 100%;
position: relative;
text-align: center;
background-color: #e3f3fd;
}

.footer_p {
	font-size: 0.95em;
	line-height: 1.6em;
	letter-spacing: 1px;
	text-align: center;
	margin: 0;
}

.footer_dl_wrap {
text-align: center;
margin: 0 auto 60px;
width: 100%;
max-width: 730px;
}

.dl_01 {
color: #666;
font-size: 0.9em;
line-height: 1.6em;
text-align: left;
display: flex;
margin-top: 0;
margin-right: 0;
margin-left: 0;
padding: 0;
}

.dl_01 dt {
	width: 110px;
	margin-top: 0;
	margin-right: 0;
	margin-left: 0;
	flex-shrink: 0;
}

.dl_01 dd {
	margin-top: 0;
	margin-right: 0;
	margin-left: 0;
	width: auto;
}

.dl_01 dd span {
	font-size: 0.85em;
}

.dl_02 {
color: #666;
font-size: 0.9em;
line-height: 1.6em;
text-align: left;
display: flex;
align-items: center;
margin-top: 0;
margin-right: 0;
margin-left: 0;
padding: 0;
}

.dl_02 dt {
width: 110px;
margin-top: 0;
margin-right: 0;
margin-left: 0;
flex-shrink: 0;
}

.dl_02 dd {
margin-top: 0;
margin-right: 0;
margin-left: 0;
display: flex;
flex-wrap: wrap;
align-items: center;
width: auto;
}

.dl_02 dd .logo_arr {
margin-top: 0;
margin-right: 0;
margin-left: 5px;
width: 30px;
}

.dl_02 dd .logo_large {
width: auto;
height: 100px;
margin: 0 40px 0 0;
}

.dl_02 dd .logo_middle {
width: auto;
height: 80px;
margin: 0 40px 0 0;
}

.dl_02 dd .logo_small {
width: auto;
height: 60px;
margin: 0 40px 0 0;
}

.dl_02 dd .logo_bosco {
width: 180px;
margin: 0;
}

.dl_02 dd .logo_asahi {
width: 123.5px;
margin: 0 30px 0 0;
}

.dl_02 dd .logo_telasa {
width: 80px;
margin: 0 30px 0 0;
}

.dl_02 dd .logo_jr {
width: 70px;
margin: 0 30px 0 0;
}

.dl_02 dd .logo_bandai {
width: 35px;
margin: 0 30px 0 0;
}

.dl_02 dd .logo_WOVNio {
width: 90px;
margin: 0 30px 0 0;
}

.dl_02 dd .logo_kddi {
width: 65px;
margin: 0 0 5px;
}

.dl_02 dd .logo_sagawa {
width: 140px;
margin: 0;
}


.footer_flex {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	width: 100%;
	margin: 0;
	padding: 10px 20px 30px 0;
	background-color: var(--color-blue);
}

.copyright {
font-size: 1em;
line-height: 1.6em;
text-align: left;
margin-top: 20px;
margin-right: 0;
margin-left: 30px;
padding: 0;
}

.dora_01 {
    position: absolute;
    top: 1800px; /* 元800+600 */
    left: 20px;
    width: calc(180 / 1920 * 100%);
    opacity: 0;
}

.dora_02 {
    position: absolute;
    top: 2200px; /* PC版 */
    right: 20px;
    width: calc(200 / 1920 * 100%);
    opacity: 0;
}

/* slide内に配置（各slideはposition:relative）ジグザグ配置 */
.dora_04 {
    position: absolute;
    bottom: calc(20 / 1920 * 100vw);
    left: calc(20 / 1920 * 100vw);
    width: calc(170 / 1920 * 100%);
    opacity: 0;
    pointer-events: none;
    z-index: 10;
}

.dora_05 {
    position: absolute;
    bottom: calc(120 / 1920 * 100vw);
    right: calc(20 / 1920 * 100vw);
    width: calc(200 / 1920 * 100%);
    opacity: 0;
    pointer-events: none;
    z-index: 10;
}

.dora_06 {
    position: absolute;
    bottom: calc(2600 / 1920 * 100vw);
    right: calc(30 / 1920 * 100vw);
    width: calc(180 / 1920 * 100%);
    opacity: 0;
    pointer-events: none;
    z-index: 10;
}

.dora_07 {
    position: absolute;
    top: calc(300 / 1920 * 100vw);
    left: calc(30 / 1920 * 100vw);
    width: calc(160 / 1920 * 100%);
    opacity: 0;
    pointer-events: none;
    z-index: 10;
}

.dora_08 {
    position: absolute;
    bottom: calc(300 / 1920 * 100vw);
    left: calc(20 / 1920 * 100vw);
    width: calc(190 / 1920 * 100%);
    opacity: 0;
    pointer-events: none;
    z-index: 10;
}

/* dora09: slide6 右（dora04の反対側・高め） */
.dora_09 {
    position: absolute;
	top: 50%;  
	
	
      right: calc(20 / 1920 * 100vw);
    width: calc(150 / 1920 * 100%);
    opacity: 0;
    pointer-events: none;
    z-index: 10;
}

/* dora10: slide5 左（低め） */
.dora_10 {
    position: absolute;
    bottom: calc(20 / 1920 * 100vw);
    left: calc(25 / 1920 * 100vw);
    width: calc(180 / 1920 * 100%);
    opacity: 0;
    pointer-events: none;
    z-index: 10;
}

/* dora11: slide4 右（高め） */
.dora_11 {
    position: absolute;
    top: calc(1600 / 1920 * 100vw);
    right: calc(25 / 1920 * 100vw);
    width: calc(170 / 1920 * 100%);
    opacity: 0;
    pointer-events: none;
    z-index: 10;
}

/* dora12: slide8 右（dora06の反対側・高め） */
.dora_12 {
    position: absolute;
   top: 40%;
    left: calc(50 / 1920 * 100vw);
    width: calc(200 / 1920 * 100%);
    opacity: 0;
    pointer-events: none;
    z-index: 10;
}

/* dora13: slide10 下中央 */
.dora_13 {
    position: absolute;
    bottom: calc(30 / 1920 * 100vw);
    left: 50%;
    transform: translateX(-50%);
    width: calc(170 / 1920 * 100%);
    opacity: 0;
    pointer-events: none;
    z-index: 10;
}

/* 下層ページ */
#slide_sub {
    margin: 0;
    padding: 0 0 100px;
    width: 100%;
    overflow: hidden;
    position: relative;
}

.bg-fff-wrap {
	background-color: #fff;
	margin: 100px auto 0;
	padding: 3em;
	border-radius: 20px;
}

.newspage_h2 {
color: #FFF;
font-size: 4.5rem;
line-height: 1;
text-align: center;
font-family: "M PLUS Rounded 1c", sans-serif;
font-weight: 700;
font-style: normal;
letter-spacing: 0;
margin: 100px 0 50px;
}

.subpage_h2 {
	color: var(--color-blue);
    font-size: 2.5rem;
    line-height: 1;
    text-align: center;
    font-family: "M PLUS Rounded 1c", sans-serif;
    font-weight: 700;
    font-style: normal;
    letter-spacing: 0;
    margin: 0 0 50px;
}


/*  チケットページ */
.ticket_lead {
	font-size: 1.1rem;
	line-height: 2em;
	font-weight: bold;
	text-align: center;
	margin: 0 0 50px;
}

.ticket_lead a {
	color: var(--color-light-pink);
	text-decoration: underline;
}

.ticket_lead .span01 {
	font-size: 1.5rem;
}

.ticket_lead .span02 {
	font-weight: 500;
	display: inline-block;
	border: thin solid #fff;
	line-height: 1.7;
	padding-right: 8px;
	padding-left: 8px;
	background-color: var(--color-pink);
	margin-right: 20px;
	margin-bottom: 10px;
}

/*  チケットリンク */
.menu_link ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	list-style-type: none;
	margin: 50px 0 10px;
	padding: 0;
}

.menu_link li {
	margin: 3px 3px 10px;
	filter: drop-shadow(0 3px 0 var( --color-dark-blue));
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.menu_link li {
	width: 24%;
}

.menu_link li a {
	display: block;
	padding: 0.7rem 1rem;
	font-family: "M PLUS Rounded 1c", sans-serif;
	font-size: 1rem;
	line-height: 1.5;
	text-align: center;
	font-weight: 600;
	letter-spacing: 1px;
	color: var(--color-light-navy);
	background: #fff;
	border-radius: 4px;
	text-decoration: none;
}

.menu_link li i {
	color: var(--color-pale-pink);
	transform: rotate(-20deg);
	margin-right: 5px;
}

.menu_link li i.no_rotate {
	color: var(--color-pale-pink);
	transform: rotate(0);
	margin-right: 5px;
}

.menu_link li a:hover {
  transform: translateY(-4px);
  box-shadow: 0 4px 4px rgba(0, 0, 0, 0.1);
}

/*  その他リンク */
.menu_link_02 ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	list-style-type: none;
	margin: 0 auto 40px;
	padding: 0;
	width: 80%;
}

.menu_link_02 li {
	margin: 3px 3px 10px;
	filter: drop-shadow(0 3px 0 var( --color-dark-blue));
    transition: transform 0.3s ease, box-shadow 0.3s ease;
	width: 26%;
}

.menu_link_02 li a {
	display: block;
	padding: 0.6rem;
	font-family: "M PLUS Rounded 1c", sans-serif;
	font-size: 0.9rem;
	line-height: 1.6;
	text-align: center;
	font-weight: 500;
	letter-spacing: 1px;
	color: var(--color-light-navy);
	background: var(--color-water-blue);
	border-radius: 4px;
	text-decoration: none;
}

.menu_link_02 li i {
	color: var(--color-pale-pink);
	transform: rotate(-20deg);
	margin-right: 5px;
}

.menu_link_02 li a:hover {
  transform: translateY(-4px);
  box-shadow: 0 4px 4px rgba(0, 0, 0, 0.1);
}

.ticket_wrap {
	margin: 100px 0 80px;
    padding: 2em 2em 1em;
    border-radius: 8px;
	background-color: #fff;
}

.title_wrap {
	margin: 0;
	padding: 15px;
	background-color: var(--color-light-navy);
    border-radius: 6px;
}

.h3_ticket {
	color: var(--color-yellow);
	font-family: "M PLUS Rounded 1c", sans-serif;
	font-size: 1.6rem;
	line-height: 1.4;
	text-align: left;
	font-weight: 600;
	letter-spacing: 1px;
	display: flex;
	align-items: center;
	margin: 0;
}

.h3_ticket img {
	width: 60px;
	margin-right: 20px;
	flex-shrink: 0;
}

.h3_ticket_div {
	flex: 1;
}

.h3_info {
	color: #fff;
	font-size: 1rem;
	line-height: 1.6 ;
	text-align: left;
	font-weight: 500;
	letter-spacing: 1px;
	margin: 15px 0 0;
	padding: 0;
}

.ticket_detail {
	margin: 20px 0 60px;
	border: 1px dashed var(--color-light-navy);
	padding: 20px;
    border-radius: 6px;
}

.ticket_detail p {
	color: var(--color-light-navy);
	font-size: 0.95rem;
	line-height: 1.8 ;
	text-align: left;
	margin: 0;
}

.ticket_detail ul {
	margin: 5px 0 0;
	padding: 0;
}

.ticket_detail li {
	color: var(--color-light-navy);
	font-size: 0.95rem;
	line-height: 1.8 ;
	text-align: left;
	margin: 0 0 0 20px;
}

.ticket_img_flex {
	display: flex;
	flex-wrap: wrap;
	 justify-content: center;
	width: 100%;
	margin: 30px auto 0;
	padding: 0;
}

.ticket_img_flex img {
	width: 47%;
	max-width: 440px;
	margin: 0 1.5% 30px;
	padding: 0;
}

.ticket_detail .img_1 {
	display: block;
	margin: 30px auto;
}

.ticket_detail .img_2 {
	display: block;
	margin: 30px auto;
	width: 450px;
}

.ticket_table {
	color: var(--color-navy);
	width: 100%;
	margin: 60px auto;
	overflow-x: auto;
	border-collapse: collapse;
	text-align: center;
}

.ticket_table caption {
	color: var(--color-pink);
	font-size: 1.3rem;
	line-height: 1.5;
	font-weight: 600;
	padding: 0 0 20px;
	border-bottom: 1px solid var(--color-blue-line);
}

.ticket_table caption span {
	font-size: 0.75em;
}

.ticket_table .span_detil {
	color: var(--color-pink);
	line-height: 1.7 !important;
	font-weight: 500;
	font-size: 0.9rem;
	text-align: left;
}

.ticket_table .span_detil a,
.ticket_table .span_detil a:visited {
	color: var(--color-blue);
	text-decoration: underline;
}

.ticket_table th {
	font-size: 1rem;
	line-height: 1.5;
	font-weight: 600;
	padding: 15px;
	border-bottom: 1px solid var(--color-blue-line);
	width: 33%;
	letter-spacing: 1px;
	background-color: rgba(240, 182, 206, 0.2);
}

.ticket_table .th_01 {
	border-top: 1px solid var(--color-blue-line);
}

.ticket_table td {
	font-size: 1.6rem;
	line-height: 1;
	font-weight: 600;
	padding: 15px;
	border-bottom: thin solid var(--color-blue-line);
}

.ticket_table .td_left {
	text-align: left;
	padding-left: 80px;
}

.ticket_table .td_left_2 {
	text-align: left;
	padding-left: 160px;
}

.ticket_table .td_note {
	color: var(--color-blue);
	font-size: 0.85rem;
	line-height: 1.6;
	text-align: right;
	font-weight: 500;
}

.ticket_table td span {
	font-size: 1rem;
	font-weight: 400;
}

.ticket_notes {
	color: var(--color-navy);
    font-size: 0.85rem;
	line-height: 1.8;
    text-align: center;
	margin-top: 30px;
	margin-bottom: 30px;
}

.ticket_wrap h4 {
	color: var(--color-navy);
    font-size: 1.3rem;
    text-align: center;
    font-weight: 500;
    letter-spacing: 1px;
    margin: 0 0 30px;
}

.ticket_wrap .h4_schedule {
    font-size: 1.5rem !important;
    letter-spacing: 5px !important;
    margin: 0 0 20px !important;
}

.ticket_wrap .h4_sub {
	color: var(--color-pink);
    font-size: 1.1rem;
    text-align: center;
    font-weight: 500;
    letter-spacing: 1px;
	display: inline-block;
	border: thin dashed var(--color-pink);
	margin: 0 auto 50px;
	padding: 5px 15px;
}

.schedule_dl {
	color: var(--color-navy);
    font-size: 0.95rem;
	line-height: 1.6em;
    letter-spacing: 0.1em;
    margin: 0 0 10px;
	border-top: thin solid var(--color-line);
	padding-top: 15px;
	padding-bottom: 2px;
}

.schedule_dl dt {
 font-weight: 500;
 width: 120px;
}

.schedule_dl dd {
margin: -1.6em 0 5px 120px;
}

.line_through_red {
	text-decoration: line-through;
	text-decoration-color: var(--color-red);
}

.schedule_p {
	color: var(--color-navy);
    font-size: 0.85rem;
	line-height: 1.8;
    margin: 0 0 10px;
}

.schedule_dl a {
	color: var(--color-light-navy);
}

.bg_light-blue {
	background-color: var(--color-line);
	padding-right: 7px;
	padding-left: 7px;
	padding-bottom: 1px;
}

.entry_h4 {
    font-size: 1.2rem !important;
    text-align: center;
    font-weight: 500;
    letter-spacing: 5px !important;
    margin: 0 0 30px;
	padding: 10px;
	background-color: var(--color-pale-pink);
}

.arrow_css {
	width: 25px;
	margin: 5px 0 0 60px;
}

.entry_btn {
	background-color: var(--color-light-navy);
	display: flex;
	align-items: center;
	border-radius: 6px;
	width: 240px;
	margin-top: 10px;
	margin-bottom: 20px;
	box-shadow: 0 2px 2px rgba(0, 0, 0, 0.2);
}

.entry_btn:hover {
	background-color: var(--color-dark-blue);
	transform: translateY(-3px);
}

.entry_btn a {
	color: var(--color-light-yellow);
	font-size: 1rem;
	line-height: 1;
	text-decoration: none;
	display: flex;
	align-items: center;
	font-weight: bold;
}

.entry_btn a:hover {
	text-decoration: none;
}

.entry_btn img {
	width: 30px;
	margin: 5px 10px 5px 20px;
}

.hr_blue {
	border-top: thin solid var(--color-line);
}

/* SOLD OUT */
.overlay-soldout {
    position: relative;
}

.overlay-soldout::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(255, 255, 255, 0.7);
    z-index: 500;
	border: 1px solid #ddd;
	border-radius: 8px;
}

.soldout_txt {
position: absolute;
  top: 50%;
  left: 50%;
  -ms-transform: translate(-50%,-50%);
  -webkit-transform: translate(-50%,-50%);
  transform: translate(-50%,-50%);
  margin:0;
  padding:0;
  z-index: 510;
}

.soldout_txt p {
	color: #d7102b;
	font-size: 4em;
	line-height: 1.1;
	font-weight: 900;
	text-align: center;
	border: 2px solid #d7102b;
	width: 400px;
	margin: 0;
	padding: 10px;
	transform: rotate(-10deg);
	background-color: rgba(255, 255, 255, 0.6);
}

.soldout_txt .p_s {
	font-size: 2.8rem;
	line-height: 1.2;
	letter-spacing: 8px;
}

/* チケットページ注意事項 */
.notes_wrap {
	margin: 0;
	padding: 2em 2em 1em;
	border-radius: 8px;
	border: thin solid #fff;
	background-color: #fefef1;
}

.notes_wrap h4 {
	color: var(--color-navy);
    font-size: 1.3rem;
    text-align: center;
    font-weight: 500;
    letter-spacing: 0.4em;
    margin: 0 0 30px;
}

.notes_wrap p {
	color: var(--color-navy);
    font-size: 0.9rem;
    text-align: left;
    margin: 10px 0 20px;
}

.notes_wrap ul {
	font-size: 0.9rem;
    text-align: left;
    margin: 0;
	padding: 0;
}

.notes_wrap ul li {
	color: var(--color-navy);
	font-size: 0.9rem;
	line-height: 1.7;
    text-align: left;
    margin: 0 0 15px 20px;
}

.notes_wrap .span_frame {
	background-color: var(--color-line);
	margin: 0 10px 10px 0;
	padding: 0 10px 1px;
	color: var(--color-navy);
}

.under_dot {
	border-bottom: 2px dotted var(--color-red);
}

.notes_wrap .dl01 {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	width: 100%;
	margin: 10px 0 0;
}

.notes_wrap .dl01 dt {
	color: #fff;
	text-align: center;
	background-color: var(--color-light-navy);
	margin: 0 10px 10px 0;
	padding: 0 10px 1px;
	width: 100px;
}

.notes_wrap .dl01 dd {
	flex: 1;
	text-align: left;
	margin: 0 0 10px 0;
	padding: 0 10px 1px;
}

.notes_wrap .important_txt {
	color: var(--color-important);
	font-weight: 500;
}

.notes_wrap .title_name {
    font-size: 1.15rem;
    text-align: center;
    font-weight: 500;
    letter-spacing: 0.1em;
    margin: 0 0 20px;
}

.notes_wrap .tokuteibi_dl {
    font-size: 0.9rem;
	line-height: 1.8em;
    letter-spacing: 0.1em;
    margin: 0 0 20px;
}

.notes_wrap .tokuteibi_dl dt {
 font-weight: 600;
 width: 50px;
}

.notes_wrap .tokuteibi_dl dd {
	margin: -1.8em 0 10px 50px;
}

.notes_wrap .tokuteibi_dl dd span {
	display: inline-block;
}

.intlTicket_table {
	color: var(--color-navy);
	width: 100%;
	margin: 60px auto;
	overflow-x: auto;
	border-collapse: collapse;
	text-align: center;
}

.intlTicket_table th {
	font-size: 1.2rem;
	line-height: 1.5;
	font-weight: 500;
	padding: 15px;
	border-top: thin solid var(--color-blue-line);
	border-bottom: thin solid var(--color-blue-line);
	width: 150px;
	letter-spacing: 1px;
	background-color: rgba(240, 182, 206, 0.2);
}

.intlTicket_table td {
	font-size: 1rem;
	line-height: 1.6;
	text-align: left;
	padding: 15px 15px 15px 30px;
	border-top: thin solid var(--color-blue-line);
	border-bottom: thin solid var(--color-blue-line);
}

.intlTicket_table a {
	color: var(--color-navy);
}



/* NOTICE 注意事項ページ */
.notice_wrap {
	margin: 0 0 80px;
	padding: 3em 3em 2em;
	border-radius: 8px;
	border: thin solid #fff;
	background-color: var(--bg-light-blue);
}

.notice_wrap h3 {
	color: var(--color-yellow);
    font-size: 1.4rem;
    text-align: center;
    font-weight: 600;
    margin: 0 10px 30px;
	padding-top: 10px;
	padding-bottom: 10px;
	background-color: var(--color-blue);
	border-bottom: 3px solid var(--color-pale-pink);
}

.notice_wrap h4 {
	color: var(--color-blue);
    font-size: 1.2rem;
    text-align: center;
    font-weight: bold;
    margin: 60px 0 30px;
	line-height: 1.6;
}

.notice_wrap p {
	color: var(--color-navy);
    font-size: 0.95rem;
    line-height: 1.8;
    text-align: left;
    margin: 0 0 20px;
}

.notice_wrap .notes {
	margin: 30px 0 0;
}

.notice_wrap .notes p {
	color: var(--color-navy);
	font-size: 0.9rem;
	line-height: 1.7;
	margin: 0 0 7px;
}

.notice_wrap .bg_important {
	padding-right: 7px;
	padding-left: 7px;
	padding-bottom: 1px;
	background-color: var(--bg-light-yellow);
}

.notice_wrap ul {
	color: var(--color-navy);
    margin: 30px 0 15px 20px;
    padding: 0;
}

.notice_wrap ul li {
    font-size: 0.95em;
    line-height: 1.8;
    margin-bottom: 15px;
    list-style: disc;
}

.notice_wrap a {
    color: var(--color-pink);
    text-decoration: underline;
	font-weight: 500;
}

.notice_wrap a:hover {
    text-decoration: none;
}

.notice_wrap strong {
    color: var(--color-yellow);
}

.notice_wrap .dl01 {
	color: var(--color-navy);
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	width: 100%;
	margin: 30px 0 0;
}

.notice_wrap .dl01 dt {
	font-size: 0.9em;
    line-height: 1.8;
	color: #fff;
	text-align: center;
	background-color: var(--color-light-navy);
	margin: 0 10px 10px 0;
	padding: 0 10px 1px;
	width: 100px;
}

.notice_wrap .dl01 dd {
	font-size: 0.95em;
    line-height: 1.8;
	flex: 1;
	text-align: left;
	margin: 0 0 10px 0;
	padding: 0 10px 1px;
}



/*slide4「たくさんのご来場ありがとうございました！」と寝ているドラえもん*/
/* 元データ DATA/slide4バナー欄/moji-anime-tokyo-outline.svg のアートボード（399.333 × 271.319）を
 * そのまま器（.moji_stage）にして、文字（SVG）とドラえもん（dora03.svg）を同じ比率で重ねる。
 * ドラえもんの位置・幅はアートボード上の座標を % にしたもの（x 111.73 / y 98.85 / 幅 185.07）。
 * 上にある .txt0327 / .dora_03 の位置・幅指定は、.moji_stage を付けた指定で上書きする。
 */
.moji_stage {
	position: relative;
	width: 40%;
	margin: 0 auto;
	aspect-ratio: 399.333 / 271.319;
}

.moji_stage .txt0327 {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	transform: none;
	overflow: visible;
}

.moji_stage .dora_03 {
	position: absolute;
	top: 36.43%;
	left: 27.98%;
	width: 46.35%;
	height: auto;
	margin: 0;
}

/*フローティングバナー*/
.floating-banner {
    position: fixed;
    bottom: 15px;
    right: 5px;
    z-index: 999;
    opacity: 0;
	width: 225px;
}

.floating-banner img {
	border-radius: 4px;
    filter: drop-shadow(0 3px 0 var(--color-yellow));
	transition: transform 0.3s ease, box-shadow 0.3s ease;
	margin: 0;
	padding: 0;
	width: 100%;
	max-width: 225px;
	height: auto;
}

.floating-banner a {
  display: inline-block;
}

.floating-banner a:hover img {
  transform: translateY(-4px);
  box-shadow: 0 4px 4px rgba(0, 0, 0, 0.1);
}


/* overlay */
.overlay1 {
position: relative;
padding: 0 0 100px;
}

.overlay1::before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.3);
}


/* font */
.m-plus-rounded-1c-regular {
  font-family: "M PLUS Rounded 1c", sans-serif;
  font-weight: 400;
  font-style: normal;
}

.m-plus-rounded-1c-medium {
  font-family: "M PLUS Rounded 1c", sans-serif;
  font-weight: 500;
  font-style: normal;
}

.m-plus-rounded-1c-bold {
  font-family: "M PLUS Rounded 1c", sans-serif;
  font-weight: 700;
  font-style: normal;
}

.m-plus-rounded-1c-extrabold {
  font-family: "M PLUS Rounded 1c", sans-serif;
  font-weight: 800;
  font-style: normal;
}

.m-plus-rounded-1c-black {
  font-family: "M PLUS Rounded 1c", sans-serif;
  font-weight: 900;
  font-style: normal;
}


/*「PCでは非表示 = hidden_pc」、「スマートフォンでは非表示 = hidden_sp」*/
.hidden_pc {
	display: none;
}
.hidden_sp {
	display: block;
}



/*view point 切り替え*/
@media screen and (max-width: 1600px) {
.txt0327 {
position: absolute;
top: 0;
left: 50%;
transform: translateX(-50%);
width: 45%;

}
}

@media screen and (max-width: 1485px) {
.header {
height: 80px;
padding-left: 15px;
}

header h1 img {
width: 85px;
}

header h1 img.h1_area {
width: 46px;
}

.header_menu {
    margin: 15px 90px 0 auto;
    width: 50%;
}

ul.main_menu {
    display: none;
}
}

@media screen and (max-width: 1280px) {
.txt0327 {
width: 50%;
}

.dora_03 {
width: 16%;
}

.dora_01 {
    position: absolute;
    top: 1800px; /* 元1000+600 */
    left: 10px;
    width: 10%;
}

.dora_02 {
    position: absolute;
    top: 2500px;
    right: 20px;
    width: 10%;
}

/* フローティングバナー-1280 */
.footer_dl_wrap {
margin: 0 auto 100px;
max-width: 730px;
}

.floating-banner {
width: 200px;
}
}

@media screen and (max-width: 1150px) {
ul.main_menu li {
margin: 0 30px 0 0;
}
}


@media screen and (max-width: 1024px) {
.ellipse-logo {
  top: calc(120 / 1080 * 100%);
  left: 50%;
  transform: translateX(-50%);
  width:calc(250 / 1920 * 100%);
}

.news_h2 {
font-size: 4rem;
margin: -2rem 0 20px;
}

.news_wrap {
max-width: 780px;
}

.sns_h2 {
font-size: 4rem;
}

.insta-images {
    width: 95%;
}

.txt0327 {
width: 60%;
}


.dora_03 {
width: 20%;
}

.dora_01 {
    position: absolute;
    top: 1650px; /* 元850+600 */
    left: 10px;
    width: 10%;
}

.dora_02 {
    position: absolute;
    top: 2400px; /* 元1100+600 */
    right: 20px;
    width: 10%;
}

/* 下層ページ-1024 */
.newspage_h2 {
font-size: 4rem;
margin: 80px 0 40px;
}

/* howto_access-1024 */
.howto_access .summary_inner .txt_wrap {
    flex-direction: row;
}
}


@media screen and (max-width: 912px) {
.dora_01 {
    position: absolute;
    top: 1700px; /* 元500+600 */
    left: 20px;
    width: 10%;
}

.dora_02 {
    position: absolute;
    top: 2300px; /* 元950+600 */
    right: 20px;
    width: 10%;
}

/* 下層ページ-912 */
.bg-fff-wrap {
    margin: 80px auto 0;
    padding: 2.5em 2em;
}

/* チケット-912 */
.menu_link li {
	width: 48%;
}
}



@media screen and (max-width: 820px) {
.ellipse-logo {
  top: calc(100 / 1080 * 100%);
  left: 50%;
  transform: translateX(-50%);
  width:calc(280 / 1920 * 100%);
}

#slide2 {
    padding: 0 0 150px;
}

.news_wrap {
max-width: 680px;
}

/* slide6-820 */
#slide6 .parallax::before {
    content: "";
    position: absolute;
    top: -25%;
    left: 0;
    width: 100%;
    height: 130%;
    background: url(../assets/images/concept/concept_bg820.jpg) center / cover no-repeat;
    z-index: 0;
}

/* slide10-820 */
.outline th {
    width: 150px;
}

.txt0327 {
width: 70%;
}

.dora_03 {
width: 20%;
margin-top: 60px;
}

.dora_01 {
    position: absolute;
    top: 1600px; /* 元400+600 */
    left: 10px;
    width: 12%;
}

.dora_02 {
    position: absolute;
    top: 2200px; /* 元900+600 */
    right: 20px;
    width: 12%;
}

/* slide12 food-820 */
.food_flex {
    margin: 40px 0 0;
    padding: 1em;
}

/* 下層ページ-820 */
.subpage_h2 {
    font-size: 2rem;
}

/* チケットページ-820 */
.ticket_table .td_left {
padding-left: 40px;
}

.ticket_table .td_left_2 {
padding-left: 80px;
}
}

@media screen and (max-width: 768px) {
/* コンセプト-768 */
.concept {
    padding: 10rem 0 15rem;
}

.dora_01 {
    position: absolute;
    top: 1600px; /* 元950-200+100 */
    left: 20px;
    width: 12%;
}

.dora_02 {
    position: absolute;
    top: 2200px; /* 元1450+100 */
    right: 10px;
    width: 12%;
}

/* 下層ページ-768 */
.bg-fff-wrap {
    padding: 2.5em 1.5em;
}
}


@media (min-width: 767px) {
a[href*="tel:"] {
pointer-events: none;
cursor: default;
text-decoration: none;
}
}


@media screen and (max-width: 640px) {
html,
body {
	overflow-x: hidden;
}

#wrap,
.bg_blue {
	overflow-x: hidden;
}

.header {
height: 65px;
}
	
.h1_mov {
    width: 30%;
}

header h1 img {
width: 65px;
}

header h1 img.h1_area {
width: 36px;
margin-left: 5px;
}

.header_menu {
margin: 8px 65px 0 auto;
 width: 50%;
}

.header_sns {
    margin: 0;
    padding: 0 10px 0 0;
}

.header_sns img {
    height: 25px;
    margin: 0 0 0 8px;
}

.lang_switch {
    gap: 5px;
    margin-right: 5px;
}

.lang_switch a,
.lang_switch .no_link {
    width: 25px;
    height: 25px;
    font-size: 0.65rem;
}

#slide1 {
    margin: 0;
	padding: 0 0 60px;
}

#slide2 {
margin: 0;
}

.ellipse-logo {
top: calc(0 / 1080 * 100%);
left: 50%;
transform: translateX(-50%);
width: 25%;
}

.news_h2.notice {
    font-size: 2.2rem;
    letter-spacing: 1px;
}

.top_notice ul > li {
	width: 80%;
	margin-right: auto;
	margin-left: auto;
}
	
.title_h2_eg {
    font-size: 3.5rem;
	margin: 0 0 10px;
}

.title_h2_jp {
    font-size: 1.1rem;
}
	
.news_h2 {
font-size: 3rem;
margin: 20px 0;
}

.sns_h2 {
font-size: 3rem;
}

.suzu-icon {
    position: absolute;
    left: -25px;
    top: 0;
    width: 50px;
    height: auto;
    pointer-events: none;
}


/* slide5-sp */
#slide5 {
    padding: 0 0 70px;
}

/* slide6-sp */
.concept {
padding: 5rem 0 7rem;
}

.concept .sub_title {
    font-size: 1.8rem;
    line-height: 1.6;
}

.concept .img02 {
 width: 140px;
}

.concept p {
font-size: 1rem;
line-height: 2.2;
}

/* slide7エリアマップ-sp */
.area_wrap img {
	padding: 0 5px;
}

/* slide10-sp */
#slide10 {
    margin: 0;
    padding: 100px 0 100px;
}
.outline th {
    display: block;
    width: 100%;
	padding: 0.5em 1em;
}

.outline td {
    display: block;
    width: 100%;
    padding: 1em;
}

.outline th {
    border-bottom: 1px dashed var(--color-line);
}

.outline td {
    border-top: none;
}

/* slide3-sp */
.sns_link {
    margin: 30px 0 0;
}

.sns_link img {
    margin: 0 15px;
    width: 50px;
    height: auto;
}

.insta-box {
    padding: 40px 0;
    margin: 60px 0;
}

.insta-images {
    flex-direction: column;
    align-items: center;
  }

  .insta-item {
    width: 80%;
    margin-right: 0;
    margin-bottom: 30px;
  }

  .insta-item:last-child {
    margin-bottom: 0;
  }
  
 /* slide11-sp */
.access_wrap {
    display: flex;
    flex-wrap: wrap;
	flex-direction: column;
}

.access_wrap img {
	margin: -30px auto 30px;
	width: 60px;
}

.access_info {
    font-size: 0.95rem;
}

/* slide12 food-sp */
.kitchen_logo {
    max-width: 200px;
}

.note_dotWrap p {
    line-height: 1.7;
    margin: 0 0 10px;
}
	
.food_flex {
    display: flex;
    flex-wrap: wrap;
	flex-direction: column;
}

.food_flex figure {
    width: 95%;
    margin: 0 auto 20px;
}

.food_flex .description {
    width: 100%;
    margin: 0;
}


.food_flex_02 {
    width: 95%;
    margin: 0 auto 50px;
}

.food_flex_02 figure .dora01 {
    bottom: 5px;
    left: -30px;
    width: 93px;
}

.food_flex_02 figure .dora02 {
    bottom: 20px;
    left: -10px;
    width: 83px;
}

.food_flex_02 figure .dora03 {
    right: -35px;
    bottom: 25px;
    width: 125px;
}

.food_flex_02 figure .dora04 {
    right: -25px;
    bottom: 25px;
    width: 95px;
}


.txt0327 {
width: 90%;
}

.dora_03 {
width: 40%;
margin-top: 40px;
left: 30%;
}

.banner_link li {
width: 48%;
margin: 0 0 10px;
}

footer {
    padding: 50px 0 0;
}

.footer_flex {
padding: 20px 20px 60px 0;
}

.footer_dl_wrap {
    margin: 0 auto 40px;
}

.footer_p {
	font-size: 0.9em;
}

.dl_01 {
font-size: 0.85em;
line-height: 1.6em;
text-align: center;
display: flex;
flex-direction: column;
padding: 0 15px;
}

.dl_01 dt {
	width: auto;
}

.dl_02 {
font-size: 0.85em;
line-height: 1.6em;
text-align: center;
display: flex;
flex-direction: column;
margin-top: 20px;
padding: 0 15px;
}

.dl_02 dt {
	width: auto;
}

.dl_02 dd .logo_bosco {
width: 180px;
margin: 15px 0 0;
}

.dl_02 dd {
display: flex;
flex-wrap: wrap;
justify-content: center;
align-items: center;
}

.dl_02 dd .logo_asahi_wrap {
flex-basis: 100%;
text-align: center;
margin: 0;
}

.dl_02 dd .logo_asahi {
width: 123.5px;
margin: 17px 0 10px;
}

.dl_02 dd .logo_telasa {
width: 80px;
margin: 15px 10px 0 0;
}

.dl_02 dd .logo_jr {
width: 70px;
margin: 15px 10px 0;
}

.dl_02 dd .logo_bandai {
width: 35px;
margin: 15px 10px 0;
}

.dl_02 dd .logo_WOVNio {
width: 90px;
margin: 15px 10px 0;
}

.dl_02 dd .logo_kddi {
width: 65px;
margin: 17px 0 0 10px;
}

.dl_02 dd .logo_sagawa {
width: 120px;
margin: 15px 0 0;
}

.copyright {
margin: 0 0 0 20px;
text-align: center;
}

.dora_01 {
    position: absolute;
    top: calc(100vw + 400px); /* 名古屋展バナーの下に出す（元500px→240px→300px→330px→400px） */
    left: 5px;
    width: 20%;
}

.dora_02 {
	top: 1200px; /* 元1180+100 */
	 width: 20%;
	  right: 5px;
}

/* slide6: dora_04 左下, dora_09 右中 */
.dora_04 {
    bottom: 10px;
    left: 10px;
    width: 20%;
}
.dora_09 {
    top: 68%;
    right: 2px;
    width: 13%;
}

/* slide7: dora_05 右下 */
.dora_05 {
    bottom: 10px;
    right: 5px;
    width: 20%;
}

/* slide8: dora_06 右上, dora_12 左中, dora_07 左上, dora_11 右下, dora_08 左下 */
.dora_06 {
   
    top: 780px;
    right: 10px;
    width: 20%;
}
.dora_12 {
    top: 48.2%;
    right: 20px;
    left: auto;
    width: 25%;
}
.dora_07 {
    left: auto;
    top: 85%;
    right: 2px;
    width: 20%;
}
.dora_11 {
    top: 77%;
    right: 10px;
    width: 20%;
}
.dora_08 {
    bottom: 10px;
    left: 2px;
    width: 20%;
}

/* slide5: dora_10 右下-sp */
.dora_10 {
    bottom: 10px;
    right: 2px;
    left: 20px;
    width: 25%;
}

/* slide10: dora_13 下中央-sp */
.dora_13 {
    bottom: 4px;
    left: 50%;
    right: auto;
    transform: translateX(-50%);
    width: 20%;
}


/* slide11-sp */
.howto_access {
	margin: 40px 0 0;
}

.howto_access .suzu {
	width: 40px;
}

.suzu_img02 {
    width: 30px;
    margin: auto;
}

.howto_access .howto_ti {
    font-size: 1.1em;
    line-height: 1.6em;
    text-align: left;
    font-weight: 500;
    margin: 0;
}

.howto_txt {
	margin: 0 0 0 .5em;
}


/* 下層ページ-sp */
.bg-fff-wrap {
    margin: 40px auto 0;
    padding: 2em 1em;
}

.newspage_h2 {
font-size: 3rem;
margin: 50px 0 30px;
}

.subpage_h2 {
    font-size: 1.6rem;
}


/* チケット-sp */
.ticket_lead .span02 {
margin-right: 0;
}

.menu_link li,
.menu_link_02 li {
	width: 98%;
}

.ticket_wrap {
    padding: 2em 0.7em 1em;
}

.ticket_img_flex img {
	width: 100%;
}

.ticket_table th {
	font-size: 0.9rem;
}

.ticket_table td {
    font-size: 1.3rem;
}

.ticket_table td span {
    font-size: 0.9rem;
}

.ticket_table .td_left {
padding-left: 0;
}

.ticket_table .td_left_2 {
padding-left: 0;
}

.ticket_table .td_note {
text-align: left;
}

.ticket_notes {
text-align: left;
}

.intlTicket_table th,
.intlTicket_table td  {
	display: block;
	width: 100%;
}

.intlTicket_table th {
	border-bottom: none;
}

.intlTicket_table td {
	border-top: none;
	padding: 15px 5px 25px;
}

.intlTicket_table tr + tr th {
	border-top: none;
}

.schedule_dl dd {
    margin: 0 0 10px 10px;
}

.soldout_txt p {
font-size: 2em;
width: 250px;
}

.soldout_txt .p_s {
font-size: 1.8em;
width: 250px;
}

.ticket_wrap .h4_sub {
	font-size: 1rem;
}

.notes_wrap {
    margin: 0;
    padding: 2em 0.7em 1em;
}

.notes_wrap .dl01 {
    display: flex;
    flex-direction: column;
}

.notes_wrap .dl01 dd {
    flex: 1;
    text-align: left;
    margin: 0 0 10px 0;
    padding: 0 0 1px;
}


/* NOTICE 注意事項ページ--sp */
.notice_wrap {
	padding: 2em 0.7em 1em;
}

.notice_wrap h3 {
    font-size: 1.2rem;
}

.notice_wrap h4 {
    font-size: 1.15rem;
}

.notice_wrap .dl01 dt {
    width: 100%;
}

.notice_wrap .dl01 dd {
    margin: 0;
	width: 100%;
}


#slide11 {
    padding: 0;
}


/*フローティングバナー-sp*/
.floating-banner {
    position: fixed;
    bottom: 5px !important;
    right: 2px;
	width: 150px;
}

.hidden_pc {
	display: block;
}
.hidden_sp {
	display: none;
}
}

/*slide4 文字とドラえもんの器の幅*/
@media screen and (max-width: 1280px) {
	.moji_stage {
		width: 50%;
	}
}

@media screen and (max-width: 1032px) {
	.moji_stage {
		width: 60%;
	}
}

@media screen and (max-width: 820px) {
	.moji_stage {
		width: 70%;
	}
}

@media screen and (max-width: 640px) {
	.moji_stage {
		width: 95%;
	}
}
