@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Josefin+Sans:wght@700&display=swap");
/* ============================== 
共通設定
============================== */
main p {
	line-height: 2;
}

.section {
	padding: 104px 0 64px;
}

.wrap_contents {
	width: 95.7333333333vw;
	margin: 0 auto;
	background: #fff;
	border: 1px solid #484A92;
	border-radius: 16px;
	-webkit-box-shadow: 4px 4px 0 #484A92;
	box-shadow: 4px 4px 0 #484A92;
	padding: 72px 15px 72px 14px;
	position: relative;
}
.wrap_contents::before {
	content: "";
	display: block;
	width: 84px;
	height: 84px;
	background-repeat: no-repeat;
	background-size: contain;
	position: absolute;
	top: 0;
	left: 50%;
	-webkit-transform: translate(-50%, -50%);
	transform: translate(-50%, -50%);
}

/* タイトル */
.ttl_special_en {
	font-size: 2.8rem;
	font-family: "Josefin Sans", sans-serif;
	font-optical-sizing: auto;
	font-weight: 700;
	font-style: normal;
	text-align: center;
	line-height: 1.5;
	margin-bottom: 16px;
	color: #484A92;
}

.ttl_special_ja {
	font-size: 2rem;
	font-weight: bold;
	letter-spacing: 0.1em;
	line-height: 1.5;
	text-align: center;
	color: #484A92;
	margin-bottom: 32px;
}

/* 背景 波 */
.bg_wave {
	background-repeat: repeat-x;
}

.bg_wave_bottom {
	background-position: bottom center;
	background-image: url(../images/special/bg_wave_bottom_sp.svg);
}

.bg_wave_top {
	background-position: top center;
	background-image: url(../images/special/bg_wave_top_sp.svg);
}

/* 背景 円 */
.bg_circle {
	background: url(../images/special/repeat_bg_sp.png) repeat-y;
	background-size: contain;
}

/* ============================== 
SPECIAL EVENT
============================== */
.special {
	padding: 120px 0;
}
.special .outer_contents {
	position: relative;
}
.special .outer_contents::before, .special .outer_contents::after {
	content: "";
	display: block;
	background-repeat: no-repeat;
	background-size: contain;
	position: absolute;
	z-index: -1;
}
.special .outer_contents::before {
	background-image: url(../images/special/bg_circle01.svg);
	width: 68.2666666667vw;
	height: 68.2666666667vw;
	top: -16px;
	left: -28px;
	-webkit-transform: translateY(-50%);
	transform: translateY(-50%);
}
.special .outer_contents::after {
	background-image: url(../images/special/bg_circle02.svg);
	width: 74.6666666667vw;
	height: 74.6666666667vw;
	right: 0;
	bottom: 0;
	-webkit-transform: translateY(50%);
	transform: translateY(50%);
}
.special .wrap_contents::before {
	background-image: url(../images/special/icon_section_special.png);
}

.icon_special {
	position: absolute;
	width: 48px;
}

.icon_special01 {
	top: 24px;
	left: 15px;
}

.icon_special02 {
	width: 48px;
	bottom: 24px;
	right: 16px;
}

.txt_special {
	font-weight: 500;
}

.wrap_ul_special_img {
	padding: 0 8px;
	margin-top: 32px;
	position: relative;
}

.ul_special_img {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	gap: calc(4 / 375 * 100vw);
	flex-wrap: wrap;
}
.ul_special_img li {
	width: calc(68 / 375 * 100vw);
}
.ul_special_img li:nth-child(even) {
	margin-top: 24px;
}

.icon_special_event03 {
	width: 180px;
	position: absolute;
	bottom: 16px;
	right: 0;
	-webkit-transform: translateY(100%);
	transform: translateY(100%);
}

/* ============================== 
OUTLINE
============================== */
.outline .wrap_contents::before {
	background-image: url(../images/special/icon_section_outline.png);
}

