@charset "utf-8";



/*リセットCSS（sanitize.css）の読み込み
---------------------------------------------------------------------------*/
@import url("https://unpkg.com/sanitize.css");

/*Font Awesomeの読み込み
---------------------------------------------------------------------------*/
@import url("https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css");

/*Google Fontsの読み込み
---------------------------------------------------------------------------*/
@import url('https://fonts.googleapis.com/css2?family=M+PLUS+1+Code:wght@400;500&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Lato:wght@400;700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700&display=swap');

/*slick.cssの読み込み
---------------------------------------------------------------------------*/
@import url("https://cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.css");

/*テンプレート専用cssファイルの読み込み
---------------------------------------------------------------------------*/
@import url("animation.css");
@import url("inview.css");

/*WordPress管理バー用の設定
---------------------------------------------------------------------------*/
html {
	margin-top: 0 !important;
}


/*全体の設定
---------------------------------------------------------------------------*/
* {
	box-sizing: border-box;
}

html, body {
	margin: 0;
	padding: 0;
	font-size: 13px;
	/*基準となるフォントサイズ。下の方にある「画面幅900px以上」で基準を大きなサイズに再設定しています。*/
	overflow-x: hidden;
	width: 100%;
	max-width: 100%;
}

body {
	font-family: "Noto Sans JP", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", Meiryo, "メイリオ", "Osaka", "MS PGothic", "ＭＳ Ｐゴシック", sans-serif;
	/*フォント種類*/
	font-feature-settings: 'palt'1;
	-webkit-text-size-adjust: none;
	letter-spacing: 0.05em;
	background: #fff;
	/*背景色*/
	color: #555;
	/*全体の文字色*/
	line-height: 2;
	/*行間*/
}

/*リセット*/
figure {
	margin: 0;
}

dd {
	margin: 0;
}

nav {
	margin: 0;
	padding: 0;
}

/*table全般の設定*/
table {
	border-collapse: collapse;
}

/*画像全般の設定*/
img {
	border: none;
	max-width: 100%;
	height: auto;
	vertical-align: middle;
}

/*videoタグ*/
video {
	max-width: 100%;
}

/*iframeタグ*/
iframe {
	width: 100%;
}

/*ul,olタグ*/
ul, ol {
	margin-bottom: 30px;
}


/*リンクテキスト全般の設定
---------------------------------------------------------------------------*/
a {
	color: #57524b;
	/*文字色*/
	transition: 0.3s;
}


/*sectionタグと、詳細ページの共通設定
---------------------------------------------------------------------------*/
section,
main>article {
	margin: 0 auto;
	padding: 5%;
	/*ボックス内の余白*/
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}

/*index.html以外のコンテンツをmax-width: 1200pxに（フッター、split-links、KVは除く）*/
body:not(.index-page) main>section:not(.split-links),
body:not(.index-page) main>article {
	max-width: 1200px;
	margin-left: auto;
	margin-right: auto;
}

/*split-linksとフッターはmax-width: 100%を維持*/
.split-links,
footer,
#footermenu {
	max-width: 100% !important;
}

/*レッドスカイスタジアムについての3項目の横パディングを削除*/
.sky-stadium-item {
	padding-left: 0 !important;
	padding-right: 0 !important;
}

/* スタジオレベルの音響・照明設備を完備のセクションを幅マックスで灰色背景に */
body:not(.index-page):not(.home) .sky-stadium-item.bg1 {
	position: relative;
	background: transparent;
	padding-top: 80px;
}

body:not(.index-page):not(.home) .sky-stadium-item.bg1::before {
	content: '';
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 100vw;
	height: 100%;
	background: #f5f5f5;
	z-index: -1;
}

/*サービスページのセクション間の余白調整*/
section.blur+section.blur {
	margin-top: 0;
	padding-top: 80px;
}


/*2カラムブロック（※900px未満では１カラム）
---------------------------------------------------------------------------*/
/*２カラムを囲むブロック*/
.c2 {
	display: flex;
	/*flexボックスを使う指定*/
	flex-direction: column;
	/*子要素を縦並びにする*/
	width: 100%;
	max-width: 1500px;
	box-sizing: border-box;
}

/*service.html内の.c2の左右paddingを削除*/
body.service-page .c2 {
	padding-left: 0;
	padding-right: 0;
}

/*service.html内のサービスとパッケージ利用プランセクション内のsectionの左右paddingを0に*/
body.service-page #signage,
body.service-page #catering,
body.service-page #package-plan,
body.service-page #package-plan+section,
body.service-page #package-plan+section+section {
	padding-left: 0;
	padding-right: 0;
}

/*サービスページの.c2内のテキストスタイル調整*/
body.service-page .c2 .text h2 {
	font-size: clamp(20px, 3vw, 21px);
	line-height: 1.5;
	margin-bottom: 20px;
	letter-spacing: 0.05em;
}

body.service-page .c2 .text p {
	font-size: clamp(14px, 1.8vw, 15px);
	line-height: 1.9;
	letter-spacing: 0.05em;
	margin-bottom: 15px;
}

body.service-page .c2 .text {
	padding-right: 2%;
	word-break: break-word;
}

/* note.html（イベントノート／プロフィール帳）
---------------------------------------------------------------------------*/
body.note-page {
	background: radial-gradient(circle at top left, #ffe7f4 0, #fff 45%, #fff5ff 100%);
	font-family: "M PLUS 1 Code", "Noto Sans JP", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
}

.note-kv {
	position: relative;
	overflow: hidden;
}

.note-kv::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(to bottom, rgba(255, 255, 255, 0.6), rgba(255, 255, 255, 0.9));
}

.note-kv-title {
	font-family: "M PLUS 1 Code", "Lato", sans-serif;
	letter-spacing: 0.25em;
	text-transform: uppercase;
	text-shadow: 0 0 12px rgba(255, 255, 255, 0.9);
}

.note-profile-section {
	padding-top: 40px;
	padding-bottom: 80px;
}

.note-book-wrapper {
	max-width: 960px;
	margin: 0 auto;
	position: relative;
}

/* しおりタブ */
.note-tabs {
	display: flex;
	justify-content: center;
	gap: 8px;
	margin-bottom: 30px;
	position: relative;
	z-index: 2;
}

.note-tab {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 70px;
	padding: 8px 12px 16px;
	font-size: 11px;
	font-weight: 600;
	color: #444;
	background: #fff7fb;
	border-radius: 10px 10px 0 0;
	border: 1px solid #f4b5d6;
	box-shadow: 0 3px 0 rgba(244, 181, 214, 0.7);
	position: relative;
	transform-origin: bottom center;
	text-decoration: none;
	letter-spacing: 0.1em;
}

.note-tab:nth-child(2) {
	background: #fffbe8;
	border-color: #f4d59b;
	box-shadow: 0 3px 0 rgba(234, 188, 116, 0.7);
}

.note-tab:nth-child(3) {
	background: #f3fbff;
	border-color: #a4d6f0;
	box-shadow: 0 3px 0 rgba(142, 196, 222, 0.7);
}

.note-tab:nth-child(4) {
	background: #f8f2ff;
	border-color: #c3b0f7;
	box-shadow: 0 3px 0 rgba(168, 144, 230, 0.7);
}

.note-tab:nth-child(5) {
	background: #f9ffef;
	border-color: #bddc91;
	box-shadow: 0 3px 0 rgba(170, 204, 117, 0.7);
}

.note-tab:nth-child(6) {
	background: #fff1f0;
	border-color: #f6a6a0;
	box-shadow: 0 3px 0 rgba(233, 140, 133, 0.7);
}

.note-tab:nth-child(7) {
	background: #f2fbff;
	border-color: #9bd5ff;
	box-shadow: 0 3px 0 rgba(125, 183, 224, 0.7);
}

.note-tab::before {
	content: "";
	position: absolute;
	left: 50%;
	bottom: 4px;
	transform: translateX(-50%);
	width: 18px;
	height: 4px;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.9);
}

.note-tab:hover {
	transform: translateY(-2px) rotate(-1deg);
	box-shadow: 0 5px 0 rgba(0, 0, 0, 0.08);
	opacity: 1;
}

@media screen and (max-width: 768px) {
	.note-tabs {
		flex-wrap: wrap;
		justify-content: flex-start;
	}

	.note-tab {
		flex: 1 1 calc(25% - 8px);
		min-width: 0;
		font-size: 10px;
		padding: 6px 6px 10px;
	}
}

/* ノート本体（紙） */
.note-page-paper {
	position: relative;
	padding: 28px 26px 32px;
	background:
		repeating-linear-gradient(to bottom,
			rgba(255, 182, 203, 0.18) 0,
			rgba(255, 182, 203, 0.18) 1px,
			transparent 1px,
			transparent 26px),
		linear-gradient(135deg, #fffdf9, #fff9ff);
	border-radius: 18px;
	box-shadow:
		0 14px 30px rgba(0, 0, 0, 0.08),
		0 0 0 1px rgba(255, 255, 255, 0.8);
	border: 1px solid rgba(255, 202, 222, 0.7);
	overflow: hidden;
}

.note-page-paper::before,
.note-page-paper::after {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	width: 20px;
	background-image:
		radial-gradient(circle at 6px 14px, rgba(230, 230, 230, 0.8) 0, rgba(230, 230, 230, 0.8) 4px, transparent 4px);
	background-size: 22px 42px;
	background-repeat: repeat-y;
	opacity: 0.7;
	pointer-events: none;
}

.note-page-paper::before {
	left: 12px;
}

.note-page-paper::after {
	right: 12px;
}

.note-page-header {
	text-align: center;
	margin-bottom: 20px;
	position: relative;
	z-index: 1;
}

.note-page-title {
	font-family: "M PLUS 1 Code", "Lato", sans-serif;
	font-size: 18px;
	letter-spacing: 0.25em;
	text-transform: uppercase;
	margin: 0 0 4px;
	color: #555;
}

.note-page-subtitle {
	font-size: 11px;
	color: #b58db2;
	margin: 0;
}

.note-section {
	position: relative;
	padding: 14px 18px 18px;
	margin-bottom: 10px;
	background: rgba(255, 255, 255, 0.85);
	border-radius: 12px;
	border: 1px dashed rgba(255, 182, 203, 0.5);
	backdrop-filter: blur(2px);
}

.note-section-overview {
	margin-bottom: 18px;
}

.note-section-title {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 13px;
	margin: 0 0 8px;
	color: #ff7aa2;
	font-weight: 700;
}

.note-section-title::before {
	content: "★";
	font-size: 11px;
	color: #ffb6c1;
}

.note-overview-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 8px;
	font-size: 12px;
}

.note-overview-item {
	display: grid;
	grid-template-columns: auto 1fr;
	align-items: center;
	column-gap: 4px;
}

.note-label {
	color: #777;
	white-space: nowrap;
}

.note-line {
	display: block;
	border-bottom: 1px dotted #f1a9c4;
	min-height: 18px;
}

.note-free-lines {
	margin-top: 6px;
	font-size: 11px;
	color: #b19cc0;
}

.note-section-body {
	position: relative;
	z-index: 1;
}

.note-ruled {
	min-height: 80px;
	padding: 4px 6px 2px;
	background:
		repeating-linear-gradient(to bottom,
			rgba(255, 182, 193, 0.42) 0,
			rgba(255, 182, 193, 0.42) 1px,
			transparent 1px,
			transparent 24px);
}

.note-placeholder {
	font-size: 11px;
	color: #b3a1b8;
	margin: 0;
}

@media screen and (max-width: 768px) {
	.note-page-paper {
		padding: 20px 16px 24px;
	}

	.note-section {
		padding: 10px 12px 14px;
	}

	.note-overview-grid {
		font-size: 11px;
	}
}

/*c2内のh2見出し*/
.c2 h2 {
	font-size: 1.7em;
	text-align: left;
	margin: 0;
	letter-spacing: 0.05em;
	font-weight: bold;
	line-height: 1.5;
	word-wrap: break-word;
	word-break: keep-all;
	overflow-wrap: break-word;
}

.num {
	max-width: 25%;
	margin-bottom: 2rem;
}

/*c2内のテキストの行間調整*/
.c2 .text p {
	display: block;
	line-height: 2;
	margin-bottom: 15px;
	font-size: 15px;
}

.c2 .text p:last-of-type {
	margin-bottom: 0;
}

/*小さい端末で見た場合（１カラムになった際）に、画像を常に先頭に持ってくる*/
.c2 .image {
	order: -1;
}


/*header（ロゴなどが入った最上段のブロック）
---------------------------------------------------------------------------*/
/*ヘッダーブロック*/
#container {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	overflow-x: hidden;
}

header {
	display: flex;
	/*flexボックスを使う指定*/
	justify-content: space-between;
	/*並びかたの種類の指定*/
	align-items: center;
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	/*垂直揃えの指定。天地中央に配置されるように。*/
	background: transparent;
	/*背景色（初期は透過）*/
	position: fixed;
	z-index: 9999;
	/*スクロールしても動かないようにする指定*/
	width: 100%;
	padding: 0 1%;
	/*上下、左右へのヘッダー内の余白*/
	height: 70px;
	/*ヘッダーの高さ。変更する場合、数行下にある#mainimgのtopの数値も合わせて変更して下さい。*/
	font-size: 15px;
	box-shadow: none;
	backdrop-filter: blur(0px);
	-webkit-backdrop-filter: blur(0px);
	transition: background 0.5s cubic-bezier(0.4, 0, 0.2, 1),
		box-shadow 0.5s cubic-bezier(0.4, 0, 0.2, 1),
		backdrop-filter 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

/*スクロール後のヘッダースタイル*/
header.scrolled {
	background: rgba(255, 255, 255, 0.95);
	box-shadow: 0 4px 20px 0 rgba(0, 0, 0, 0.1);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
}

/*ヘッダーのリンクテキストの文字色*/
header a {
	color: #fff;
	transition: color 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

/*スクロール後のヘッダーのリンクテキストの文字色*/
header.scrolled a {
	color: #333;
}

/*ロゴ画像*/
header #logo img {
	display: block;
	height: auto;
	max-height: 50px;
	width: auto;
	max-width: 280px;
	transition: max-width 0.3s ease, max-height 0.3s ease;
}

@media screen and (max-width: 1400px) {
	header #logo img {
		max-width: 220px;
		max-height: 45px;
	}
}

@media screen and (max-width: 1200px) {
	header #logo img {
		max-width: 180px;
		max-height: 40px;
	}

	header {
		font-size: 14px;
	}
}

@media screen and (max-width: 1000px) {
	header #logo img {
		max-width: 150px;
		max-height: 35px;
	}

	header {
		font-size: 12.5px;
		padding: 0 0.5%;
	}

	#menubar {
		font-size: 12.5px;
	}

	#menubar ul {
		gap: 2px;
	}

	#menubar a {
		padding: 8px 6px;
	}

	#menubar a.menu-btn {
		padding: 8px 12px;
		font-size: 0.9em;
	}
}

@keyframes logoBlink {
	0%, 100% {
		opacity: 1;
		transform: scale(1);
	}

	50% {
		opacity: 0.5;
		transform: scale(1.08);
	}
}

/* バウンスアニメーション（オプション：logoBlinkの代わりにlogoBounceを使用可能） */
@keyframes logoBounce {
	0%, 100% {
		transform: translateY(0) scale(1);
	}

	25% {
		transform: translateY(-5px) scale(1.02);
	}

	50% {
		transform: translateY(0) scale(1);
	}

	75% {
		transform: translateY(-3px) scale(1.01);
	}
}

header #logo {
	margin: 0;
	width: 250px;
	/*幅*/
	height: 50px;
	/*高さ*/
	display: flex;
	align-items: center;
	flex-shrink: 0;
}

@media screen and (max-width: 1400px) {
	header #logo {
		width: 220px;
		height: 45px;
	}
}

@media screen and (max-width: 1200px) {
	header #logo {
		width: 180px;
		height: 40px;
	}
}

@media screen and (max-width: 1000px) {
	header #logo {
		width: 150px;
		height: 35px;
	}
}


/*トップページのメイン画像
---------------------------------------------------------------------------*/
/*全体を囲むブロック*/
#mainimg {
	width: 100%;
	height: 0;
	padding: 0;
	padding-top: 56.25%;
	position: relative;
	top: 0;
	overflow: hidden;
	color: #fff;
	/*文字色*/
	font-size: 14px;
}

/*KV動画*/
#mainimg #kv-video {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	z-index: 0;
}

/*KV動画の黒フィルター*/
#mainimg::after {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(0, 0, 0, 0.3);
	z-index: 1;
	pointer-events: none;
}

/*インフォバー
---------------------------------------------------------------------------*/
.infobar {
	width: 100%;
	display: flex;
	flex-direction: column;
	position: relative;
	z-index: 10;
}

.infobar-content {
	background: #f5f5f5;
	padding: 1.2rem 2rem;
	display: flex;
	align-items: center;
	gap: 1.5rem;
	flex-wrap: wrap;
}

.infobar-label {
	color: #2d5016;
	font-size: 1.1rem;
	font-weight: 600;
	letter-spacing: 0.05em;
}

.infobar-date {
	color: #333;
	font-size: 0.95rem;
	font-weight: 400;
}

.infobar-badge {
	background: rgba(74, 74, 74, 0.8);
	color: #fff;
	padding: 0.3rem 1rem;
	font-size: 0.9rem;
	font-weight: 500;
	border-radius: 3px;
}

.infobar-link {
	color: #333;
	text-decoration: underline;
	font-size: 0.95rem;
	flex: 1;
	min-width: 0;
	transition: color 0.3s ease;
}

.infobar-link:hover {
	color: #2d5016;
}

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

	/* スマホ・タブレット版ではヘッダーを非表示 */
	header {
		display: none !important;
	}

	/* 基本フォントサイズ調整 */
	body {
		font-size: 15px;
		line-height: 1.75;
		letter-spacing: 0.03em;
		-webkit-font-smoothing: antialiased;
		-moz-osx-font-smoothing: grayscale;
	}

	/* モバイル版ではヘッダーが非表示なのでKV画像の上余白をなくす */
	.kv-image {
		top: 0 !important;
		margin-top: 0;
		height: 350px;
		max-height: 350px;
	}

	.kv-image img {
		height: 350px;
		max-height: 350px;
	}

	.kv-title {
		font-size: clamp(1.5rem, 5vw, 2rem);
		bottom: 30px;
		left: 20px;
	}

	/* セクション全体の調整 */
	section {
		padding: 55px 22px !important;
	}

	main>section+section {
		margin-top: 0;
	}

	/* セクションタイトルの調整 */
	.section-title {
		margin-bottom: 35px;
		gap: 10px;
	}

	.section-title-en {
		font-size: clamp(2rem, 7vw, 2.8rem);
		letter-spacing: 0.1em;
	}

	.section-title-ja {
		font-size: 15px;
		letter-spacing: 0.15em;
	}

	/* パンクズリスト直後のmain内の最初のsection-titleのmargin調整（モバイルのみ） */
	.breadcrumb+main section:first-child .section-title {
		margin: 0rem auto 1.5rem;
	}

	/* aboutページのsky-stadium section-titleのmargin調整（モバイルのみ） */
	.breadcrumb+main #sky-stadium .section-title {
		margin: 0rem auto 1.5rem;
	}

	/* aboutページの.about section-titleのmargin調整（モバイルのみ） */
	body.about .breadcrumb+main section:first-child .section-title {
		margin: 0rem auto 1.5rem;
	}

	/* accessページのsection-titleのmargin調整（モバイルのみ） */
	body.access-page .breadcrumb+main section:first-child .section-title {
		margin: 0rem auto 1.5rem;
	}

	/* split-linksを縦並びに（全幅、paddingなし） */
	.split-links {
		flex-direction: column !important;
		padding: 0 !important;
		margin: 0 !important;
	}

	.split-item {
		width: 100%;
		aspect-ratio: 16 / 9;
		min-height: 280px;
	}

	.split-item .sub {
		font-size: 0.85rem;
		margin-bottom: 0.6em;
		opacity: 0.9;
	}

	.split-item h2 {
		font-size: clamp(1.5rem, 5vw, 2rem);
		margin-bottom: 0.6em;
		font-weight: 600;
		letter-spacing: 0.03em;
	}

	.split-item .text {
		font-size: 0.9rem;
		line-height: 1.7;
		opacity: 0.95;
	}

	.split-item .overlay {
		background: rgba(0, 0, 0, 0.45);
	}

	.split-item:active {
		transform: scale(0.98);
	}

	/* インフォバー */
	.infobar {
		bottom: 0;
		position: relative;
		margin-top: 0;
	}

	.infobar-content {
		padding: 1rem 1.5rem;
		gap: 1rem;
		flex-direction: row;
		align-items: center;
		flex-wrap: wrap;
	}

	.infobar-label,
	.infobar-date,
	.infobar-badge {
		font-size: 0.85rem;
	}

	/* KVボタン（スマホ対応） */
	#mainimg #text .kv-buttons {
		display: flex;
		flex-direction: row;
		gap: 10px;
		margin: 20px 0 0;
		justify-content: center;
		flex-wrap: nowrap;
	}

	#mainimg #text .kv-btn {
		flex: 1;
		min-width: 0;
		padding: 10px 12px;
		gap: 6px;
		font-size: 0.75em;
		justify-content: center;
		white-space: nowrap;
	}

	#mainimg #text .kv-btn-icon {
		width: 16px;
		height: 16px;
	}

	#mainimg #text .kv-control-btn {
		width: 38px;
		height: 38px;
		font-size: 16px;
	}

	.infobar-link {
		font-size: 0.85rem;
	}

	/* ボタンデザイン改善 */
	.btn1 {
		padding: 14px 26px;
		font-size: 15px;
		border-radius: 8px;
		font-weight: 500;
		letter-spacing: 0.03em;
		transition: all 0.3s ease;
	}

	.btn1:active {
		transform: scale(0.97);
	}

	.btn2 {
		padding: 14px 26px;
		font-size: 15px;
		border-radius: 8px;
		font-weight: 500;
	}

	/* カードデザイン改善 */
	.other-page-card {
		border-radius: 8px;
		overflow: hidden;
		box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
	}

	.other-page-content {
		padding: 18px;
	}

	.other-page-sub {
		font-size: 12px;
		margin-bottom: 8px;
	}

	.other-page-title {
		font-size: 1.3rem;
	}

	/* ニュース項目の調整 */
	.news-item {
		padding: 20px;
		border-radius: 8px;
	}

	.news-title {
		font-size: 1.1rem;
		line-height: 1.5;
	}

	.news-excerpt {
		font-size: 0.9rem;
		line-height: 1.65;
	}

	.news-date {
		font-size: 0.85rem;
	}

	.news-category {
		font-size: 0.8rem;
		padding: 4px 10px;
	}

	/* 見出し全般の調整 */
	h1 {
		font-size: clamp(1.8rem, 6vw, 2.5rem);
		line-height: 1.45;
		margin-bottom: 0.8em;
		font-weight: 600;
		letter-spacing: 0.03em;
	}

	h2 {
		font-size: clamp(1.5rem, 5vw, 2rem);
		line-height: 1.5;
		margin-bottom: 0.75em;
		font-weight: 600;
		letter-spacing: 0.025em;
	}

	h3 {
		font-size: clamp(1.25rem, 4.5vw, 1.7rem);
		line-height: 1.55;
		margin-bottom: 0.65em;
		font-weight: 600;
		letter-spacing: 0.02em;
	}

	h4 {
		font-size: clamp(1.1rem, 4vw, 1.4rem);
		line-height: 1.6;
		font-weight: 500;
	}

	/* 段落とリストの調整 */
	p {
		margin-bottom: 1.2em;
		line-height: 1.75;
	}

	ul, ol {
		margin-bottom: 1.2em;
		padding-left: 1.5em;
	}

	li {
		margin-bottom: 0.5em;
		line-height: 1.7;
	}

	/* リンクの調整 */
	a {
		transition: color 0.25s ease, opacity 0.25s ease;
	}

	a:active {
		opacity: 0.7;
	}

	/* リスト全般の調整 */
	ul:not(.mobile-menu-list):not([class*="menu"]) {
		line-height: 1.8;
	}

	ul:not(.mobile-menu-list):not([class*="menu"]) li {
		margin-bottom: 0.6em;
	}

	/* 画像の最適化 */
	img {
		max-width: 100%;
		height: auto;
	}

	/* スクロール動作の最適化 */
	html {
		scroll-behavior: smooth;
	}

	/* コンテナ・レイアウト全般 */
	.container,
	.content-wrapper {
		padding-left: 20px;
		padding-right: 20px;
	}

	/* カード全般のアニメーション */
	.news-item,
	.other-page-card,
	.download-item,
	.package-card {
		transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
	}

	/* カードグリッドの調整 */
	.news-container,
	.download-container {
		gap: 20px;
	}

	.other-pages-container {
		grid-template-columns: 1fr;
		gap: 20px;
	}

	/* フォーム要素の調整 */
	input[type="text"],
	input[type="email"],
	input[type="tel"],
	textarea,
	select {
		font-size: 15px;
		padding: 12px 14px;
		border-radius: 6px;
		border: 1px solid #ddd;
	}

	textarea {
		min-height: 150px;
	}

	/* ページネーション調整 */
	.pagination {
		gap: 10px;
		font-size: 15px;
		flex-wrap: wrap;
	}

	.pagination a,
	.pagination span {
		min-width: 42px;
		height: 42px;
		padding: 0 12px;
		border-radius: 6px;
	}
}

