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

@import url('https://fonts.googleapis.com/css?family=Roboto:300,400,500,700&display=swap');

@import url('https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap');

@import url('https://fonts.googleapis.com/css2?family=Lexend:wght@100..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;
}

:root {
	--color-primary: #222;
	--color-gray-light: #f5f5f5;
	--color-light-gray: #999;
	--color-gray: #666;
	--color-sky: #6fb8fa;
	--color-purple: #7282f4;

	/* 濃紺・金の配色（大阪ページ css/city.css の --c-* と同じ名前・同じ値） */
	--c-night: #040a1f;
	--c-navy: #0b1f4d;
	--c-gold: #e9d3a1;

	/* トップページの開催日程バナーで使う色 */
	--c-navy-deep: #06123a;
	--c-navy-soft: #1b2647;
	--c-indigo: #1b2a7a;
	--c-gold-light: #f4e2b8;
	--c-ice-pale: #cfe2ff;

	/* ヘッダーの実測高。#slide1 を「ヘッダーを除いた全画面」にするために使う。
	   768px超は .main_menu の a（1.4rem × 1.4 + padding 4px×2 = 27.6px）が高さを決め、
	   768px以下は h1（1.8rem × 1.4 = 25.2px）が決める。上下 padding と border-bottom 1px を足した値。
	   ※ .header の padding / .main_menu a / h1 のサイズを変えたらこの値も更新すること。 */
	--header-h: 69px; /* 20*2 + 27.6 + 1 */
	--font-lexend: "Lexend", sans-serif;
}


/* 基本要素 */
html {
	overflow: auto;
	scroll-padding-top: var(--headerH);
}

/* スムーススクロールは読み込み完了後に有効化する（gsap-script.js が付与）。
   最初から有効にしておくと、ページ途中でリロードした際にブラウザの
   スクロール位置復元が阻害され、ScrollTrigger が発火せずに
   本文や装飾が opacity:0 のまま残ってしまう */
html.is-scroll-smooth {
	scroll-behavior: smooth;
}

body {
	color: var(--color-primary);
	font-size: 1rem;
	font-family:"Lexend", 'Noto Sans JP', "游ゴシック体", "Yu Gothic", "Hiragino Kaku Gothic Pro", "Meiryo", sans-serif;
	letter-spacing: 1px;
	overflow-wrap: anywhere;
	line-break: strict;
	position: relative;
	z-index: 0;
	height: 100%;
	min-height: 100vh;
	/* ティザー用。ビューポート基準の薄いブルーのグラデ。
	   background-attachment: fixed でスクロールしてもグラデ位置が動かない。 */
	background-color: #fff;
	background-image: linear-gradient(to bottom, #a3c8f0 0%, #dbeafb 55%, #fff 100%);
	background-repeat: no-repeat;
	background-attachment: fixed;
}

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

a {
	color: #222;
}

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

a:hover img {
	opacity: 0.85;
	filter: alpha(opacity=85);
	-ms-filter: "alpha(opacity=85)";
}

h1 {
	font-size: 1rem;
	line-height: 1.4;
	font-weight: bold;
	margin: 0;
}


/* skip-link */
.skip-link {
	position: absolute;
	top: 0;
	left: -9999px;
}

.skip-link:focus {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 1100;
	background-color: #fff;
	padding: 10px 16px;
	border: 1px solid #222;
}


/* container */
.container1500 {
	width: 92%;
	max-width: 1500px;
	margin: auto;
}

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

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

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


/* Header */
.header {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	width: 100%;
	padding: 20px 90px 20px 4%; /* 右はハンバーガー(50px + right20px)の逃げ幅 */
	margin: 0;
	border-bottom: 1px solid #ddd;
}

.h1_mov {
	width: auto;
	text-align: left;
}

.h1_mov h1 a {
	text-decoration: none;
}

.header_menu {
	width: auto;
	margin: 0;
}

ul.main_menu {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	align-items: center;
	width: 100%;
	list-style: none;
	margin: 0;
	padding: 0;
}

ul.main_menu li {
	margin-left: 24px;
}

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

ul.main_menu a {
	display: block;
	font-size: 1rem;
	line-height: 1.4;
	text-decoration: none;
	padding: 4px 0;
}


/* 全画面メニュー（fat-nav 補正） */
/* jquery.fatNav.css は base.css より後に読み込まれるため、
   上書きはセレクタを1段深くして詳細度で勝たせる。 */
.hamburger .hamburger__icon,
.hamburger .hamburger__icon:before,
.hamburger .hamburger__icon:after {
	background-color: #222; /* 閉じている間は白いページ背景の上に出るため濃色 */
}

.fat-nav__title {
	color: #fff;
	font-size: 1rem;
	line-height: 1.8;
	text-align: center;
	font-weight: bold;
	letter-spacing: 2px;
	margin: 0;
}


/* slide1 Hero */
#slide1 {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 100vh;
	min-height: 100svh;
	overflow: hidden;
	clip-path: inset(0); /* fixed の背景画像を #slide1 の範囲だけに切り抜く */
	text-align: center;
	padding: 100px 0;
}