.dl_outline div {
	padding: 24px 0;
	border-bottom: 1px dotted #484A92;
}
.dl_outline div:first-of-type {
	padding-top: 0;
}
.dl_outline dt {
	font-size: 2rem;
	font-weight: bold;
	letter-spacing: 0.1em;
	background: #484A92;
	border-radius: 8px;
	padding: 9px 0;
	color: #fff;
	text-align: center;
	margin-bottom: 24px;
}
.dl_outline dd h3 {
	font-size: 2rem;
	font-weight: 900;
	color: #484A92;
	margin-bottom: 8px;
}
.dl_outline dd p {
	font-size: 1.4rem;
	font-weight: 500;
	margin-bottom: 12px;
}
.dl_outline dd p:last-child {
	margin-bottom: 0;
}

.outline_img {
	width: 120px;
	position: absolute;
	bottom: 48px;
	left: 0;
	-webkit-transform: translateY(100%);
	transform: translateY(100%);
}

/* ============================== 
EVENT
============================== */
.event .wrap_contents {
	background: #E8F5FD;
	padding-left: 0;
	padding-right: 0;
}
.event .wrap_contents::before {
	background-image: url(../images/special/icon_section_event.png);
}

.wrap_event_contents {
	width: 100%;
	margin-left: 6.1333333333vw;
	position: relative;
	z-index: 2;
}
.wrap_event_contents.wrap_event_contents01 {
	margin-bottom: 64px;
}

.wrap_event_contents01::before {
	content: "";
	display: block;
	width: 171px;
	height: 161px;
	background: url(../images/top/icon_event01.svg) no-repeat;
	background-size: contain;
	position: absolute;
	top: -114px;
	right: 12.5333333333vw;
	-webkit-transform: translateY(-100%);
	transform: translateY(-100%);
	z-index: -1;
}

.wrap_event_contents .splide__list {
	padding: 24px 0 !important;
}
.wrap_event_contents .splide__arrow {
	bottom: auto;
	top: 50%;
	background: #484A92;
	width: 44px;
	height: 44px;
}
.wrap_event_contents .splide__arrow svg {
	fill: #fff;
}
.wrap_event_contents .splide__arrow--prev {
	-webkit-transform: translate(0, -50%);
	transform: translate(0, -50%);
	left: -6.1333333333vw;
	visibility: hidden;
}
.wrap_event_contents .splide__arrow--next {
	-webkit-transform: translate(0, -50%);
	transform: translate(0, -50%);
	right: 6.1333333333vw;
}

.event_contents {
	margin-bottom: 0;
}

.wrap_event_text {
	-webkit-box-pack: start;
	-ms-flex-pack: start;
	justify-content: flex-start;
}

/* ============================== 
Download
============================== */
.download .wrap_contents::before {
	background-image: url(../images/special/icon_section_download.png);
}

.lead_text_special {
	background: #E8F5FD;
	color: #484A92;
	border-radius: 8px;
	padding: 16px;
	margin-bottom: 32px;
}

.download_contents:not(:last-child) {
	margin-bottom: 40px;
}

/* flex_box */
.flex_box {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
	-ms-flex-direction: column;
	flex-direction: column;
	gap: 24px;
}

/* download_text */
.download_text {
	margin-top: 24px;
	line-height: 1.5;
}
.download_text a {
	font-weight: bold;
	text-decoration: underline;
	line-height: 1.5;
}

/* ============================== 
Access
============================== */
.access .wrap_contents::before {
	background-image: url(../images/special/icon_section_access.png);
}
.access .wrap_contents::after {
	content: "";
	display: block;
	width: 96px;
	height: 64px;
	background: url(../images/special/icon_access.svg) no-repeat;
	background-size: contain;
	position: absolute;
	top: 0;
	right: 0;
}

.ul_address li {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	gap: 8px;
	font-size: 1.4rem;
	line-height: 1.5;
	margin-bottom: 16px;
}
.ul_address li::before {
	content: "";
	display: block;
	min-width: 8px;
	max-width: 8px;
	height: 8px;
	border-radius: 50%;
	background: #4AA3D5;
	margin-top: 6px;
}
.ul_address li:last-child {
	margin-bottom: 0;
}

.white_wrap {
	border: 1px solid #A4CCED;
	border-radius: 8px;
	-webkit-box-shadow: 2px 2px 0 #484A92;
	box-shadow: 2px 2px 0 #484A92;
	padding: 15px;
}

.google_map {
	position: relative;
}