/*テキストブロック*/
#mainimg #text {
	position: absolute;
	left: 3%;
	/*mainimgに対して左からの配置場所指定*/
	top: 0px;
	/*mainimgに対して上からの配置場所指定*/
	width: 100%;
	/*幅*/
	height: 100%;
	/*高さ*/
	display: flex;
	/*flexボックスを使う指定*/
	align-items: center;
	/*垂直揃えの指定。天地中央に配置されるように。*/
	z-index: 2;
	/*テキストを動画の上に表示*/
}

/*h2見出し*/
#mainimg #text h2 {
	margin: 0 0 2rem;
	line-height: 1.6;
	letter-spacing: 0.15rem;
	font-weight: 500;
	font-size: clamp(24px, 2.8vw, 48px);
	text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.3);
}

@media screen and (max-width: 1400px) {
	#mainimg #text h2 {
		font-size: clamp(22px, 2.5vw, 42px);
		margin: 0 0 1.5rem;
	}
}

@media screen and (max-width: 1200px) {
	#mainimg #text h2 {
		font-size: clamp(20px, 2.2vw, 36px);
		margin: 0 0 1.5rem;
	}
}

@media screen and (max-width: 1000px) {
	#mainimg #text h2 {
		font-size: clamp(18px, 2vw, 32px);
		margin: 0 0 1.2rem;
		letter-spacing: 0.1rem;
	}
}

/*pタグ。小文字の説明文。*/
#mainimg #text p.text {
	font-size: 15px;
	/*文字サイズ*/
	margin: 0 10px 30px;
	/*上、左右、下へのpタグ内の余白*/
}

@media screen and (max-width: 1400px) {
	#mainimg #text p.text {
		font-size: 14px;
		margin: 0 10px 25px;
	}
}

@media screen and (max-width: 1200px) {
	#mainimg #text p.text {
		font-size: 13px;
		margin: 0 10px 20px;
	}
}

@media screen and (max-width: 1000px) {
	#mainimg #text p.text {
		font-size: 12.5px;
		margin: 0 8px 18px;
	}
}

/*KVボタンコンテナ*/
#mainimg #text .kv-buttons {
	display: flex;
	gap: 20px;
	margin: 30px 0 0;
	flex-wrap: wrap;
}

@media screen and (max-width: 1400px) {
	#mainimg #text .kv-buttons {
		gap: 18px;
		margin: 25px 0 0;
	}
}

@media screen and (max-width: 1200px) {
	#mainimg #text .kv-buttons {
		gap: 15px;
		margin: 20px 0 0;
	}
}

@media screen and (max-width: 1000px) {
	#mainimg #text .kv-buttons {
		gap: 12px;
		margin: 18px 0 0;
	}
}

/*KVボタン基本スタイル*/
#mainimg #text .kv-btn {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 12px 24px;
	border-radius: 4px;
	text-decoration: none;
	color: #fff;
	font-weight: bold;
	font-size: 1em;
	transition: opacity 0.3s ease;
}

@media screen and (max-width: 1400px) {
	#mainimg #text .kv-btn {
		padding: 11px 22px;
		gap: 8px;
		font-size: 0.95em;
	}
}

@media screen and (max-width: 1200px) {
	#mainimg #text .kv-btn {
		padding: 10px 20px;
		gap: 8px;
		font-size: 0.9em;
	}
}

@media screen and (max-width: 1000px) {
	#mainimg #text .kv-btn {
		padding: 9px 18px;
		gap: 6px;
		font-size: 0.85em;
	}
}

#mainimg #text .kv-btn:hover {
	opacity: 0.9;
}

/*KVボタンアイコン*/
#mainimg #text .kv-btn-icon {
	width: 20px;
	height: 20px;
	object-fit: contain;
	filter: brightness(0) invert(1);
	/*白いアイコンにする*/
}

@media screen and (max-width: 1400px) {
	#mainimg #text .kv-btn-icon {
		width: 18px;
		height: 18px;
	}
}

@media screen and (max-width: 1200px) {
	#mainimg #text .kv-btn-icon {
		width: 16px;
		height: 16px;
	}
}

@media screen and (max-width: 1000px) {
	#mainimg #text .kv-btn-icon {
		width: 14px;
		height: 14px;
	}
}

/*資料ダウンロードボタン（赤背景）*/
#mainimg #text .kv-btn-download {
	background: #E1251B;
}

/*お問い合わせボタン（ダークグレー背景）*/
#mainimg #text .kv-btn-contact {
	background: #4A4A4A;
}

/*KV動画コントロールボタン*/
#mainimg #text .kv-control-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.2);
	border: 2px solid rgba(255, 255, 255, 0.5);
	color: #fff;
	font-size: 18px;
	cursor: pointer;
	transition: all 0.3s ease;
	margin: 0;
	padding: 0;
	flex-shrink: 0;
}

@media screen and (max-width: 1400px) {
	#mainimg #text .kv-control-btn {
		width: 44px;
		height: 44px;
		font-size: 16px;
	}
}

@media screen and (max-width: 1200px) {
	#mainimg #text .kv-control-btn {
		width: 40px;
		height: 40px;
		font-size: 15px;
	}
}

@media screen and (max-width: 1000px) {
	#mainimg #text .kv-control-btn {
		width: 36px;
		height: 36px;
		font-size: 14px;
	}
}

#mainimg #text .kv-control-btn+.kv-control-btn {
	margin-left: -10px;
}

#mainimg #text .kv-control-btn:hover {
	background: rgba(255, 255, 255, 0.3);
	border-color: rgba(255, 255, 255, 0.8);
	transform: scale(1.05);
}

#mainimg #text .kv-control-btn i {
	display: block;
}

/*小さい端末用：KVボタン*/
@media screen and (max-width: 899px) {
	#mainimg #text .kv-buttons {
		flex-direction: column;
		gap: 15px;
		margin: 20px 0 0;
	}

	#mainimg #text .kv-btn {
		width: 100%;
		justify-content: center;
		padding: 10px 20px;
		font-size: 0.9em;
	}

	#mainimg #text .kv-control-btn {
		width: 44px;
		height: 44px;
		font-size: 16px;
		margin-left: 0;
		margin-top: 8px;
		align-self: flex-start;
	}
}


/*menubarブロック初期設定
---------------------------------------------------------------------------*/
#menubar ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

/*メニューを非表示にしておく*/
#menubar {
	display: none;
}

/*開閉用のスタイル*/
#menubar.db {
	display: block;
}

#menubar.dn {
	display: none;
}

/*メニュー１個あたりの設定*/
#menubar a {
	display: block;
	text-decoration: none;
	text-align: center;
	/*テキストを中央に*/
	letter-spacing: 0.07em;
	/*文字間隔を少しだけ広くする指定*/
	padding: 10px;
	/*メニュー内の余白*/
}

/*ドロップダウンメニュー項目の矢印（小さい端末用）*/
#menubar li.has-dropdown>a::after {
	content: '';
	display: inline-block;
	width: 12px;
	height: 12px;
	background-image: url(../images/down-arrow.png);
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
	margin-left: 8px;
	transition: transform 0.3s ease, background-image 0.3s ease;
}

/*index.htmlでナビが白い時（スクロール前）の矢印*/
body.index-page header:not(.scrolled) #menubar li.has-dropdown>a::after {
	background-image: url(../images/arrow-white.png);
}

/*ナビのホバー時のスタイル（小さい端末用）*/
#menubar li.has-dropdown>a {
	transition: color 0.3s ease;
	position: relative;
}

#menubar li.has-dropdown:hover>a {
	color: #E1251B;
}

#menubar li.has-dropdown:hover>a::after {
	background-image: url(../images/arrow-red.png);
	transform: rotate(180deg);
}

/*front-pageでスクロール前のホバー時も赤い矢印に*/
body.index-page header:not(.scrolled) #menubar li.has-dropdown:hover>a::after {
	background-image: url(../images/arrow-red.png);
}

/*メニューボタンスタイル（KVボタンと同じデザイン）*/
#menubar a.menu-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 16px;
	border-radius: 4px;
	margin: 5px 0;
	text-decoration: none;
	color: #fff;
	font-weight: bold;
	font-size: 0.9em;
	transition: opacity 0.3s ease;
}

#menubar a.menu-btn:hover {
	opacity: 0.9;
}

/*メニューボタンアイコン*/
#menubar a.menu-btn .menu-btn-icon {
	width: 16px;
	height: 16px;
	object-fit: contain;
	filter: brightness(0) invert(1);
	/*白いアイコンにする*/
}

/*資料ダウンロードボタン（赤背景）*/
#menubar a.menu-btn-download {
	background: #C0392B;
	position: relative;
	overflow: hidden;
	transition: background 0.3s ease;
}

#menubar a.menu-btn-download::before {
	content: '';
	position: absolute;
	left: 0;
	top: 0;
	width: 0;
	height: 100%;
	background: #A93226;
	transition: width 0.4s ease;
	z-index: 0;
}

#menubar a.menu-btn-download:hover {
	background: #A93226;
}

#menubar a.menu-btn-download:hover::before {
	width: 100%;
}

#menubar a.menu-btn-download span,
#menubar a.menu-btn-download .menu-btn-icon {
	position: relative;
	z-index: 1;
}

/*お問い合わせボタン（黒系背景）*/
#menubar a.menu-btn-contact {
	background: #1A1A1A;
	transition: background 0.3s ease;
}

#menubar a.menu-btn-contact:hover {
	background: #000000;
}


/*小さな端末用の設定（開閉ブロック） - 新しいモバイルメニューを使用するため非表示
---------------------------------------------------------------------------*/
.s #menubar {
	display: none !important;
}


/*スマホ専用メニューシステム
---------------------------------------------------------------------------*/
/* ハンバーガーボタン - デフォルト非表示 */
.mobile-menu-btn {
	display: none !important;
}

/* スマホ専用メニュー - デフォルト非表示 */
.mobile-menu {
	display: none !important;
}

/* PC版（900px以上）では完全非表示 */
@media screen and (min-width: 900px) {

	.mobile-menu-btn,
	.mobile-menu {
		display: none !important;
		visibility: hidden !important;
	}
}

/* スマホ版（899px以下）でのみ表示 */
@media screen and (max-width: 899px) {

	/* 古いメニューバーを完全非表示 */
	#menubar,
	#menubar.db,
	.s #menubar,
	.s #menubar.db {
		display: none !important;
		visibility: hidden !important;
	}

	.mobile-menu-btn {
		display: flex !important;
		position: fixed;
		top: 18px;
		right: 18px;
		z-index: 10002;
		width: 52px;
		height: 52px;
		background: rgba(0, 0, 0, 0.7);
		border: none;
		border-radius: 50%;
		cursor: pointer;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		gap: 5px;
		padding: 0;
		transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
		box-shadow: 0 2px 12px rgba(0, 0, 0, 0.15);
	}

	.mobile-menu-btn:hover {
		background: rgba(0, 0, 0, 0.85);
		box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);
	}

	.mobile-menu-btn span {
		display: block;
		width: 22px;
		height: 2.5px;
		background: #fff;
		border-radius: 2px;
		transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
	}

	.mobile-menu-btn.active {
		background: rgba(0, 0, 0, 0.9);
	}

	.mobile-menu-btn.active span:nth-child(1) {
		transform: translateY(7.5px) rotate(45deg);
	}

	.mobile-menu-btn.active span:nth-child(2) {
		opacity: 0;
	}

	.mobile-menu-btn.active span:nth-child(3) {
		transform: translateY(-7.5px) rotate(-45deg);
	}

	.mobile-menu {
		display: block !important;
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		height: 100vh;
		background: #fff;
		z-index: 10001;
		overflow-y: auto;
		padding: 0;
		opacity: 0;
		visibility: hidden;
		transition: opacity 0.3s ease, visibility 0.3s ease;
	}

	.mobile-menu.active {
		opacity: 1;
		visibility: visible;
	}

	.mobile-menu-logo {
		text-align: center;
		padding: 35px 20px 30px;
		background: linear-gradient(180deg, #fafafa 0%, #fff 100%);
		border-bottom: 1px solid #e5e5e5;
	}

	.mobile-menu-logo img {
		max-width: 200px;
		height: auto;
	}

	.mobile-menu-list {
		list-style: none;
		margin: 0;
		padding: 15px 0 100px;
		background: #fff;
	}

	.mobile-menu-list li {
		border: none;
	}

	.mobile-menu-list li a {
		display: block;
		color: #333;
		text-decoration: none;
		transition: all 0.25s ease;
	}

	/* 親メニュー項目 */
	.mobile-menu-parent {
		border-bottom: 1px solid #e8e8e8;
		margin-top: 0;
	}

	.mobile-menu-parent a {
		padding: 18px 55px 18px 22px;
		font-size: 16px;
		font-weight: 600;
		color: #1A1A1A;
		letter-spacing: 0.02em;
		position: relative;
		transition: background 0.2s ease, color 0.2s ease;
	}
	
	.mobile-menu-parent a i {
		color: #4A90E2;
		margin-right: 10px;
		font-size: 18px;
		vertical-align: middle;
	}
	
	.mobile-menu-parent a::after {
		content: '\f105';
		font-family: 'Font Awesome 6 Free';
		font-weight: 900;
		position: absolute;
		right: 22px;
		top: 50%;
		transform: translateY(-50%);
		color: #999;
		font-size: 16px;
		transition: transform 0.2s ease, color 0.2s ease;
	}

	.mobile-menu-parent a:active {
		background: #f5f5f5;
		color: #E1251B;
	}
	
	.mobile-menu-parent a:active::after {
		transform: translateY(-50%) translateX(3px);
		color: #E1251B;
	}
	
	.mobile-menu-parent a:active i {
		color: #E1251B;
	}

	/* 子メニュー項目（サブメニュー） */
	.mobile-menu-child {
		background: #fafafa;
		border-bottom: 1px solid #efefef;
	}

	.mobile-menu-child a {
		padding: 15px 22px 15px 45px;
		font-size: 15px;
		font-weight: 400;
		color: #555;
		position: relative;
	}

	.mobile-menu-child a::before {
		content: '›';
		position: absolute;
		left: 26px;
		color: #999;
		font-size: 18px;
		font-weight: 300;
	}

	.mobile-menu-child a:active {
		background: #f0f0f0;
		color: #E1251B;
	}

	.mobile-menu-child a:active::before {
		color: #E1251B;
	}

	/* ボタンスタイルのメニュー項目 */
	.mobile-menu-button {
		border: none;
		margin-top: 20px;
		position: relative !important;
		/* fixedではなくrelativeに固定 */
	}

	.mobile-menu-button:first-of-type {
		margin-top: 30px;
	}

	.mobile-menu-list .mobile-menu-btn {
		display: flex !important;
		position: relative !important;
		flex-direction: row !important;
		align-items: center;
		justify-content: center;
		gap: 12px;
		padding: 16px 20px !important;
		margin: 0 20px 14px;
		width: calc(100% - 40px);
		background: #E1251B !important;
		color: #fff !important;
		border-radius: 8px;
		font-weight: 600;
		font-size: 15px;
		box-shadow: 0 3px 12px rgba(225, 37, 27, 0.25);
		box-sizing: border-box;
		transition: all 0.25s ease;
		letter-spacing: 0.03em;
	}

	.mobile-menu-btn-contact {
		background: #1A1A1A !important;
		box-shadow: 0 3px 12px rgba(0, 0, 0, 0.18);
		position: relative !important;
	}

	.mobile-menu-list .mobile-menu-btn:active {
		transform: translateY(1px);
		box-shadow: 0 2px 6px rgba(225, 37, 27, 0.3);
	}

	.mobile-menu-btn-contact:active {
		box-shadow: 0 2px 6px rgba(0, 0, 0, 0.25);
	}

	.mobile-menu-btn img {
		width: 18px;
		height: 18px;
		filter: brightness(0) invert(1);
		flex-shrink: 0;
	}
}


/*mainブロック設定
---------------------------------------------------------------------------*/
/*mainブロック*/
main {
	padding-top: 0 !important;
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}

/* フロントページ以外のページのコンテンツ幅制限 */
body:not(.index-page):not(.home) main {
	max-width: 1200px;
	margin-left: auto;
	margin-right: auto;
	padding-left: 5%;
	padding-right: 5%;
}

/*index.htmlのmainセクション上部の白い三角形（KVの斜めカット部分を埋める）*/
#mainimg+main {
	position: relative;
	padding-top: 25px !important;
}

/*KV画像セクション（index.html以外のページ用）
---------------------------------------------------------------------------*/
.kv-image {
	width: 100%;
	max-width: 1920px;
	height: 450px;
	max-height: 450px;
	margin: 0 auto;
	padding: 0;
	position: relative;
	top: 65px;
	overflow: hidden;
	display: block;
}

.kv-image img {
	width: 100%;
	height: 450px;
	max-height: 450px;
	object-fit: cover;
	object-position: center;
	display: block;
}

/*KV画像のタイトル*/
.kv-title {
	position: absolute;
	bottom: 50px;
	left: 50px;
	color: #fff;
	font-size: 2.5em;
	font-weight: bold;
	text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
	z-index: 10;
	letter-spacing: 0.07em;
	margin: 0;
}

@media screen and (max-width: 899px) {
	.kv-title {
		font-size: 1.8em;
		bottom: 30px;
		left: 30px;
	}
}

/*パンくずリスト*/
.breadcrumb {
	display: flex;
	align-items: center;
	padding: 15px 0 15px 20px;
	margin-top: 65px;
	gap: 8px;
	font-size: 14px;
	background: #f6f6f6;
}

.breadcrumb-home {
	display: flex;
	align-items: center;
	gap: 6px;
	text-decoration: none;
	color: #333;
	transition: opacity 0.3s ease;
}

.breadcrumb-home:hover {
	opacity: 0.7;
}

.breadcrumb-icon {
	width: 16px;
	height: 16px;
	display: block;
}

.breadcrumb-text {
	color: #333;
	font-weight: 500;
	letter-spacing: 0.05em;
}

.breadcrumb-arrow {
	color: #4A90E2;
	margin: 0 4px;
	font-size: 18px;
	line-height: 1;
}

.breadcrumb-current {
	color: #4A90E2;
	font-weight: 400;
	letter-spacing: 0.05em;
}

@media screen and (max-width: 899px) {
	.breadcrumb {
		padding: 12px 0 12px 15px;
		font-size: 12px;
		margin: 0;
	}

	.breadcrumb-icon {
		width: 14px;
		height: 14px;
	}

	.breadcrumb-arrow {
		font-size: 16px;
		margin: 0 3px;
	}
}

/*KVセクションがある場合のmainブロック調整*/
.kv-image+main {
	padding-top: 0;
}

/*パンクズリスト直下のsectionとmain>articleにpaddingを設定*/
.breadcrumb+main>section,
.breadcrumb+main>article {
	padding: 0;
}


/*mainブロック内のh2タグ*/
main h2 {
	margin: 0 0 1em;
	line-height: 1.5;
	font-size: 3em;
	text-align: left;
	letter-spacing: 0.01em;
	color: #333;
	/* font-family: 'Lato'; */
	font-weight: bold;
}

/*h2内のsupanタグ。小文字部分です。*/
main h2 span {
	display: block;
	font-weight: normal;
	color: #777;
	/*文字色*/
	font-size: 13px;
	/*文字サイズ*/
}

/*セクションタイトルデザイン（画像参照）*/
.section-title {
	position: relative;
	text-align: left;
	margin: 5rem auto 1.5rem;
	max-width: 1200px;
	padding: 0;
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 1rem;
}


.section-title.service-section-title {

	margin: 0rem 0 1.5em;
}

/*レッドスカイスタジアムについての.section-titleだけmargin:0*/
#sky-stadium .section-title {
	margin: 5rem 0 1em;
}

/*RED°イベントスペースとはの.section-titleだけmargin: 0 0 1em;*/
.about .section-title {
	margin: 5rem 0 1em;
}

body.access-page .section-title {
	margin: 5rem 0 1em;
}

/*.section-title-en {
	display: block;
	font-size: 0.3em;
	font-weight: 400;
	color: #999;
	letter-spacing: 0.15em;
	line-height: 1.2;
	text-transform: uppercase;
	margin: 0;
	padding: 0;
	order: 0.5;
	position: absolute;
	bottom: 12px;
	left: 50%;
	transform: translateX(calc(-50% - 0.5em));
	white-space: nowrap;
	z-index: 2;
	text-align: left;
}*/

.section-title-en {
	font-size: clamp(48px, 6vw, 56px);
	font-weight: 700;
	color: #333;
	margin: 0;
	line-height: 1;
	letter-spacing: 0.05em;
}

.section-title-ja {
	font-size: 18px;
	font-weight: 500;
	color: #333;
	margin: 0;
	line-height: 1.6;
	letter-spacing: 0.05em;
}

/* セクション下のページ内リンクナビ
---------------------------------------------------------------------------*/
.section-anchor-nav {
	display: flex;
	flex-wrap: wrap;
	justify-content: left;
	gap: 20px;
	margin: 2.5rem 0 1.5rem;
}

.section-anchor-link {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	text-decoration: none;
	color: #333;
	font-size: 0.95rem;
	font-weight: 500;
	letter-spacing: 0.05em;
}

.section-anchor-link:hover {
	opacity: 0.85;
}

.section-anchor-icon {
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: #2d6ba8;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	font-size: 0.7rem;
	line-height: 18px;
	flex-shrink: 0;
}

.section-anchor-icon::before {
	content: "\f107";
	font-family: "Font Awesome 5 Free";
	font-weight: 900;
}

.section-anchor-label {
	white-space: nowrap;
}

@media screen and (max-width: 899px) {
	.section-anchor-nav {
		justify-content: flex-start;
		gap: 12px 18px;
		margin: 1.5rem 0 1.2rem;
	}

	.section-anchor-label {
		white-space: normal;
	}
}

/*セクション右上の下矢印アイコン（削除）*/
.section-title::before {
	display: none;
}

/*小さい端末用*/
@media screen and (max-width: 899px) {
	/*.section-title-en {
		font-size: 0.45em;
		margin-top: 5px;
	}*/

	.section-title-en {
		font-size: clamp(32px, 8vw, 48px);
	}

	.section-title-ja {
		font-size: clamp(12px, 3vw, 14px);
		padding-bottom: 15px;
	}

}