.kv_bg {
	position: fixed; /* 背景固定 */
	top: 0;
	left: 0;
	width: 100%;
	max-width: none;
	height: 100vh;
	height: 100lvh;
	object-fit: cover;
	z-index: 0;
	pointer-events: none;
}

#slide1 .container1500 {
	position: relative;
	z-index: 1;
	display: flex;
	flex-flow: row;
	align-items: center;
	justify-content: center;
}

.kv_futari {
	display: block;
	flex: 0 1 auto;
	min-width: 0;
	min-height: 0; /* flex アイテムの既定 min-height:auto を外して縮小を許可 */
	width: auto;
	max-width: 45%; /* 右カラムにタイトル1行ぶんの幅を必ず残すための上限 */
	max-height: 75vh; /* min() 非対応ブラウザ向けフォールバック */
	max-height: min(75svh, calc(100svh - var(--header-h) - 20px));
	object-fit: contain;
	margin: 0 32px 0 0;
	display: none;
}

/* テキスト — 右カラム */
.kv_text {
	flex: 1 1 auto;
	min-width: 0;
	position: relative;
	left: 0; /* シルエット削除に伴い中央寄せ */
}

.kv_title {
	margin: 0 0 calc(100vw * 24 / 1920);
}

.kv_title img {
	display: block;
	width: calc(100vw * 845 / 1920); /* PC：1920px基準で幅845px（1056pxの0.8） */
	max-width: 928px;
	height: auto;
	margin: 0 auto;
}

.kv_date {
	margin: 0;
}

.kv_date img {
	display: block;
	width: calc(100vw * 500 / 1920); /* PC：1920px基準で幅582px（727pxの0.8） */
	max-width: 500px;
	height: auto;
	margin: 0 auto;
}


/* ========================================
   トップページ：開催日程の見出しとバナー
   4つとも同じ大きさで、PC は2列、SP は1列に並べる。
   公開中の都市：<a class="tour_bnr is-open">（色付き・リンクあり・ボタン付き）
   未公開の都市：<div class="tour_bnr is-soon">（落ち着いた色・リンクなし）
   画像は使わず CSS だけで装飾している（ロゴ・KV が決まったら色を差し替えるだけで済む）。
======================================== */

/* ---------- 「開催日程」の見出し ----------
   後ろにある .kv_info_head の基本指定を、.kv_info を付けた強いセレクタで上書きしている。 */
.kv_info .kv_info_head {
	font-size: 1.625rem;
	line-height: 1.6;
	font-weight: 700;
	letter-spacing: 1px;
	color: var(--c-navy);
	margin: 60px 0 28px;
}

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