.google_map::before {
	content: "";
	display: block;
	padding-top: 100%;
}

.google_map iframe {
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;	
}

/* ============================== 
Gallery
============================== */
.gallery .wrap_contents::before {
	background-image: url(../images/special/icon_section_gallery.png);
}

.ul_gallery {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	gap: 16px 8px;
}
.ul_gallery li {
	width: calc(50% - 4px);
}
.ul_gallery li span {
	display: block;
	font-size: 1.2rem;
	color: #484A92;
	margin-top: 8px;
}

/* ============================== 
Movie
============================== */
.movie .wrap_contents::before {
	background-image: url(../images/special/icon_section_gallery.png);
}

.movie video {
	width: 100%;
}

.caption {
	margin-top: 8px;
	font-size: 1.4rem;
	font-weight: bold;
	text-align: center;
	color: #0F0D78;
}

.movie_img {
	width: 104px;
	position: absolute;
	bottom: -64px;
	left: 0;
}

/* ============================== 
Friendly supporter
============================== */
.supporter .wrap_contents::before {
	background-image: url(../images/special/icon_section_supporter.png);
}

.ul_supporter {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	gap: 8px;
}

.ul_supporter01 li {
	width: calc(50% - 4px);
}

.ul_supporter02 {
	margin-top: 8px;
}
.ul_supporter02 li {
	width: calc(33.3333333333% - 5.3333333333px);
}

.ul_supporter03 {
	margin-top: 16px;
}
.ul_supporter03 li {
	font-weight: bold;
	font-size: 14px;
	font-size: 1.4rem;
}

/* ============================== 
Information
============================== */
.information .wrap_contents::before {
	background-image: url(../images/special/icon_section_information.png);
}
.information .ul_information_bnr {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
	-ms-flex-direction: column;
	flex-direction: column;
	gap: 24px;
	margin-bottom: 32px;
}
.wrap_dl_information {
	border: 1px solid #A4CCED;
	border-radius: 8px;
	padding: 32px 11px;
	margin-bottom: 32px;
}
.dl_information dt {
	font-size: 2rem;
	font-weight: bold;
	letter-spacing: 0.1em;
	color: #484A92;
	background: #E8F5FD;
	border-radius: 8px;
	text-align: center;
	padding: 9px;
	margin-bottom: 24px;
}
.dl_information dd {
	margin-bottom: 24px;
	font-size: 1.4rem;
	font-weight: 500;
}
.dl_information dd:last-of-type {
	margin-bottom: 0;
}

/* ============================== 
モーダル
============================== */
.modal {
	display: none;
	position: fixed;
	inset: 0;
	z-index: 9999;
	background: rgba(0, 0, 0, 0.6);
	padding: 40px 20px;
	overflow-y: auto;
	cursor: pointer;
}

.modal_inner {
	position: relative;
	max-width: 800px;
	margin: 0 auto;
	background: #fff;
	padding: 30px;
	border-radius: 12px;
	cursor: auto;
}

body.is-modal-open {
	overflow: hidden;
}

.modal button {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	width: 70%;
	height: 56px;
	border: 1px solid #0F0D78;
	border-radius: 8px;
	background: #fff;
	font-size: 2rem;
	font-weight: bold;
	color: #0F0D78;
	margin: 16px auto 0;
	cursor: pointer;
}
.modal button:hover {
	background: #0F0D78;
	color: #fff;
}

[data-modal-open] {
	cursor: pointer;
}