/*小見出しスタイル（シンプルなデザイン）
---------------------------------------------------------------------------*/
.section-subtitle {
	position: relative;
	text-align: left;
	margin: 0 auto 15px;
	padding: 0 0 10px 0;
	font-size: 1.5em;
	font-weight: bold;
	color: #333;
	letter-spacing: 0.05em;
	border-bottom: 2px solid #E1251B;
	display: block;
	max-width: 1200px;
}

/*小さい端末用*/
@media screen and (max-width: 899px) {
	.section-subtitle {
		font-size: 1.2em;
	}
}

/*mainブロック内のh3タグ*/
main h3 {
	font-size: clamp(18px, 2vw, 24px);
	margin: 0px 0 0.5em;
	color: #333;
	text-align: left;
	font-weight: 400;
}

/*mainブロックのpタグ*/
main p {
	/* margin: 0 20px 30px; */
	text-align: left;
}

main p+p {
	margin-top: -15px;
}


/*フッター設定
---------------------------------------------------------------------------*/
footer small {
	font-size: 100%;
}

footer {
	font-size: 0.7rem;
	/*文字サイズ*/
	text-align: center;
	/*内容をセンタリング*/
	padding: 20px;
	/*ボックス内の余白*/
	background: #111;
	/*背景色*/
	color: #fff;
	/*文字色*/
}

/*リンクテキスト*/
footer a {
	text-decoration: none;
	color: #fff;
}

/*著作部分*/
footer .pr {
	display: block;
}


/*フッターメニュー設定
---------------------------------------------------------------------------*/
/*ボックス全体の設定*/
#footermenu {
	background: #333;
	/*背景色*/
	color: #999;
	/*文字色*/
	font-size: 0.7em;
	/*文字サイズ*/
	padding: 20px 40px;
	/*ボックス内の余白（上下はそのまま、左右を増やす）*/
	display: flex;
	/*flexボックスを使う指定*/
	justify-content: space-between;
	/*並びかたの種類の指定*/
	align-items: flex-start;
	/*垂直揃えの指定。上に配置されるように。*/
}

/*ボックス内のリンクテキスト設定*/
#footermenu a {
	text-decoration: none;
	color: #999;
	/*文字色*/
}

/*リンクテキストのマウスオン時*/
#footermenu a:hover {
	color: #ccc;
	/*文字色*/
}

/*ulタグ（メニューの列単位）*/
#footermenu ul {
	margin: 0;
	padding: 0;
	flex: 1;
	list-style: none;
}

/*title*/
#footermenu .title {
	font-weight: bold;
	/*太字にする*/
	color: #ccc;
	/*文字色*/
	padding-bottom: 5px;
	/*下に空けるスペース*/
}

/*フッター会社情報セクション*/
#footermenu .footer-company {
	max-width: 300px;
	margin-right: 40px;
	flex: 0 0 auto;
}

#footermenu .footer-logo {
	margin-bottom: 10px;
}

#footermenu .footer-logo img {
	max-width: 200px;
	height: auto;
	filter: brightness(0) invert(1);
	/*ロゴを白くする*/
}

#footermenu .footer-logo a {
	display: inline-block;
}

#footermenu .footer-address {
	color: #999;
	line-height: 1.6;
	margin: 10px 0;
}

#footermenu .footer-company-title {
	font-weight: bold;
	color: #ccc;
	margin-top: 15px;
	margin-bottom: 5px;
}

#footermenu .footer-company li {
	margin-bottom: 8px;
}

#footermenu .footer-company a i.fa-external-link-alt {
	margin-left: 5px;
	font-size: 0.8em;
	opacity: 0.7;
}


/*「お知らせ」ブロック
---------------------------------------------------------------------------*/
/*お知らせブロック*/
#new {
	margin: 0;
	display: flex;
	/*flexボックスを使う指定*/
	flex-wrap: wrap;
	/*折り返す指定*/
	padding: 0 20px;
	/*上下、左右へのボックス内の余白*/
}

/*日付(dt)、記事(dd)共通設定*/
#new dt,
#new dd {
	padding: 5px 0;
	/*上下、左右へのボックス内の余白*/
}

/*日付(dt)設定*/
#new dt {
	width: 8em;
	/*幅。8文字(em)分。※下の「900px以上」の端末用の設定に再設定があります。*/
}

/*日付の横のマーク（共通設定）*/
#new dt span {
	display: none;
	/*小さな端末では非表示にしておく。*/
}

/*記事(dd)設定*/
#new dd {
	width: calc(100% - 8em);
	/*「8em」は上の「#new dt」のwidthの値です。※下の「900px以上」の端末用の設定に再設定があります。*/
}


/*listブロック
---------------------------------------------------------------------------*/
.list-container .list {
	margin-bottom: 30px;
	/*ボックス同士の上下間に空けるスペース*/
	/* padding: 20px; */
	/*ボックス内の余白*/
	background: #fff;
	/*背景色*/
	color: #555;
	/*文字色*/
	border-radius: 10px;
	overflow: hidden;
	box-shadow: 0 10px 25px rgba(0, 0, 0, 0.06);
	/*柔らかめの影*/
	position: relative;
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}

/*SERVICEカードのホバー時*/
.list-container .list:hover {
	transform: translateY(-4px);
	box-shadow: 0 16px 35px rgba(0, 0, 0, 0.10);
}

/*TOPページ SERVICE セクションのカードをモダンなデザインに*/
body.index-page .bg2 .list-container .list {
	background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 100%);
	border: 1px solid #e8e8e8;
	border-radius: 16px;
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.04);
	transform: translateY(0);
	transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
	overflow: hidden;
	position: relative;
}

body.index-page .bg2 .list-container .list::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 4px;
	background: linear-gradient(90deg, #E1251B 0%, #ff6b6b 100%);
	opacity: 0;
	transition: opacity 0.4s ease;
}

/* カード内のタイトルにスタイル追加 */
body.index-page .bg2 .list-container .list h4 {
	color: #222;
	font-size: 1.25rem;
	font-weight: 700;
	margin-bottom: 0.8rem;
	letter-spacing: 0.02em;
	position: relative;
	padding-bottom: 0.5rem;
}

/* タイトルに英語サブタイトルを追加する準備 */
body.index-page .bg2 .list-container .list h4::after {
	content: attr(data-en);
	display: block;
	font-size: 0.7rem;
	font-weight: 500;
	color: #999;
	letter-spacing: 0.1em;
	margin-top: 0.3rem;
	text-transform: uppercase;
}

/* カード内のテキストエリア調整 */
body.index-page .bg2 .list-container .list .text {
	padding: 1.8rem 2rem 1rem;
}

/* カード内の説明文 */
body.index-page .bg2 .list-container .list .text p {
	color: #666;
	line-height: 1.8;
	font-size: 0.95rem;
}

/* ボタンエリア調整 */
body.index-page .bg2 .list-container .list>p.c {
	padding: 0 2rem 1.8rem;
}

/* ボタンスタイル改善 */
body.index-page .bg2 .list-container .list .btn1,
body.index-page .bg2 .list-container .list .btn2 {
	background: linear-gradient(135deg, #E1251B 0%, #c01e16 100%);
	color: #fff;
	border: none;
	padding: 12px 28px;
	font-size: 0.9rem;
	font-weight: 600;
	border-radius: 8px;
	letter-spacing: 0.05em;
	box-shadow: 0 4px 12px rgba(225, 37, 27, 0.2);
	transition: all 0.3s ease;
	position: relative;
	overflow: hidden;
	margin-top: 1rem;
}

body.index-page .bg2 .list-container .list .btn1::before,
body.index-page .bg2 .list-container .list .btn2::before {
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	width: 0;
	height: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.3);
	transform: translate(-50%, -50%);
	transition: width 0.6s, height 0.6s;
}

body.index-page .bg2 .list-container .list .btn1:hover,
body.index-page .bg2 .list-container .list .btn2:hover {
	transform: translateY(-2px);
	box-shadow: 0 6px 20px rgba(225, 37, 27, 0.3);
	background: linear-gradient(135deg, #c01e16 0%, #a01812 100%);
}

body.index-page .bg2 .list-container .list .btn1:hover::before,
body.index-page .bg2 .list-container .list .btn2:hover::before {
	width: 300px;
	height: 300px;
}

/* 画像エリアにグラデーションオーバーレイ */
body.index-page .bg2 .list-container .list figure {
	position: relative;
	margin: 0;
}

body.index-page .bg2 .list-container .list figure::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	height: 60%;
	background: linear-gradient(to top, rgba(0, 0, 0, 0.15) 0%, transparent 100%);
	opacity: 0;
	transition: opacity 0.4s ease;
}

/*SERVICEセクションの画像を16:9で上揃え*/
.list-container .list figure {
	margin: 0;
	width: 100%;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	position: relative;
}

.list-container .list figure img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: top;
	display: block;
}

/*ボックス内のh4タグ*/
.list-container .list h4 {
	margin: 0 0 0.4rem;
	color: #333;
	/*文字色*/
	font-size: 1.1rem;
	font-weight: 600;
	letter-spacing: 0.05em;
}

.list-container .list h4 a {
	color: #666;
	/*リンクテキストの文字色*/
}

/*ボックス内のpタグ*/
.list-container .list p {
	margin: 0;
	font-size: 0.9em;
	/*少し大きめに*/
	line-height: 1.9;
}

/*list内のNEWマーク*/
.list-container .list .new {
	font-size: 0.6em;
	/*文字サイズ*/
	background: #ff0000;
	/*背景色*/
	color: #fff;
	/*文字色*/
	width: 50px;
	/*幅*/
	line-height: 50px;
	/*高さ*/
	border-radius: 50%;
	/*角丸のサイズ。円形になります。*/
	text-align: center;
	/*テキストをセンタリング*/
	position: absolute;
	left: -10px;
	/*listブロックに対して左からの配置場所の指定*/
	top: -10px;
	/*listブロックに対して上からの配置場所の指定*/
	transform: rotate(-30deg);
	/*回転。まっすぐ表示させたいならこの１行を削除。*/
}


/*求人一覧ページ（ist2　横長ブロックタイプ）
---------------------------------------------------------------------------*/
/*list2ボックス。１個あたりのボックスの指定です。*/
.list2 {
	display: flex;
	/*flexボックスを使う指定*/
	border-bottom: 1px solid #ccc;
	/*下線の幅、線種、色*/
	padding: 25px 0;
	/*上下、左右へのボックス内の余白*/
}

.list2 div {
	flex: 1;
}

/*１つ目のボックスにのみ上に線を入れる*/
.list2:nth-of-type(1) {
	border-top: 1px solid #ccc;
	/*上の線の幅、線種、色*/
}

/*ボックス内のfigure画像*/
.list2 figure {
	width: 20%;
	/*画像の幅*/
	margin-right: 20px;
	/*画像の右側に空けるスペース*/
}

/*ボックス内のh4タグ*/
.list2 h4 {
	margin: 0;
	/*デフォルトマージンを一旦リセット*/
	margin-bottom: 10px;
	/*下に少し余白を作る*/
	color: #9ea445;
	/*文字色*/
}

.list2 h4 a {
	color: #9ea445;
	/*リンクテキストの文字色*/
}

.list2 h4 a:hover {
	color: #333;
	/*マウスオン時の文字色*/
}

/*ボックス内のpタグ*/
.list2 p {
	margin: 0;
	font-size: 0.7em;
	/*文字サイズを70%に。*/
}


.about {
	margin: 0 auto;
	position: relative;
	overflow: visible;
	padding: 0;
	max-width: 100%;
	/*コンテンツが重ならないように余白を追加*/
}

/*aboutセクションのコンテナ*/
.about-container {
	display: flex;
	flex-direction: column;
	width: 100%;
	margin: 4rem 0 0 0;
}

