/* --------------------------------------------------------------------------------------
	ヘッダー
--------------------------------------------------------------------------------------- */

header {
	align-items: flex-start;
	display: flex;
	justify-content: space-between;
	position: absolute;
	top: 24px;
	width: 100%;
	z-index: 1000;
}

header .logo {
	align-items: center;
	display: flex;
	margin-left: min(3.333vw,48px);
	z-index: 1;
}

header .logo h1 {
	max-width: 96px;
	width: 100%;
}

header .logo .airnewzealand { margin-left: 20px; }

header .other-navi {
	align-items: center;
	display: flex;
	justify-content: space-between;
	margin-right: min(3.333vw,48px);
	margin-top: 24px;
	z-index: 1;
}

header .other-navi .language {
	align-items: center;
	color: #fff;
	display: flex;
	margin-right: 62px;
}

header .other-navi .language li { position: relative; }

header .other-navi .language li:nth-of-type(n+2) {
	margin-left: 4px;
	padding-left: 14px;
}

header .other-navi .language li:nth-of-type(n+2)::before {
	content: '/';
	display: block;
	left: 0;
	line-height: 1;
	position: absolute;
	top: -1px;
}

header .other-navi .language .jp a,
.english-page header .other-navi .language .en a { pointer-events: none; }

.english-page header .other-navi .language .jp a { pointer-events: inherit; }

header .other-navi .language li a {
	color: #fff;
	display: block;
	font-family: var(--font-Antonio);
	font-weight: var(--Medium);
	line-height: 1;
}

header .other-navi .sns {
	align-items: center;
	display: flex;
	margin-right: 56px;
}

header .other-navi .sns li:nth-of-type(n+2),
.gnavi .sns li:nth-of-type(n+2) { margin-left: 20px; }

.panel-btn {
	cursor: pointer;
	height: 16px;
	position: relative;
	width: 32px;
	z-index: 31;
}

.panel-btn-icon::before,
.panel-btn-icon::after {
	background-color: #fff;
	content: '';
	display: block;
	height: 4px;
	left: 0;
	position: absolute;
	top: 0;
	transition: all .3s ease-in-out;
	width: 100%;
}

.panel-btn-icon::before { margin-top: 0; }
.panel-btn-icon::after { margin-top: 12px; }

.close .panel-btn-icon { background: transparent; }

.close .panel-btn-icon::before,
.close .panel-btn-icon::after {
	margin-top: 0;
	top: 6px;
}

.close .panel-btn-icon::before { transform: rotate(-45deg); }
.close .panel-btn-icon::after { transform: rotate(-135deg); }

header.fixed {
	animation: fixed-animate .6s cubic-bezier(0, .8, .56, 1) both;
	background-color: #fff;
	box-shadow: 0 4px 0 #edeff4;
	left: 0;
	padding: 12px 16px;
	position: fixed;
	top: 0;
}

@keyframes fixed-animate {
	0% { transform: translateY(-150px); }
	100% { transform: translateY(0); }
}

header.fixed .logo { margin-left: 0; }

header.fixed .logo h1 { max-width: 72px; }

header.fixed .logo h1 a img,
header.fixed .logo .airnewzealand a img,
header.fixed .other-navi .sns li a img { filter: var(--filter-black); }

header.fixed .other-navi { margin-right: 0; }

header.fixed .other-navi .language { margin-right: 32px; }

header.fixed .other-navi .language,
header.fixed .other-navi .language a { color: var(--color-text); }