.kv_info .kv_info_head {
	font-size: 1.1875rem;
	margin-bottom: 22px;
}

}


/* ---------- バナー ---------- */
.tour_bnr_list {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	margin: 0 0 14px;
	text-align: left;
}

/* a:link（base.css）の文字色に負けないよう、リンクの状態も並べて指定する */
.tour_bnr,
.tour_bnr:link,
.tour_bnr:visited {
	position: relative;
	display: block;
	width: calc((100% - 16px) / 2);
	margin: 0 0 16px;
	padding: 28px 30px 86px; /* 下は、ボタンを置く場所ぶん空けておく */
	overflow: hidden;
	color: #fff;
	text-decoration: none;
	border-radius: 8px;
}

/* 内側の細い金の線 */
.tour_bnr::before {
	content: "";
	position: absolute;
	top: 7px;
	right: 7px;
	bottom: 7px;
	left: 7px;
	border: 1px solid rgba(233, 211, 161, 0.5);
	border-radius: 4px;
	pointer-events: none;
}

.tour_bnr_city,
.tour_bnr_date,
.tour_bnr_venue {
	position: relative;
	display: block;
}

.tour_bnr_city .en {
	display: block;
	font-family: var(--font-lexend);
	font-size: 0.75rem;
	line-height: 1.4;
	font-weight: 500;
	letter-spacing: 5px;
	color: var(--c-gold);
}

.tour_bnr_city .ja {
	display: block;
	font-size: 1.75rem;
	line-height: 1.4;
	font-weight: 700;
	letter-spacing: 5px;
	margin: 0 0 10px;
}

.tour_bnr_date {
	font-size: 1rem;
	line-height: 1.6;
	font-weight: 500;
	letter-spacing: 0;
	margin-bottom: 5px;
}

.tour_bnr_venue {
	font-size: 0.875rem;
	line-height: 1.6;
	letter-spacing: 0;
	color: var(--c-ice-pale);
}


/* ---------- 公開中 ---------- */
.tour_bnr.is-open {
	background-color: var(--c-navy-deep);
	background-image:
		radial-gradient(ellipse 70% 90% at 92% 8%, rgba(114, 130, 244, 0.75) 0%, rgba(114, 130, 244, 0) 65%),
		radial-gradient(ellipse 55% 80% at 5% 100%, rgba(32, 146, 247, 0.5) 0%, rgba(32, 146, 247, 0) 70%),
		linear-gradient(120deg, var(--c-night) 0%, var(--c-navy) 55%, var(--c-indigo) 100%);
	transition: transform 0.4s ease;
}

/* 背景の大きな英字（輪郭だけ）：バナーの幅いっぱいに広げる
   SVG の viewBox を「文字数×100」にして幅100%で表示し、textLength で左右の端まで字間を広げている。
   文字数が違う都市でも、文字の形を歪めずに幅いっぱいになる。 */
.tour_bnr_word {
	position: absolute;
	left: 0;
	bottom: -6px;
	width: 100%;
	height: auto;
	overflow: visible;
	pointer-events: none;
}

.tour_bnr_word text {
	font-family: var(--font-lexend);
	font-size: 128px; /* viewBox 内の単位。画面上の大きさは SVG の幅で決まる */
	font-weight: 700;
	fill: none;
	stroke: rgba(255, 255, 255, 0.16);
	stroke-width: 1px;
	vector-effect: non-scaling-stroke;
}

/* 斜めに走る光（ホバーで横切る） */
.tour_bnr.is-open::after {
	content: "";
	position: absolute;
	top: 0;
	left: -60%;
	width: 40%;
	height: 100%;
	background: linear-gradient(100deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.22) 50%, rgba(255, 255, 255, 0) 100%);
	transform: skewX(-18deg);
	pointer-events: none;
}