/*aboutセクションの画像エリア*/
.about-image {
	width: 100%;
	order: 2;
	display: flex;
	justify-content: flex-end;
	background: linear-gradient(to bottom, #fff 50%, #f2f2f2 50%);
	position: relative;
}

.about-image figure {
	margin: 0;
	width: 100%;
	max-width: 90%;
	height: 0;
	padding-top: 29.63%;
	/* 1350×400のアスペクト比 */
	position: relative;
	overflow: hidden;
}

.about-image img {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/*aboutセクションのコンテンツエリア*/
.about-content {
	width: 100%;
	position: relative;
	order: 1;
	padding: 3rem 5%;
	overflow: hidden;
}

/*背景の大きな英語テキスト*/
.about-bg-text {
	position: absolute;
	right: 0;
	top: 50%;
	transform: translateY(-50%);
	font-family: "Noto Sans JP", sans-serif;
	font-size: clamp(80px, 15vw, 200px);
	font-weight: 300;
	color: #f0f0f0;
	line-height: 1;
	white-space: nowrap;
	z-index: 0;
	writing-mode: vertical-rl;
	text-orientation: mixed;
	letter-spacing: 0.07em;
	opacity: 0.3;
}

/*テキストコンテンツの内側*/
.about-text-inner {
	position: relative;
	z-index: 1;
	max-width: 100%;
}

/*見出しラッパー*/
.about-heading-wrapper {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 1rem;
	margin-bottom: 1.5rem;
}

/*英語見出し*/
.about-heading-en {
	font-size: clamp(64px, 10vw, 80px);
	font-weight: 700;
	color: #333;
	margin: 0;
	line-height: 1;
	letter-spacing: 0.05em;
}

/*ラベル*/
.about-label {
	font-family: "Noto Sans JP", sans-serif;
	font-size: 0.9rem;
	font-weight: 500;
	color: #2d5016;
	letter-spacing: 0.07em;
	text-transform: uppercase;
	display: block;
	margin-bottom: 0.5rem;
}

/*タイトル*/
.about-title {
	font-size: clamp(18px, 2vw, 20px);
	font-weight: 500;
	color: #333;
	margin: 0;
	line-height: 1.6;
	letter-spacing: 0.05em;
}

/*説明文*/
.about-description {
	font-size: 0.95em;
	line-height: 2.2;
	color: #333;
	margin: 0 0 2rem;
	letter-spacing: 0.05em;
}

/*ボタンラッパー*/
.about-btn-wrapper {
	margin: 0;
}

.about-btn-wrapper .btn1 {
	background: #2d5016;
	color: #fff;
	padding: 12px 24px;
	border-radius: 4px;
}

.about-btn-wrapper .btn1:hover {
	background: #1f3a0f;
	opacity: 0.9;
}

/*.aboutセクションの下部に斜めカットの仕切りを追加*/




/*求人一覧ページのlistボックス内の情報詳細欄（tableっぽく見える所）
---------------------------------------------------------------------------*/
/*ボックス全体*/
dl.line {
	margin: 0;
	display: flex;
	/*flexボックスを使う指定*/
	flex-wrap: wrap;
	/*折り返す指定*/
	font-size: 0.7em;
	/*文字サイズを70%に。*/
	border-top: 1px solid #ccc;
	/*上の線の幅、線種、色*/
}

/*左右のボックス*/
dl.line dt, dl.line dd {
	border-bottom: 1px solid #ccc;
	/*下線の幅、線種、色*/
	padding: 0 5px;
	/*上下、左右へのボックス内の余白*/
}

/*左のボックス*/
dl.line dt {
	width: 8em;
	/*幅。8文字(em)分。*/
	background: #f0f0f0;
	/*背景色*/
}

/*右のボックス*/
dl.line dd {
	width: calc(100% - 8em);
	/*「8em」は上の「dl.line dt」のwidthの値です。*/
}

/*list2ブロック内でのline設定*/
.list2 dl.line dt:nth-of-type(1), .list2 dl.line dd:nth-of-type(1),
.list2 dl.line dt:nth-of-type(2), .list2 dl.line dd:nth-of-type(2) {
	border-top: none;
}


/*サムネイルスライドショー
---------------------------------------------------------------------------*/
/*画像１枚あたりの設定*/
.list-slide .list {
	margin: 10px;
	/*画像の外側に空けるスペース*/
}


/*FAQ
---------------------------------------------------------------------------*/
/*FAQボックス全体*/
.faq {
	padding: 0 5px;
	/*上下、左右へのボックス内の余白*/
}

/*質問*/
.faq dt {
	border-radius: 3px;
	/*枠を角丸にする指定*/
	margin-bottom: 20px;
	/*下に空けるスペース*/
	background: linear-gradient(#fff, #f7f7f7);
	/*背景グラデーション*/
	text-indent: -2em;
	/*テキストのインデント。質問が複数行になった際に、テキストの冒頭を揃える為に設定しています。*/
	padding: 5px 1em 5px 3em;
	/*ボックス内の余白。ここを変更する場合、上のtext-indentも調整します。*/
	border: 1px solid #e4e2d7;
	/*枠線の幅、線種、色*/
}

/*アイコン（Font Awesome）*/
.faq dt::before {
	font-family: "Font Awesome 5 Free";
	/*Font Awesomeを使う指定*/
	content: "\f059";
	/*使いたいアイコン名をここで指定。Font Awesomeに記載されています。詳しくは当テンプレートのマニュアルを読んで下さい。*/
	color: #9ea445;
	/*アイコンの色*/
	padding-right: 1em;
	/*アイコンとテキストの間の余白*/
}

/*回答*/
.faq dd {
	padding: 5px 1em 30px 3em;
	/*ボックス内の余白**/
}

/*opencloseを適用した要素のカーソル*/
.openclose {
	cursor: pointer;
	/*カーソルの形状。リンクと同じスタイルにしてクリックできると認識してもらう。*/
}

.faq dt span {
	text-indent: 0;
}


/*icon
---------------------------------------------------------------------------*/
.icon {
	display: inline-block;
	margin: 1px;
	line-height: 1.5;
	padding: 0px 10px;
	border: 1px solid #999;
	color: #999;
	font-weight: normal;
	font-size: 0.8em;
}

.icon.newicon {
	border-color: transparent;
	background: #f00;
	color: #fff;
}

.icon.upicon {
	border-color: transparent;
	background: #54b1ff;
	color: #fff;
}

/*btnの設定
---------------------------------------------------------------------------*/
a.btn1, a.btn2 {
	display: inline-block;
	text-decoration: none;
	letter-spacing: 0.07em;
	border-radius: 3px;
	padding: 5px 20px;
	font-size: 1em;
	/* box-shadow: 1px 2px 3px rgba(0, 0, 0, 0.2); */
	margin-top: 4rem;
	border: 1px solid #333;
	max-width: 400px;
}

/*トータルサポートセクションの下のボタンのみmargin-top: 2rem*/
.support-btn-second {
	margin-top: 2rem !important;
}

a.btn1, a.btn2 {
	display: inline-block;
	text-decoration: none;
	letter-spacing: 0.07em;
	border-radius: 3px;
	padding: 5px 20px;
	font-size: 1em;
	margin-top: 4rem;
	border: 1px solid #333;
	max-width: 400px;
}

a.btn1 {
	background: #fff;
	color: #444;
	position: relative;
	overflow: hidden;
	transition: color 0.3s ease;
	z-index: 1;
	text-align: center;
}

a.btn1::before {
	content: '';
	position: absolute;
	top: 0;
	left: -150%;
	width: 150%;
	height: 100%;
	background: #000;
	transform: skewX(-20deg);
	transition: left 0.4s ease;
	z-index: -1;
	transform-origin: top left;
}

a.btn1:hover {
	color: #fff;
	/* transform: scale(1.03); */
}

a.btn1:hover::before {
	left: -20%;
}

a.btn1 i {
	transition: transform 0.3s ease;
}

@keyframes arrowMove {
	0%, 100% {
		transform: translateX(0);
	}

	50% {
		transform: translateX(4px);
	}
}

a.btn1:hover i.fa-arrow-circle-right {
	animation: arrowMove 0.6s ease-in-out infinite;
}

/*SERVICEセクション内のbtn1はアニメーション適用外*/
.list-container .btn1::before {
	display: none;
}

.list-container .btn1 {
	background: #ffce2b;
	color: #444;
}

.list-container .btn1:hover {
	color: #444;
	transform: scale(1.03);
	filter: brightness(1.1);
}

.list-container .btn1:hover i.fa-arrow-circle-right {
	animation: none;
	transform: none;
}

a.btn2 {
	background: #9ea445;
	color: #fff;
	border-color: #9ea445;
}

.radius {
	border-radius: 100px !important;
}

a.btn1 i, a.btn2 i {
	margin-left: 20px;
}

a:hover.btn2 {
	transform: scale(1.03);
	filter: brightness(1.1);
}


/*テーブル
---------------------------------------------------------------------------*/
/*テーブル１行目に入った見出し部分（※caption）*/
.ta1 caption {
	font-weight: bold;
	/*太字に*/
	padding: 10px 5px;
	/*上下、左右へのボックス内の余白。基本的に数行下の「.ta1 th, .ta1 td」のpaddingと揃えておけばOKです。*/
	background: #eee;
	/*背景色*/
	margin-bottom: 15px;
	/*下に空けるスペース*/
}

/*ta1テーブルブロック設定*/
.ta1 {
	border-top: 1px solid #ccc;
	/*テーブルの一番上の線。幅、線種、色*/
	width: 100%;
	margin: 0 auto 30px;
	/*最後の「30px」がテーブルの下に空けるスペースです*/
}

/*tr（１行分）タグ設定*/
.ta1 tr {
	border-bottom: 1px solid #ccc;
	/*テーブルの下線。幅、線種、色*/
}

/*th（左側）、td（右側）の共通設定*/
.ta1 th, .ta1 td {
	padding: 10px 5px;
	/*上下、左右へのボックス内の余白*。基本的に数行上の「.ta1 caption」のpaddingと揃えておけばOKです。*/
	word-break: break-all;
	/*英語などのテキストを改行で自動的に折り返す設定。これがないと、テーブルを突き抜けて表示される場合があります。*/
}

/*th（左側）のみの設定*/
.ta1 th {
	width: 30%;
	/*幅*/
	text-align: left;
	/*左よせにする*/
}


/*背景色パターン
---------------------------------------------------------------------------*/
.bg1 {
	background: #eee;
	width: 100%;
	max-width: 100%;
	padding-left: 0;
	padding-right: 0;
}

.bg2 {
	background: #eee;
}

.bg3 {
	background: #EDEDED;
	position: relative;
	padding-top: 150px;
	/*コンテンツが重ならないように余白を追加*/
	padding-bottom: 0;
	overflow: hidden;
}

/*.aboutセクションの後に続く.bg3セクション上部の白い三角仕切り*/
/*.about+.bg3::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 150px;
	background: #fff;
	clip-path: polygon(0 0%, 100% 0, 100% 100%, 0 25%);
	左側が下がる斜めカット（.about::afterの右側が上がる斜めカットと接続）
	z-index: 10;
	pointer-events: none;
	display: block;
}*/


.bg3 h2 {
	color: #555;
	position: relative;
	z-index: 2;
}

/*予約カレンダーの見出しスタイル*/
.bg3 .section-title {
	flex-direction: column;
	align-items: center;
}

.bg3 .section-title-en {
	display: block;
	font-size: clamp(48px, 1vw, 50px);
	font-weight: 700;
	color: #333;
	letter-spacing: 0.07em;
	text-transform: uppercase;
	margin: 0 0 0.5rem;
	line-height: 1.2;
}

.bg3 .section-title-ja {
	display: block;
	font-size: clamp(14px, 2vw, 16px);
	font-weight: 400;
	color: #999;
	letter-spacing: 0.05em;
	margin: 0;
	padding-bottom: 15px;
}

.calendar-section {
	padding-top: 0;
	padding-bottom: 8rem;
}

/* ギャラリースライダー */
.gallery-swiper-container {
	max-width: 1600px;
	margin: 0 auto;
	padding: 0 3%;
}

.gallery-swiper {
	width: 100%;
	padding: 20px 0 60px 0;
	overflow: visible;
}

.gallery-swiper .swiper-slide {
	height: 400px;
	border-radius: 12px;
	overflow: hidden;
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.gallery-swiper .swiper-slide:hover {
	transform: translateY(-5px);
	box-shadow: 0 8px 30px rgba(0, 0, 0, 0.25);
}

.gallery-swiper .swiper-slide img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.gallery-swiper .swiper-pagination {
	bottom: 0 !important;
}

.gallery-swiper .swiper-pagination-bullet {
	background: #333;
	opacity: 0.4;
	width: 10px;
	height: 10px;
}

.gallery-swiper .swiper-pagination-bullet-active {
	opacity: 1;
	background: #4A90E2;
	width: 30px;
	border-radius: 5px;
}

.gallery-swiper .swiper-button-prev,
.gallery-swiper .swiper-button-next {
	color: #fff;
	background: rgba(74, 144, 226, 0.9);
	width: 50px;
	height: 50px;
	border-radius: 50%;
	transition: background 0.3s ease;
}

.gallery-swiper .swiper-button-prev:hover,
.gallery-swiper .swiper-button-next:hover {
	background: rgba(74, 144, 226, 1);
}

.gallery-swiper .swiper-button-prev:after,
.gallery-swiper .swiper-button-next:after {
	font-size: 20px;
	font-weight: bold;
}

/* KEY FEATURESセクション */
.key-features-section {
	padding-left: 5%;
	padding-right: 5%;
}

/* レスポンシブ対応 */
@media screen and (max-width: 899px) {
	.gallery-swiper .swiper-slide {
		height: 300px;
	}
	
	.gallery-swiper .swiper-button-prev,
	.gallery-swiper .swiper-button-next {
		width: 40px;
		height: 40px;
	}
	
	.gallery-swiper .swiper-button-prev:after,
	.gallery-swiper .swiper-button-next:after {
		font-size: 16px;
	}
}

@media screen and (max-width: 480px) {
	.gallery-swiper .swiper-slide {
		height: 250px;
	}
	
	.gallery-swiper .swiper-button-prev,
	.gallery-swiper .swiper-button-next {
		width: 35px;
		height: 35px;
	}
	
	.gallery-swiper .swiper-button-prev:after,
	.gallery-swiper .swiper-button-next:after {
		font-size: 14px;
	}
	
	.gallery-swiper-container {
		padding: 0 5%;
	}
}


/*PAGE TOP（↑）設定
---------------------------------------------------------------------------*/
.pagetop-show {
	display: block;
}

/*ボタンの設定*/
.pagetop a {
	display: block;
	text-decoration: none;
	text-align: center;
	z-index: 99;
	position: fixed;
	/*スクロールに追従しない(固定で表示)為の設定*/
	right: 20px;
	/*右からの配置場所指定*/
	bottom: 20px;
	/*下からの配置場所指定*/
	color: #fff;
	/*文字色*/
	font-size: 1.5em;
	/*文字サイズ*/
	background: rgba(0, 0, 0, 0.2);
	/*背景色。0,0,0は黒の事で0.2は色が20%出た状態。*/
	width: 60px;
	/*幅*/
	line-height: 60px;
	/*高さ*/
	border-radius: 50%;
	/*円形にする*/
}


/*その他
---------------------------------------------------------------------------*/
.clearfix::after {
	content: "";
	display: block;
	clear: both;
}

.color-theme, .color-theme a {
	color: #9ea445 !important;
}

.color-check, .color-check a {
	color: #f00 !important;
}

.c {
	text-align: center !important;
}

.ws {
	width: 95%;
	display: block;
}

.wl {
	width: 95%;
	display: block;
}

.mb30 {
	margin-bottom: 30px !important;
}

.mt30 {
	margin-top: 30px !important;
}

.look {
	display: inline-block;
	padding: 0px 10px;
	background: #eee;
	border: 1px solid #ccc;
	border-radius: 3px;
	margin: 2px 0;
	word-break: break-all;
}

.small {
	font-size: 0.6em;
	letter-spacing: normal !important;
}

.large {
	font-size: 1.8em !important;
}

.block {
	display: block !important;
}

.sh {
	display: block;
}

.pc {
	display: none;
}

.hidden {
	position: absolute;
	top: -9999px;
	left: -9999px;
}



.split-links {
	display: flex;
	width: 100%;
	overflow: hidden;
	padding: 0;
}

.split-item {
	position: relative;
	flex: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	color: #fff;
	text-decoration: none;
	transition: all 0.4s ease;
	background-size: cover;
	background-position: center;
	aspect-ratio: 16 / 9;
}

.split-item.left {
	background-image: url('../images/space-shiryou.webp');
}

.split-item.right {
	background-image: url('../images/space-contact.webp');
}

.split-item::before {
	content: "";
	position: absolute;
	inset: 0;
	background-color: rgba(0, 0, 0, 0.45);
	transition: transform 0.6s ease, background-color 0.4s ease;
	z-index: 1;
	transform: translateY(0);
}

.split-item:hover::before {
	background-color: rgba(0, 0, 0, 0.15);
	transform: translateY(-100%);
}

.split-item .content {
	position: relative;
	z-index: 2;
	padding: 2em;
}

.split-item .sub {
	font-size: 0.9rem;
	letter-spacing: 0.07em;
	margin-bottom: 0.5em;
	opacity: 0.85;
}

.split-item h2 {
	font-size: clamp(1.8rem, 2.5vw, 2.8rem);
	font-weight: 500;
	margin-bottom: 0.6em;
}

.split-item .text {
	font-size: 0.9rem;
	opacity: 0.9;
}

/* スマホ対応 */
@media (max-width: 768px) {
	.split-links {
		flex-direction: column !important;
		padding: 0 !important;
		gap: 0;
	}

	.split-item {
		width: 100%;
		min-height: 300px;
		aspect-ratio: 16 / 9;
	}

	.split-item .content {
		padding: 30px 22px;
	}

	.split-item .sub {
		font-size: 0.85rem;
		margin-bottom: 0.7em;
	}

	.split-item h2 {
		font-size: clamp(1.5rem, 5vw, 2rem);
		margin-bottom: 0.7em;
		font-weight: 600;
	}

	.split-item .text {
		font-size: 0.9rem;
		line-height: 1.7;
	}
}






/*---------------------------------------------------------------------------
ここから下は画面幅400px以下の追加指定
---------------------------------------------------------------------------*/
@media screen and (max-width:400px) {


	/*btnの設定
---------------------------------------------------------------------------*/
	a.btn1, a.btn2 {
		padding: 0px 15px;
	}

	a.btn1 i, a.btn2 i {
		margin-left: 10px;
	}


	/*　※注意！　下の閉じカッコ　}　はこのブロックに必要なので、削除しないで下さい。　*/

}



/*---------------------------------------------------------------------------
ここから下は画面幅900px以上の追加指定
---------------------------------------------------------------------------*/
@media screen and (min-width:900px) {


	/*全体の設定
---------------------------------------------------------------------------*/
	html, body {
		font-size: 16px;
		/*基準となるフォントサイズの上書き*/
	}


	/*2カラムブロック
---------------------------------------------------------------------------*/
	/*２カラムを囲むブロック*/
	.c2 {
		flex-direction: row;
		justify-content: center;
		align-items: flex-start;
		padding: 6% 0%;
		max-width: 1200px;
		gap: 4%;
		box-sizing: border-box;
		margin: 0 auto;
	}

	/*.bg1セクション内の.c2は100%幅*/
	.bg1 .c2 {
		width: 100%;
		max-width: 100%;
		margin-left: 0;
		margin-right: 0;
		justify-content: space-between;
		gap: 5%;
	}

	/*サービスページの.c2のpadding調整*/
	body.service-page .c2 {
		padding: 2% 0%;
	}

	/*テキスト左・画像右の組み合わせの場合、画像だけ右寄せ*/
	.c2 .text.l+.image.r {
		/* margin-left: auto; */
		max-width: 650px;
	}

	/*画像ブロック*/
	.c2 .image {
		width: 55%;
		flex-shrink: 0;
		display: flex;
		justify-content: center;
		align-items: center;
	}

	/*テキストブロック*/
	.c2 .text {
		width: 40%;
		padding: 0%;
		min-width: 0;
	}


	/*テキストブロック*/
	.c2 .text.r {
		width: 40%;
		padding: 0%;
		min-width: 0;
		/* margin-left: auto; */
	}

	/*.bg1セクション内のテキストブロックを中央に配置*/
	.bg1 .c2 .text {
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: flex-start;
		text-align: left;
		flex: 1;
		max-width: 45%;
	}

	.c2 .text h2 {
		color: #c45852;
		word-break: break-all;
		hyphens: auto;
		font-weight: 500;
	}

	/*テキスト左寄せ*/
	.c2 .text.l {
		text-align: left;
	}

	/*.bg1セクション内のテキストは左寄せ*/
	.bg1 .c2 .text.l,
	.bg1 .c2 .text.r {
		text-align: left;
	}

	/*最初(左)に配置*/
	.c2 .l {
		order: -1;
	}

	/*画像を右側に配置する場合の設定*/
	.c2 .image.r {
		overflow: hidden;
		margin-right: 0;
		/* border-radius: 100px 0px 0px 100px; */
		/*角を丸くする指定。左上、右上、右下、左下への順番。*/
	}

	/*.bg1セクション内の.image.rは右端に寄せる*/
	.bg1 .c2 .image.r {
		margin-right: 0;
		margin-left: auto;
	}

	/*画像を左側に配置する場合の設定*/
	.c2 .image.l {
		overflow: hidden;
		margin-left: 0;
		max-width: 650px;
		/* border-radius: 0px 100px 100px 0px; */
		/*角を丸くする指定。左上、右上、右下、左下への順番。*/
	}

	/*.bg1セクション内の.image.lは左端に寄せる*/
	.bg1 .c2 .image.l {
		margin-left: 0;
		margin-right: auto;
	}


	/*aboutセクション
---------------------------------------------------------------------------*/
	.about {
		padding: 0 !important;
	}

	.about-container {
		flex-direction: column;
		align-items: flex-start;
		margin: 0rem 0 0 0;
	}

	.about-content {
		width: 100%;
		position: relative;
		order: 1;
		padding: 3rem 8%;
		overflow: hidden;
	}

	.about-image {
		width: 100%;
		order: 2;
		display: flex;
		justify-content: flex-end;
	}

	.about-image figure {
		height: auto;
		width: 100%;
		max-width: 90%;
		padding-top: 29.63%;
	}

	.about-text-inner {
		max-width: 100%;
	}

	.about-heading-wrapper {
		margin-bottom: 2rem;
		gap: 1.5rem;
	}

	.about-heading-en {
		font-size: 60px;
	}

	.about-title {
		font-size: clamp(20px, 2.5vw, 20px);
		font-weight: 500;
	}

	.about-description {
		font-size: 0.95em;
		margin-bottom: 2.5rem;
	}

	/*トップページのメイン画像
---------------------------------------------------------------------------*/
	/*テキストブロック*/
	#mainimg #text {
		width: 50%;
		/*幅*/
	}


	/*menubarブロック設定
---------------------------------------------------------------------------*/
	/*メニューブロックの設定*/
	#menubar {
		font-size: 14px;
		/*文字サイズを少し小さくする*/
	}

	#menubar ul {
		display: flex;
		align-items: center;
		/*flexボックスを使う指定*/
		gap: 0;
		flex-wrap: nowrap;
	}

	@media screen and (max-width: 1300px) {
		#menubar a {
			font-size: 1em;
		}
	}

	@media screen and (max-width: 1400px) {
		#menubar {
			font-size: 13px;
		}

		#menubar ul {
			gap: 2px;
		}

		#menubar a {
			padding: 8px 10px;
		}
	}

	@media screen and (max-width: 1200px) {
		#menubar {
			font-size: 12.5px;
		}

		#menubar a {
			padding: 8px 8px;
		}

		#menubar a.menu-btn {
			padding: 8px 12px;
			font-size: 0.9em;
		}
	}

	@media screen and (max-width: 1100px) {
		#menubar {
			font-size: 12.5px;
		}

		#menubar a {
			padding: 8px 6px;
		}

		#menubar a.menu-btn {
			padding: 8px 10px;
			font-size: 0.9em;
		}

		#menubar a.menu-btn .menu-btn-icon {
			width: 14px;
			height: 14px;
		}
	}

	/*ドロップダウンメニュー用のli設定*/
	#menubar li {
		position: relative;
	}

	/*アクセス/搬入出と資料ダウンロードボタンの間の隙間を調整*/
	#menubar li:has(a[href*="access.html"])+li:has(a.menu-btn-download) {
		margin-left: 12px;
	}

	/*メニュー１個あたりの設定*/
	#menubar a {
		padding: 10px 15px;
		/*上下、左右への余白*/
		display: flex;
		align-items: center;
		justify-content: center;
		font-weight: 500;
	}

	/*ウィンドウ幅1300px以下でナビ文字を小さく*/
	@media screen and (max-width: 1300px) {
		#menubar a {
			font-size: 0.85em;
			padding: 10px 10px;
		}
	}

	/*ドロップダウンメニュー項目の矢印*/
	#menubar li.has-dropdown>a::after {
		content: '';
		display: inline-block;
		width: 10px;
		height: 10px;
		background-image: url(../images/down-arrow.png);
		background-size: contain;
		background-repeat: no-repeat;
		background-position: center;
		margin-left: 4px;
		vertical-align: middle;
		position: relative;
		top: 1px;
		transition: transform 0.3s ease, background-image 0.3s ease;
	}

	/*index.htmlでナビが白い時（スクロール前）の矢印*/
	body.index-page header:not(.scrolled) #menubar li.has-dropdown>a::after {
		background-image: url(../images/arrow-white.png);
	}

	/*ナビのホバー時のスタイル（大きい端末用）*/
	#menubar li.has-dropdown>a {
		transition: color 0.3s ease, transform 0.3s ease;
		position: relative;
	}

	#menubar li.has-dropdown:hover>a {
		color: #E1251B;
	}

	/*front-pageでスクロール前のホバー時も赤い矢印に*/
	body.index-page header:not(.scrolled) #menubar li.has-dropdown:hover>a::after {
		background-image: url(../images/arrow-red.png);
	}

	/*ナビゲーション文字のウエーブアニメーション*/
	@keyframes navCharWave {
		0% {
			transform: translateY(0);
		}

		50% {
			transform: translateY(-5px);
		}

		100% {
			transform: translateY(0);
		}
	}

	/*矢印のウエーブアニメーション（回転も含む）*/
	@keyframes navArrowWave {
		0% {
			transform: translateY(0) rotate(0deg);
		}

		50% {
			transform: translateY(-5px) rotate(180deg);
		}

		100% {
			transform: translateY(0) rotate(180deg);
		}
	}

	#menubar>nav>ul>li>a:not(.menu-btn) .nav-char {
		display: inline-block;
		transform: translateY(0);
		will-change: transform;
	}

	#menubar>nav>ul>li>a:not(.menu-btn):hover .nav-char {
		animation: navCharWave 0.6s ease;
	}

	#menubar>nav>ul>li>a:not(.menu-btn) .nav-char-space {
		display: inline-block;
	}

	#menubar li.has-dropdown>a::after {
		will-change: transform;
	}

	#menubar li.has-dropdown:hover>a::after {
		background-image: url(../images/arrow-red.png);
		animation: navArrowWave 0.6s ease forwards;
		animation-delay: calc(var(--text-length) * 0.03s);
	}

	/*ドロップダウンメニュー*/
	#menubar .dropdown-menu {
		position: absolute;
		top: calc(100% + 8px);
		left: 50%;
		transform: translateX(-50%) translateY(-10px);
		background: rgba(0, 0, 0, 0.85);
		width: fit-content;
		min-width: auto;
		opacity: 0;
		visibility: hidden;
		transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.3s ease;
		z-index: 1000;
		list-style: none;
		margin: 0;
		padding: 8px 0;
		border-radius: 8px;
		box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);
		display: flex;
		flex-direction: column;
	}

	/*吹き出しの矢印*/
	#menubar .dropdown-menu::before {
		content: '';
		position: absolute;
		top: -8px;
		left: 50%;
		transform: translateX(-50%);
		width: 0;
		height: 0;
		border-left: 8px solid transparent;
		border-right: 8px solid transparent;
		border-bottom: 8px solid rgba(0, 0, 0, 0.85);
	}

	#menubar li.has-dropdown:hover .dropdown-menu {
		opacity: 1;
		visibility: visible;
		transform: translateX(-50%) translateY(0);
	}

	#menubar .dropdown-menu li {
		display: block;
		width: 100%;
	}

	#menubar .dropdown-menu a {
		color: #fff;
		padding: 8px 16px;
		display: block;
		text-align: left;
		transition: background 0.2s ease;
		white-space: nowrap;
		font-size: 0.85em;
	}

	#menubar .dropdown-menu a:hover {
		background: rgba(255, 255, 255, 0.15);
	}

	/*メニューボタンスタイル（大きな端末用）*/
	#menubar a.menu-btn {
		display: inline-flex;
		align-items: center;
		gap: 8px;
		padding: 6px 16px;
		border-radius: 4px;
		margin: 0 5px;
		text-decoration: none;
		color: #fff;
		font-weight: bold;
		font-size: 0.9em;
		transition: opacity 0.3s ease;
	}

	#menubar a.menu-btn:hover {
		opacity: 0.9;
	}

	#menubar a.menu-btn .menu-btn-icon {
		width: 16px;
		height: 16px;
		object-fit: contain;
		filter: brightness(0) invert(1);
	}

	#menubar a.menu-btn-download {
		background: #E1251B;
		position: relative;
		overflow: hidden;
		transition: background 0.3s ease;
	}

	#menubar a.menu-btn-download::before {
		content: '';
		position: absolute;
		left: 0;
		top: 0;
		width: 0;
		height: 100%;
		background: #B71C14;
		transition: width 0.4s ease;
		z-index: 0;
	}

	#menubar a.menu-btn-download:hover {
		background: #B71C14;
	}

	#menubar a.menu-btn-download:hover::before {
		width: 100%;
	}

	#menubar a.menu-btn-download span,
	#menubar a.menu-btn-download .menu-btn-icon {
		position: relative;
		z-index: 1;
	}

	#menubar a.menu-btn-contact {
		background: #1A1A1A;
		transition: background 0.3s ease;
	}

	#menubar a.menu-btn-contact:hover {
		background: #000000;
	}


	/*３本バー（ハンバーガー）アイコン設定
---------------------------------------------------------------------------*/
	/*ハンバーガーメニューを非表示にする*/
	#menubar_hdr {
		display: none;
	}


	/*「お知らせ」ブロック
---------------------------------------------------------------------------*/
	/*日付(dt)設定*/
	#new dt {
		width: 14em;
		/*幅。14文字(em)分。*/
		display: flex;
		/*flexボックスを使う指定*/
		justify-content: space-between;
		/*日付とアイコンをそれぞれ端に寄せる*/
	}

	/*日付の横のマーク（共通設定）*/
	#new dt span {
		display: inline-block;
		/*表示させる*/
		width: 6em;
		/*幅。6文字(em)分。*/
		background: #999;
		/*背景色*/
		color: #fff;
		/*文字色*/
		font-size: 0.8em;
		/*文字サイズを80%に。*/
		text-align: center;
		/*文字をセンタリング*/
		margin-right: 1em;
		/*アイコンの右側に空けるスペース*/
		align-self: flex-start;
		/*高さを間延びさせない指定*/
		line-height: 1.8;
		/*行間を少し狭く*/
		position: relative;
		top: 0.4em;
		/*上下の配置バランスの微調整*/
	}

	/*bg1設定。サンプルテンプレートでは「サービス」と書いてあるマーク*/
	#new dt span.icon-bg1 {
		background: #9ea445;
		/*背景色*/
	}

	/*記事(dd)設定*/
	#new dd {
		width: calc(100% - 14em);
		/*「14em」は上の「#new dt」のwidthの値です。*/
	}


	/*フッターメニュー設定
---------------------------------------------------------------------------*/
	/*ボックス全体の設定*/
	#footermenu {
		font-size: 0.8em;
		/*文字サイズ*/
		padding: 20px 80px;
		/*上下、左右へのボックス内の余白（上下はそのまま、左右を増やす）*/
	}

	/*フッター会社情報セクション（大きな端末用）*/
	#footermenu .footer-company {
		margin-right: 80px;
	}


	/*listブロック
---------------------------------------------------------------------------*/
	/*listブロック全体を囲むブロック*/
	.list-container {
		display: flex;
		/*flexボックスを使う指定*/
		flex-wrap: wrap;
		justify-content: center;
		/*折り返す指定*/
	}

	/*１個あたりのボックス設定*/
	.list-container .list {
		display: flex;
		/*flexボックスを使う指定*/
		justify-content: space-between;
		/*並びかたの種類の指定*/
		flex-direction: column;
		/*子要素を縦並びにする*/
		width: 32%;
		/*幅。３列になります。*/
		margin-right: 2%;
		margin-bottom: 2.5rem;
	}

	.list-container .list:nth-of-type(3n) {
		margin-right: 0;
	}

	/*ボックス内のtextブロック*/
	.list-container .list .text {
		flex: 1;
		padding: 1.4rem 1.6rem 1.2rem;
	}


	/*求人一覧ページ（ist2　横長ブロックタイプ）
---------------------------------------------------------------------------*/
	/*list2ボックス。１個あたりのボックスの指定です。*/
	.list2 {
		padding-left: 10px;
		/*ボックス内の左側にだけ余白を作る*/
	}


	/*求人一覧ページのlistボックス内の情報詳細欄（tableっぽく見える所）
---------------------------------------------------------------------------*/
	/*list2ブロック内でのline設定*/
	.list2 dl.line dd {
		width: calc(50% - 8em - 10px);
		/*大きな端末向けの再設定。２列にしたいので、100%でなく半分の50%から引いています。*/
		margin-right: 10px;
		/*２列になった際の間のスペース*/
	}

	.list2 dl.line {
		border-top: none;
	}

	.list2 dl.line dt:nth-of-type(1), .list2 dl.line dd:nth-of-type(1),
	.list2 dl.line dt:nth-of-type(2), .list2 dl.line dd:nth-of-type(2) {
		border-top: 1px solid #ccc;
	}


	/*テーブル
---------------------------------------------------------------------------*/
	/*テーブル１行目に入った見出し部分（※caption）*/
	.ta1 caption {
		padding: 5px 15px;
		/*上下、左右へのボックス内の余白*/
	}

	/*th（左側）、td（右側）の共通設定*/
	.ta1 th, .ta1 td {
		padding: 20px 15px;
		/*上下、左右へのボックス内の余白*/
	}

	/*th（左側）のみの設定*/
	.ta1 th {
		width: 20%;
		/*幅*/
	}


	/*その他
---------------------------------------------------------------------------*/
	.ws {
		width: 48%;
		display: inline;
	}

	.sh {
		display: none;
	}

	.pc {
		display: inline-block;
	}


	/*　※注意！　下の閉じカッコ　}　はこのブロックに必要なので、削除しないで下さい。　*/

}


/*ローディングアニメーション
---------------------------------------------------------------------------*/
#loader {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: #fff;
	z-index: 9999;
	display: flex;
	justify-content: center;
	align-items: center;
	opacity: 1;
	visibility: visible;
	transition: opacity 0.5s ease, visibility 0.5s ease;
}

#loader.hide {
	opacity: 0;
	visibility: hidden;
}

.loader-spinner {
	width: 50px;
	height: 50px;
	border: 4px solid #f3f3f3;
	border-top: 4px solid #57524b;
	border-radius: 50%;
	animation: spin 1s linear infinite;
}

@keyframes spin {
	0% {
		transform: rotate(0deg);
	}

	100% {
		transform: rotate(360deg);
	}
}


/*フロアマップタブ切り替え
---------------------------------------------------------------------------*/
.floor-tabs {
	display: flex;
	justify-content: center;
	gap: 0;
	margin-bottom: 30px;
	position: relative;
	padding-bottom: 2px;
	border-bottom: 1px solid #e0e0e0;
}

.floor-tab {
	background: transparent;
	border: none;
	color: #333;
	padding: 10px 30px;
	font-size: 24px;
	cursor: pointer;
	transition: all 0.3s ease;
	font-weight: 500;
	position: relative;
}

