@font-face {
	font-family: 'Noto Sans JP';
	font-weight: 300;
	src: url("/common/fonts/NotoSansJP-Light.woff2") format("woff2");
	font-display: swap;
}

@font-face {
	font-family: 'Noto Sans JP';
	font-weight: 400;
	src: url("/common/fonts/NotoSansJP-Regular.woff2") format("woff2");
	font-display: swap;
}

@font-face {
	font-family: 'Noto Sans JP';
	font-weight: 700;
	src: url("/common/fonts/NotoSansJP-Bold.woff2") format("woff2");
	font-display: swap;
}

.font-noto-sans {
	font-family: 'Noto Sans JP';
}


a {
	text-decoration: none !important;
}

a:hover, button:hover {
	opacity: 0.7;
}

button, button:focus, button:active {
	outline: 0;
	border:none !important;
}

#loading {
	position: fixed;
	width: 100vw;
	height: 100vh;
	background-color: var(--bg-loading);
	z-index: 9999;
}

#toggleBtn {
	position: relative;
	cursor: pointer;
	width: 35px;
	height: 35px;
	z-index: 9998;
}

#toggleBtn span {
	display: inline-block;
	transition: all .4s;
	position: absolute;
	left: 10%;
	width:80%;
	height: 4px;
	border-radius: 2px;
	background: var(--bg-toggle-btn);
}

#toggleBtn span:nth-of-type(1) {
	top: 5px;
}

#toggleBtn span:nth-of-type(2) {
	top: 15px;
}

#toggleBtn span:nth-of-type(3) {
	top: 25px;
}

#toggleBtn.active span {
	background: var(--bg-sidemenu-toggle-btn);
}

#toggleBtn.active span:nth-of-type(1) {
	top: 9px;
	transform: translateY(6px) rotate(-135deg);
}

#toggleBtn.active span:nth-of-type(2) {
	opacity: 0;
}

#toggleBtn.active span:nth-of-type(3) {
	top: 21px;
	transform: translateY(-6px) rotate(135deg);
}

.offcanvas.offcanvas-end {
	width: 340px !important;
}

.h-72px {
	height: 72px;
}

.py-80px {
	padding: 80px 0;
}

.pt-100px {
	padding-top: 100px;
}

.pb-90px {
	padding-bottom: 75px !important;
}

.z-1500 {
	z-index: 1500;
}

.breadcrumb-connection {
	position: relative;
	margin-right: 1.5rem;
}

.breadcrumb-connection::after{
	position: absolute;
	color: var(--txt-breadcrumb-separate);
	font-size: 1.5rem;
	content: "・";
	top: -5px;
	right: -1px;
	width: 1px;
	height: 1px;
}

.position-submenu {
	position: absolute;
	top: 105px;
	left: 50%;
	opacity: 0;
	transform: translate(-50%, -50%);
	transition: all 0.2s ease;
	visibility: hidden;
}

#headerMenu1:hover > .position-submenu,
#headerMenu2:hover > .position-submenu,
#headerMenu3:hover > .position-submenu {
	opacity: 1;
	transition: all 0.3s ease;
	visibility: visible;
}

.pointer-cursor {
	cursor: pointer;
}

.arrow-btn {
	position:relative;
	content: '';
	padding: 5px;
	background: var(--bg-arrow-btn);
	border-radius: 40px;
	width: 20px;
	height: 20px;
}

.arrow-btn:after {
	position: absolute;
	content: url('/common/img/ico_arrow.svg');
	right: 4px;
	bottom: -1px;
}

.arrow-btn-colored {
	position:relative;
	content: '';
	padding: 5px;
	background: var(--bg-arrow-colored-btn);
	border-radius: 40px;
	width: 20px;
	height: 20px;
}

.arrow-btn-colored:after {
	position: absolute;
	content: url('/common/img/ico_arrow_green.svg');
	right: 4px;
	bottom: -1px;
}

.position-sub-page-heading {
	position: absolute;
	bottom: 5%;
	left: 10%;
}

.position-domestic-departure {
	position: absolute;
	bottom: 5%;
	left: 4%;
}

.bg-form-required {
	background: var(--bg-form-required);
}

.bg-footer-menu-area {
	background-image: url('/common/img/bg_footer.jpg');
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
}

@supports (background-image: url('/common/img/bg_footer.webp')) {
	.bg-footer-menu-area {
		background-image: url('/common/img/bg_footer.webp');
	}
}

.bg-main1 {
	background: var(--bg-main1);
}

.bg-main2 {
	background: var(--bg-main2);
}

.bg-common-btn {
	background: var(--bg-common-btn) !important;
}

.bg-footer-area {
	background: var(--bg-footer-area);
}

.bg-sidemenu {
	background: var(--bg-sidemenu) !important;
}

.bg-contact-btn {
	background: var(--bg-contact-btn);
}

.bg-book-btn {
	background: var(--bg-book-btn);
}

.text-page-top-btn {
	color: var(--txt-page-top-btn);
}

.vertical-text {
	writing-mode: vertical-rl;
}

.line-height-1p9 {
	line-height: 1.9;
}

.line-height-2p2 {
	line-height: 2.2;
}

.filter-invert100 {
	filter: invert(100%);
}

.fs-7 {
	font-size: clamp(0.75rem, 1vw, 0.85rem);
}

.fs-16px-18px {
	font-size: clamp(16px, 2vw, 18px);
}

.fs-16px-20px {
	font-size: clamp(16px, 2vw, 20px);
}

.fs-20px-32px {
	font-size: clamp(20px, 2vw, 32px);
}

.fs-16px-24px {
	font-size: clamp(16px, 1.6vw, 24px);
}

.rounded-top {
	border-radius: 1rem 1rem 0 0;
}

.rounded-left {
	border-radius: 1rem 0 0 1rem;
}

.rounded-right {
	border-radius: 0 1rem 1rem 0;
}

.rounded-50px {
	border-radius: 50px;
}

.domestic-link-disabled {
	pointer-events: none;
	cursor: none;
}
