@charset "UTF-8";

/**************************************************
MV
**************************************************/
.mv {
	margin-block: 0;
	padding-inline: clamp(10px, 3.33vw, 48px);
}

.mv__slider {
	width: 100%;
	height: auto;
	aspect-ratio: 1830 / 811;
	border-radius: 45px;
	overflow: hidden;
}

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

.mv__slider .swiper-slide-active img,
.mv__slider .swiper-slide-duplicate-active img,
.mv__slider .swiper-slide-prev img {
	animation: zoomUp 7s linear 0s normal both;
}

@keyframes zoomUp {
	0% {
		transform: scale(1);
	}

	100% {
		transform: scale(1.15);
	}
}


.mv__catch {
	padding-inline: clamp(10px, 3.33vw, 48px);
	position: absolute;
	top: 60px;
}

.mv__catch h2 {
	width: clamp(295px, 29.5vw, 567px);
	clip-path: inset(0 100% 0 0);
	animation: mvCatch 0.3s ease-out forwards;
	animation-delay: 0.5s;
}

@keyframes mvCatch {
	0% {
		clip-path: inset(0 100% 0 0);
	}

	100% {
		clip-path: inset(0 0 0 0);
	}
}


@media (max-width:767px) {
	.mv__slider {
		aspect-ratio: 567 / 750;
		border-radius: 16px;
	}

	.mv__catch {
		position: absolute;
		top: 30px;
		left: 50%;
		transform: translateX(-50%);
		width: 85%;
		max-width: 350px;
		margin-left: -10px;
	}

	.mv__catch h2 {
		width: 100%;
	}
}




/**************************************************
メニュー
**************************************************/
.menu {
	margin-top: var(--section-margin);
}

.menu__list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 36px;
	max-width: 910px;
	margin-inline: auto;
	padding-left: 0;
	list-style: none;
}

.menu__item a {
	display: grid;
	align-content: center;
	justify-items: center;
	width: 100%;
	aspect-ratio: 1 / 1;
	padding-bottom: 1em;
	border: 1px solid var(--color-lightgray);
	border-radius: 13px;
	text-decoration: none;
	font-weight: 500;
	transition: border-color 0.3s ease, color 0.3s ease;
}

.menu__item a figure {
	display: block;
	width: 55%;
}

.menu__item a figure img {
	display: block;
	margin-inline: auto;
	filter: grayscale(100%);
	transition: filter 0.3s ease, scale 0.3s ease;
}

.menu__item a span {
	display: inline-flex;
	align-items: center;
	gap: 0.5em;
	position: relative;
	font-size: clamp(12px, 1.31vw, 19px);
	font-weight: 700;
}

.menu__item a span::after {
	display: inline-block;
	content: "";
	background-image: url(/wpv3/wp-content/themes/underscore/assets/img/menu_arrow.svg);
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
	width: 1.25em;
	height: 1.25em;
	transition: transform 0.3s ease;
}

/* ホバー */
.menu__item a:hover {
	border-color: var(--color-main);
	color: var(--color-main);
}

.menu__item a:hover figure img {
	filter: grayscale(0%);
	scale: 1.1;
}

.menu__item a:hover span::after {
	transform: translateX(0.25em);
}

@media (max-width:767px) {
	.menu__list {
		grid-template-columns: repeat(2, 1fr);
		gap: 10px;
	}

	.menu__item a figure {
		width: 70%;
	}

	.menu__item a span {
		gap: 0.15em;
	}
}




/**************************************************
新着情報
**************************************************/
.news__layout {
	display: grid;
	grid-template-columns: 1fr 360px;
	gap: 80px;
	margin-top: 60px;
}

/* ==============================
新着情報
============================== */
.news-list__title {
	font-size: clamp(30px, 2.91vw, 42px);
	letter-spacing: 0.25em;
}

.news-list__list {
	list-style: none;
	padding-left: 0;
}

.news-list__item {
	border-bottom: 1px solid var(--color-lightgray);
	padding-block: 0.8em 1em;
}

.news-list__item a {
	text-decoration: none;
	font-size: clamp(15px, 1.25vw, 18px);
	transition: color 0.3s ease;
}

.news-list__item a h3 {
	font-weight: 400;
	line-height: 1;
	margin-top: 0.5em;
	display: -webkit-box;
	-webkit-line-clamp: 1;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.news-list__button {
	margin-top: 40px;
}

.news-list__button a {
	display: flex;
	align-items: center;
	gap: 0.5em;
	width: fit-content;
	text-decoration: none;
	margin-left: auto;
	font-size: clamp(15px, 1.38vw, 20px);
	text-transform: uppercase;
	font-weight: 700;
	color: var(--color-main-sub);
	letter-spacing: 0.1em;
	transition: text-decoration 0.3s ease;
}

.news-list__button a::after {
	display: block;
	content: "";
	width: 2.8em;
	height: 2.8em;
	background-image: url(/wpv3/wp-content/themes/underscore/assets/img/news_arrow.svg);
	background-size: contain;
	background-repeat: no-repeat;
	transform: translateX(0);
	transition: transform 0.3s ease;
}

/* ホバー */
.news-list__item a:hover {
	color: var(--color-main);
}

.news-list__button a:hover::after {
	transform: translateX(0.3em);
}


/* ==============================
facebook
============================== */
.news-facebook__title {
	color: var(--color-main-sub);
	font-size: 19px;
}

.news-facebook__content,
.news-facebook__content .fb-page {
	max-width: 100%;
	text-align: center;
	margin-inline: auto;
}


/* ==============================
instagram
============================== */
.news-instagram {
	margin-top: 50px;
}

.news-instagram__title {
	color: var(--color-main-sub);
	font-size: 19px;
}

/* instagram埋め込み */
.news-instagram__content ul {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 14px;
	padding-left: 0;
	list-style: none;
}

.news-instagram__content li {
	aspect-ratio: 1 / 1;
	background-color: #ccc;
}


@media (max-width:767px) {
	.news__layout {
		grid-template-columns: 1fr;
		gap: 40px;
		margin-top: 40px;
	}

	.news-list__list {
		margin-top: 30px;
		outline: solid 1px var(--color-lightgray);
		padding: 16px 30px;
		height: 240px;
		overflow-y: scroll;
	}

	.news-list__item {
		padding-bottom: 5px;
	}

	.news-list__item a h3 {
		-webkit-line-clamp: 2;
		line-height: 1.75;
		margin-top: 0.25em;
	}

	.news-list__button {
		margin-top: 20px;
	}

	.news-list__button a {
		gap: 0.75em;
	}

	.news-facebook__title,
	.news-instagram__title {
		font-size: 14px;
	}

	.news-facebook__content,
	.news-instagram__content {
		margin-top: 10px;
	}

	/* instagram埋め込み */
	.news-instagram__content ul {
		grid-template-columns: repeat(2, 1fr);
		gap: 20px;
	}
}




/**************************************************
校歌
**************************************************/
.song__list {
	list-style: none;
	padding-left: 0;

	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 60px;
	margin-top: 70px;
}

.song__item h3 {
	font-size: 19px;
	text-align: center;
}

@media (max-width:767px) {
	.song__list {
		grid-template-columns: 1fr;
		margin-top: 46px;
	}
}