.floor-tab.active {
	color: #d32f2f;
	background: transparent;
	border: none;
}

.floor-tab.active::after {
	content: '';
	position: absolute;
	bottom: -3px;
	left: 0;
	right: 0;
	height: 3px;
	background: #d32f2f;
}

.floor-tab:hover:not(.active) {
	color: #666;
}

.floor-content {
	position: relative;
	min-height: 200px;
}

.floor-panel {
	display: none;
	opacity: 0;
	transform: translateY(10px);
	transition: opacity 0.4s ease-in-out, transform 0.4s ease-in-out;
}

.floor-panel.active {
	display: block;
	opacity: 1;
	transform: translateY(0);
}

@media screen and (max-width: 899px) {
	.floor-tab {
		padding: 8px 20px;
		font-size: 14px;
	}
}

/*5F地図コンテナ
---------------------------------------------------------------------------*/
.floor-map-container {
	display: flex;
	gap: 20px;
	margin-top: 40px;
	width: 100%;
}

.floor-map-left,
.floor-map-right {
	flex: 1;
}

.floor-map-left figure,
.floor-map-right figure {
	margin: 0;
}

.floor-map-left img,
.floor-map-right img {
	width: 100%;
	height: auto;
	display: block;
}

@media screen and (max-width: 899px) {
	.floor-map-container {
		flex-direction: column;
		gap: 20px;
	}
}

/*ギャラリー Swiperスタイル
---------------------------------------------------------------------------*/
.gallery-main {
	width: 100%;
	max-width: 100%;
	height: 500px;
	margin-bottom: 20px;
	box-sizing: border-box;
}

.gallery-main .swiper-slide {
	display: flex;
	align-items: center;
	justify-content: center;
}

.gallery-main .swiper-slide img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.gallery-main .swiper-button-next,
.gallery-main .swiper-button-prev {
	color: #333;
}

.gallery-main .swiper-button-next:hover,
.gallery-main .swiper-button-prev:hover {
	color: #E1251B;
}

.gallery-thumbs {
	width: 100%;
	max-width: 100%;
	height: 200px;
	padding: 10px 0;
	box-sizing: border-box;
}

.gallery-thumbs .swiper-slide {
	opacity: 0.5;
	cursor: pointer;
	transition: opacity 0.3s ease;
	height: calc((100% - 10px) / 2);
}

.gallery-thumbs .swiper-slide-thumb-active {
	opacity: 1;
}

.gallery-thumbs .swiper-slide img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 4px;
}

@media screen and (max-width: 899px) {
	.gallery-main {
		height: 300px;
	}

	.gallery-thumbs {
		height: 160px;
	}
}

/*4面LEDサンプル映像スタイル
---------------------------------------------------------------------------*/
.led-sample-container {
	position: relative;
	max-width: 1200px;
	margin: 40px auto 0;
	padding: 0;
}

.led-sample-display {
	background: #000;
	width: 100%;
	aspect-ratio: 16 / 9;
	position: relative;
	overflow: hidden;
}

.led-sample-display figure {
	margin: 0;
	width: 100%;
	height: 100%;
	position: relative;
}

.led-sample-display img,
.led-sample-display video {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/*動画上に表示されるコントロールバー*/
.led-video-overlay-controls {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	background: linear-gradient(to top, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0.4) 50%, transparent 100%);
	padding: 20px 15px 15px;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.3s ease, visibility 0.3s ease;
	pointer-events: none;
}

.led-sample-display:hover .led-video-overlay-controls {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

/*プログレスバー*/
.led-progress-bar {
	width: 100%;
	height: 4px;
	background: rgba(255, 255, 255, 0.3);
	border-radius: 2px;
	margin-bottom: 15px;
	cursor: pointer;
	position: relative;
}

.led-progress-filled {
	height: 100%;
	background: #E1251B;
	border-radius: 2px;
	width: 0%;
	transition: width 0.1s linear;
}

/*オーバーレイコントロール*/
.led-overlay-controls {
	display: flex;
	align-items: center;
	gap: 15px;
}

.led-overlay-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	background: rgba(255, 255, 255, 0.9);
	border: none;
	border-radius: 50%;
	cursor: pointer;
	transition: background 0.3s ease, transform 0.2s ease;
	color: #333;
	font-size: 0.9em;
	padding: 0;
}

.led-overlay-btn:hover {
	background: #fff;
	transform: scale(1.1);
}

.led-time-display {
	color: #fff;
	font-size: 0.85em;
	font-weight: 500;
	margin-left: auto;
	text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);
}

.led-sample-download {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 15px;
	margin-top: 20px;
}

.led-video-controls {
	display: flex;
	gap: 10px;
}

.led-control-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	background: #fff;
	border: 1px solid #D9D9D9;
	border-radius: 4px;
	cursor: pointer;
	transition: background 0.3s ease, color 0.3s ease;
	color: #333;
	font-size: 1em;
	padding: 0;
}

.led-control-btn:hover {
	background: #f5f5f5;
	color: #000;
}

.led-download-btn {
	display: inline-block;
	padding: 12px 24px;
	background: #fff;
	border: 1px solid #D9D9D9;
	color: #333;
	text-decoration: none;
	font-size: 0.95em;
	border-radius: 4px;
	transition: background 0.3s ease, color 0.3s ease;
}

.led-download-btn:hover {
	background: #f5f5f5;
	color: #000;
}

@media screen and (max-width: 899px) {
	.led-sample-container {
		padding: 0;
	}

	.led-download-btn {
		padding: 10px 20px;
		font-size: 0.9em;
	}
}

/*ご使用例スタイル
---------------------------------------------------------------------------*/
.usecase-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 20px;
	max-width: 1200px;
	width: 100%;
	margin: 40px auto 0;
	padding: 0;
	box-sizing: border-box;
}

.usecase-card {
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	border-radius: 4px;
}

.usecase-card figure {
	margin: 0;
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
}

.usecase-card img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.usecase-content {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	padding: 20px;
	color: #fff;
	background: linear-gradient(to top, rgba(0, 0, 0, 0.7) 0%, rgba(0, 0, 0, 0.3) 50%, transparent 100%);
}

.usecase-content h3 {
	margin: 0 0 10px 0;
	font-size: 1.3em;
	font-weight: bold;
	color: #fff;
}

.usecase-content ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.usecase-content li {
	margin: 5px 0;
	font-size: 0.95em;
	color: #fff;
	line-height: 1.5;
}

.usecase-content li::before {
	content: '・';
	margin-right: 5px;
}

@media screen and (max-width: 899px) {
	.usecase-grid {
		grid-template-columns: 1fr;
		gap: 15px;
		padding: 0;
	}

	.usecase-content {
		padding: 15px;
	}

	.usecase-content h3 {
		font-size: 1.1em;
	}

	.usecase-content li {
		font-size: 0.9em;
	}
}

/*参考レイアウトスタイル
---------------------------------------------------------------------------*/
.layout-container {
	max-width: 1200px;
	width: 100%;
	margin: 40px auto 0;
	padding: 0 5%;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	gap: 50px;
	justify-content: center;
}

.layout-item {
	width: 100%;
	text-align: center;
}

.layout-title {
	font-size: 1.3rem;
	font-weight: 600;
	color: #333;
	margin-bottom: 20px;
	padding: 12px 20px;
	background: #f5f5f5;
	border-left: 4px solid #4A90E2;
	text-align: left;
}

.layout-plan {
	margin: 0 auto 20px auto;
	max-width: 70%;
}

.layout-plan img {
	width: 100%;
	height: auto;
	display: block;
	border-radius: 4px;
}

.layout-download-btn {
	display: inline-block;
	padding: 10px 20px;
	background: #fff;
	border: 1px solid #D9D9D9;
	color: #333;
	text-decoration: none;
	font-size: 0.95em;
	border-radius: 4px;
	transition: background 0.3s ease, color 0.3s ease;
}

.layout-download-btn:hover {
	background: #f5f5f5;
	color: #000;
}

@media screen and (max-width: 899px) {
	.layout-container {
		padding: 0;
		gap: 40px;
	}

	.layout-item {
		width: 100%;
	}

	.layout-title {
		font-size: 1.1rem;
		padding: 10px 15px;
	}

	.layout-plan {
		max-width: 100%;
	}

	.layout-download-btn {
		padding: 8px 16px;
		font-size: 0.9em;
	}
}

/*控室スタイル
---------------------------------------------------------------------------*/
.greenroom-container {
	display: flex;
	gap: 30px;
	max-width: 1200px;
	width: 100%;
	margin: 40px auto 0;
	padding: 0 5%;
	align-items: flex-start;
	box-sizing: border-box;
}

.greenroom-left {
	flex: 1;
}

.greenroom-map {
	margin: 0;
}

.greenroom-map img {
	width: 100%;
	height: auto;
	display: block;
	border-radius: 4px;
}

.greenroom-right {
	flex: 1;
	min-width: 0;
}

.greenroom-swiper {
	width: 100%;
	max-width: 100%;
	position: relative;
	overflow: hidden;
	box-sizing: border-box;
}

.greenroom-swiper .swiper-wrapper {
	display: flex;
	width: 100%;
}

.greenroom-swiper .swiper-slide {
	position: relative;
	width: 100% !important;
	flex-shrink: 0;
	height: auto;
	box-sizing: border-box;
}

.greenroom-swiper .swiper-slide figure {
	margin: 0;
	position: relative;
	width: 100%;
	height: auto;
	display: block;
}

.greenroom-swiper .swiper-slide img {
	width: 100%;
	height: auto;
	display: block;
	border-radius: 4px;
	max-width: 100%;
}

.greenroom-swiper .swiper-slide figcaption {
	position: absolute;
	bottom: 15px;
	right: 15px;
	background: rgba(0, 0, 0, 0.6);
	color: #fff;
	padding: 8px 15px;
	border-radius: 4px;
	font-size: 0.95em;
	font-weight: bold;
	z-index: 10;
	pointer-events: none;
}

.greenroom-swiper .swiper-button-next,
.greenroom-swiper .swiper-button-prev {
	color: #333;
}

.greenroom-swiper .swiper-button-next:hover,
.greenroom-swiper .swiper-button-prev:hover {
	color: #E1251B;
}

/* 控室サムネイルスライダー */
.greenroom-thumbs {
	width: 100%;
	max-width: 100%;
	height: 200px;
	margin-top: 20px;
	padding: 10px 0;
	box-sizing: border-box;
}

.greenroom-thumbs .swiper-slide {
	opacity: 0.5;
	cursor: pointer;
	transition: opacity 0.3s ease;
	height: calc((100% - 10px) / 2);
}

.greenroom-thumbs .swiper-slide-thumb-active {
	opacity: 1;
}

.greenroom-thumbs .swiper-slide img {
	width: 100%;
	height: 100%;
	display: block;
	border-radius: 4px;
	object-fit: cover;
}

/* 控室資料ボタン */
.greenroom-buttons {
	display: flex;
	flex-direction: column;
	gap: 15px;
	margin-top: 20px;
}

.greenroom-btn {
	display: inline-block;
	padding: 12px 24px;
	background: #fff;
	border: 1px solid #D9D9D9;
	color: #333;
	text-decoration: none;
	font-size: 0.95em;
	border-radius: 4px;
	text-align: center;
	transition: background 0.3s ease, color 0.3s ease;
}

.greenroom-btn:hover {
	background: #f5f5f5;
	color: #000;
}

@media screen and (max-width: 899px) {
	.greenroom-container {
		flex-direction: column;
		gap: 20px;
		padding: 0;
	}

	.greenroom-swiper .swiper-slide figcaption {
		bottom: 10px;
		right: 10px;
		padding: 6px 12px;
		font-size: 0.85em;
	}

	.greenroom-thumbs {
		height: 160px;
		margin-top: 15px;
		padding: 5px 0;
	}

	.greenroom-buttons {
		margin-top: 15px;
		gap: 12px;
	}

	.greenroom-btn {
		padding: 10px 20px;
		font-size: 0.9em;
	}
}

/*会場MAP・仕様スタイル
---------------------------------------------------------------------------*/
/* section+section {
	margin-top: 60px;
} */

.venue-spec-section {
	padding-left: 5%;
	padding-right: 5%;
	padding-top: 0;
	padding-bottom: 0;
}

.venue-spec-container {
	display: flex;
	flex-direction: column;
	gap: 40px;
	margin-top: 30px;
	align-items: center;
}

.venue-map {
	width: 100%;
	max-width: 80%;
}

.venue-map figure {
	margin: 0;
}

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

.spec-cards-grid {
	width: 100%;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
}

.spec-card {
	background: #fff;
	border: 1px solid #e0e0e0;
	padding: 0;
	overflow: hidden;
}

.spec-title-row {
	display: flex;
	align-items: center;
	gap: 0;
	padding: 5px;
	border-bottom: 1px solid #e0e0e0;
}

.spec-icon {
	width: 50px;
	height: 50px;
	background: transparent;
	border-radius: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}

.spec-icon i {
	font-size: 24px;
	color: #9e9e9e;
}

.spec-title {
	font-size: 1.2em;
	font-weight: bold;
	margin: 0;
	color: #333;
}

.spec-content {
	color: #333;
	font-size: 0.95em;
	line-height: 1.5;
	padding: 20px;
}

.spec-content p {
	margin: 0;
}

.spec-note {
	font-size: 0.85em;
	color: #999;
	margin-top: 10px;
}

.spec-link {
	display: inline-block;
	margin-top: 10px;
	color: #E1251B;
	text-decoration: none;
	font-size: 0.9em;
	transition: color 0.3s ease;
}

.spec-link:hover {
	color: #c01e15;
}

.spec-link i {
	margin-left: 5px;
	font-size: 0.8em;
}

.spec-btn {
	display: block;
	width: 100%;
	padding: 10px;
	margin-bottom: 10px;
	background: #f5f5f5;
	border: 1px solid #ddd;
	border-radius: 4px;
	text-align: center;
	color: #333;
	text-decoration: none;
	transition: background 0.3s ease, border-color 0.3s ease;
}

.spec-btn:hover {
	background: #E1251B;
	border-color: #E1251B;
	color: #fff;
}

.spec-btn:last-child {
	margin-bottom: 0;
}

@media screen and (max-width: 899px) {
	.venue-spec-container {
		flex-direction: column;
		gap: 30px;
	}

	.venue-map {
		max-width: 100%;
	}

	.spec-cards-grid {
		grid-template-columns: 1fr;
	}
}

/*料金表スタイル
---------------------------------------------------------------------------*/
.price-intro {
	max-width: 1200px;
	margin: 40px auto 0;
	padding: 0%;
	text-align: center;
}

.price-intro p {
	margin: 0 0 15px;
	color: #333;
	line-height: 1.8;
}

.price-link {
	color: #E1251B;
	text-decoration: none;
	transition: opacity 0.3s ease;
}

.price-link:hover {
	opacity: 0.8;
	text-decoration: underline;
}

.price-download {
	margin: 30px 0 0;
	max-width: 450px;
}

.price-download .download-item-double {
	background: #fff;
	border: 1px solid #e0e0e0;
	border-radius: 8px;
}

.price-download-btn {
	display: inline-block;
	padding: 12px 32px;
	background: #E1251B;
	color: #fff;
	text-decoration: none;
	border-radius: 4px;
	font-weight: bold;
	transition: opacity 0.3s ease;
}

.price-download-btn:hover {
	opacity: 0.9;
}

.price-notice {
	max-width: 1200px;
	margin: 0 auto 20px;
	padding: 0;
}

/*小見出しの下のprice-noticeのマージン調整*/
.section-subtitle+.price-notice {
	margin-top: 15px;
	margin-bottom: 20px;
}

.price-notice p {
	margin: 0 0 10px;
	color: #666;
	font-size: 0.9em;
	line-height: 1.6;
}

.price-table-container {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0;
	overflow-x: auto;
	border: 1px solid #e0e0e0;
	border-radius: 8px;
	background: #fff;
	box-sizing: border-box;
	font-size: 15px;
	position: relative;
}

/* スクロールヒントの矢印（モバイル用） */
.price-table-container::before {
	content: '→';
	position: absolute;
	top: 50%;
	right: 15px;
	transform: translateY(-50%);
	font-size: 28px;
	color: #E1251B;
	opacity: 0;
	pointer-events: none;
	z-index: 2;
	font-weight: 300;
	text-shadow: 0 0 10px rgba(255, 255, 255, 0.8);
	transition: opacity 0.3s ease;
}

@media screen and (max-width: 899px) {
	.price-table-container::before {
		opacity: 1;
		animation: scrollArrow 1.5s ease-in-out infinite;
	}

	.price-table-container.scrolled::before {
		opacity: 0;
	}
}

@keyframes scrollArrow {
	0%, 100% {
		transform: translateY(-50%) translateX(0);
		opacity: 0.9;
	}

	50% {
		transform: translateY(-50%) translateX(10px);
		opacity: 0.5;
	}
}

.price-table {
	width: 100%;
	min-width: 800px;
	border-collapse: collapse;
	background: #fff;
	border-radius: 8px;
	overflow: hidden;
	border: none;
	box-shadow: none;
	table-layout: auto;
}

/* テーブル列幅の設定（4列の場合） */
.price-table th:nth-child(1),
.price-table td:nth-child(1) {
	min-width: 180px;
	word-wrap: break-word;
	word-break: break-word;
}

.price-table th:nth-child(2),
.price-table td:nth-child(2) {
	min-width: 120px;
	white-space: normal;
	word-break: break-word;
}

.price-table th:nth-child(3),
.price-table td:nth-child(3) {
	min-width: 200px;
	word-break: break-word;
}

.price-table th:nth-child(4),
.price-table td:nth-child(4) {
	min-width: 300px;
	word-break: break-word;
}

/* 5列テーブルの場合の列幅調整（項目、階、時間、料金、内容） */
.price-table th:nth-child(5),
.price-table td:nth-child(5) {
	width: 40%;
}

/* 5列テーブルの場合、1列目（項目）の幅を調整 */
.price-table:has(th:nth-child(5)) th:nth-child(1),
.price-table:has(th:nth-child(5)) td:nth-child(1) {
	width: 20% !important;
}

.price-table:has(th:nth-child(5)) th:nth-child(2),
.price-table:has(th:nth-child(5)) td:nth-child(2) {
	width: 8% !important;
	white-space: nowrap;
}

.price-table:has(th:nth-child(5)) th:nth-child(3),
.price-table:has(th:nth-child(5)) td:nth-child(3) {
	width: 12% !important;
	white-space: nowrap;
}

.price-table:has(th:nth-child(5)) th:nth-child(4),
.price-table:has(th:nth-child(5)) td:nth-child(4) {
	width: 20% !important;
}

/* rowspanがある時間列は改行を許可 */
.price-table td[rowspan]:nth-child(2) {
	white-space: normal;
}

.price-table thead {
	background: #333;
	color: #fff;
}

.price-table th {
	padding: 15px 20px;
	text-align: left;
	font-weight: bold;
	font-size: 0.95em;
	letter-spacing: 0.05em;
	border-right: 1px solid rgba(255, 255, 255, 0.1);
	border-bottom: 1px solid rgba(255, 255, 255, 0.2);
	border-left: none;
	border-top: none;
	word-wrap: break-word;
	overflow-wrap: break-word;
}

.price-table th:first-child {
	border-left: none;
}

.price-table th:last-child {
	border-right: none;
}

.price-table tbody tr {
	border-top: 1px solid #e0e0e0;
}

.price-table tbody tr:first-child {
	border-top: none;
}

.price-table td {
	padding: 15px 20px;
	vertical-align: top;
	color: #333;
	line-height: 1.8;
	border-right: 1px solid #e0e0e0 !important;
	border-top: 1px solid #e0e0e0;
	border-left: none;
	border-bottom: none;
	word-wrap: break-word;
	overflow-wrap: break-word;
}

.price-table td:first-child {
	border-left: none;
}

/* 料金列（3列目）の右ボーダーを確実に表示 */
.price-table tbody td:nth-child(3) {
	border-right: 1px solid #e0e0e0 !important;
}

.price-table td:last-child {
	border-right: none;
}

.price-table tbody tr:first-child td {
	border-top: none;
}

.price-table tbody tr:last-child td {
	border-bottom: 1px solid #e0e0e0 !important;
}

/* テーブルの外枠を確実に表示 */
.price-table thead th:first-child {
	border-left: none;
}

.price-table thead th:last-child {
	border-bottom: 1px solid #e0e0e0 !important;
}


.price-table tbody td:first-child {
	border-bottom: 1px solid #e0e0e0 !important;
}

.price-table tbody td:last-child {
	border-bottom: 1px solid #e0e0e0 !important;
}

.price-table tbody tr:first-child td {
	border-top: none;
}

.price-table tbody tr:last-child td {
	border-bottom: 1px solid #e0e0e0 !important;

}

.price-table td:first-child {
	font-weight: 500;
	color: #222;
}

.price-table td:nth-child(3) {
	font-weight: bold;
	color: #333;
	white-space: normal;
	word-break: break-word;

}

.price-table td a.price-link {
	color: #E1251B;
	text-decoration: none;
	transition: opacity 0.3s ease;
}

.price-table td a.price-link:hover {
	opacity: 0.8;
	text-decoration: underline;
}

@media screen and (max-width: 899px) {
	.price-intro {
		padding: 0;
		text-align: left;
	}

	.price-download {
		max-width: 100%;
	}

	.price-notice {
		padding: 0;
	}

	.price-table-container {
		padding: 0;
		margin-top: 30px;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}

	.price-table-container::before {
		font-size: 24px;
		right: 12px;
	}

	.price-table {
		font-size: 0.85em;
		min-width: 600px;
	}

	.price-table th,
	.price-table td {
		padding: 12px 10px;
		font-size: 0.9em;
		word-wrap: break-word;
		overflow-wrap: break-word;
	}

	.price-table th:nth-child(1),
	.price-table td:nth-child(1) {
		min-width: 120px;
	}

	.price-table th:nth-child(2),
	.price-table td:nth-child(2) {
		min-width: 100px;
	}

	.price-table th:nth-child(3),
	.price-table td:nth-child(3) {
		min-width: 150px;
		white-space: normal;
	}

	.price-table th:nth-child(4),
	.price-table td:nth-child(4) {
		min-width: 200px;
	}
}

/*キャンセルポリシースタイル
---------------------------------------------------------------------------*/
.cancellation-policy-container {
	max-width: 1200px;
	margin: 40px auto 0;
	padding: 0 5%;
}

/* 期間と料金のリスト */
.cancellation-list {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 20px;
	margin-bottom: 60px;
}

.cancellation-item {
	display: flex;
	flex-direction: row;
	align-items: flex-start;
	gap: 15px;
	padding: 20px;
	background: #fff;
	border: 1px solid #e0e0e0;
	border-radius: 8px;
}


.cancellation-number {
	flex-shrink: 0;
	width: 50px;
	height: 50px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: #E1251B;
	color: #fff;
	font-size: 1.2em;
	font-weight: bold;
	border-radius: 50%;
}

.cancellation-item-content {
	display: flex;
	flex-direction: column;
	gap: 8px;
	flex: 1;
}

.cancellation-period {
	font-weight: bold;
	color: #333;
	font-size: 1em;
	line-height: 1.5;
}

.cancellation-fee {
	color: #666;
	font-size: 0.95em;
	line-height: 1.6;
}

/* タイムライン */
.cancellation-timeline {
	position: relative;
	margin-bottom: 40px;
	padding-top: 60px;
}

.timeline-dates {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr;
	position: relative;
	margin-bottom: 20px;
	gap: 0;
}

.timeline-date {
	text-align: center;
	font-size: 0.85em;
	color: #666;
	line-height: 1.4;
	font-weight: 500;
	padding: 0 5px;
}

.timeline-line {
	position: absolute;
	top: 30px;
	left: 0;
	right: 0;
	height: 2px;
	background: #e0e0e0;
	z-index: 0;
}