header.fixed .panel-btn-icon::before,
header.fixed .panel-btn-icon::after { background-color: #000; }

header .gnavi {
	background-color: rgba(0,0,0,.96);
	color: #fff;
	height: 100vh;
	left: 0;
	position: fixed;
	top: 0;
	transform: translateX(100vw);
	transition: all .3s ease-in-out;
	width: 100%;
}

header .gnavi.nav-open { transform: translate(0); }

header .gnavi .inner {
	align-items: center;
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 100svh;
	text-align: center;
}

header .gnavi .navi li:nth-of-type(n+2) { margin-top: 18px; }

header .gnavi .navi li a { color: #fff; }

header .gnavi .banner-area {
	display: flex;
	flex-direction: column;
	gap: 20px;
	margin-top: 62px;
}

header .gnavi .sns {
	border-top: 1px solid var(--color-border);
	display: flex;
	justify-content: center;
	margin-top: 87px;
	min-width: 320px;
	padding-top: 40px;
}

header .gnavi .close {
	cursor: pointer;
	margin-top: 110px;
}

header.fixed:has(.nav-open) h1 a img,
header.fixed:has(.nav-open) .logo .airnewzealand a img,
header.fixed:has(.nav-open) .other-navi .sns li a img { filter: none; }

header.fixed:has(.nav-open) .language,
header.fixed:has(.nav-open) .other-navi .language a { color: #fff; }

header.fixed:has(.nav-open) .panel-btn-icon::before,
header.fixed:has(.nav-open) .panel-btn-icon::after { background-color: #fff; }

@media (max-width: 1099px) {

	header {
		align-items: center;
		padding-top: 2.985vw;
		top: 0;
	}

	header .logo {
		margin-left: 4.975vw;
	}

	header .logo h1 { max-width: 10.925vw; }

	header .logo .airnewzealand {
		margin-left: 2.488vw;
		max-width: 26.333vw;
	}

	header.fixed .logo h1 { max-width: 10.925vw; }

	header .other-navi {
		margin-right: 4.975vw;
		margin-top: 1.333vw;
	}

	header .other-navi .language,
	header.fixed .other-navi .language {
		margin-right: 4.975vw;
		margin-top: 0;
	}

	header .other-navi .sns { margin-right: 4.975vw; }

	header .other-navi .sns li:nth-of-type(n+2) { margin-left: 2.488vw; }

	header .other-navi .sns li a { display: block; }

	header .other-navi .sns li a img {
		display: block;
		max-height: 4.333vw;
	}

	header .gnavi .navi li:nth-of-type(n+2) { margin-top: 3.731vw; }

	header .gnavi .banner-area {
		gap: 2.975vw;
		margin-top: 7.711vw;
	}

	header .gnavi .sns {
		margin-left: 4.975vw;
		margin-right: 4.975vw;
		margin-top: 10.821vw;
		min-width: inherit;
		padding-top: 4.975vw;
		width: calc(100% - 9.95vw);
	}

	header .gnavi .sns li:nth-of-type(n+2) { margin-left: 2.488vw; }

	header .gnavi .close { margin-top: 13.682vw; }

}

/* --------------------------------------------------------------------------------------
	共有パーツ
--------------------------------------------------------------------------------------- */

.box {
	margin-left: auto;
	margin-right: auto;
	max-width: 1100px;
	position: relative;
	text-align: left;
	transition: all .3s ease-in-out;
	width: 100%;
	z-index: 1;
}

.wrapper {
	overflow-x: hidden;
	width: 100%;
}

.box-padding {
	padding-left: 60px;
	padding-right: 60px;
}

.section-black {
	background-color: #000;
	color: #fff;
}

.english-page .font-english { font-family: var(--font-Antonio); }

.v-line { font-family: 'Yu Gothic', YuGothic,'メイリオ',Meiryo,'Osaka','ＭＳ Ｐゴシック','MS PGothic',sans-serif; }

.fadeIn { opacity: 1; }
.fadeOut { opacity: 0; }

@media (max-width: 1099px) {

	.box { width: auto; }

	.box-padding {
		padding-left: 0;
		padding-right: 0;
	}
}

/* --------------------------------------------------------------------------------------
	デバイス切り替え
--------------------------------------------------------------------------------------- */

.sp { display: none; }

@media (max-width: 1099px) {

	.pc { display: none; }
	.sp { display: block; }
}

/* --------------------------------------------------------------------------------------
	バナー
--------------------------------------------------------------------------------------- */

.banner { display: inline-block; }

.banner a {
	align-items: center;
	background-color: #fff;
	border: 1px solid #fff;
	border-radius: 100vw;
	display: flex;
	font-weight: var(--Bold);
	justify-content: center;
	min-height: 48px;
	min-width: 240px;
	overflow: hidden;
	padding: 12px 28px;
	position: relative;
	transition: all .3s ease-in-out;
	width: 100%;
	z-index: 0;
}

.banner a::before {
	background: linear-gradient(to right,
	rgba(255, 255, 255, 0) 0%,
	rgba(255, 255, 255, 0.5) 70%,
	rgba(255, 255, 255, 0) 100%
);
	content: '';
	height: 100%;
	left: -150px; /* 初期位置：ボタンの左側にはみ出させておく */
	position: absolute;
	top: 0;
	transform: skewX(-25deg);
	transition: left 0.5s ease-in-out;
	width: 100px;
	z-index: 1;
}

.banner.red a {
	background-color: var(--color-red);
	border-color: var(--color-red);
	color: #fff;
}

.banner.border a { border-color: #000; }

.english-page .banner a { font-family: var(--font-Antonio); }

.over { transition: all .3s ease-in-out; }

@media (any-hover: hover) {

	.banner a:hover {
		background-color: #000;
		border-color: #000;
		color: #fff;
		text-decoration: none;
		transition-delay: 0.1s;
	}

	.banner a:hover::before {
		left: 150%;
		transition-delay: 0.2s;
	}

	.banner.red a:hover {
		background-color: #ab1700;
		border-color: #ab1700;
	}

	.over:hover {
		opacity: .6;
		text-decoration: none;
	}

}

@media (max-width: 1099px) {

	.banner a {
		font-size: 4vw;
		min-height: inherit;
		min-width: 72.139vw;
		padding: 4.824vw;
	}

}

/* --------------------------------------------------------------------------------------
	キービジュアル
--------------------------------------------------------------------------------------- */

.key-image {
	background-color: #000;
	color: #fff;
	height: 280px;
	padding-top: 130px;
	position: relative;
}

.key-image h2 {
	font-size: 40px;
	font-weight: var(--Bold);
	line-height: 1;
}

@media (max-width: 1099px) {

	.key-image {
		height: 57.652vw;
		padding-top: 27.3333vw;
	}

	.key-image .inner {
		padding-left: 4.975vw;
		padding-right: 4.975vw;
	}

	.key-image h2 { font-size: 7.96vw; }
}

/* --------------------------------------------------------------------------------------
	パンくず
--------------------------------------------------------------------------------------- */

.pankuzu {
	align-items: center;
	display: flex;
	font-size: 14px;
	margin-top: 40px;
	position: relative;
	text-align: left;
	width: 100%;
}

.pankuzu a { color: #fff; }

.pankuzu > span {
	display: block;
	line-height: 1;
	position: relative;
}

.pankuzu > span br { display: none; }

.pankuzu > span:nth-of-type(n+2) { margin-left: 20px; }

.pankuzu > span:nth-of-type(n+2):before {
	border-bottom: 1px solid #fff;
	border-right: 1px solid #fff;
	content: '';
	display: block;
	height: 5px;
	left: -13px;
	position: absolute;
	top: 50%;
	transform: translateY(-50%) rotate(-45deg);
	width: 5px;
}

@media (max-width: 1099px) {

	.pankuzu {
		font-size: 2.985vw;
		margin-top: 4.975vw;
		width: auto;
	}

	.pankuzu > span { white-space: nowrap; }

	.pankuzu > span:nth-of-type(n+2):before { left: -3.367vw; }

	.pankuzu > span:last-of-type span {
		-webkit-box-orient: vertical;
		display: -webkit-box;
		-webkit-line-clamp: 1;
		overflow: hidden;
		text-align: left;
		text-overflow: ellipsis;
		white-space: normal;
		width: unset;
	}
}

/* --------------------------------------------------------------------------------------
	お知らせ一覧
--------------------------------------------------------------------------------------- */

.pagination { margin-top: 48px; }

.pagination .screen-reader-text { display: none; }

.pagination .nav-links { text-align: center;}

.pagination .page-numbers {
	display: inline-flex;
	justify-content: center;
	margin-left: auto;
	margin-right: auto;
	position: relative;
}

.pagination .page-numbers li > a,
.pagination .page-numbers li > span {
	align-items: center;
	border: 2px solid var(--color-orange-thin);
	color: var(--color-orange);
	display: flex;
	font-weight: var(--Bold);
	height: 48px;
	justify-content: center;
	position: relative;
	transition: all .3s ease-in-out;
	width: 48px;
}

.pagination .page-numbers li > span {
	background-color: var(--color-orange);
	border-color: var(--color-orange);
	color: #fff;
}

.pagination .page-numbers.next,
.pagination .page-numbers.prev {
	border-color: #fff;
	font-size: 0;
	position: absolute;
}

.pagination .page-numbers.prev { left: -46px; }
.pagination .page-numbers.next { right: -46px; }

.pagination .page-numbers.next::before,
.pagination .page-numbers.prev::before {
	background: url(../img/common/icon-arrow.svg) no-repeat;
	background-size: 7px auto;
	content: '';
	display: block;
	filter: var(--filter-orange);
	height: 12px;
	position: absolute;
	right: 19px;
	top: 50%;
	transform: translateY(-50%);
	transition: all .3s ease-in-out;
	width: 7px;
	z-index: 1;
}

.pagination .page-numbers.prev::before { transform: scale(-1,1) translateY(-50%); }

@media (min-width: 1000px) {

	.pagination .page-numbers li > a:hover {
		background-color: var(--color-orange);
		border-color: var(--color-orange);
		color: #fff;
		text-decoration: none;
	}

	.pagination .page-numbers.next:hover::before,
	.pagination .page-numbers.prev:hover::before { filter: none; }
}

.pagination .page-numbers li:nth-of-type(n+2) { margin-left: 4px; }

@media (max-width: 1099px) {

	.pagination { margin-top: 11.94vw; }

	.pagination .page-numbers.prev { left: -11.667vw; }
	.pagination .page-numbers.next { right: -11.667vw; }

	.pagination .page-numbers li > a,
	.pagination .page-numbers li > span {
		font-size: 3.98vw;
		height: 11.94vw;
		width: 11.94vw;
	}

	.pagination .page-numbers li:nth-of-type(n+2) { margin-left: .995vw; }
}


/* --------------------------------------------------------------------------------------
	アニメーション
--------------------------------------------------------------------------------------- */

.slide-item,
.slide-item-top {
	/* filter: blur(10px); */
	opacity: 0;
	transition: all 1s cubic-bezier(.5, 1, .89, 1);
}

.slide-top { transform: translateY(-50px); }
.slide-bottom { transform: translateY(50px); }

.slide-left {
	opacity: 0;
	transform: translateX(-50px);
}

.slide-right  {
	opacity: 0;
	transform: translateX(50px);
}

.open-left { transform: translateX(-100vw); transition: all .3s cubic-bezier(0, .8, .56, 1);}
.open-right { transform: translateX(100vw); transition: all .3s cubic-bezier(0, .8, .56, 1); }

.slide-item.slide-bg-white {
	opacity: 1;
	position: relative;
}

.slide-item.slide-bg-white::before {
	background-color: #fff;
	content: '';
	display: block;
	height: 100%;
	position: absolute;
	right: 0;
	top: 0;
	transition: all 1.6s cubic-bezier(.16, 1, .3, 1);
	width: 100%;
	z-index: 1;
}

.slide-item.slide-bg-white-animate::before { width: 0; }

.slide-top-animate,
.slide-bottom-animate,
.slide-right-animate,
.slide-left-animate,
.slide-right-animate::after,
.slide-left-animate::before,
.open-left-animate,
.open-right-animate {
	/* filter: blur(0); */
	opacity: 1;
	transform: translateY(0) translateX(0);
}

@keyframes fade-animate {
	0% {
		opacity: 0;
		transform: translateY(150px);
	}

	100% {
		opacity: 1;
		transform: translateY(0);
	}
}

/* --------------------------------------------------------------------------------------
	アコーディオン
--------------------------------------------------------------------------------------- */

details { overflow: hidden; }

details summary {
	cursor: pointer;
	display: block;
	list-style: none;
	position: relative;
}

.accordion-plus:nth-of-type(n+2) { margin-top: 8px; }

.accordion-plus summary {
	background-color: #fff;
	border-radius: 4px;
	font-feature-settings: "palt";
	font-weight: var(--Bold);
	letter-spacing: .4px;
	padding: 18px 56px 18px 28px;
}

.english-page .accordion-plus summary { font-feature-settings: "palt"; }

.accordion-plus summary::before {
	background-color: var(--color-border);
	content: '';
	display: block;
	height: 4px;
	position: absolute;
	right: 24px;
	top: 30px;
	width: 20px;
}

.accordion-plus summary::after {
	background-color: var(--color-border);
	content: '';
	display: block;
	height: 20px;
	position: absolute;
	right: 32px;
	top: 22px;
	width: 4px;
}

.accordion-plus summary:has(.number) { display: flex; }
.accordion-plus summary:has(.number) .number { margin-right: 4px; }

details summary::-webkit-details-marker { display: none; }
.accordion-plus[open] > summary::after { display: none; }

.accordion-plus .accordion-inner {
	background-color: #fff;
	border-radius: 4px;
	font-size: 14px;
	margin-top: 4px;
	padding: 16px 26px;
}

.accordion-plus .accordion-inner p,
.accordion-plus .accordion-inner li { line-height: 1.7; }

.accordion-plus .accordion-inner .mt,
.accordion-plus .accordion-inner p:nth-of-type(n+2) { margin-top: 12px; }

.accordion-plus .accordion-inner .dotted {
	margin-left: 1em;
	text-indent: -1em;
}

.accordion-plus .accordion-inner p a,
.accordion-plus .accordion-inner li a,
.accordion-plus .accordion-inner small a { text-decoration: underline; }

@media (max-width: 1099px) {

	.accordion-plus summary { padding: 3.98vw 56px 3.98vw 5.224vw; }

	.accordion-plus summary::before { top: 27px; }
	.accordion-plus summary::after { top: 19px; }

	.accordion-plus .accordion-inner {
		font-size: 3.234vw;
		padding: 3.483vw 5.97vw;
	}

	.accordion-plus .accordion-inner .mt,
	.accordion-plus .accordion-inner p:nth-of-type(n+2) { margin-top: 2.488vw; }

}


/* --------------------------------------------------------------------------------------
	フッター
--------------------------------------------------------------------------------------- */

.pagetop {
	bottom: 30px;
	cursor: pointer;
	position: fixed;
	right: 30px;
	width: 56px;
	z-index: 20;
}

footer .banner-section {
	background: url(../img/common/footer-image.jpg) no-repeat center top;
	background-size: 115% auto;
	color: #fff;
	padding-bottom: 66px;
	padding-top: 56px;
}

footer .banner-section h2 {
	font-family: var(--font-Antonio);
	font-size: 40px;
	font-weight: var(--Medium);
}

footer .banner-section h3 {
	font-size: 22px;
	font-weight: var(--Bold);
}

footer .banner-section .banner-area { margin-top: 32px; }

footer .banner-section .banner-area ul {
	display: flex;
	gap: 20px;
	justify-content: center;
	margin-top: 32px;
}

footer .footer-content {
	background-color: #000;
	color: #fff;
	padding-bottom: 18px;
	padding-top: 26px;
}

footer .footer-content .logo {
	align-items: center;
	display: flex;
	justify-content: center;
	margin: auto;
}

footer .footer-content .logo .made-with-care img { max-width: 141px; }

footer .footer-content .logo > div:nth-of-type(n+2) { margin-left: 40px; }

footer .footer-content nav .inner {
	align-items: center;
	display: flex;
	justify-content: space-between;
	text-align: center;
}

footer .footer-content nav .inner::before {
	content: "";
	flex: 1;
}

footer .footer-content nav .inner small {
	display: block;
	font-size: 12px;
	letter-spacing: .3px;
	line-height: 1.6;
	margin-top: 6px;
}

footer .footer-content nav .inner .sns-section {
	flex: 1;
	text-align: right;
}

footer .footer-content nav .inner .sns-section .sns {
	align-items: center;
	display: flex;
	justify-content: flex-end;
}

footer .footer-content nav .inner .sns-section .sns li:nth-of-type(n+2) { margin-left: 20px; }

footer .footer-content .other {
	align-items: center;
	display: flex;
	font-size: 14px;
	justify-content: center;
	margin-bottom: 18px;
	margin-top: 32px;
}

footer .footer-content .other li:nth-of-type(n+2) { margin-left: 20px; }

footer .footer-content .other li a {
	color: #fff;
	display: block;
	font-feature-settings: "palt";
	line-height: 1.3;
}

@media (max-width: 1099px) {

	.pagetop {
		bottom: 2vw;
		right: 2vw;
		width: 9.328vw;
	}

	footer .banner-section {
		background-size: cover;
		padding: 12.438vw 4.975vw;
	}

	footer .banner-section h2 {
		font-size: 9.95vw;
		line-height: 1.3;
	}

	footer .banner-section h3 {
		font-size: 3.731vw;
		margin-top: 1.975vw;
	}

	footer .banner-section .banner-area { margin-top: 10.463vw; }

	footer .banner-section .banner-area ul {
		flex-wrap: wrap;
		gap: 3.98vw;
		margin-top: 3.98vw;
	}

	footer .footer-content { padding: 7.96vw 4.975vw; }

	footer .footer-content .logo {
		flex-wrap: wrap;
		justify-content: space-between;
		margin-bottom: 8.98vw;
	}

	footer .footer-content .logo .made-with-care {
		margin-bottom: 3.98vw;
		width: 100%;
	}

	footer .footer-content .logo .made-with-care img { max-width: 35.333vw; }

	footer .footer-content .logo > div:nth-of-type(n+2) {
		margin-left: 0;
		width: 48%;
	}

	footer .footer-content nav .inner {
		flex-direction: column;
		font-size: 2.985vw;
	}

	footer .footer-content nav .inner small {
		line-height: 1.7;
		margin-top: 5.333vw;
		order: 2;
		padding: 0;
		text-align: center;
	}

	footer .footer-content nav .inner .sns-section {
		order: 1;
		text-align: center;
	}

	footer .footer-content nav .inner .sns-section .sns { justify-content: center; }

	footer .footer-content nav .inner .sns-section .sns li:nth-of-type(n+2) { margin-left: 2.488vw; }

	footer .footer-content nav .inner .sns-section .sns a { display: block; }

	footer .footer-content .other {
		flex-wrap: wrap;
		font-size: 3.234vw;
		justify-content: flex-start;
		margin-bottom: 4.478vw;
		margin-top: 4.478vw;
		text-align: left;
	}

	footer .footer-content .other li { width: 50%; }

	footer .footer-content .other li:nth-of-type(n+2) { margin-left: 0; }
	footer .footer-content .other li:nth-of-type(n+3) { margin-top: 2.488vw; }

}