.tour_bnr_btn {
	display: inline-block;
	color: var(--c-navy);
	font-size: 0.8125rem;
	line-height: 1.4;
	font-weight: 700;
	letter-spacing: 1px;
	position: absolute;
	right: 30px;
	bottom: 28px;
	margin: 0;
	padding: 9px 42px 9px 22px;
	background: rgba(255, 255, 255, 0.7);
	border-radius: 30px;
	transition: background-color 0.3s ease;
}

.tour_bnr_btn::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 20px;
	width: 6px;
	height: 6px;
	margin-top: -4px;
	border-top: 2px solid var(--c-navy);
	border-right: 2px solid var(--c-navy);
	transform: rotate(45deg);
	transition: right 0.3s ease;
}

@media (hover: hover) {

.tour_bnr.is-open:hover {
	transform: translateY(-3px);
}

.tour_bnr.is-open:hover::after {
	left: 130%;
	transition: left 0.9s ease;
}

.tour_bnr.is-open:hover .tour_bnr_btn {
	background-color: var(--c-gold-light);
}

.tour_bnr.is-open:hover .tour_bnr_btn::after {
	right: 15px;
}

}


/* ---------- 未公開 ---------- */
.tour_bnr.is-soon {
	background-color: var(--c-navy-soft);
	background-image: linear-gradient(140deg, rgba(11, 31, 77, 0.9) 0%, rgba(45, 58, 110, 0.84) 100%);
}

.tour_bnr.is-soon::before {
	border-color: rgba(233, 211, 161, 0.28);
}

/* ボタンが無いぶん、上下の余白を均等にして文字を中央に置く（高さは公開中と同じ） */
.tour_bnr.is-soon {
	padding-top: 57px;
	padding-bottom: 57px;
}

.tour_bnr.is-soon .tour_bnr_city .en {
	color: rgba(255, 255, 255, 0.6);
}


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

/* 幅が足りなくなったら1列にする */
.tour_bnr_list {
	display: block;
}

.tour_bnr,
.tour_bnr:link,
.tour_bnr:visited {
	width: 100%;
	margin-bottom: 12px;
	padding: 24px 22px 82px;
}

.tour_bnr.is-soon {
	padding-top: 53px;
	padding-bottom: 53px;
}

.tour_bnr_btn {
	right: 22px;
	bottom: 24px;
}

}


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

.tour_bnr,
.tour_bnr:link,
.tour_bnr:visited {
	padding: 22px 20px 78px;
}

.tour_bnr.is-soon {
	padding-top: 50px;
	padding-bottom: 50px;
}

.tour_bnr_btn {
	right: 20px;
	bottom: 22px;
}

.tour_bnr_city .ja {
	font-size: 1.5rem;
	letter-spacing: 4px;
	margin-bottom: 8px;
}

.tour_bnr_date {
	font-size: 0.9375rem;
	white-space: nowrap;
}

.tour_bnr_venue {
	font-size: 0.8125rem;
}

}

.news_title {
	font-size: 1.2rem;
	line-height: 1;
	text-align: center;
	font-weight: 400;
	margin: 0;
	padding: 0 0 20px;
}

.news {
	border-top: 1px solid var(--color-light-gray);
	margin: 0;
}

.news dl {
	width: 100%;
	margin: 0;
	padding: 18px 40px 15px 5px;
	border-bottom: 1px solid var(--color-light-gray);
	display: flex;
	position: relative;
}

.news dt {
	font-size: 0.9em;
	line-height: 1.8em;
	margin: 0;
	padding: 0;
	display: flex;
}

.news dt .date {
	width: 100px;
}

.news dt .category {
	color: #fff;
	font-weight: 500;
	font-size: 0.8em;
	line-height: 2em;
	text-align: center;
	margin: 0 20px 0 0;
	width: 90px;
	height: 22px;
	min-width: 70px;
	padding: 0;
	background-color: var(--color-purple);
}

.news dd {
	font-size: 0.9em;
	line-height: 1.8em;
	margin: 0;
	padding: 0;
	text-align: left;
}

.news dl a {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 1;
}