.timeline-boxes {
	display: grid;
	/* 日付の6列グリッドに合わせて、ボックスを5列で配置 */
	/* 各ボックスは日付の間隔に対応（1-2列目、2-3列目、3-4列目、4-5列目、5-6列目） */
	grid-template-columns: repeat(5, 1fr);
	position: relative;
	margin-top: 20px;
	gap: 0;
	/* 日付の最初の位置（1列目の中央）から開始し、最後の位置（6列目の中央）で終了 */
	margin-left: calc((100% / 6) * 0.5);
	width: calc(100% - (100% / 6));
}

.timeline-box {
	position: relative;
	background: #f8f8f8;
	border: 1px solid #e0e0e0;
	border-radius: 8px;
	padding: 15px;
	min-height: 150px;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	margin-right: -1px;
}

.timeline-box:last-child {
	margin-right: 0;
}

.timeline-box-label {
	font-size: 0.85em;
	color: #666;
	margin-bottom: 10px;
	line-height: 1.4;
	font-weight: 500;
}

.timeline-box-content {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	flex-wrap: wrap;
	margin-top: auto;
}

.fee-box {
	background: #fff;
	border: 1px solid #d0d0d0;
	border-radius: 4px;
	padding: 10px 15px;
	font-size: 0.9em;
	color: #333;
	text-align: center;
	line-height: 1.4;
	font-weight: 500;
	min-width: 80px;
}

.fee-box-plus {
	font-size: 1.2em;
	color: #666;
	font-weight: bold;
}

.timeline-box-last {
	justify-content: center;
	align-items: center;
}

.timeline-box-last .timeline-box-label {
	margin-bottom: 0;
	text-align: center;
	color: #333;
	font-weight: bold;
}

/* 注釈 */
.cancellation-notes {
	margin-top: 40px;
	padding-top: 30px;
	border-top: 1px solid #e0e0e0;
}

.cancellation-notes p {
	margin: 0 0 10px;
	color: #666;
	font-size: 0.9em;
	line-height: 1.8;
}

.cancellation-notes p:last-child {
	margin-bottom: 0;
}

/*小さい端末用*/
@media screen and (max-width: 899px) {
	.cancellation-policy-container {
		padding: 0;
		margin-top: 30px;
	}

	.cancellation-list {
		grid-template-columns: 1fr;
		gap: 15px;
		margin-bottom: 40px;
	}

	.cancellation-item {
		gap: 12px;
		padding: 15px;
	}

	.cancellation-number {
		width: 40px;
		height: 40px;
		font-size: 1em;
	}

	.cancellation-item-content {
		gap: 6px;
	}

	.cancellation-period {
		font-size: 0.95em;
	}

	.cancellation-fee {
		font-size: 0.9em;
	}

	.cancellation-timeline {
		padding-top: 40px;
		margin-bottom: 30px;
	}

	.timeline-dates {
		flex-wrap: wrap;
		gap: 10px;
	}

	.timeline-date {
		font-size: 0.75em;
		flex: 0 0 calc(50% - 5px);
	}

	.timeline-boxes {
		flex-direction: column;
		gap: 15px;
	}

	.timeline-box {
		min-height: auto;
		padding: 12px;
	}

	.timeline-box-content {
		flex-direction: column;
		gap: 5px;
	}

	.fee-box {
		width: 100%;
		min-width: auto;
	}

	.fee-box-plus {
		transform: rotate(90deg);
	}

	.cancellation-notes {
		margin-top: 30px;
		padding-top: 20px;
	}

	.cancellation-notes p {
		font-size: 0.85em;
	}
}

/*他のページを見るスタイル
---------------------------------------------------------------------------*/
.other-pages-container {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 30px;
	max-width: 1200px;
	margin: 40px auto 5rem;
	padding: 0;
}

.other-page-card {
	position: relative;
	display: block;
	text-decoration: none;
	overflow: hidden;
	border-radius: 8px;
	background: #000;
	opacity: 0;
	transform: translateY(50px);
	transition: opacity 0.6s ease-out, transform 0.6s ease-out, box-shadow 0.3s ease;
}

.other-page-card-1 {
	transition-delay: 0s;
}

.other-page-card-2 {
	transition-delay: 0.2s;
}

.other-page-card-3 {
	transition-delay: 0.4s;
}

.other-pages-container.blurstyle .other-page-card {
	opacity: 1;
	transform: translateY(0);
}

.other-page-card:hover {
	transform: translateY(-5px);
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2);
}

.other-page-image {
	position: relative;
	width: 100%;
	aspect-ratio: 4 / 3;
	overflow: hidden;
}

.other-page-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.3s ease;
}

.other-page-card:hover .other-page-image img {
	transform: scale(1.05);
}

.other-page-overlay {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: rgba(0, 0, 0, 0.5);
	transition: background 0.3s ease;
}

.other-page-card:hover .other-page-overlay {
	background: rgba(0, 0, 0, 0.3);
}

.other-page-content {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	padding: 16px 24px;
	color: #fff;
	z-index: 2;
}

.other-page-sub {
	margin: 0px 0 0px;
	font-size: 1em;
	font-weight: 500;
	color: #fff;
	letter-spacing: 0.05em;
}

.other-page-title {
	margin: 0;
	line-height: 1.4;
	font-size: 1.7em;
	font-weight: bold;
	color: #fff;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

/*小さい端末用*/
@media screen and (max-width: 899px) {
	.other-pages-container {
		grid-template-columns: 1fr;
		gap: 18px;
		padding: 0;
		margin-top: 30px;
		margin-bottom: 3rem;
	}

	.other-page-card {
		border-radius: 10px;
		box-shadow: 0 3px 12px rgba(0, 0, 0, 0.08);
		transition: all 0.3s ease;
	}

	.other-page-card:active {
		transform: scale(0.98);
		box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
	}

	.other-page-content {
		padding: 20px;
	}

	.other-page-sub {
		font-size: 0.95em;
		color: #fff;
		margin-bottom: 8px;
	}

	.other-page-title {
		font-size: 1.5em;
		font-weight: 600;
		color: #fff;
	}
}

/*サービスページスタイル
---------------------------------------------------------------------------*/
.service-subtitle {
	text-align: left;
	color: #333;
	font-size: 1em;
	line-height: 1.8;
	margin: 0 auto 40px;
	max-width: 1200px;
	/* padding: 0 5%; */
}

.service-detail-btn {
	display: inline-block;
	padding: 12px 32px;
	background: #fff;
	border: 1px solid #333;
	color: #444;
	text-decoration: none;
	font-size: 0.95em;
	border-radius: 4px;
	position: relative;
	overflow: hidden;
	transition: color 0.3s ease;
	z-index: 1;
	margin-top: 20px;
	min-width: 220px;
	text-align: center;
}

.service-detail-btn::before {
	content: '';
	position: absolute;
	top: 0;
	left: -150%;
	width: 150%;
	height: 100%;
	background: #000;
	transform: skewX(-20deg);
	transition: left 0.4s ease;
	z-index: -1;
	transform-origin: top left;
}

.service-detail-btn i {
	transition: transform 0.3s ease;
	margin-left: 8px;
}

/*サービスページのボタンコンテナを左寄せ*/
.c2 .text .c {
	text-align: left !important;
}

.service-detail-btn:hover {
	color: #fff;
}

.service-detail-btn:hover::before {
	left: -20%;
}

.service-detail-btn:hover i.fa-arrow-circle-right {
	animation: arrowMove 0.6s ease-in-out infinite;
}

/*小さい端末用*/
@media screen and (max-width: 899px) {
	.service-subtitle {
		font-size: 0.9em;
		margin-bottom: 40px;
		padding: 0;
	}

	.service-detail-btn {
		padding: 10px 24px;
		font-size: 0.9em;
		width: 100%;
		text-align: center;
	}
}

/*パッケージ利用プランページスタイル
---------------------------------------------------------------------------*/
.package-label {
	margin: 0 0 15px;
	font-size: 0.85em;
	color: #666;
	font-weight: 500;
	letter-spacing: 0.08em;
	line-height: 1.5;
}

.package-note {
	margin: 15px 0;
	font-size: 0.85em;
	color: #E1251B;
	line-height: 1.8;
	letter-spacing: 0.05em;
}



/* --- ここからサポートセクション用のCSS --- */

/* 外側の枠線コンテナ */
.support-container {
	box-sizing: border-box;
	/* font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "HGS明朝E", "MS PMincho", "MS 明朝", serif; */
	width: 100%;
	max-width: 1300px;
	border: 1px solid #555;
	/* テラコッタ色の枠線 */
	padding: 50px 40px;
	margin: 0 auto;
	/* 中央寄せ */
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 40px;
	/* background-color: #eee; */
	color: #333;
	flex-wrap: nowrap;
}

/* 左側のテキストエリア */
.support-text-content {
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	min-width: 0;
	max-width: 600px;
}

/* メインタイトル (SUPPORT) */
.support-main-title {
	color: #c45852;
	font-size: 3rem;
	font-weight: normal;
	letter-spacing: 0.1em;
	margin: 0 0 8px 0;
	/* font-family: serif; */
	line-height: 1.2;
	font-weight: 700;
}

/* 黒文字タイトル (サポート体制) */
.support-sub-title {
	font-size: 1.5rem;
	font-weight: 500;
	color: #555;
	margin: 0 0 18px 0;
	letter-spacing: 0.05em;
	line-height: 1.4;
}

/* 本文ブロック */
.support-body-block {
	margin-bottom: 5px;
}

.support-body-heading {
	font-size: 1.15rem;
	font-weight: bold;
	margin: 0 0 10px 0;
	letter-spacing: 0.02em;
}

.support-description {
	font-size: 0.98rem;
	line-height: 2;
	color: #555;
	margin: 0;
}

/* リンクエリア */
.support-link-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 15px;
	flex: 0 1 auto;
	justify-content: center;
	align-items: stretch;
}

.support-link-list li {
	margin-bottom: 0;
}

.support-link-list a {
	text-decoration: none;
	color: #444;
	font-weight: 600;
	font-size: 0.88rem;
	border: 1px solid #333;
	padding: 12px 22px;
	border-radius: 4px;
	background: #fff;
	position: relative;
	overflow: hidden;
	transition: color 0.3s ease;
	z-index: 1;
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	text-align: left;
	white-space: nowrap;
	width: 210px;
}

.support-link-list a::before {
	content: '';
	position: absolute;
	top: 0;
	left: -150%;
	width: 150%;
	height: 100%;
	background: #000;
	transform: skewX(-20deg);
	transition: left 0.4s ease;
	z-index: -1;
	transform-origin: top left;
}

.support-link-list a i {
	transition: transform 0.3s ease;
}

.support-link-list a:hover {
	color: #fff;
}

.support-link-list a:hover::before {
	left: -20%;
}

.support-link-list a:hover i.fa-arrow-circle-right {
	animation: arrowMove 0.6s ease-in-out infinite;
}

/* 右側の画像エリア */
.support-image-content {
	flex: 0 1 auto;
	min-width: 300px;
	max-width: 480px;
}

.support-image-content img {
	width: 100%;
	height: auto;
	display: block;
	object-fit: cover;
	max-height: 600px;
}

/* サポート体制の特徴とリンクを横並びにするラッパー */
.support-features-wrapper {
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	align-items: flex-start;
	gap: 25px;
	margin: 28px 0 0;
}

/* サポート体制の特徴アイコン行（2つに削減） */
.support-feature-grid {
	display: flex;
	justify-content: flex-start;
	align-items: stretch;
	gap: 20px;
	flex: 0 1 auto;
}

.support-feature-item {
	flex: 0 0 auto;
	width: 180px;
	text-align: center;
	padding: 18px 12px;
	background: #fafafa;
	border-radius: 8px;
}

.support-feature-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto 10px;
	font-size: 2.5rem;
	color: #c45852;
}

.support-feature-title {
	font-size: 0.88rem;
	font-weight: 700;
	margin: 0 0 8px;
	color: #333;
	text-align: center;
	letter-spacing: 0.04em;
	line-height: 1.5;
}

.support-feature-text {
	font-size: 0.76rem;
	line-height: 1.7;
	color: #666;
	margin: 0;
}

/* スマホ表示用レスポンシブ */
@media (max-width: 768px) {
	.support-container {
		flex-direction: column-reverse;
		padding: 30px 20px;
		gap: 25px;
	}

	.support-features-wrapper {
		flex-direction: column;
		gap: 25px;
		margin: 20px 0 0;
	}

	.support-feature-grid {
		flex-direction: column;
		gap: 18px;
		margin: 0;
	}

	.support-feature-item {
		width: 100%;
		padding: 18px 12px;
	}

	.support-feature-icon {
		font-size: 2.5rem;
		margin-bottom: 10px;
	}

	.support-feature-title {
		font-size: 0.9rem;
	}

	.support-feature-text {
		font-size: 0.8rem;
	}

	.support-main-title {
		font-size: 2.5rem;
	}

	.support-link-list {
		flex-direction: column;
		gap: 15px;
		align-items: stretch;
		max-width: 100%;
	}

	.support-link-list a {
		width: 100%;
		min-width: auto;
		justify-content: space-between;
		padding: 12px 20px;
		font-size: 0.9rem;
	}
}


/*service.htmlページのアニメーションをslide-upに統一
---------------------------------------------------------------------------*/
/*service.html内の.c2.blurの画像もslide-upにする（左右スライドを上書き）*/
/*service.htmlの画像は下から上にスライドイン*/
body:has(.service-subtitle) .blur .image.l,
body:has(.service-subtitle) .blur .image.r {
	opacity: 0 !important;
	transform: translateY(50px) !important;
	transition: opacity 0.6s ease-out, transform 0.6s ease-out !important;
}

body:has(.service-subtitle) .blurstyle .image.l,
body:has(.service-subtitle) .blurstyle .image.r {
	opacity: 1 !important;
	transform: translateY(0) !important;
}

body:has(.service-subtitle) .c2.blurstyle .image.l,
body:has(.service-subtitle) .c2.blurstyle .image.r {
	opacity: 1 !important;
	transform: translateY(0) !important;
}

/*画像内のfigureも上書き*/
body:has(.service-subtitle) .c2.blur .image.l figure,
body:has(.service-subtitle) .c2.blur .image.r figure {
	transition: opacity 0.6s ease-out, transform 0.6s ease-out !important;
}

/*service.html内の画像を16:9のアスペクト比に*/
body:has(.service-subtitle) .c2 .image figure {
	aspect-ratio: 16 / 9;
	overflow: hidden;
	position: relative;
}

body:has(.service-subtitle) .c2 .image figure img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/*service.html内のsection.blurの間隔を調整*/
body:has(.service-subtitle) section.blur+section.blur {
	margin-top: 0;
	padding-top: 0px;
}

/*ご利用までの流れページスタイル
---------------------------------------------------------------------------*/
.howto-subtitle {
	text-align: left;
	color: #333;
	font-size: 1em;
	line-height: 1.8;
	margin: 0 auto 60px;
	max-width: 1200px;
	/* padding: 0 5%; */
}

/*フロープログレスバー*/
.flow-progress {
	display: flex;
	justify-content: space-between;
	max-width: 1000px;
	margin: 3rem 0 4rem;
	position: relative;
	padding: 0;
	gap: 0;
}

.flow-step-item {
	flex: 1;
	position: relative;
	z-index: 1;
	text-align: center;
	height: 64px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	font-weight: 700;
	font-size: clamp(14px, 1.5vw, 16px);
	clip-path: polygon(0 0, calc(100% - 25px) 0, 100% 50%, calc(100% - 25px) 100%, 0 100%);
}

.flow-step-item:nth-child(1) {
	background: #1a5490;
	z-index: 4;
}

.flow-step-item:nth-child(2) {
	background: #2d6ba8;
	margin-left: -25px;
	z-index: 3;
}

.flow-step-item:nth-child(3) {
	background: #4a90e2;
	margin-left: -25px;
	z-index: 2;
}

.flow-step-item:nth-child(4) {
	background: #b8d4f0;
	margin-left: -25px;
	z-index: 1;
}

.flow-step-item:nth-child(5) {
	background: #d4e7f7;
	margin-left: -25px;
	z-index: 0;
	clip-path: polygon(0 0, calc(100% - 25px) 0, 100% 50%, calc(100% - 25px) 100%, 0 100%);
}

.flow-step-number {
	display: inline-block;
	margin-right: 0.5rem;
	font-size: 1.1em;
}

.flow-step-label {
	display: inline-block;
	font-size: clamp(12px, 1.5vw, 14px);
}

/*フロー詳細タイトル*/
.flow-detail-title {
	font-size: clamp(24px, 3vw, 32px);
	font-weight: 700;
	color: #333;
	text-align: center;
	margin: 4rem auto 3rem;
	max-width: 1200px;
	padding: 0 5%;
	letter-spacing: 0.05em;
}

/*フロー詳細セクション*/
.flow-details {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 2rem;
}

.flow-detail-item {
	background: #fff;
	padding: 2rem;
	border-radius: 8px;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
	transition: transform 0.3s ease, box-shadow 0.3s ease;
	display: flex;
	align-items: center;
	gap: 2rem;
	position: relative;
	margin-bottom: 50px;
}

/* フロー詳細項目間の矢印（PCとモバイル共通） */
.flow-detail-item:not(:last-child)::after {
	content: '';
	position: absolute;
	left: 50%;
	bottom: -50px;
	transform: translateX(-50%);
	width: 0;
	height: 0;
	border-left: 20px solid transparent;
	border-right: 20px solid transparent;
	border-top: 30px solid #4A90E2;
	z-index: 10;
}

.flow-detail-icon {
	width: 120px;
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
}

.flow-detail-icon img {
	width: auto;
	height: 100px;
	max-width: 100%;
	display: block;
}

.flow-detail-content {
	flex: 1;
}

.flow-detail-number {
	display: inline-block;
	background: #4a90e2;
	color: #fff;
	padding: 0.3rem 1rem;
	border-radius: 20px;
	font-size: 0.85em;
	font-weight: 700;
	margin-bottom: 0.5rem;
	letter-spacing: 0.07em;
}

.flow-detail-heading {
	font-size: clamp(18px, 2vw, 22px);
	font-weight: 700;
	color: #1a5490;
	margin: 0 0 1rem;
	letter-spacing: 0.05em;
}

.flow-detail-text {
	color: #333;
	line-height: 1.8;
	font-size: 0.95em;
	margin: 0 0 1rem;
}

.flow-detail-list {
	list-style: none;
	padding: 0;
	margin: 0 0 1rem;
}

.flow-detail-list li {
	color: #333;
	line-height: 1.8;
	font-size: 0.95em;
	padding-left: 1.5rem;
	position: relative;
}

.flow-detail-list li::before {
	content: '・';
	position: absolute;
	left: 0;
	color: #4a90e2;
	font-weight: bold;
}

.flow-detail-note {
	color: #666;
	font-size: 0.9em;
	line-height: 1.6;
	margin: 0.5rem 0;
}

.howto-link {
	color: #E1251B;
	text-decoration: none;
	transition: opacity 0.3s ease;
	display: inline-flex;
	align-items: center;
	gap: 5px;
}

.howto-link:hover {
	opacity: 0.8;
	text-decoration: underline;
}

.howto-link i {
	font-size: 0.9em;
}

.howto-note {
	color: #666;
	font-size: 0.9em;
	line-height: 1.8;
}

/*小さい端末用*/
@media screen and (max-width: 899px) {
	.package-label {
		font-size: 0.8em;
		margin-bottom: 12px;
	}

	.package-note {
		font-size: 0.8em;
		margin: 12px 0;
	}

	body.service-page .c2 .text {
		padding-right: 0;
	}

	.howto-subtitle {
		font-size: 0.9em;
		margin-bottom: 40px;
		padding: 0;
	}

	.flow-progress {
		flex-direction: column;
		gap: 0;
		margin: 2rem auto 3rem;
		max-width: 100%;
	}

	.flow-step-item {
		width: 100%;
		height: 70px;
		margin-left: 0 !important;
		margin-bottom: 0;
		clip-path: polygon(0 0, calc(100% - 20px) 0, 100% 50%, calc(100% - 20px) 100%, 0 100%);
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 0.3rem;
		position: relative;
	}

	.flow-step-item:nth-child(1) {
		clip-path: polygon(0 0, calc(100% - 20px) 0, 100% 50%, calc(100% - 20px) 100%, 0 100%);
	}

	.flow-step-item:nth-child(2) {
		margin-top: 0;
		clip-path: polygon(0 0, calc(100% - 20px) 0, 100% 50%, calc(100% - 20px) 100%, 0 100%);
	}

	.flow-step-item:nth-child(3) {
		margin-top: 0;
		clip-path: polygon(0 0, calc(100% - 20px) 0, 100% 50%, calc(100% - 20px) 100%, 0 100%);
	}

	.flow-step-item:nth-child(4) {
		margin-top: 0;
	}

	.flow-step-item:nth-child(5) {
		margin-top: 0;
		clip-path: polygon(0 0, calc(100% - 20px) 0, 100% 50%, calc(100% - 20px) 100%, 0 100%);
	}

	.flow-step-number {
		display: block;
		margin-right: 0;
		margin-bottom: 0.2rem;
		font-size: 1.2em;
	}

	.flow-step-label {
		display: block;
		font-size: 0.9em;
	}

	.flow-detail-title {
		font-size: 20px;
		margin: 2rem auto;
	}

	.flow-details {
		gap: 1.5rem;
	}

	.flow-detail-item {
		flex-direction: column;
		padding: 1.5rem;
		gap: 1rem;
		text-align: center;
		margin-bottom: 45px;
	}

	.flow-detail-item:not(:last-child)::after {
		bottom: -45px;
		border-left: 18px solid transparent;
		border-right: 18px solid transparent;
		border-top: 28px solid #4A90E2;
	}

	.flow-detail-icon {
		margin: 0 auto;
	}
}

/*よくあるご質問ページスタイル
---------------------------------------------------------------------------*/
.faq-container {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0;
}

.faq-section {
	margin-bottom: 60px;
}

.faq-section:last-child {
	margin-bottom: 0;
}

.faq-section-title {
	margin: 0 0 30px;
	font-size: 1.5em;
	font-weight: bold;
	color: #333;
	letter-spacing: 0.05em;
	padding-bottom: 10px;
	border-bottom: 2px solid #999;
}

.faq-item {
	margin-bottom: 40px;
}

.faq-item:last-child {
	margin-bottom: 0;
}

.faq-question {
	display: flex;
	align-items: flex-start;
	gap: 15px;
	margin-bottom: 24px;
}

.faq-answer {
	display: flex;
	align-items: flex-start;
	gap: 15px;
	margin-left: 50px;
}

.faq-icon {
	flex-shrink: 0;
	width: 40px;
	height: 40px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	font-size: 1.2em;
	font-weight: bold;
	border-radius: 50%;
}

.faq-icon-q {
	background: #87CEEB;
}

.faq-icon-a {
	background: #4169E1;
}

.faq-question-text {
	flex: 1;
	color: #333;
	font-size: 1em;
	font-weight: 500;
	line-height: 1.8;
	padding-top: 8px;
}

.faq-answer-text {
	flex: 1;
	color: #333;
	font-size: 0.95em;
	line-height: 2;
	padding-top: 8px;
}

.faq-button-container {
	margin-top: 1rem;
	display: flex;
	justify-content: center;
}

.faq-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 12px 20px;
	font-size: 0.9em;
}

.faq-btn i {
	font-size: 1.1em;
}

.faq-link {
	color: #4169E1;
	text-decoration: underline;
	transition: opacity 0.3s ease;
}

.faq-link:hover {
	opacity: 0.8;
}