@media (min-width: 769px) {
	/* ============================== 
	共通設定
	============================== */
	.wrap_contents {
		width: min(95%, 1264px);
		padding: 64px min(calc(71 / 1360 * 100vw), 71px);
	}
	/* タイトル */
	.ttl_special_en {
		font-size: 3.2rem;
		line-height: 1.1875;
	}
	.ttl_special_ja {
		font-size: 2.4rem;
		margin-bottom: 40px;
	}
	/* 背景 波 */
	.bg_wave_bottom {
		background-image: url(../images/special/bg_wave_bottom_pc.svg);
	}
	.bg_wave_top {
		background-image: url(../images/special/bg_wave_top_pc.svg);
	}
	/* 背景 円 */
	.bg_circle {
		background-image: url(../images/special/repeat_bg_pc.png);
	}
	/* ============================== 
	SPECIAL EVENT
	============================== */
	.special {
		padding: 104px 0 64px;
	}
	.special .outer_contents::before {
		width: 392px;
		height: 392px;
		top: 56px;
	}
	.special .outer_contents::after {
		width: 660px;
		height: 660px;
	}
	.special .wrap_contents {
		z-index: 1;
	}
	.icon_special {
		width: min(7.0588235294vw, 96px);
		z-index: -1;
	}
	.icon_special01 {
		left: min(5.2941176471vw, 72px);
	}
	.icon_special02 {
		width: min(6.4705882353vw, 88px);
		bottom: min(4.7058823529vw, 64px);
		right: min(3.5294117647vw, 48px);
	}
	.txt_special {
		text-align: center;
	}
	.wrap_ul_special_img {
		width: min(95%, 1120px);
		margin: 64px auto 0;
		padding: 0;
	}
	.ul_special_img {
		gap: min(calc(5 / 1360 * 100vw), 5px);
	}
	.ul_special_img li {
		width: calc(20% - 4px);
	}
	.ul_special_img li:nth-child(even) {
		margin-top: min(6.4705882353vw, 88px);
	}
	.icon_special_event03 {
		width: min(26.4705882353vw, 360px);
		position: absolute;
		bottom: auto;
		top: min(7.6470588235vw, 104px);
		right: max(-7.6470588235vw, -104px);
		-webkit-transform: translateY(0);
		transform: translateY(0);
	}
	/* ============================== 
	OUTLINE
	============================== */
	.dl_outline {
		width: min(95%, 1120px);
		margin: 0 auto;
	}
	.dl_outline div {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-align: start;
		-ms-flex-align: start;
		align-items: flex-start;
		gap: min(2.3529411765vw, 32px);
	}
	.dl_outline dt {
		width: min(18.8235294118vw, 256px);
		font-size: 2.4rem;
		margin-bottom: 0;
		padding: 9px;
	}
	.dl_outline dd {
		-webkit-box-flex: 1;
		-ms-flex: 1;
		flex: 1;
		padding-top: 8px;
	}
	.dl_outline dd h3 {
		font-size: 2.4rem;
		margin-bottom: 8px;
	}
	.dl_outline dd p {
		font-size: 1.6rem;
		margin-bottom: 16px;
	}
	.outline_img {
		width: min(24.1176470588vw, 328px);
		position: absolute;
		bottom: max(calc(-64 / 1360 * 100vw), -64px);
		left: max(calc(-240 / 1360 * 100vw), -240px);
		-webkit-transform: translateY(0%);
		transform: translateY(0%);
	}
	/* ============================== 
	EVENT
	============================== */
	.event .wrap_contents {
		background: #E8F5FD;
	}
	.event .wrap_contents::before {
		background-image: url(../images/special/icon_section_event.png);
	}
	.wrap_event_contents {
		width: min(calc(1162 / 1360 * 100vw), 1162px);
		margin: 0 auto;
		position: relative;
		z-index: 2;
	}
	.wrap_event_contents .splide__list {
		padding: 48px 0 2px !important;
	}
	.wrap_event_contents .splide__arrow--prev {
		visibility: visible;
		left: -8px;
		-webkit-transform: translate(-100%, -50%);
		transform: translate(-100%, -50%);
	}
	.wrap_event_contents .splide__arrow--next {
		right: -8px;
		-webkit-transform: translate(100%, -50%);
		transform: translate(100%, -50%);
	}
	.wrap_event_contents01::before {
		width: 245px;
		height: 231px;
		right: 0;
		top: 0;
	}
	.event_contents a {
		padding: min(1.7647058824vw, 24px);
	}
	.event_contents a .thumbnail {
		width: min(18.8235294118vw, 256px);
		margin: 0 auto 16px;
	}
	.event_contents a .thumbnail img {
		height: min(14.7058823529vw, 200px);
	}
	.ttl_h3_event {
		font-size: min(1.3235294118vw, 18px);
	}
	.event_description {
		font-size: min(1.1764705882vw, 16px);
	}
	.wrap_event_text {
		margin-bottom: 8px;
		width: 100%;
		-webkit-box-flex: 1;
		-ms-flex-positive: 1;
		flex-grow: 1;
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-pack: end;
		-ms-flex-pack: end;
		justify-content: flex-end;
		-webkit-box-orient: vertical;
		-webkit-box-direction: normal;
		-ms-flex-direction: column;
		flex-direction: column;
	}
	.wrap_event_info {
		width: 100%;
		font-size: min(1.0294117647vw, 14px);
	}
	.my-carousel-progress,
	.my-carousel-progress2 {
		display: none;
	}
	/* ============================== 
	Download
	============================== */
	.download .wrap_contents::before {
		background-image: url(../images/special/icon_section_download.png);
	}
	.lead_text_special {
		font-size: 1.8rem;
		border-radius: 16px;
		padding: 24px;
		margin-bottom: 24px;
	}
	.download_contents:not(:last-child) {
		margin-bottom: 80px;
	}
	/* flex_box */
	.flex_box {
		-webkit-box-pack: center;
		-ms-flex-pack: center;
		justify-content: center;
		-webkit-box-orient: horizontal;
		-webkit-box-direction: normal;
		-ms-flex-direction: row;
		flex-direction: row;
		gap: 32px;
	}
	.flex_contents {
		width: min(calc(544 / 1360 * 100vw), 544px);
	}
	/* download_text */
	.download_text {
		margin-top: 16px;
		text-align: center;
		font-size: 1.8rem;
	}
	/* ============================== 
	Access
	============================== */
	.access .wrap_contents::after {
		width: min(22.3529411765vw, 304px);
		height: min(15.1470588235vw, 206px);
		top: 0;
		right: min(1.7647058824vw, 24px);
	}
	.ul_address li {
		font-size: 1.6rem;
	}
	.ul_address li::before {
		margin-top: 8px;
	}
	.white_wrap {
		border-radius: 16px;
		padding: 23px;
	}
	/* ============================== 
	Gallery
	============================== */
	.ul_gallery {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-ms-flex-wrap: wrap;
		flex-wrap: wrap;
		gap: min(calc(16 / 1360 * 100vw), 16px) min(calc(32 / 1360 * 100vw), 32px);
	}
	.ul_gallery li {
		width: min(calc(352 / 1360 * 100vw), 352px);
	}
	.ul_gallery li span {
		font-size: 1.4rem;
	}
	/* ============================== 
	Movie
	============================== */
	.caption {
		font-size: 1.8rem;
	}
	.movie_img {
		width: min(13.5294117647vw, 184px);
	}
	/* ============================== 
	Friendly supporter
	============================== */
	.ul_supporter {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-ms-flex-wrap: wrap;
		flex-wrap: wrap;
		gap: 16px 8px;
	}
	.ul_supporter01 li {
		width: 368px;
	}
	.ul_supporter02 li {
		width: 180px;
	}
	.ul_supporter03 li {
		width: 368px;
	}
	.ul_supporter02 {
		margin-top: 16px;
	}
	/* ============================== 
	Information
	============================== */
	.information .ul_information_bnr {
		-webkit-box-orient: horizontal;
		-webkit-box-direction: normal;
		-ms-flex-direction: row;
		flex-direction: row;
		width: min(100%, 928px);
		gap: 32px;
		margin: 0 auto;
	}
	.information .ul_information_bnr li {
		width: 50%;
	}
	.wrap_dl_information {
		border-radius: 16px;
		padding: 40px 0;
	}
	.dl_information {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-align: center;
		-ms-flex-align: center;
		align-items: center;
		-ms-flex-wrap: wrap;
		flex-wrap: wrap;
		gap: 24px 0;
		width: min(95%, 928px);
		margin: 0 auto;
	}
	.dl_information dt {
		width: min(18.8235294118vw, 256px);
		font-size: 2.4rem;
		padding: 9px;
		margin-bottom: 0;
	}
	.dl_information dd {
		width: calc(100% - min(18.8235294118vw, 256px));
		margin-bottom: 0;
		font-size: 1.6rem;
		padding-left: min(2.3529411765vw, 32px);
	}
}