.news dt,
.news dd {
	position: relative;
	z-index: 2;
	pointer-events: none;
}

.news dl a::after {
	content: "";
	position: absolute;
	right: 15px;
	top: 50%;
	transform: translateY(-50%);
	width: 6px;
	height: 6px;
	border-top: 2px solid var(--c-indigo);
	border-right: 2px solid var(--c-indigo);
	transform: translateY(-50%) rotate(45deg);
}

.news dl a:hover {
    background-color: rgba(255, 255, 255, 0.3);
}



/* セクション見出し共通 */
.section_title {
	color: #2092f7;
	font-size: 0.85em;
    line-height: 1.6;
	text-align: center;
    letter-spacing: 2px;
	margin: 0 0 5px;
}

.section_title_en {
	color: #2092f7;
	font-size: 3.2rem;
	line-height: 1.4;
	text-align: center;
	font-weight: 700;
    letter-spacing: 2px;
	margin: 0 0 40px;
}

.section_title span {
	font-size: 1.1rem;
}


/* p-フォントサイズ */
/* left */
.main_text {
	font-size: 1rem;
	line-height: 1.8;
	text-align: left;
	margin: 0 0 20px;
}

.main_text15 {
	font-size: 1.5rem;
	line-height: 1.8;
	text-align: left;
	margin: 0 0 20px;
}

.main_text13 {
	font-size: 1.3rem;
	line-height: 1.8;
	text-align: left;
	margin: 0 0 20px;
}

.main_text12 {
	font-size: 1.2rem;
	line-height: 1.8;
	text-align: left;
	margin: 0 0 20px;
}

.main_text11 {
	font-size: 1.1rem;
	line-height: 1.8;
	text-align: left;
	margin: 0 0 20px;
}

.main_text095 {
	font-size: 0.95rem;
	line-height: 1.8;
	text-align: left;
	margin: 0 0 20px;
}

.main_text09 {
	font-size: 0.9rem;
	line-height: 1.8;
	text-align: left;
	margin: 0 0 20px;
}

/* center */
.main_text_c {
	font-size: 1rem;
	line-height: 1.8;
	text-align: center;
	margin: 0 0 20px;
}

.main_text15_c {
	font-size: 1.5rem;
	line-height: 1.8;
	text-align: center;
	margin: 0 0 20px;
}

.main_text13_c {
	font-size: 1.3rem;
	line-height: 1.8;
	text-align: center;
	margin: 0 0 20px;
}

.main_text12_c {
	font-size: 1.2rem;
	line-height: 1.8;
	text-align: center;
	margin: 0 0 20px;
}

.main_text11_c {
	font-size: 1.1rem;
	line-height: 1.8;
	text-align: center;
	margin: 0 0 20px;
}

.main_text095_c {
	font-size: 0.95rem;
	line-height: 1.8;
	text-align: center;
	margin: 0 0 20px;
}

.main_text09_c {
	font-size: 0.9rem;
	line-height: 1.8;
	text-align: center;
	margin: 0 0 20px;
}





/* footer */
footer {
	display: block;
	width: 100%;
	margin: 0;
	background-color: #0b1f4d; /* 紺色 */
	color: #fff;
}

.footer_01 {
	width: 100%;
	padding: 40px 4%;
}

.footer_logowrap {
	width: 100%;
	text-align: center;
	margin: auto;
}

.footer_title {
	font-size: 1rem;
	line-height: 1.4;
	font-weight: bold;
	margin: 0 0 20px;
}

.footer_title a {
	text-decoration: none;
}

.copyright small {
	color: #fff;
	font-size: 0.75rem;
	line-height: 1.6;
	margin: 0;
}


/* PC/SP切替 */
.hidden_pc {
	display: none;
}

.hidden_sp {
	display: block;
}

.hidden_ta {
	display: none;
}