/*小さい端末用*/
@media screen and (max-width: 899px) {
	.faq-container {
		padding: 0;
	}

	.faq-section {
		margin-bottom: 40px;
	}

	.faq-section-title {
		font-size: 1.2em;
		margin-bottom: 25px;
	}

	.faq-item {
		margin-bottom: 25px;
	}

	.faq-question {
		gap: 12px;
		margin-bottom: 12px;
	}

	.faq-answer {
		margin-left: 0;
		gap: 12px;
	}

	.faq-icon {
		width: 35px;
		height: 35px;
		font-size: 1em;
	}

	.faq-question-text {
		font-size: 0.95em;
		padding-top: 5px;
	}

	.faq-answer-text {
		font-size: 0.9em;
		line-height: 1.8;
		padding-top: 5px;
	}

	.faq-button-container {
		margin-top: 16px;
	}

	.faq-btn {
		padding: 11px 18px;
		font-size: 0.85em;
	}
}

/*アクセスページスタイル
---------------------------------------------------------------------------*/
.access-map-container {
	max-width: 1200px;
	margin: 50px auto 0;
	padding: 0;
}

.access-map-container iframe {
	width: 100%;
	height: 450px;
	border: 0;
	border-radius: 8px;
}

.access-accordion {
	max-width: 1200px;
	margin: 0px auto 0;
	padding: 0;
}

.access-accordion-item {
	margin-bottom: 15px;
	border: 1px solid #e0e0e0;
	border-radius: 8px;
	overflow: hidden;
}

.access-accordion-item:last-child {
	margin-bottom: 0;
}

.access-accordion-header {
	display: flex;
	align-items: center;
	gap: 15px;
	padding: 20px 25px;
	background: #fff;
	cursor: pointer;
	transition: background 0.3s ease;
	user-select: none;
}

.access-accordion-header:hover {
	background: #f8f8f8;
}

.access-accordion-header.active {
	background: #f8f8f8;
}

.access-accordion-header i:first-child {
	font-size: 1.2em;
	color: #E1251B;
	width: 24px;
	text-align: center;
}

.access-accordion-header span {
	flex: 1;
	font-size: 1.1em;
	font-weight: bold;
	color: #333;
}

.access-accordion-icon {
	font-size: 0.9em;
	color: #666;
	transition: transform 0.3s ease;
}

.access-accordion-header.active .access-accordion-icon {
	transform: rotate(180deg);
}

.access-accordion-content {
	display: block;
	padding: 0 25px;
	background: #fff;
	overflow: hidden;
	max-height: 0;
	transition: max-height 0.3s ease, padding 0.3s ease;
}

.access-accordion-content.active {
	padding: 25px 25px 25px;
	max-height: 5000px;
}

.access-route-list {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.access-route-item {
	display: flex;
	align-items: flex-start;
	gap: 30px;
	padding-bottom: 20px;
	border-bottom: 1px solid #f0f0f0;
}

.access-route-item:last-child {
	border-bottom: none;
	padding-bottom: 0;
}

.access-route-line {
	flex-shrink: 0;
	min-width: 100px;
	font-weight: bold;
	color: #333;
	font-size: 1em;
	display: flex;
	align-items: center;
	gap: 8px;
}

.route-icon {
	display: inline-block;
	width: 16px;
	height: 16px;
	border-radius: 2px;
	flex-shrink: 0;
	box-sizing: border-box;
}

/*都営線は円形マーク（リング型）*/
.route-oedo,
.route-hibiya,
.route-mita,
.route-asakusa {
	border-radius: 50%;
	background-color: transparent;
	border: 4px solid;
}

.route-oedo {
	border-color: #b6007a;
}

.route-hibiya {
	border-color: #9caeb7;
}

.route-mita {
	border-color: #0079c2;
}

.route-asakusa {
	border-color: #e85298;
}

.route-keihin {
	background-color: #00b2e5;
}

.route-yamanote {
	background-color: #9acd32;
}

.access-route-detail {
	flex: 1;
	display: flex;
	flex-direction: column;
	/* gap: 5px; */
}

.access-route-station {
	color: #333;
	font-size: 0.95em;
}

.access-route-time {
	color: #666;
	font-size: 0.9em;
}

.access-bus-table {
	margin-bottom: 25px;
	overflow-x: auto;
}

.access-bus-table table {
	width: 100%;
	border-collapse: collapse;
}

.access-bus-table th,
.access-bus-table td {
	padding: 12px 15px;
	text-align: left;
	/* border-bottom: 1px solid #e0e0e0; */
}

.access-bus-table th {
	background: #f8f8f8;
	font-weight: bold;
	color: #333;
	font-size: 0.95em;
}

.access-bus-table td {
	color: #333;
	font-size: 0.9em;
}

.access-bus-note {
	margin-top: 20px;
}

.access-bus-note p {
	margin: 0 0 12px;
	color: #333;
	font-size: 0.95em;
	line-height: 1.8;
}

.access-bus-note p:last-child {
	margin-bottom: 0;
}

.access-bus-note ul {
	margin: 10px 0;
	padding-left: 20px;
	color: #333;
	font-size: 0.95em;
	line-height: 1.8;
}

.access-bus-note li {
	margin-bottom: 5px;
}

.access-link {
	color: #E1251B;
	text-decoration: underline;
	transition: opacity 0.3s ease;
}

.access-link:hover {
	opacity: 0.8;
}

.access-car-content p,
.access-bike-content p {
	margin: 0 0 12px;
	color: #333;
	font-size: 0.95em;
	line-height: 1.8;
}

.access-car-content p:last-child,
.access-bike-content p:last-child {
	margin-bottom: 0;
}

.access-bike-content ul {
	margin: 10px 0;
	padding-left: 20px;
	color: #333;
	font-size: 0.95em;
	line-height: 1.8;
}

.access-bike-content li {
	margin-bottom: 5px;
}

/*小さい端末用*/
@media screen and (max-width: 899px) {
	.access-map-container {
		padding: 0;
		margin-top: 30px;
	}

	.access-map-container iframe {
		height: 300px;
		border-radius: 0;
	}

	.access-accordion {
		padding: 0;
	}

	.access-accordion-header {
		padding: 15px 20px;
		gap: 12px;
	}

	.access-accordion-header i:first-child {
		font-size: 1em;
		width: 20px;
	}

	.access-accordion-header span {
		font-size: 1em;
	}

	.access-accordion-content {
		padding: 0 20px;
	}

	.access-accordion-content.active {
		padding: 20px 20px 20px;
	}

	.access-route-item {
		flex-direction: column;
		gap: 10px;
		padding-bottom: 15px;
	}

	.access-route-line {
		min-width: auto;
	}

	.access-bus-table {
		font-size: 0.85em;
	}

	.access-bus-table th,
	.access-bus-table td {
		padding: 10px 8px;
	}

	.access-car-content p,
	.access-bike-content p {
		font-size: 0.9em;
	}
}

/*資料ダウンロードページスタイル
---------------------------------------------------------------------------*/
.download-nav {
	display: flex;
	flex-wrap: wrap;
	gap: 15px;
	max-width: 1200px;
	margin: 50px auto 0;
	padding: 0 5%;
	justify-content: center;
}

.download-nav-item {
	display: flex;
	align-items: center;
	gap: 6px;
	padding: 0;
	background: transparent;
	color: #333;
	text-decoration: none;
	transition: color 0.3s ease;
	font-size: 0.95em;
	font-weight: 500;
}

.download-nav-item:hover {
	color: #E1251B;
}

.download-nav-icon {
	width: 16px;
	height: 16px;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	background: #000;
	border-radius: 50%;
	padding: 4px;
	transition: background 0.3s ease;
}

.download-nav-item:hover .download-nav-icon {
	background: #E1251B;
}

.download-nav-icon img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.download-section-title {
	margin: 80px auto 40px;
	padding: 0;
	max-width: 1200px;
	font-size: 1.8em;
	font-weight: bold;
	color: #333;
	letter-spacing: 0.05em;
	border-bottom: 1px solid #E3E4EC;
	padding-bottom: 15px;
}

.download-section-title:first-of-type {
	margin-top: 60px;
}

.download-list {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 25px;
}

.download-item {
	background: #fff;
	border: 1px solid #e0e0e0;
	border-radius: 8px;
	overflow: hidden;
}

.download-link {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 20px 25px;
	text-decoration: none;
	color: #333;
	transition: color 0.3s ease;
}

.download-link:hover {
	color: #E1251B;
}

.download-link-text {
	flex: 1;
	font-size: 0.95em;
	line-height: 1.6;
}

.download-link-icon {
	flex-shrink: 0;
	margin-left: 15px;
	color: #E1251B;
	font-size: 1.2em;
	transition: transform 0.3s ease;
}

.download-link:hover .download-link-icon {
	transform: translateX(5px);
}

/* 2ボタンレイアウト用 */
.download-item-double {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 25px 30px;
	gap: 25px;
}

.download-item-title {
	flex: 1;
	font-size: 1.05em;
	color: #333;
	font-weight: 600;
	line-height: 1.6;
}

.download-item-buttons {
	display: flex;
	gap: 12px;
	flex-shrink: 0;
}

.download-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 12px 24px;
	border: 1px solid #E1251B;
	border-radius: 4px;
	text-decoration: none;
	font-size: 0.95em;
	font-weight: 500;
	transition: all 0.3s ease;
	white-space: nowrap;
}

.download-btn-view {
	background: #fff;
	color: #E1251B;
}

.download-btn-view:hover {
	background: #E1251B;
	color: #fff;
}

.download-btn-download {
	background: #E1251B;
	color: #fff;
}

.download-btn-download:hover {
	background: #c41e16;
}

.download-btn i {
	font-size: 1em;
}

/* ダウンロードのみのレイアウト用 */
.download-item-single {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 25px 30px;
	gap: 25px;
}

.download-item-single .download-item-title {
	flex: 1;
	font-size: 1.05em;
	color: #333;
	font-weight: 600;
	line-height: 1.6;
}

.download-item-single .download-btn-single {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 12px 24px;
	border: 1px solid #E1251B;
	border-radius: 4px;
	text-decoration: none;
	font-size: 0.95em;
	font-weight: 500;
	transition: all 0.3s ease;
	white-space: nowrap;
	background: #E1251B;
	color: #fff;
	flex-shrink: 0;
}

.download-item-single .download-btn-single:hover {
	background: #c41e16;
}

.download-item-single .download-btn-single i {
	font-size: 1em;
}

/*小さい端末用*/
@media screen and (max-width: 899px) {
	.download-nav {
		flex-direction: column;
		gap: 12px;
		padding: 0;
		margin-top: 40px;
	}

	.download-nav-item {
		font-size: 0.9em;
	}

	.download-nav-icon {
		width: 16px;
		height: 16px;
		padding: 4px;
	}

	.download-section-title {
		margin-top: 60px;
		margin-bottom: 30px;
		font-size: 1.4em;
		padding: 0;
		padding-bottom: 12px;
	}

	.download-section-title:first-of-type {
		margin-top: 40px;
	}

	.download-list {
		grid-template-columns: 1fr;
		gap: 15px;
		padding: 0;
	}

	.download-link {
		padding: 15px 20px;
	}

	.download-link-text {
		font-size: 0.9em;
	}

	.download-link-icon {
		font-size: 1.1em;
	}

	.download-item-double {
		flex-direction: column;
		align-items: flex-start;
		gap: 15px;
	}

	.download-item-title {
		font-size: 0.9em;
	}

	.download-item-buttons {
		width: 100%;
		flex-direction: column;
		gap: 10px;
	}

	.download-btn {
		width: 100%;
		justify-content: center;
		padding: 12px 20px;
	}

	.download-item-single {
		flex-direction: column;
		align-items: flex-start;
		gap: 15px;
	}

	.download-item-single .download-item-title {
		font-size: 0.9em;
	}

	.download-item-single .download-btn-single {
		width: 100%;
		justify-content: center;
		padding: 12px 20px;
	}
}

/*搬入出ページスタイル
---------------------------------------------------------------------------*/
.carryinout-container {
	max-width: 1200px;
	margin: 80px auto 0;
	padding: 0 5%;
}

.carryinout-target {
	background: #f8f8f8;
	border: 1px solid #e0e0e0;
	border-radius: 4px;
	padding: 15px 20px;
	margin-bottom: 40px;
	text-align: center;
}

.carryinout-target p {
	margin: 0;
	color: #333;
	font-size: 0.95em;
	font-weight: 500;
}

.carryinout-heading {
	margin: 0 0 40px;
	font-size: 1.5em;
	font-weight: bold;
	color: #333;
	letter-spacing: 0.05em;
	line-height: 1.6;
}

.carryinout-section {
	margin-bottom: 50px;
}

.carryinout-section:last-child {
	margin-bottom: 0;
}

.carryinout-section p {
	margin: 0 0 20px;
	color: #333;
	font-size: 0.95em;
	line-height: 2;
}

.carryinout-section p:last-child {
	margin-bottom: 0;
}

.carryinout-section strong {
	font-weight: bold;
	color: #333;
}

.carryinout-time {
	background: #fff;
	border: 1px solid #e0e0e0;
	border-radius: 4px;
	padding: 18px 25px;
	margin: 25px 0;
}

.carryinout-time p {
	margin: 0;
	color: #333;
	font-size: 1em;
	line-height: 1.8;
}

.carryinout-warning {
	color: #E1251B !important;
	font-weight: 500 !important;
	margin-top: 20px !important;
}

.carryinout-time-notice {
	background: #f8f8f8;
	border-left: 4px solid #E1251B;
	padding: 20px 25px;
	margin: 30px 0;
	border-radius: 4px;
}

.carryinout-time-notice p {
	margin: 0 0 10px;
	color: #333;
	font-size: 1em;
	line-height: 1.8;
}

.carryinout-time-notice p:last-child {
	margin-bottom: 0;
}

.carryinout-time-notice strong {
	font-weight: 600;
	color: #1A1A1A;
}

/*小さい端末用*/
@media screen and (max-width: 899px) {
	.carryinout-container {
		padding: 0;
		margin-top: 40px;
	}

	.carryinout-target {
		padding: 10px 15px;
		margin-bottom: 25px;
	}

	.carryinout-target p {
		font-size: 0.9em;
	}

	.carryinout-heading {
		font-size: 1.2em;
		margin-bottom: 25px;
	}

	.carryinout-section {
		margin-bottom: 30px;
	}

	.carryinout-section p {
		font-size: 0.9em;
		line-height: 1.8;
	}

	.carryinout-time {
		padding: 12px 15px;
		margin: 15px 0;
	}

	.carryinout-time p {
		font-size: 0.95em;
	}

	.carryinout-time-notice {
		padding: 16px 18px;
		margin: 25px 0;
	}

	.carryinout-time-notice p {
		font-size: 0.95em;
	}

	/* フッターメニュー：スマホ時2列レイアウト */
	#footermenu {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 20px 15px;
		padding: 20px 20px;
	}

	#footermenu .footer-company {
		grid-column: 1 / -1;
		max-width: 100%;
		margin-right: 0;
		margin-bottom: 10px;
	}

	#footermenu ul {
		margin: 0;
		padding: 0;
	}

	#footermenu .footer-logo img {
		max-width: 150px;
	}
}

/*スマホビュー追加調整（768px以下）
---------------------------------------------------------------------------*/
@media screen and (max-width: 768px) {

	/* セクション調整 */
	section {
		padding: 45px 18px !important;
	}

	/* .c2コンテンツの調整 */
	.c2 {
		flex-direction: column !important;
		gap: 30px !important;
		padding: 32px 15px !important;
	}

	/* KVビデオの調整 */
	#mainimg {
		height: 50vh;
		min-height: 280px;
	}

	#kv-video {
		object-fit: cover;
	}

	.kv-text {
		padding: 0 20px;
	}

	.kv-text h2 {
		font-size: clamp(22px, 6vw, 30px);
		line-height: 1.5;
		letter-spacing: 0.05em;
	}

	.kv-text p {
		font-size: clamp(13px, 3.5vw, 15px);
		line-height: 1.75;
	}

	/* ボタン調整 */
	.kv-controls {
		bottom: 15px;
		right: 15px;
		gap: 8px;
	}

	.kv-control-btn {
		width: 38px;
		height: 38px;
		font-size: 15px;
	}

	/* KV画像調整 */
	.kv-image {
		height: 300px;
		max-height: 300px;
	}

	.kv-image img {
		height: 300px;
		max-height: 300px;
	}

	/* セクションタイトル調整 */
	.section-title {
		gap: 10px;
		margin-bottom: 32px;
	}

	.section-title-en {
		font-size: clamp(2rem, 7vw, 2.5rem);
	}

	.section-title-ja {
		font-size: 15px;
	}

	/* インフォバー調整 */
	.infobar {
		padding: 0;
	}

	/* パンくずリスト調整 */
	.breadcrumb {
		padding: 12px 15px;
		font-size: 13px;
		margin: 0;
	}

	/* メニューバー調整 */
	#menubar.db {
		padding-top: 60px;
	}

	#menubar nav ul li {
		border-bottom: 1px solid rgba(255, 255, 255, 0.1);
	}

	#menubar nav ul li a {
		padding: 15px 20px;
		font-size: 15px;
	}

	/* テーブル調整 */
	table {
		font-size: 14px;
	}

	table th,
	table td {
		padding: 12px 10px;
	}

	/* カード全般のシャドウ改善 */
	.other-page-card,
	.news-item,
	.download-item,
	.package-card {
		box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06);
	}
}

/*スマホビュー追加調整（768px以下）
---------------------------------------------------------------------------*/
@media screen and (max-width: 768px) {

	/* セクション全体の余白を最適化 */
	section {
		padding: 40px 16px !important;
	}

	/* .c2コンテンツの調整 */
	.c2 {
		flex-direction: column !important;
		gap: 28px !important;
		padding: 30px 15px !important;
	}

	/* KVビデオの調整 */
	#mainimg {
		height: 45vh;
		min-height: 280px;
	}

	#kv-video {
		object-fit: cover;
	}

	.kv-text {
		padding: 0 18px;
	}

	.kv-text h2 {
		font-size: clamp(22px, 6vw, 28px);
		line-height: 1.5;
		letter-spacing: 0.05em;
	}

	.kv-text p {
		font-size: clamp(13px, 3.5vw, 15px);
		line-height: 1.75;
	}

	/* ボタン調整 */
	.kv-controls {
		bottom: 15px;
		right: 15px;
		gap: 8px;
	}

	.kv-control-btn {
		width: 38px;
		height: 38px;
		font-size: 15px;
	}

	/* KV画像調整 */
	.kv-image {
		height: 280px;
		max-height: 280px;
	}

	.kv-image img {
		height: 280px;
		max-height: 280px;
	}

	.kv-title {
		font-size: clamp(1.4rem, 5vw, 1.8rem);
		bottom: 25px;
		left: 18px;
	}

	/* セクションタイトル調整 */
	.section-title {
		gap: 10px;
		margin-bottom: 30px;
	}

	.section-title-en {
		font-size: clamp(1.8rem, 7vw, 2.3rem);
	}

	.section-title-ja {
		font-size: 15px;
	}

	/* インフォバー調整 */
	.infobar {
		padding: 0;
	}

	/* パンくずリスト調整 */
	.breadcrumb {
		padding: 12px 15px;
		font-size: 13px;
		margin: 0;
	}

	/* ボタン全般 */
	.btn1 {
		padding: 13px 22px;
		font-size: 14px;
		border-radius: 6px;
	}

	/* テーブル調整 */
	table {
		font-size: 14px;
	}

	table th,
	table td {
		padding: 11px 9px;
	}

	/* カード系デザイン改善 */
	.other-page-card {
		border-radius: 10px;
		transition: all 0.3s ease;
		box-shadow: 0 3px 12px rgba(0, 0, 0, 0.08);
	}

	.other-page-card:active {
		transform: scale(0.98);
	}

	.news-item {
		padding: 20px;
		border-radius: 10px;
		margin-bottom: 18px;
		box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
		transition: all 0.3s ease;
	}

	.news-item:active {
		transform: scale(0.98);
		box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
	}

	/* ダウンロード項目 */
	.download-item {
		padding: 20px;
		border-radius: 10px;
		box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06);
		margin-bottom: 16px;
	}

	.download-link {
		padding: 0;
	}

	.download-item-info {
		margin-bottom: 14px;
	}

	.download-item-title {
		font-size: 1.05rem;
		margin-bottom: 6px;
		font-weight: 600;
	}

	.download-item-description {
		font-size: 0.85rem;
		color: #666;
		line-height: 1.7;
	}

	.download-item-buttons {
		gap: 10px;
	}

	.download-btn {
		font-size: 14px !important;
		padding: 11px 18px !important;
	}

	/* テキストコンテンツ全般 */
	h1 {
		font-size: clamp(1.6rem, 5.5vw, 2.2rem);
		margin-bottom: 0.8em;
		font-weight: 600;
		letter-spacing: 0.03em;
	}

	h2 {
		font-size: clamp(1.4rem, 4.5vw, 1.8rem);
		margin-bottom: 0.75em;
		font-weight: 600;
		letter-spacing: 0.025em;
	}

	h3 {
		font-size: clamp(1.2rem, 4vw, 1.5rem);
		margin-bottom: 0.7em;
		font-weight: 600;
		letter-spacing: 0.02em;
	}

	p {
		font-size: 14px;
		line-height: 1.75;
		margin-bottom: 1.2em;
	}

	ul, ol {
		padding-left: 1.4em;
		line-height: 1.75;
	}

	li {
		font-size: 14px;
		margin-bottom: 0.6em;
	}

	/* フォーム要素 */
	input[type="text"],
	input[type="email"],
	input[type="tel"],
	textarea,
	select {
		font-size: 14px;
		padding: 11px 13px;
	}

	/* ページネーション */
	.pagination {
		gap: 8px;
		font-size: 14px;
	}

	.pagination a,
	.pagination span {
		min-width: 38px;
		height: 38px;
	}
}

/*小画面用追加調整（480px以下）
---------------------------------------------------------------------------*/
@media screen and (max-width: 480px) {

	/* セクション */
	section {
		padding: 38px 16px !important;
	}

	/* KV関連 */
	#mainimg {
		height: 42vh;
		min-height: 270px;
	}

	.kv-image {
		height: 270px;
		max-height: 270px;
	}

	.kv-image img {
		height: 270px;
		max-height: 270px;
	}

	.kv-title {
		font-size: clamp(1.35rem, 5vw, 1.7rem);
		bottom: 22px;
		left: 16px;
	}

	/* セクションタイトル */
	.section-title-en {
		font-size: clamp(1.75rem, 7vw, 2.2rem);
	}

	.section-title-ja {
		font-size: 14px;
	}

	/* ボタン */
	.btn1, .btn2 {
		padding: 12px 20px;
		font-size: 14px;
	}

	/* カード */
	.news-item,
	.other-page-card,
	.download-item {
		margin-bottom: 15px;
	}

	.news-item {
		padding: 17px;
	}

	.news-title {
		font-size: 1.05rem;
	}

	/* split-item */
	.split-item {
		min-height: 270px;
	}

	.split-item .content {
		padding: 25px 20px;
	}

	.split-item h2 {
		font-size: clamp(1.4rem, 6vw, 1.8rem);
	}

	/* テーブル */
	table {
		font-size: 13px;
	}

	table th,
	table td {
		padding: 10px 7px;
	}

	/* テーブルスクロールインジケーター調整 */
	.price-table-container::before {
		font-size: 23px;
		right: 11px;
	}

	/* フロー詳細項目の矢印調整 */
	.flow-detail-item {
		margin-bottom: 40px;
	}

	.flow-detail-item:not(:last-child)::after {
		bottom: -40px;
		border-left: 16px solid transparent;
		border-right: 16px solid transparent;
		border-top: 25px solid #4A90E2;
	}

	/* アコーディオン調整 */
	.access-accordion-header {
		padding: 14px 18px;
		gap: 11px;
	}

	.access-accordion-header i:first-child {
		font-size: 0.95em;
		width: 19px;
	}

	.access-accordion-header span {
		font-size: 0.95em;
	}

	.access-accordion-content {
		padding: 0 18px;
	}

	.access-accordion-content.active {
		padding: 18px;
	}
}

