/* Figma DT_トップ・SP_トップの共通部品。本文ブロックのスタイルには依存しない。 */
:root  {
	--nk-ink:#2b2b2b;
	--nk-navy:#12365e;
	--nk-slate:#293c51;
	--nk-muted:#5e7186;
	--nk-red:#d6202e;
	--nk-green:#4e9e62;
	--nk-sand:#f7efdf;
	--nk-border:#e4e8ec;
}
/* Figmaの均一な線幅の曲線を、共通の疑似要素で表示する。 */
.nt-section-title::before, .nt-section-title::after,
.nt-access-title::before, .nt-access-title::after {
	content:"";
	flex-shrink:0;
	width:84px;
	height:14px;
	background:url('../images/frontpage/about-img-wave.svg') center / contain no-repeat;
}
body  {
	color:var(--nk-ink);
}
.nt-header *, .nt-footer *, .nt-frontpage *  {
	box-sizing:border-box;
}
.nt-header a, .nt-footer a, .nt-frontpage a, .nt-mobile-actions a  {
	text-decoration:none;
}
.nt-header a:not(.nt-brand):hover, .nt-footer a:hover  {
	text-decoration:underline;
	text-underline-offset:5px;
}
.nt-header img, .nt-footer img, .nt-frontpage img  {
	display:block;
	max-width:100%;
	height:auto;
}
.nt-container  {
	width:min(1320px,calc(100% - 120px));
	margin-inline:auto;
}
.nt-button  {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:20px;
	min-height:54px;
	padding:13px 30px;
	border:1px solid transparent;
	border-radius:999px;
	color:var(--nk-navy);
	transition:background .2s;
	text-align:center;
}
.nt-button:hover  {
	text-decoration:none!important;
}
.nt-button--red  {
	background:var(--nk-red);
	color:#fff;
}
.nt-button--red:hover  {
	background:#b91b28;
}
.nt-button--green  {
	background:var(--nk-green);
	color:#fff;
}
.nt-button--green:hover  {
	background:#397d4a;
}
.nt-button--white  {
	background:#fff;
	color:var(--nk-slate);
}
.nt-button--outline  {
	border-color:#c8d1db;
	color:var(--nk-navy);
	background:transparent;
}
.nt-button--outline:not(.nt-phone-text):hover  {
	background:#edf1f6;
}
/* 電話リンクはスマホのみ。非表示側は読み上げ・Tab移動の対象にもならない。 */
@media (min-width:601px) {
	.nt-phone-link { display:none!important; }
}
@media (max-width:600px) {
	.nt-phone-text { display:none!important; }
}
.nt-arrow  {
	width:21px;
	height:15px!important;
	flex-shrink:0;
	object-fit:contain;
}
.nt-link-external .nt-arrow {
	transform:rotate(-45deg);
}
.nt-button--arrow-red .nt-arrow {
	content:url('../images/frontpage/about-img-icon-arrow.svg');
}
.nt-header  {
	min-height:88px;
	padding:15px 60px;
	border-bottom:1px solid var(--nk-border);
	box-shadow:none;
	transition:box-shadow .2s;
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:28px;
	background:#fff;
	position:sticky;
	top:0;
	z-index:40;
}
.nt-header.is-stuck {
	box-shadow:0 4px 16px rgb(18 54 94 / 16%);
}
@media (min-width:601px) {
	.admin-bar .nt-header {
		top:var(--wp-admin--admin-bar--height,32px);
	}
}
.nt-brand  {
	display:flex;
	align-items:center;
	gap:10px;
	color:var(--nk-ink);
	flex-shrink:0;
}
.nt-brand-mark  {
	width:38px;
	height:38px!important;
	object-fit:contain;
}
.nt-brand-name  {
	display:block;
}
.nt-brand small  {
	display:block;
	color:#8a97a6;
}
.nt-navigation ul  {
	display:flex;
	gap:30px;
	align-items:center;
	margin:0;
	padding:0;
	list-style:none;
}
.nt-navigation a  {
	color:var(--nk-ink);
	white-space:nowrap;
}
/* Figma 204:2。hover色・下線offsetは注記の指定を優先する。 */
.nt-header .nt-navigation a {
	font-weight:400;
	text-decoration:none;
	text-decoration-thickness:1px;
	text-underline-offset:6px;
	border-radius:4px;
	transition:120ms ease-out;
}
.nt-header .nt-navigation a:is(:hover, :active) {
	text-decoration:underline solid currentColor 1px;
	text-underline-offset:6px;
}
.nt-header .nt-navigation a:hover {
	color:#d62039;
	font-weight:500;
	text-decoration-line:underline;
}
.nt-header .nt-navigation a:active {
	color:#a01429;
	font-weight:500;
	text-decoration-line:underline;
}
.nt-header .nt-navigation a:focus-visible {
	outline:2px solid var(--nk-red);
	outline-offset:4px;
}
.nt-navigation li  {
	position:relative;
}
.nt-navigation .sub-menu  {
	display:none;
	position:absolute;
	top:100%;
	left:0;
	background:#fff;
	padding:18px;
	min-width:180px;
	box-shadow:0 6px 12px #12365e22;
}
.nt-navigation li:hover>.sub-menu, .nt-navigation li:focus-within>.sub-menu  {
	display:grid;
	gap:12px;
}
.nt-header-actions  {
	display:flex;
	align-items:center;
	gap:18px;
	flex-shrink:0;
}
.nt-header-ticket  {
	min-height:57px;
	padding:13px 26px;
}
.nt-menu-toggle  {
	display:none;
	border:0;
	padding:4px;
	color:var(--nk-navy);
	background:transparent;
	cursor:pointer;
	width:42px;
	height:46px;
}
.nt-menu-lines, .nt-menu-lines::before, .nt-menu-lines::after  {
	width:24px;
	height:2px;
	background:currentColor;
	display:block;
	position:relative;
	margin-inline:auto;
}
.nt-menu-lines::before, .nt-menu-lines::after  {
	content:'';
	position:absolute;
	left:0;
	transition:transform .2s;
}
.nt-menu-lines::before  {
	top:-7px;
}
.nt-menu-lines::after  {
	top:7px;
}
.nt-menu-label  {
	display:block;
	margin-top:11px;
}
[aria-expanded=true] .nt-menu-lines  {
	background:transparent;
}
[aria-expanded=true] .nt-menu-lines::before  {
	top:0;
	transform:rotate(45deg);
}
[aria-expanded=true] .nt-menu-lines::after  {
	top:0;
	transform:rotate(-45deg);
}
/* SPメニュー: Figma 294:2。dialogで背景の操作を止め、フォーカスを内部に保つ。 */
html.nt-menu-open { overflow:hidden; }
.nt-mobile-menu, .nt-mobile-menu * { box-sizing:border-box; }
.nt-mobile-menu { position:fixed; inset:0; width:100%; max-width:none; height:100dvh; max-height:none; margin:0; padding:0; border:0; color:#fff; background:linear-gradient(rgb(41 60 81 / 86%),rgb(41 60 81 / 86%)),url('../images/navigation/menu-background.png') center/cover no-repeat; overflow-y:auto; overscroll-behavior:contain; font-family:var(--nk-font-sans); }
.nt-mobile-menu::backdrop { background:#293c51; }
.nt-mobile-menu a { color:inherit; text-decoration:none; }
.nt-mobile-menu :is(a,button):focus-visible { outline:2px solid #fff; outline-offset:3px; }
.nt-mobile-menu a:hover { text-decoration:underline; text-underline-offset:4px; }
.nt-mobile-menu img { display:block; flex-shrink:0; }
.nt-mobile-menu-bar { display:flex; align-items:center; justify-content:space-between; padding:14px 20px; }
.nt-mobile-menu-close { display:grid; place-items:center; width:44px; height:44px; margin-left:-10px; padding:0; border:0; background:transparent; cursor:pointer; }
.nt-mobile-menu-brand { display:flex; flex-direction:column; align-items:flex-end; font-size:16px; font-weight:500; line-height:1.7; letter-spacing:.5px; }
.nt-mobile-menu-brand small { opacity:.7; font-size:12px; font-weight:400; letter-spacing:.8px; }
.nt-mobile-menu-body { padding:9px 16px; }
.nt-mobile-menu-group { margin:0 0 20px; }
.nt-mobile-menu-group h2 { margin:0 0 4px; opacity:.55; color:#fff; font:500 13px/1.7 var(--nk-font-sans); letter-spacing:1.8px; }
.nt-mobile-menu-group ul { list-style:none; margin:0; padding:0; }
.nt-mobile-menu-group a { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 0 11px; border-bottom:1px solid rgb(255 255 255 / 14%); font-size:16px; font-weight:500; line-height:1.7; letter-spacing:.2px; }
.nt-mobile-menu-group a[aria-current] { background:rgb(255 255 255 / 8%); }
.nt-mobile-menu-bottom { display:flex; flex-direction:column; gap:10px; padding:22px 20px calc(26px + env(safe-area-inset-bottom)); }
.nt-mobile-menu .nt-mobile-menu-ride { width:100%; gap:9px; padding:15px 0; border:0; font:700 17px/1.7 var(--nk-font-sans); }
.nt-mobile-menu-social { display:flex; justify-content:center; align-items:center; gap:14px; }
.nt-mobile-menu-social > :is(a,span) { display:flex; align-items:center; justify-content:center; width:44px; height:44px; }
.nt-mobile-menu-social > span { opacity:.5; }
.nt-mobile-menu-social-icon { width:28px; height:28px; object-fit:contain; }
.nt-mobile-menu-social-icon--youtube { width:40px; }
.nt-mobile-menu-social-icon--line { width:32px; height:32px; }
.nt-footer {
    padding:52px 0 26px;
    background:linear-gradient(#293c51cc,#293c51cc),url('../images/frontpage/footer-img11-footer.webp') center/cover;
    color:#dce6f0;
}
.nt-footer a { color:#dce6f0; }
.nt-footer p, .nt-footer h2, .nt-footer ul { margin:0; }
.nt-footer h2 { color:#7e9bba; margin-bottom:2px; }
.nt-footer-main { display:grid; grid-template-columns:360px repeat(4,minmax(0,1fr)) 210px; gap:40px; }
.nt-footer-brand { display:flex; flex-direction:column; align-items:flex-start; gap:14px; }
.nt-footer-logo { display:flex; align-items:center; gap:10px; color:#fff; }
.nt-footer-logo .nt-brand-mark { width:30px; height:30px!important; }
.nt-footer-description { color:#a8bdd2; }
.nt-footer address { font-style:normal; color:#7e9bba; }
.nt-footer-social { display:flex; gap:12px; }
.nt-footer-social a { display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; border:0; background:transparent; }
.nt-footer-social a:focus-visible { outline:2px solid #fff; outline-offset:2px; }
.nt-footer-social-icon { display:block; width:28px; height:28px; flex-shrink:0; object-fit:contain; }
.nt-footer-social-icon--youtube { width:40px; }
.nt-footer ul { padding:0; list-style:none; }
.nt-footer-main nav ul { display:grid; gap:2px; }
.nt-footer-main nav a { display:inline-flex; align-items:center; gap:5px; }
.nt-footer .nt-footer-external { display:inline-block; width:15px; height:15px; flex-shrink:0; vertical-align:middle; }
.nt-footer-phone { white-space:nowrap; color:#fff!important; }
.nt-footer-contact { display:flex; flex-direction:column; align-items:flex-start; gap:3px; }
.nt-footer-contact p { color:#7e9bba; }
.nt-footer-contact .nt-button { padding:9px 8px; min-height:50px; gap:6px; width:100%; border-color:#2c4a69; color:#fff; }
.nt-footer-contact .nt-arrow { filter:brightness(0) invert(1); width:15px; transform:rotate(-45deg); }
.nt-footer-contact .nt-button:hover { background:#ffffff15; }
.nt-footer-partners { margin-top:26px; padding:22px 0 4px; border-top:1px solid #2c4a69; display:flex; gap:24px; align-items:center; }
.nt-footer-partners p { color:#7e9bba; white-space:nowrap; }
.nt-footer-partners>div { display:grid; grid-template-columns:minmax(0,300fr) minmax(0,255fr); align-items:center; gap:16px; width:min(571px,100%); }
.nt-footer-partners img { display:block; width:100%; height:auto; }
.nt-footer-partners a { display:block; border:0; border-radius:0; background:transparent; padding:0; line-height:0; }
.nt-footer-photo { display:none; }
.nt-footer-bottom { display:flex; justify-content:space-between; gap:20px; margin-top:26px; padding-top:16px; border-top:1px solid #2c4a69; color:#7e9bba; }
.nt-footer-legal { display:flex; align-items:center; flex-wrap:wrap; gap:5px; }
.nt-footer-legal a { display:inline-flex; align-items:center; gap:5px; color:inherit; white-space:nowrap; }
.nt-footer-legal a+a::before { content:'｜'; }
@media (min-width:1201px) and (max-width:1399px) {
    .nt-footer-main { grid-template-columns:minmax(240px,1.8fr) repeat(4,minmax(0,1fr)) 210px; gap:24px; }
}
.nt-mobile-actions, .nt-mobile  {
	display:none;
}
.nt-mobile-actions[hidden] {
	display:none;
}
:focus-visible  {
	outline:3px solid #2c77b6;
	outline-offset:5px;
}
@media(max-width:1200px)  {
	.nt-header {
		padding-inline:24px;
		gap:18px
	}
	.nt-navigation ul {
		gap:18px
	}
	.nt-container {
		width:calc(100% - 64px)
	}
	.nt-footer-main {
		gap:24px;
		grid-template-columns:1.2fr 1fr 1fr
	}
	.nt-footer-contact {
		grid-column:auto
	}
	.nt-footer-phone {
		display:inline-block
	}
}
@media(max-width:1000px)  {
	.nt-header {
		min-height:68px;
		padding:10px 20px;
		flex-wrap:wrap;
		gap:0
	}
	.nt-brand {
		gap:9px
	}
	.nt-brand-mark {
		width:32px;
		height:32px!important
	}
	.nt-header-ticket {
		min-height:34px;
		padding:6px 16px
	}
	.nt-header-actions {
		gap:10px
	}
	.nt-navigation {
		width:100%;
		order:3;
		padding:20px 0
	}
	.nt-navigation ul {
		flex-wrap:wrap;
		gap:18px 24px
	}
	.nt-navigation .sub-menu {
		display:grid;
		position:static;
		box-shadow:none;
		padding:8px 12px
	}
	.nt-js .nt-menu-toggle {
		display:block
	}
	.nt-js .nt-navigation { display:none; }
}
@media(max-width:600px)  {
	.nt-section-title::before, .nt-section-title::after,
	.nt-access-title::before, .nt-access-title::after {
		background-image:url('../images/frontpage/about-img-wave-mobile.svg');
	}
	.nt-container {
		width:calc(100% - 40px)
	}
	.nt-button {
		min-height:50px;
		padding:12px 24px;
		gap:12px
	}
	.nt-header-ticket {
		min-height:36px;
		padding:9px 16px;
		border:0;
	}
	.nt-header {
		padding:12px 16px;
	}
	.nt-brand {
		gap:8px;
	}
	.nt-brand-mark {
		width:30px;
		height:30px!important;
	}
	.nt-brand small {
		display:none;
	}
	.nt-menu-toggle {
		position:relative;
		width:36px;
		height:44px;
		padding:0;
	}
	.nt-menu-lines {
		position:absolute;
		left:8px;
		top:14px;
	}
	.nt-menu-lines, .nt-menu-lines::before, .nt-menu-lines::after {
		width:20px;
		border-radius:2px;
	}
	.nt-menu-lines::before {
		top:-6px;
	}
	.nt-menu-lines::after {
		top:6px;
	}
	.nt-menu-label {
		position:absolute;
		top:26px;
		inset-inline:4px;
		margin-top:0;
		color:var(--nk-ink);
	}
    .nt-footer { padding:32px 0 24px; background:#293c51; }
    .home .nt-footer { padding-bottom:calc(118px + env(safe-area-inset-bottom)); }
    .nt-footer>.nt-container { width:100%; }
    .nt-footer-main { display:flex; flex-direction:column; gap:20px; }
    .nt-footer-brand { padding-inline:20px; gap:10px; }
    .nt-footer-logo { gap:9px; }
    .nt-footer-logo .nt-brand-mark { width:26px; height:26px!important; }
    .nt-footer-main>nav { padding:20px 20px 4px; border-top:1px solid #2c4a69; }
    .nt-footer h2 { margin-bottom:12px; }
    .nt-footer-main nav ul { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
    .nt-footer-main nav:nth-of-type(3) li:nth-child(2) { grid-column:1; grid-row:2; }
    .nt-footer-main nav a { display:flex; justify-content:space-between; }
    .nt-footer-contact { padding:16px 20px 0; border-top:1px solid #2c4a69; gap:5px; }
    .nt-footer-contact h2 { margin:0; }
    .nt-footer-contact .nt-button { padding:11px; min-height:42px; border-color:#7e9bba; gap:10px; }
    .nt-footer-partners { display:block; margin-top:20px; padding:16px 20px 0; }
    .nt-footer-partners>div { gap:12px; margin-top:9px; }
    .nt-footer-photo { display:block; height:220px; margin-top:20px; background:linear-gradient(#293c518c,#293c518c),url('../images/frontpage/footer-img11-footer.webp') center/cover; }
    .nt-footer-bottom { margin-top:20px; padding:14px 20px 0; flex-direction:column-reverse; gap:10px; }
	.nt-mobile-actions {
		display:flex;
		position:fixed;
		z-index:30;
		bottom:0;
		left:0;
		right:0;
		gap:10px;
		padding:max(10px,env(safe-area-inset-bottom)) 12px;
		background:#fff;
		box-shadow:0 -2px 10px rgb(0 0 0 / 12%);
		transform:translateY(calc(100% + 12px));
		visibility:hidden;
		pointer-events:none;
		transition:transform .3s ease, visibility 0s .3s;
	}
	.nt-mobile-actions.is-visible {
		transform:translateY(0);
		visibility:visible;
		pointer-events:auto;
		transition:transform .3s ease, visibility 0s;
	}
	.nt-mobile-actions .nt-button {
		flex:1;
		padding:11px 8px 12px;
		border:0;
		min-width:0;
		min-height:61px;
		gap:2px;
		white-space:nowrap
	}
	.nt-mobile-actions small {
		display:block;
		margin-top:2px;
		color:#ffe9ea;
	}
	.nt-mobile-actions .nt-button--green {
		background:#4e9e62;
	}
	.nt-mobile-actions .nt-button--green:hover {
		background:#397d4a;
	}
	.nt-mobile-actions .nt-button--green small {
		color:#ddf0e2;
	}
	.nt-mobile {
		display:block
	}
	.nt-desktop {
		display:none!important
	}
}
@media(prefers-reduced-motion:reduce)  {
	*,*::before,*::after  {
		scroll-behavior:auto!important;
		transition:none!important;
		animation:none!important;
	}
}