/* KV 告知文 */
.kv_info {
	width: 100%;
	margin: 40px auto 0;
	padding: 36px 40px;
	background-color: rgba(255, 255, 255, 0.6);
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
	border-radius: 8px;
	text-align: center;
}

.kv_info_lead {
	font-size: 1.6rem;
	line-height: 1.5;
	font-weight: 900;
	margin: 0 0 20px;
}

.kv_info_txt {
	font-size: 1rem;
	line-height: 1.9;
	text-align: left;
	margin: 0 0 40px;
}

.kv_info_name {
	font-size: 1.2rem;
	line-height: 1.6;
	font-weight: bold;
	margin: 0 0 30px;
}

.kv_info_head {
	font-size: 1.1rem;
	line-height: 1.6;
	font-weight: bold;
	margin: 0 0 16px;
}

.kv_info_schedule {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 20px 24px;
	margin: 0 0 24px;
}

.kv_info_schedule dt {
	font-weight: bold;
	line-height: 1.6;
}

.kv_info_schedule dd {
	line-height: 1.7;
	margin: 0;
}

.kv_info_note {
	font-size: 0.85rem;
	line-height: 1.8;
	margin: 0;
}




/* KV 背景ライト（スポット・氷上の光の強弱）
   位置は js/kv-light.js が背景画像の cover 表示範囲に合わせて計算する */
.kv_light {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100vh;
	height: 100lvh;
	overflow: hidden;
	z-index: 0;
	pointer-events: none;
}

.kv_light__stage {
	position: absolute;
}

.kv_light__glow {
	position: absolute;
	border-radius: 50%;
	transform: translate(-50%, -50%);
	mix-blend-mode: screen;
	opacity: 0;
	will-change: opacity;
}

.kv_light__glow--spot {
	background: radial-gradient(circle, rgba(235, 242, 255, 1) 0%, rgba(150, 185, 255, 0.46) 25%, rgba(90, 120, 255, 0) 70%);
}

.kv_light__glow--beam {
	border-radius: 0;
	transform-origin: 50% 0;
	background: linear-gradient(to bottom, rgba(170, 200, 255, 0.46) 0%, rgba(120, 150, 255, 0.16) 50%, rgba(90, 120, 255, 0) 100%);
	clip-path: polygon(45% 0, 55% 0, 100% 100%, 0 100%);
}

.kv_light__glow--ice {
	background: radial-gradient(ellipse, rgba(255, 245, 225, 0.98) 0%, rgba(190, 210, 255, 0.33) 35%, rgba(150, 180, 255, 0) 70%);
}


/* ========================================
   @media
======================================== */

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

}


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

/* header-1024 */
.header {
	padding: 16px 90px 16px 4%;
}

/* slide1-1024 */
:root {
	--header-h: 61px; /* 16*2 + 27.6 + 1 */
}

#slide1 {
	padding: 50px 0 10px;
}

.kv_title {
	font-size: 1rem;
}

.kv_title img {
	width: calc(100vw * 750 / 1024); /* 1024px基準で幅750px */
}

.kv_date img {
	width: calc(100vw * 444 / 1024); /* 1024px基準で幅444px（タイトルと同じ拡大率） */
}
}


@media screen and (max-width: 960px) {
/* NEWS欄の下（フッターとの間）を広げる */
#slide1 {
	padding-bottom: 50px;
}

.hidden_ta {
	display: block;
}
}


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

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

.outline td {
	padding-left: 2em;
}

/* schedule-820 */
.schedule th {
	width: 160px;
}

.schedule td {
	padding-left: 2em;
}

}


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

/* header-768 */
:root {
	--header-h: 58px; /* メニューが消え h1 が高さを決める: 16*2 + 25.2 + 1 */
}

.header {
	display: block;
	text-align: center;
	padding: 16px 80px; /* ハンバーガーの逃げ幅を左右に振って中央揃えを保つ */
}

.h1_mov {
	width: 100%;
	text-align: center;
	margin: 0;
}