/*超小画面用追加調整（360px以下）
---------------------------------------------------------------------------*/
@media screen and (max-width: 360px) {

	/* 最小画面での調整 */
	body {
		font-size: 14px;
		line-height: 1.7;
	}

	/* セクションの余白 */
	section {
		padding: 35px 14px !important;
	}

	/* メニュー内ロゴ調整 */
	#menubar::before {
		height: 60px;
		max-width: 160px;
		margin: 20px auto 10px;
	}

	/* KV関連 */
	#mainimg {
		height: 40vh;
		min-height: 260px;
	}

	.kv-image {
		height: 260px;
		max-height: 260px;
	}

	.kv-image img {
		height: 260px;
		max-height: 260px;
	}

	.kv-text {
		padding: 0 15px;
	}

	.kv-text h2 {
		font-size: clamp(19px, 5.5vw, 25px);
		line-height: 1.5;
	}

	.kv-text p {
		font-size: clamp(12px, 3.2vw, 14px);
		line-height: 1.7;
	}

	.kv-title {
		font-size: 1.3rem;
		bottom: 20px;
		left: 15px;
	}

	/* セクションタイトル */
	.section-title {
		margin-bottom: 25px;
	}

	.section-title-en {
		font-size: clamp(1.7rem, 7vw, 2rem);
	}

	.section-title-ja {
		font-size: 14px;
	}

	/* ボタン */
	.btn1 {
		padding: 12px 18px;
		font-size: 14px;
	}

	/* カード */
	.other-page-card,
	.news-item,
	.download-item {
		margin-bottom: 14px;
		padding: 16px;
	}

	.download-item-title {
		font-size: 1rem;
	}

	.download-item-description {
		font-size: 0.8rem;
	}

	.other-page-content {
		padding: 15px;
	}

	.other-page-title {
		font-size: 1.1rem;
	}

	.other-page-sub {
		font-size: 11px;
	}

	.news-item {
		padding: 16px;
	}

	.news-title {
		font-size: 1rem;
	}

	/* テーブル */
	table {
		font-size: 13px;
	}

	table th,
	table td {
		padding: 9px 6px;
	}

	/* アコーディオン調整 */
	.access-accordion-header {
		padding: 14px 16px;
		gap: 10px;
	}

	.access-accordion-header i:first-child {
		font-size: 0.95em;
		width: 18px;
	}

	.access-accordion-header span {
		font-size: 0.95em;
	}

	.access-accordion-content {
		padding: 0 16px;
	}

	.access-accordion-content.active {
		padding: 16px;
	}

	/* パディング全体的に調整 */
	section {
		padding: 32px 14px !important;
	}

	.infobar {
		padding: 10px 12px;
		font-size: 12px;
	}

	.breadcrumb {
		padding: 10px 12px;
		font-size: 12px;
	}

	/* モバイルメニューボタン */
	.mobile-menu-btn {
		top: 14px;
		right: 14px;
		width: 48px;
		height: 48px;
	}

	.mobile-menu-btn span {
		width: 20px;
	}

	/* モバイルメニューロゴ */
	.mobile-menu-logo {
		padding: 28px 18px 25px;
	}

	.mobile-menu-logo img {
		max-width: 170px;
	}

	/* モバイルメニュー項目 */
	.mobile-menu-parent a {
		padding: 16px 50px 16px 18px;
		font-size: 15px;
	}
	
	.mobile-menu-parent a i {
		font-size: 16px;
		margin-right: 8px;
	}
	
	.mobile-menu-parent a::after {
		right: 18px;
		font-size: 15px;
	}

	.mobile-menu-child a {
		padding: 14px 18px 14px 42px;
		font-size: 14px;
	}

	.mobile-menu-child a::before {
		left: 24px;
		font-size: 16px;
	}

	/* モバイルメニューのボタン */
	.mobile-menu-list .mobile-menu-btn {
		padding: 15px 18px !important;
		margin: 0 15px 12px;
		width: calc(100% - 30px);
		font-size: 14px;
		gap: 10px;
	}

	.mobile-menu-btn img {
		width: 16px;
		height: 16px;
	}

	/* フロー詳細項目の矢印調整 */
	.flow-detail-item {
		margin-bottom: 35px;
	}

	.flow-detail-item:not(:last-child)::after {
		bottom: -35px;
		border-left: 14px solid transparent;
		border-right: 14px solid transparent;
		border-top: 22px solid #4A90E2;
	}

	/* テキストコンテンツ全般 */
	h1 {
		font-size: clamp(1.4rem, 5vw, 1.8rem);
		font-weight: 600;
		letter-spacing: 0.03em;
	}

	h2 {
		font-size: clamp(1.25rem, 4.5vw, 1.6rem);
		font-weight: 600;
		letter-spacing: 0.025em;
	}

	h3 {
		font-size: clamp(1.1rem, 4vw, 1.35rem);
		font-weight: 600;
		letter-spacing: 0.02em;
	}

	p, li {
		font-size: 13px;
		line-height: 1.75;
	}

	ul, ol {
		padding-left: 1.3em;
	}

	li {
		margin-bottom: 0.6em;
	}

	/* 画像の調整 */
	.c2 .image img,
	figure img {
		width: 100%;
		height: auto;
	}

	/* テーブルを横スクロール可能に */
	.table-container {
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		margin: 0 -15px;
		padding: 0 15px;
	}

	table {
		min-width: 320px;
	}

	table th,
	table td {
		padding: 8px 6px;
		font-size: 12px;
	}

	/* テーブルスクロールインジケーター調整 */
	.price-table-container::before {
		font-size: 22px;
		right: 10px;
	}

	/* ボタンの調整 */
	.btn1,
	.btn2 {
		padding: 12px 20px;
		font-size: 14px;
	}

	.download-btn,
	.service-detail-btn,
	.spec-btn {
		font-size: 13px !important;
		padding: 11px 16px !important;
		border-radius: 6px;
	}

	/* ナビゲーションの調整 */
	.section-anchor-nav {
		flex-wrap: wrap;
	}

	.section-anchor-link {
		font-size: 12px;
		padding: 6px 10px;
	}

	/* フォーム要素の調整 */
	input[type="text"],
	input[type="email"],
	textarea {
		font-size: 14px;
		padding: 10px 12px;
	}

	textarea {
		min-height: 120px;
	}

	/* ページネーション */
	.pagination {
		gap: 6px;
		font-size: 13px;
	}

	.pagination a,
	.pagination span {
		min-width: 34px;
		height: 34px;
	}

	/* ニュース項目の余白 */
	.news-item {
		padding: 16px;
		border-radius: 8px;
	}

	.news-title {
		font-size: 1rem;
		margin: 10px 0 12px;
	}

	.news-excerpt {
		font-size: 0.85rem;
	}

	/* その他のページカード */
	.other-page-content {
		padding: 14px;
	}

	.other-page-title {
		font-size: 1rem;
	}

	/* フッター調整 */
	footer {
		padding: 28px 14px 20px;
	}

	#footermenu {
		gap: 15px;
	}

	#footermenu ul li {
		font-size: 12px;
	}

	#copyright {
		font-size: 11px;
		padding: 15px 0;
	}

	/* Swiper/Gallery調整 */
	.swiper-button-next,
	.swiper-button-prev {
		width: 35px;
		height: 35px;
	}

	.swiper-button-next::after,
	.swiper-button-prev::after {
		font-size: 16px;
	}

	.swiper-pagination-bullet {
		width: 8px;
		height: 8px;
	}
}

/*全体的な小画面対応の追加調整
---------------------------------------------------------------------------*/
@media screen and (max-width: 768px) {

	/* main要素の調整 */
	body:not(.index-page):not(.home) main {
		padding: 0 15px;
	}

	/* .c2コンテンツの詳細調整 */
	.c2 .image,
	.c2 .text {
		width: 100% !important;
		max-width: 100% !important;
	}

	.c2 .text h2 {
		font-size: clamp(18px, 4vw, 24px) !important;
		margin-bottom: 15px !important;
	}

	.c2 .text p {
		font-size: 14px !important;
		line-height: 1.8 !important;
	}

	/* 画像のアスペクト比を維持 */
	.c2 .image img {
		width: 100%;
		height: auto;
		object-fit: cover;
	}

	/* セクションアンカーナビの調整 */
	.section-anchor-nav {
		gap: 10px;
		justify-content: flex-start !important;
		flex-wrap: wrap;
	}

	.section-anchor-link {
		font-size: 13px;
		padding: 8px 12px;
	}

	/* ダウンロードボタンリストの調整 */
	.download-list {
		grid-template-columns: 1fr !important;
		gap: 15px;
		padding: 0 !important;
	}

	/* フローステップの調整 */
	.flow-step-item {
		font-size: 13px;
		padding: 15px 10px;
	}

	/* フロー詳細項目の矢印調整 */
	.flow-detail-item {
		margin-bottom: 42px;
	}

	.flow-detail-item:not(:last-child)::after {
		bottom: -42px;
		border-left: 17px solid transparent;
		border-right: 17px solid transparent;
		border-top: 26px solid #4A90E2;
	}

	/* FAQ項目の調整 */
	.faq-item {
		padding: 0;
	}

	.faq-question,
	.faq-answer {
		font-size: 14px;
		line-height: 1.7;
	}

	/* テーブルのスクロール対応 */
	.table-wrapper {
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}

	table {
		min-width: 600px;
		font-size: 13px;
	}

	/* アクセス情報の調整 */
	.access-accordion-header {
		font-size: 15px;
		padding: 15px;
	}

	.access-accordion-content {
		padding: 0 15px;
		font-size: 14px;
	}

	.access-accordion-content.active {
		padding: 15px;
	}

	/* フッターの調整 */
	footer {
		padding: 35px 18px 25px;
	}

	#footermenu {
		gap: 20px;
	}

	#footermenu ul {
		gap: 12px;
	}

	#footermenu ul li {
		font-size: 13px;
	}

	#footermenu ul li a {
		padding: 8px 0;
	}

	/* コピーライト */
	#copyright {
		font-size: 12px;
		padding: 18px 0;
	}

	/* Swiper/Gallery調整 */
	.swiper-button-next,
	.swiper-button-prev {
		width: 38px;
		height: 38px;
	}

	.swiper-button-next::after,
	.swiper-button-prev::after {
		font-size: 18px;
	}

	.swiper-pagination-bullet {
		width: 9px;
		height: 9px;
	}

	/* メニューバーの調整 */
	#menubar {
		width: 100% !important;
		height: 100vh !important;
		overflow-y: auto;
		padding-top: 0 !important;
	}

	/* メニュー内にロゴを表示 */
	#menubar::before {
		content: '';
		display: block;
		width: 100%;
		height: 80px;
		background: url('../images/logo.png') no-repeat center;
		background-size: contain;
		max-width: 200px;
		margin: 30px auto 20px;
	}

	#menubar nav {
		padding-top: 0;
	}

	#menubar nav ul {
		padding: 0;
	}

	#menubar nav ul li {
		width: 100%;
	}

	#menubar nav ul li a {
		display: block;
		width: 100%;
		box-sizing: border-box;
	}

	/* ドロップダウンメニューの調整 */
	#menubar .dropdown-menu {
		position: static !important;
		background: rgba(255, 255, 255, 0.1);
		padding-left: 20px;
	}

	#menubar .dropdown-menu li a {
		padding: 12px 20px;
		font-size: 14px;
	}

	/* メニューボタンの調整 */
	.menu-btn {
		margin: 10px 20px;
		padding: 12px 20px !important;
		font-size: 14px !important;
	}

	.menu-btn-icon {
		width: 18px !important;
		height: 18px !important;
	}

	/* メニュー項目のサイズ調整 */
	#menubar nav ul li a:not(.menu-btn) {
		padding: 16px 20px;
		font-size: 16px;
	}

	#menubar .has-dropdown>a {
		padding: 16px 20px;
	}

	/* KVテキストの位置調整 */
	#mainimg #text {
		left: 5%;
		padding: 0 15px;
	}

	.kv-text {
		width: 100%;
		max-width: none;
	}

	/* ギャラリーの調整 */
	.gallery-main {
		margin-bottom: 15px;
	}

	.gallery-thumbs {
		height: 100px !important;
	}

	.gallery-thumbs .swiper-slide {
		height: auto !important;
	}

	/* Swiper調整 */
	.swiper-button-next,
	.swiper-button-prev {
		width: 30px !important;
		height: 30px !important;
	}

	.swiper-button-next:after,
	.swiper-button-prev:after {
		font-size: 16px !important;
	}

	/* フロアマップ調整 */
	.floor-map-container {
		flex-direction: column;
		gap: 20px;
	}

	.floor-map-left,
	.floor-map-right {
		width: 100% !important;
	}

	/* スペック調整 */
	.venue-spec-container {
		padding: 0;
	}

	.spec-cards-grid {
		grid-template-columns: 1fr !important;
		gap: 15px;
	}

	/* LEDサンプル調整 */
	.led-sample-display {
		margin-bottom: 15px;
	}

	.led-controls {
		gap: 8px;
		padding: 10px;
	}

	.led-control-btn {
		width: 36px;
		height: 36px;
		font-size: 14px;
	}

	/* ユースケース調整 */
	.usecase-grid {
		grid-template-columns: 1fr !important;
		gap: 15px;
	}

	.usecase-item {
		margin-bottom: 15px;
	}

	/* パッケージプラン調整 */
	.package-label,
	.package-note {
		margin: 10px 0;
		font-size: 13px;
	}

	/* 控室調整 */
	.greenroom-container {
		flex-direction: column;
	}

	.greenroom-left,
	.greenroom-right {
		width: 100% !important;
	}

	.greenroom-buttons {
		flex-direction: column;
		gap: 10px;
	}

	.greenroom-btn {
		width: 100%;
		text-align: center;
	}

	/* TOPページのSERVICEカードスマホ調整 */
	body.index-page .bg2 .list-container .list {
		border-radius: 12px;
	}

	body.index-page .bg2 .list-container .list h4 {
		font-size: 1.1rem;
	}

	body.index-page .bg2 .list-container .list h4::after {
		font-size: 0.65rem;
		margin-top: 0.2rem;
	}

	body.index-page .bg2 .list-container .list .text {
		padding: 1.5rem 1.5rem 0.8rem;
	}

	body.index-page .bg2 .list-container .list .text p {
		font-size: 0.9rem;
		line-height: 1.7;
	}

	body.index-page .bg2 .list-container .list>p.c {
		padding: 0 1.5rem 1.5rem;
	}

	body.index-page .bg2 .list-container .list .btn1,
	body.index-page .bg2 .list-container .list .btn2 {
		padding: 10px 24px;
		font-size: 0.85rem;
		border-radius: 6px;
		margin-top: 1rem;
	}
}

/*ニュースページスタイル
---------------------------------------------------------------------------*/
.news-container {
	max-width: 1200px;
	margin: 40px auto 0;
	padding: 0 5%;
	box-sizing: border-box;
}

.news-item {
	background: #fff;
	border: 1px solid #e0e0e0;
	border-radius: 8px;
	padding: 30px;
	margin-bottom: 30px;
	transition: box-shadow 0.3s ease, border-color 0.3s ease;
}

.news-item:hover {
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

.news-date {
	display: inline-block;
	font-size: 0.9em;
	color: #999;
	margin-bottom: 12px;
	font-family: 'Arial', sans-serif;
}

.news-category {
	display: inline-block;
	background: #C8102E;
	color: #fff;
	padding: 4px 12px;
	border-radius: 4px;
	font-size: 0.75em;
	margin-left: 12px;
	font-weight: 600;
	letter-spacing: 0.05em;
}

.news-title {
	font-size: 1.4em;
	font-weight: 600;
	margin: 12px 0 16px;
	line-height: 1.6;
	color: #333;
}

.news-title a {
	color: #333;
	text-decoration: none;
	transition: color 0.3s ease;
}

.news-title a:hover {
	color: #C8102E;
}

.news-excerpt {
	font-size: 1em;
	line-height: 1.8;
	color: #666;
	margin-bottom: 20px;
}

.news-read-more {
	display: inline-block;
	color: #C8102E;
	text-decoration: none;
	font-size: 0.95em;
	font-weight: 600;
	transition: all 0.3s ease;
}

.news-read-more:hover {
	opacity: 0.7;
}

.news-read-more i {
	margin-left: 6px;
	transition: transform 0.3s ease;
}

.news-read-more:hover i {
	transform: translateX(4px);
}

.news-empty {
	text-align: center;
	padding: 60px 20px;
	color: #999;
	font-size: 1.1em;
}

/* ページネーション */
.news-pagination {
	text-align: center;
	margin: 60px auto 0;
	padding: 0 5%;
}

.news-pagination .page-numbers {
	display: inline-block;
	padding: 10px 16px;
	margin: 0 4px;
	background: #fff;
	border: 1px solid #e0e0e0;
	border-radius: 4px;
	color: #333;
	text-decoration: none;
	transition: all 0.3s ease;
	font-size: 0.95em;
}

.news-pagination .page-numbers:hover,
.news-pagination .page-numbers.current {
	background: #C8102E;
	color: #fff;
	border-color: #C8102E;
}

.news-pagination .page-numbers i {
	font-size: 0.8em;
}

/* スマホ対応 */
@media screen and (max-width: 768px) {
	.news-container {
		padding: 0;
		gap: 18px;
	}

	.news-item {
		padding: 20px;
		margin-bottom: 0;
		border-radius: 8px;
		box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06);
		transition: box-shadow 0.3s ease;
	}

	.news-item:hover {
		box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
	}

	.news-date {
		font-size: 0.85em;
		font-weight: 500;
	}

	.news-category {
		font-size: 0.7em;
		padding: 4px 12px;
		margin-left: 10px;
		border-radius: 4px;
		font-weight: 500;
	}

	.news-title {
		font-size: 1.1em;
		margin: 12px 0 14px;
		line-height: 1.6;
	}

	.news-title a {
		color: #1A1A1A;
		text-decoration: none;
	}

	.news-title a:hover {
		color: #E1251B;
	}

	.news-excerpt {
		font-size: 0.9em;
		line-height: 1.75;
		margin-bottom: 16px;
		color: #555;
	}

	.news-read-more {
		font-size: 0.9em;
		color: #E1251B;
		font-weight: 500;
	}

	.news-read-more:hover {
		text-decoration: underline;
	}

	.news-empty {
		padding: 50px 20px;
		font-size: 1em;
		text-align: center;
		color: #999;
	}

	.news-pagination {
		margin: 40px auto 0;
		display: flex;
		justify-content: center;
		gap: 8px;
	}

	.news-pagination .page-numbers {
		padding: 10px 14px;
		margin: 0;
		font-size: 0.9em;
		border-radius: 6px;
		min-width: 40px;
		text-align: center;
	}
}

/*個別ニュース記事スタイル
---------------------------------------------------------------------------*/
.single-news {
	box-sizing: border-box;
}

.single-news-date {
	display: block;
	font-size: 1em;
	color: #999;
	margin: 0 0 30px 0;
	font-family: 'Arial', sans-serif;
	padding-bottom: 20px;
	border-bottom: 1px solid #f0f0f0;
}

.single-news-content {
	font-size: 1.05em;
	line-height: 2;
	color: #333;
	margin-bottom: 60px;
}

.single-news-content h2 {
	font-size: 1.6em;
	font-weight: 600;
	margin: 50px 0 25px;
	padding-bottom: 15px;
	border-bottom: 2px solid #f0f0f0;
	color: #333;
}

.single-news-content h3 {
	font-size: 1.3em;
	font-weight: 600;
	margin: 40px 0 20px;
	color: #333;
}

.single-news-content p {
	margin-bottom: 1.5em;
}

.single-news-content ul,
.single-news-content ol {
	margin: 1.5em 0;
	padding-left: 2em;
}

.single-news-content li {
	margin-bottom: 0.8em;
}

.single-news-content img {
	max-width: 100%;
	height: auto;
	display: block;
	margin: 30px auto;
	border-radius: 8px;
}

.single-news-content a {
	color: #C8102E;
	text-decoration: underline;
	transition: opacity 0.3s ease;
}

.single-news-content a:hover {
	opacity: 0.7;
}

.single-news-footer {
	padding-top: 30px;
	text-align: center;
	background: transparent;
}

.news-back-btn {
	display: inline-block;
	padding: 12px 30px;
	background: #fff;
	border: 1px solid #D9D9D9;
	color: #333;
	text-decoration: none;
	font-size: 1em;
	border-radius: 4px;
	transition: all 0.3s ease;
	font-weight: 500;
}

.news-back-btn:hover {
	background: #f5f5f5;
	border-color: #C8102E;
	color: #C8102E;
}

.news-back-btn i {
	margin-right: 8px;
}

/* スマホ対応 */
@media screen and (max-width: 768px) {
	.single-news-date {
		font-size: 0.9em;
		margin: 0 0 20px 0;
		padding-bottom: 15px;
	}

	.single-news-content {
		font-size: 0.95em;
		line-height: 1.9;
		margin-bottom: 40px;
	}

	.single-news-content h2 {
		font-size: 1.3em;
		margin: 35px 0 20px;
		padding-bottom: 12px;
	}

	.single-news-content h3 {
		font-size: 1.15em;
		margin: 30px 0 15px;
	}

	.single-news-content img {
		margin: 20px auto;
	}

	.single-news-footer {
		padding-top: 20px;
		background: transparent;
	}

	.news-back-btn {
		padding: 10px 24px;
		font-size: 0.9em;
	}
}


@media screen and (max-width: 899px) {
	.about-container{
		margin:0;
	}
	.about-content{
	        padding: 3rem 8%;
	}
	
	.about{
		padding:0!important;
	}
	

    #mainimg #text .kv-buttons {
        flex-direction: row;
	}
	
	.bg3 .section-title{
		    margin: 1rem 3px;
	}
	
	#mainimg #text {
        left: 0!important;
        padding: 0;
		left: 3.5%!important;
    bottom: -16%!important;
    }
	
	    #mainimg #text .kv-buttons {
        flex-direction:row;
        gap: 11px;
	}
	
	    #mainimg #text .kv-btn {
		padding: 0px 8px;
        font-size: 0.8em;
	}
	    #mainimg #text .kv-control-btn {
        width: 36px;
        height: 36px;
	}
	
	.about-description {
    margin: 0px 0 1rem;
	}
	
	.section-title-en{
	        font-size: clamp(42px, 1vw, 50px);
		        padding: 0 5%;
	}
	
	.key-features-section .section-title{
		margin:0;
	}
	
	   .key-features-section  .section-title-ja {
        font-size: 14px;
        padding: 0 5%;
    }
	
	    a.btn1, a.btn2 {
        padding: 8px 15px;
    }
	
	.support{
		        padding: 0 8% 38px!important;
	}
	
	.support-image-content {
    flex: 0 1 auto;
     min-width:auto; 
      }
	
	    .support-feature-grid {
        flex-direction: row;
        max-width: 130px;
	}

	.support-link-list{
		display:block;
		width:100%;
	}
	
	    .c2 {
        flex-direction: column !important;
        gap: 28px !important;
        padding: 30px 0px !important;
    }
	
	

	
	    body.index-page .bg2 .list-container .list .text p {
        font-size: 1rem;
	}
	
	.section-title-ja {
        font-size: 14px;
        padding: 0% 5%;
    }
	
	.sky-stadium-item {
		    padding: 0 5%!important;
	}
	
	.section-title {
		margin-top:0;
	}
	
	.aka{
		        padding: 7px 20px !important;
        margin: 0 20px 14px;
        width: calc(100% - 40px);
        background: #E1251B !important;
		        display: flex !important;
        position: relative !important;
        flex-direction: row !important;
        align-items: center;
        justify-content: center;
        gap: 12px;

        color: #fff !important;
        border-radius: 8px;
        font-weight: 600;
        font-size: 15px;
        box-sizing: border-box;
        transition: all 0.25s ease;
        letter-spacing: 0.03em;
	}
	
	    .mobile-menu-btn {
        display: flex !important;
        position: fixed;
         top: 0px; 
         right: 0px;
			}
	
	.mobile-menu-list .mobile-menu-btn{
		margin:0 auto;
	}
	
	
}