/* この幅から全画面メニュー（ハンバーガー）に集約する */
.header_menu {
	display: none;
}

}


@media (min-width: 767px) {

/* tel-767 */
a[href^="tel:"] {
	pointer-events: none;
	text-decoration: none;
}

}


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

/* 基本要素-sp */
body {
	font-size: 1rem;
}

/* section_title-sp */
.section_title {
	font-size: 0.9rem;
}

.section_title_en {
	font-size: 2.2rem;
}

/* header-sp */
.header {
	padding: 14px 70px; /* ハンバーガーが right:10px / 50px幅 になるため */
}

/* fat-nav-sp */
.fat-nav__title {
	font-size: 1rem;
}

/* slide1-sp */
:root {
	--header-h: 54px; /* 14*2 + 25.2 + 1 */
}

.kv_text {
	left: 0;
}

.kv_title {
	margin: 0 0 16px;
}

.kv_title img {
	width: calc(100vw * 480 / 640); /* SP：640px基準で幅480px（600pxの0.8） */
	max-width: 480px;
}

.kv_date img {
	width: 80%;
	max-width: 727px;
}

#slide1 {
	min-height: calc(100vh - var(--header-h));
	min-height: calc(100svh - var(--header-h));
	padding: 50px 0;
}

.kv_bg {
	object-position: -150px top; /* SP：背景画像を左へ150pxずらす */
}

.kv_info {
	width: 100%;
	margin: 24px auto 0;
	padding: 24px 18px;
}

.kv_info_lead {
	font-size: 1.25rem;
}

.kv_info_txt {
	font-size: 0.95rem;
}


.kv_info_name {
    font-size: 1.1rem;
}

.kv_info_schedule {
	grid-template-columns: 1fr;
	gap: 14px;
}

.kv_futari {
	max-height: 80vh; /* min() 非対応ブラウザ向けフォールバック */
	max-height: min(85svh, calc(100svh - var(--header-h) - 20px));
	margin: 0 16px 0 0;
}

.kv_title {
	font-size: 1rem;
}

.kv_date {
	font-size: 1rem;
}

/* slide2-sp */
#slide2 {
	padding: 40px 0;
}

.lead_txt {
    font-size: 1.35rem;
    line-height: 1.6;
}

table.outline {
	font-size: 1rem;
}

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

.outline th {
	font-weight: bold;
	padding: 1.2em 0 0;
}

.outline td {
	padding: .3em 0 1.2em;
	border-left: none;
}

/* slide3-sp */
#slide3 {
	padding: 40px 0;
}

.dl_schedule {
    width: 85%;
}

.dl_schedule dt {
    width: auto;
}

.dl_schedule dd {
    margin-top: 0;
	margin-bottom: 15px;
	margin-left: 1.5rem;
	}

/* slide4-sp */
#slide4 {
	padding: 40px 0;
}

/* footer-sp */
footer {
	margin-top: 0;
}

.footer_01 {
	padding: 30px 4%;
}

.footer_title {
	font-size: 1rem;
}

/* news-sp：日付とカテゴリを1行目に、本文をその下に横幅いっぱいで置く
   （横並びのままだと本文の幅が足りず、1文字ずつ縦に折り返してしまうため） */
.news dl {
	display: block;
	padding: 14px 34px 12px 5px;
}

.news dt {
	margin-bottom: 4px;
}

.news dt .date {
	width: 92px;
}

.news dl a::after {
	right: 10px;
}

/* hidden-sp */
.hidden_pc {
	display: block;
}

.hidden_sp {
	display: none;
}

.hidden_ta {
	display: none;
}
}


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

/* slide1-405 */
/* この幅からヘッダーの h1「りくりゅうのありがとうツアー」が2行に折り返し、
   ヘッダーが 1行ぶん（25.2px）高くなる: 14*2 + 25.2*2 + 1 */
:root {
	--header-h: 80px;
}

}
