.c-drawer__icon {
	display: none;
}

.c-contact-button__wrap {
	background: #66b1c5;
	border: 0.125rem solid #66b1c5;
	border-radius: 0.625rem;
	padding: 0.625rem 1.875rem;
	transition: all 0.3s ease;
}

.c-contact-button__btn span {
	color: #fff;
	display: inline-block;
	font-size: 1rem;
	font-weight: 700;
	letter-spacing: 0.03rem;
	line-height: 1.6;
	padding-inline: 1.75rem;
	position: relative;
	text-align: center;
}

.c-contact-button__btn span::before {
	background: url(../img/mail-icon.svg) no-repeat center center/contain;
	content: "";
	height: 0.8125rem;
	left: 0;
	position: absolute;
	top: 50%;
	translate: 0 -50%;
	width: 1.125rem;
}

.c-contact-button__btn span::after {
	background: url(../img/button-icon.svg) no-repeat center center/contain;
	content: "";
	height: 1.125rem;
	position: absolute;
	right: 0;
	top: 50%;
	translate: 0 -50%;
	width: 1.125rem;
}

.c-section-title-wrap {
	align-items: center;
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.c-section-title__en {
	color: #66b1c5;
	font-family: "Montserrat", sans-serif;
	font-size: 1rem;
	font-weight: 700;
	letter-spacing: 0.05rem;
	line-height: 1.5;
}

.c-section-title__ja {
	color: #274b66;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 2.1875rem;
	font-weight: 700;
	letter-spacing: 0.109375rem;
	line-height: 1.5;
}

.c-phone__item {
	align-items: center;
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	justify-content: center;
	padding-left: 2.5625rem;
	position: relative;
}

.c-phone__item::before {
	background: url(../img/phone-icon.svg) no-repeat center center/contain;
	content: "";
	height: 2.5625rem;
	left: 0;
	position: absolute;
	top: 0;
	width: 1.9375rem;
}

.c-phone__tel {
	font-family: "Montserrat", sans-serif;
	font-size: 1.5rem;
	font-weight: 700;
	letter-spacing: 0.075rem;
	line-height: 1.5;
}

.p-phone__tel-term {
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.0375rem;
	line-height: 1.6;
	text-align: center;
}

.animated__Slide.--delay0 {
	animation: 0.5s 0.5s ease forwards SlideUp;
	opacity: 0;
	translate: 0 100%;
}

.animated__Slide.--delay1 {
	animation: 0.5s 1s ease forwards SlideDown;
	clip-path: inset(0 0 100% 0);
	opacity: 0;
}

.clip-path__circle {
	animation: 1s 0s ease-in-out forwards circleAnimation;
	clip-path: circle(0 at 50% 50%);
}

.animated__btn {
	position: relative;
}

.animated__btn.is-animation::before {
	animation: 2.5s ease forwards btn_animation;
	background-color: #fbfbfb;
	content: "";
	display: inline-block;
	height: 100%;
	left: 0;
	pointer-events: none;
	position: absolute;
	top: -11.25rem;
	width: 1.875rem;
	z-index: 1;
}

.animated__title {
	animation: title_animation 0.7s 2.7s ease-in-out forwards;
}

.animated__fadeIn.--mission-text-wrap {
	opacity: 0;
	transition: opacity 0.3s ease, translate 0.7s ease;
	translate: 0 4.375rem;
}

.animated__fadeIn.--mission-text-wrap.js-show {
	opacity: 1;
	translate: 0 0;
}

.animated__fadeIn.--mission-card {
	opacity: 0;
	transition: opacity 0.3s ease, translate 0.7s ease;
	translate: 0 4.375rem;
}

.animated__fadeIn.--mission-card.js-show {
	opacity: 1;
	translate: 0 0;
}

.animated__fadeIn.--reason-card {
	opacity: 0;
	transition: opacity 0.3s ease, translate 0.7s ease;
	translate: 2.5rem 0;
}

.animated__fadeIn.--reason-card.js-show {
	opacity: 1;
	translate: 0 0;
}

*,
::before,
::after {
	box-sizing: border-box;
}

html,
body,
h1,
h2,
h3,
h4,
h5,
h6,
ul,
ol,
dl,
li,
dt,
dd,
p,
div,
span,
img,
a,
table,
button,
tr,
th,
td {
	border: 0;
	font-size: 100%;
	font-weight: normal;
	margin: 0;
	padding: 0;
	vertical-align: baseline;
}

header,
footer,
nav,
section,
article,
main,
aside,
figure,
figcaption {
	display: block;
}

ol,
ul {
	list-style: none;
	list-style-type: none;
}

img {
	height: auto;
	max-width: 100%;
	vertical-align: middle;
}

a {
	color: inherit;
	display: inline-block;
	text-decoration: none;
}

summary {
	display: block;
	list-style: none;
}

body {
	background-color: #f7f7f7;
	color: #274b66;
	font-family: "Noto Sans JP", sans-serif;
	font-style: normal;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

.l-inner {
	margin-inline: auto;
	padding-inline: 1.25rem;
	width: min(80rem, 100%);
}

.l-container1 {
	background: #f7f7f7;
	position: relative;
	z-index: 1;
}

.l-container2 {
	background: #ecf6f9;
	position: relative;
	z-index: 2;
}

.l-container-fv {
	width: 100%;
	z-index: -1;
}

.p-header {
	background: #ffffff;
	left: 0;
	padding-block: 0.625rem;
	padding-inline: 2.5rem 2.5625rem;
	position: fixed;
	top: 0;
	width: 100%;
	z-index: 100;
}

.p-header__inner {
	align-items: center;
	display: grid;
	grid-template-columns: 14.0625rem 1fr;
	justify-content: space-between;
}

.p-header__logo {
	transition: opacity 0.3s ease;
	width: 14.0625rem;
}

.p-header__nav {
	align-items: center;
	display: flex;
	justify-content: end;
	-moz-column-gap: 1.5rem;
	column-gap: 1.5rem;
}

.p-header__list {
	align-items: center;
	display: flex;
	-moz-column-gap: 2rem;
	column-gap: 2rem;
}

.p-header__list li a {
	color: #274b66;
	font-size: 0.875rem;
	font-weight: 500;
	letter-spacing: 0.035rem;
	line-height: normal;
	position: relative;
}

.p-header__list li a::after {
	background: #274b66;
	bottom: -0.4375rem;
	content: "";
	height: 0.0625rem;
	left: 0;
	opacity: 0;
	position: absolute;
	transition: width 0.3s ease, opacity 0.3s ease;
	width: 0%;
}

.p-header__tel-wrapper {
	align-items: center;
	display: flex;
	flex-direction: column;
	justify-content: center;
	row-gap: 0.125rem;
}

.p-header__tel {
	font-family: "Montserrat", sans-serif;
	font-size: 1.5rem;
	font-weight: 700;
	letter-spacing: 0.075rem;
	line-height: 1.5;
	padding-left: 1.6rem;
	position: relative;
}

.p-header__tel:before {
	background: url(../img/phone-icon.svg) no-repeat center center/contain;
	content: "";
	height: 1.6875rem;
	left: 0;
	position: absolute;
	top: 50%;
	translate: 0 -50%;
	width: 1.35rem;
}

.p-header__tel-term {
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.0375rem;
	line-height: 1.6;
	text-align: center;
}

.p-drawer {
	background: #ecf6f9;
	height: calc(100vh - 77.19px);
	height: calc(100svh - 77.19px);
	opacity: 0;
	overflow-y: scroll;
	position: fixed;
	right: 0;
	top: 77.19px;
	transition: opacity 0.3s ease, visibility 0.3s ease;
	visibility: hidden;
	width: 23.4375rem;
	z-index: 101;
}

.p-drawer__body {
	height: -moz-fit-content;
	height: fit-content;
	padding-block: 3.75rem;
	padding-inline: 1.25rem;
	width: 100%;
}

.p-drawer__nav {
	align-items: center;
	display: flex;
	flex-direction: column;
	justify-content: center;
	row-gap: 2.5rem;
}

.p-drawer__list {
	align-items: center;
	display: flex;
	flex-direction: column;
	justify-content: center;
	row-gap: 1.875rem;
}

.p-drawer__list li a {
	font-family: "Noto Sans JP", sans-serif;
	font-size: 0.875rem;
	font-weight: 500;
	letter-spacing: 0.035rem;
	line-height: normal;
	padding-block: 0.9375rem;
	padding-inline: 0.9375rem;
	position: relative;
	text-align: center;
}

.p-drawer__list li a::after {
	background: #274b66;
	bottom: 0.375rem;
	content: "";
	height: 0.0625rem;
	left: 0;
	opacity: 0;
	position: absolute;
	transition: width 0.3s ease, opacity 0.3s ease;
	width: 0%;
}

.p-drawer__tel-wrapper {
	align-items: center;
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	justify-content: center;
	padding-left: 2.5625rem;
	position: relative;
}

.p-drawer__tel-wrapper::before {
	background: url(../img/phone-icon.svg) no-repeat center center/contain;
	content: "";
	height: 2.5625rem;
	left: 0;
	position: absolute;
	top: 0;
	width: 1.9375rem;
}

.p-drawer__tel {
	font-family: "Montserrat", sans-serif;
	font-size: 1.5rem;
	font-weight: 700;
	letter-spacing: 0.075rem;
	line-height: 1.5;
}

.p-drawer__tel-term {
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.0375rem;
	line-height: 1.6;
	text-align: center;
}

.p-fv {
	background: url(../img/fv-bg.webp) no-repeat center center/cover;
	height: 100%;
	padding-block: 5rem 4.625rem;
	width: 100%;
}

.p-fv__inner {
	margin-inline: auto;
	max-width: 100%;
	position: relative;
}

.p-fv__content {
	display: flex;
	flex-direction: column;
	gap: 8.3125rem;
	left: 3.25rem;
	position: absolute;
	top: 9.6875rem;
	z-index: 15;
}

.p-fv__title-wrap {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
	justify-content: center;
	overflow: hidden;
}

.p-fv__sub-title {
	font-size: 3.125rem;
	font-weight: 700;
	letter-spacing: 0.09375rem;
	line-height: 1.5;
	overflow: hidden;
}

.p-fv__sub-title .p-fv__sub-title-span {
	display: inline-block;
	font-size: 3.125rem;
	font-weight: 700;
	letter-spacing: 0.09375rem;
	line-height: 1.5;
}

.p-fv__sub-title .p-fv__sub-title-span span {
	color: #e9c243;
	display: inline-block;
	font-size: 3.125rem;
	font-weight: 700;
	letter-spacing: 0.09375rem;
	line-height: 1.5;
}

.p-fv__title {
	overflow: hidden;
}

.p-fv__title span {
	display: inline-block;
	font-size: 1.5rem;
	font-weight: 700;
	letter-spacing: 0.075rem;
	line-height: 1.5;
}

.p-fv__button-wrapper {
	bottom: 2.8125rem;
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	justify-content: center;
	left: 3.25rem;
	position: absolute;
}

.p-fv__button-title {
	display: inline-block;
	font-size: 1.25rem;
	font-weight: 700;
	letter-spacing: 0.0625rem;
	line-height: 1.6;
	margin-left: 4.375rem;
}

.p-fv__btn-wrapper.c-contact-button__wrap {
	gap: 1rem;
	overflow: hidden;
	padding: 1.125rem 1.875rem;
	width: -moz-fit-content;
	width: fit-content;
}

.p-fv__btn-wrapper.c-contact-button__wrap span {
	font-size: 1.25rem;
	letter-spacing: 0.0625rem;
	padding-inline: 2.5rem 2.375rem;
}

.p-fv__btn-wrapper.c-contact-button__wrap span::before {
	height: 1.125rem;
	width: 1.5rem;
}

.p-fv__btn-wrapper.c-contact-button__wrap span::after {
	height: 1.375rem;
	width: 1.375rem;
}

.p-fv__swiper-inner {
	height: 100%;
	margin-left: auto;
	width: calc(100% - 27.5rem);
}

.p-fv__swiper-container,
.p-fv__swiper,
.p-fv__swiper-wrapper,
.p-fv__swiper-slide {
	position: relative;
}

.p-fv__swiper-container {
	width: 100%;
}

.p-fv__swiper-slide {
	aspect-ratio: 1000/650;
	max-height: 46.375rem;
	width: 100%;
}

.p-fv__swiper-slide img {
	height: 100%;
	width: 100%;
	-o-object-fit: cover;
	border-radius: 0 0 0 1.25rem;
	object-fit: cover;
}

.swiper-button-prev,
.swiper-button-next,
.swiper-pagination-bullets.swiper-pagination-horizontal {
	bottom: unset;
	left: unset;
	margin: 0;
	padding: 0;
	right: unset;
	top: unset;
}

.swiper-button-prev::after,
.swiper-button-next::after {
	content: "";
}

.swiper-pagination-bullets.swiper-pagination-horizontal {
	top: calc(100% + 0.9375rem);
}

.swiper-pagination-bullets.swiper-pagination-horizontal .swiper-pagination-bullet {
	aspect-ratio: 1/1;
	background: #ffffff;
	border: 0.0625rem solid #66b1c5;
	border-radius: 50%;
	height: auto;
	margin-left: 0.53125rem;
	opacity: 1;
	width: 0.625rem;
}

.swiper-pagination-bullets.swiper-pagination-horizontal .swiper-pagination-bullet:nth-of-type(1) {
	margin-left: 0;
}

.swiper-pagination-bullets.swiper-pagination-horizontal .swiper-pagination-bullet-active {
	background: #66b1c5;
}

.p-mission {
	padding-block: 7.5625rem 7.1875rem;
}

.p-mission__text-wrap {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
	margin-inline: auto;
	width: 31rem;
}

.p-mission__title-wrap {
	margin-inline: auto;
}

.p-mission__title-wrap .c-section-title__en {
	align-self: center;
}

.p-mission__lead {
	font-size: 1rem;
	font-weight: 500;
	letter-spacing: 0.05rem;
	line-height: 1.8;
}

.p-mission__cards {
	align-items: center;
	display: grid;
	grid-template-columns: repeat(4, 18rem);
	justify-content: center;
	margin-top: 3.75rem;
}

.p-mission__card {
	display: grid;
	grid-row: span 2;
	grid-template-rows: subgrid;
	margin-inline: auto;
	row-gap: 1rem;
}

.p-mission-card__img {
	aspect-ratio: 260/148;
	height: auto;
	justify-self: center;
	width: 16.25rem;
}

.p-mission-card__img img {
	height: 100%;
	width: 100%;
	-o-object-fit: cover;
	object-fit: cover;
}

.p-mission-card__text-wrap {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	padding-inline: 1.5rem;
}

.p-mission-card__title {
	font-size: 1.375rem;
	font-weight: 700;
	letter-spacing: 0.06875rem;
	line-height: 1.5;
	text-align: center;
}

.p-mission-card__text {
	font-size: 1rem;
	font-weight: 400;
	letter-spacing: 0.05rem;
	line-height: 1.6;
}

.p-cta1 {
	background: url(../img/cta1-bg.webp) no-repeat center center/cover;
	height: 31.75rem;
	padding-block: 7.5rem 7.5rem;
	position: sticky;
	top: 4.824375rem;
	width: 100%;
	z-index: 0;
}

.l-cta__bg {
	background-color: #f7f7f7;
}

.p-cta1__text-wrap {
	align-items: center;
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
	justify-content: center;
}

.p-cta1__title {
	color: #fff;
	font-size: 2.1875rem;
	font-weight: 700;
	letter-spacing: 0.065625rem;
	line-height: 1.5;
}

.p-cta1__text {
	color: #fff;
	font-size: 1rem;
	font-weight: 500;
	letter-spacing: 0.05rem;
	line-height: 1.8;
	width: 36.125rem;
}

.p-cta1__button-wrap {
	display: block;
	margin-top: 0.5rem;
}

.p-cta1__button-wrap.c-contact-button__wrap {
	padding: 1.15625rem 2rem;
}

.p-cta1__button-wrap.c-contact-button__wrap .c-contact-button__btn span {
	font-size: 1.25rem;
	font-weight: 700;
	letter-spacing: 0.0625rem;
	line-height: 1.6;
	padding-inline: 2.5rem 2.375rem;
}

.p-cta1__button-wrap.c-contact-button__wrap .c-contact-button__btn span::before {
	height: 1.125rem;
	width: 1.5rem;
}

.p-cta1__button-wrap.c-contact-button__wrap .c-contact-button__btn span::after {
	height: 1.375rem;
	width: 1.375rem;
}

.p-reason {
	background: url(../img/reason-bg.webp) no-repeat center center/cover;
	height: 100%;
	padding-block: 7.5rem 7.5rem;
	width: 100%;
}

.p-reason__inner {
	display: grid;
	grid-template-columns: 16.9375rem 47.875rem;
	justify-content: space-between;
}

.p-reason__title-container {
	align-self: start;
	position: sticky;
	top: 5.386875rem;
}

.p-reason__title-wrap {
	align-items: flex-start;
	align-self: flex-start;
	position: relative;
}

.p-reason__illust {
	aspect-ratio: 85/172;
	height: auto;
	position: absolute;
	right: -3.6875rem;
	top: 0rem;
	width: 5.3125rem;
}

.p-reason__illust img {
	width: 100%;
}

.p-reason__cards {
	display: flex;
	flex-direction: column;
	gap: 2.59375rem;
}

.p-reason__card {
	align-items: center;
	background: #f7f7f7;
	border-radius: 1.25rem;
	display: grid;
	gap: 2.5rem;
	grid-template-columns: 1fr 1fr;
	justify-content: space-between;
	padding: 1.5625rem 2rem;
	position: relative;
}

.p-reason-card__number-wrap {
	align-items: center;
	background: #66b1c5;
	border-radius: 50%;
	display: flex;
	flex-direction: column;
	height: 3.75rem;
	justify-content: center;
	left: -1.3125rem;
	position: absolute;
	top: -0.6875rem;
	width: 3.75rem;
}

.p-reason-card__number-text {
	color: #fff;
	font-family: "Montserrat", sans-serif;
	font-size: 0.375rem;
	font-weight: 700;
	letter-spacing: 0.01875rem;
	line-height: 1.5;
}

.p-reason-card__number {
	color: #fff;
	font-family: "Montserrat", sans-serif;
	font-size: 1.875rem;
	font-weight: 700;
	line-height: 1;
	text-align: center;
}

.p-reason-card__text-wrap {
	align-items: self-start;
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	justify-content: center;
	width: 22.25rem;
}

.p-reason-card__title {
	font-size: 1.375rem;
	font-weight: 700;
	letter-spacing: 0.06875rem;
	line-height: 1.5;
}

.p-reason-card__text {
	font-size: 1rem;
	font-weight: 400;
	letter-spacing: 0.05rem;
	line-height: 1.6;
}

.p-reason-card__img {
	aspect-ratio: 306/228;
	height: auto;
	width: 19.125rem;
}

.p-reason-card__img img {
	border-radius: 0.625rem;
	width: 100%;
}

.p-teacher {
	height: 59.0625rem;
	overflow: hidden;
	padding-block: 7.59375rem 7.5rem;
}

.p-teacher__title-wrap {
	align-items: flex-start;
}

.p-teacher__swiper-inner {
	position: relative;
}

.p-teacher__card {
	display: grid;
	grid-template-columns: 22rem;
}

.p-teacher__card-img {
	aspect-ratio: 352/260;
	height: auto;
	width: 22rem;
}

.p-teacher__card-img img {
	height: 100%;
	width: 100%;
	-o-object-fit: cover;
	object-fit: cover;
}

.p-teacher-card__text-wrap {
	display: grid;
	grid-row: span 2;
	grid-template-rows: subgrid;
}

.p-teacher-card__category {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin-top: 1rem;
}

.p-teacher-card__category-text {
	background: #66b1c5;
	border-radius: 0.1875rem;
	color: #fff;
	display: grid;
	font-size: 0.875rem;
	font-weight: 500;
	letter-spacing: 0.035rem;
	padding: 0.15625rem;
	place-items: center;
	text-align: center;
	width: 2.875rem;
}

.p-teacher-card__meta {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.p-teacher-card__name {
	font-size: 1.375rem;
	font-weight: 700;
	letter-spacing: 0.06875rem;
	line-height: 1.5;
}

.p-teacher-card__text {
	font-size: 1rem;
	font-weight: 400;
	letter-spacing: 0.05rem;
	line-height: 1.6;
}

.p-teacher__swiper-container,
.p-teacher__swiper,
.p-teacher__swiper-wrapper,
.p-teacher__swiper-slide {
	position: relative;
}

.p-teacher__swiper-container {
	left: calc(50% - 38.75rem);
	margin-top: 3.75rem;
	top: 0;
}

.p-teacher__swiper-slide {
	width: 22rem;
}

.swiper-button-prev::after,
.swiper-button-next::after {
	content: "";
}

.swiper-button-prev,
.swiper-button-next {
	height: 2.4375rem;
	top: calc(100% + 4.53125rem);
	width: 2.4375rem;
}

.swiper-button-prev {
	left: calc(50% + 30rem);
}

.swiper-button-next {
	left: calc(50% + 26.1875rem);
}

.swiper-pagination-progressbar.swiper-pagination-horizontal {
	background: rgba(180, 173, 173, 0.5);
	border-radius: 0.625rem 0.625rem 0.625rem 0.625rem;
	height: 0.5rem;
	left: 0;
	top: calc(100% + 5.5rem);
	width: 28.125rem;
}

.swiper-pagination-progressbar .swiper-pagination-progressbar-fill {
	background: #66b1c5;
	border-radius: 0.625rem 0.625rem 0.625rem 0.625rem;
}

.p-cta2 {
	background: url(../img/cta2-bg.webp) no-repeat center center/cover;
	position: sticky;
	top: 4.449375rem;
	width: 100%;
	z-index: 1;
}

.p-cta2__inner {
	padding-block: 7.5rem;
}

.p-cta2__content {
	align-items: center;
	background: #ffffff;
	border-radius: 1.25rem;
	display: flex;
	flex-direction: column;
	gap: 2rem;
	justify-content: center;
	margin-inline: auto;
	padding-block: 2.5rem;
	width: 55rem;
}

.p-cta2__item {
	display: flex;
	gap: 2.5rem;
}

.p-cta2__title {
	font-size: 2.1875rem;
	font-style: normal;
	font-weight: 700;
	letter-spacing: 0.109375rem;
	line-height: 1.5;
	text-align: center;
}

.p-cta2__phone-wrapper {
	align-items: center;
	display: flex;
	flex-direction: column;
}

.p-cta2__phone-title {
	font-size: 1rem;
	font-weight: 500;
	letter-spacing: 0.05rem;
	line-height: 1.8;
	text-align: center;
}

.p-cta2__phone {
	color: #66b1c5;
	font-family: "Montserrat", sans-serif;
	font-size: 2.1875rem;
	font-style: normal;
	font-weight: 700;
	letter-spacing: 0.109375rem;
	line-height: 1.5;
	padding-left: 1.897125rem;
	position: relative;
}

.p-cta2__phone::before {
	aspect-ratio: 22.354/32.999;
	background: url(../img/phone-icon-green.svg) no-repeat center center/cover;
	content: "";
	display: inline-block;
	height: auto;
	left: 0;
	position: absolute;
	top: 50%;
	translate: 0 -50%;
	width: 1.397125rem;
}

.p-cta2__phone-term {
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.0375rem;
	line-height: 1.6;
}

.p-cta2__button-container {
	align-items: center;
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	justify-content: center;
}

.p-cta2__button-text {
	font-size: 1.25rem;
	font-weight: 700;
	letter-spacing: 0.0625rem;
	line-height: 1.6;
}

.p-cta2__button-wrap.c-contact-button__wrap {
	padding: 1.25rem 2rem;
}

.p-cta2__button-wrap.c-contact-button__wrap .c-contact-button__btn span {
	font-size: 1.25rem;
	letter-spacing: 0.0625rem;
	padding-inline: 2.5rem 2.375rem;
}

.p-cta2__button-wrap.c-contact-button__wrap .c-contact-button__btn span::before {
	height: 1.125rem;
	width: 1.5rem;
}

.p-cta2__button-wrap.c-contact-button__wrap .c-contact-button__btn span::after {
	height: 1.375rem;
	width: 1.375rem;
}

.p-course {
	background: #ecf6f9;
	padding-block: 7.40625rem 7.3125rem;
}

.p-course__inner {
	margin-inline: auto;
	padding-inline: 9.375rem;
	width: min(73.75rem, 100%);
}

.p-course__contents-container {
	margin-inline: auto;
	margin-top: 3.75rem;
	width: 55rem;
}

.p-course-tabs__list {
	align-items: end;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	justify-content: center;
}

.p-course-tabs__item {
	font-size: 1rem;
	font-weight: 500;
	letter-spacing: 0.05rem;
	line-height: 1.8;
}

.p-course-tabs__item[aria-selected=true] {
	background: #fff;
	border-radius: 0.625rem 0.625rem 0 0;
	color: #66b1c5;
	padding: 1.25rem 0.625rem;
	pointer-events: none;
}

.p-course-tabs__item[aria-selected=false] {
	background: #f7f7f7;
	border-radius: 0.625rem 0.625rem 0 0;
	color: #b4adad;
	height: 3.75rem;
	padding: 0.625rem 0.625rem;
	transition: opacity 0.3s ease;
}

.p-course-tabs__content-wrap {
	background: #fff;
	border-radius: 0 0 0.625rem 0.625rem;
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
	height: 0;
	opacity: 0;
	padding: 0;
	position: relative;
	visibility: hidden;
}

.p-course-tabs__content-wrap::before {
	background: url(../img/course-img.webp) no-repeat center center/cover;
	bottom: 0;
	content: "";
	height: 10.4375rem;
	left: -7.25rem;
	position: absolute;
	width: 7.625rem;
}

.p-course-tabs__content-wrap.js-show {
	height: auto;
	opacity: 1;
	padding-block: 2.5rem;
	visibility: visible;
}

.p-course-tabs-content__text-wrap {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	margin-inline: auto;
	width: 36.5rem;
}

.p-course-tabs-content__title {
	font-size: 1.375rem;
	font-weight: 700;
	letter-spacing: 0.06875rem;
	line-height: 1.5;
}

.p-course-tabs-content__text {
	font-size: 1rem;
	letter-spacing: 0.05rem;
	line-height: 1.6;
}

button {
	background: none;
}

:where(dialog) {
	background-color: unset;
	border: unset;
	color: unset;
	height: unset;
	max-height: unset;
	max-width: unset;
	overflow: unset;
	padding: unset;
	width: unset;
}

body:has(dialog[open]) {
	overflow: hidden;
}

.wrapper:has(dialog[open]) {
	overflow-y: auto;
	scrollbar-gutter: stable;
}

.p-course-modal__open-btn {
	background: #66b1c5;
	border: 0.125rem solid #66b1c5;
	border-radius: 0.625rem;
	cursor: pointer;
	margin-inline: auto;
	margin-top: 0.625rem;
	padding: 0.75rem 2rem;
	width: 13.75rem;
}

.p-course-modal__open-btn span {
	color: #fff;
	display: inline-block;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 1rem;
	font-weight: 500;
	line-height: 1.6;
	padding-right: 1.75rem;
	position: relative;
}

.p-course-modal__open-btn span::after {
	background: url(../img/button-icon.svg) no-repeat center center/contain;
	content: "";
	height: 1.125rem;
	position: absolute;
	right: 0;
	top: 50%;
	translate: 0 -50%;
	width: 1.125rem;
}

dialog {
	position: relative;
}

dialog::backdrop {
	opacity: 0;
	transition: background 0.3s ease-in-out;
}

dialog.js-show.p-course-modal__content {
	opacity: 1;
}

dialog.js-show::backdrop {
	background: rgba(0, 0, 0, 0.5);
	opacity: 1;
	-webkit-backdrop-filter: blur(0.375rem);
	backdrop-filter: blur(0.375rem);
}

.p-course-modal__image {
	bottom: 0;
	height: 10.4375rem;
	left: calc(50% - 34.8125rem);
	opacity: 0;
	pointer-events: none;
	position: absolute;
	transition: opacity 0.3s ease;
	width: 7.625rem;
	z-index: 0;
}

.p-course-modal__image.is-show {
	opacity: 1;
}

.p-course-modal__content {
	background: #ffffff;
	border-radius: 1.875rem;
	max-height: 48vh;
	opacity: 0;
	transition: opacity 0.3s ease-in-out;
	width: min(56.5625rem, 95%);
}

.p-course-modal__inner {
	height: 100%;
	overflow-y: scroll;
	position: relative;
}

.p-course-modal__body {
	display: flex;
	flex-direction: column;
	gap: 2.5rem;
	height: -moz-fit-content;
	height: fit-content;
	padding: 5rem 7.5rem;
	position: relative;
}

.p-course-modal__close-btn {
	cursor: pointer;
	height: 2.5rem;
	position: absolute;
	right: 2.25rem;
	top: 2.25rem;
	width: 2.5rem;
	z-index: 2;
}

.p-course-modal__introduction-wrap {
	display: flex;
	flex-direction: column;
	gap: 1.375rem;
}

.p-course-modal__head-wrap {
	align-items: center;
	display: flex;
	gap: 1.25rem;
	justify-content: center;
}

.p-course-modal__head-main {
	font-size: 1.375rem;
	font-weight: 700;
	letter-spacing: 0.06875rem;
	line-height: 1.5;
}

.p-course-modal__head-sub {
	font-size: 1rem;
	font-weight: 500;
	letter-spacing: 0.05rem;
	line-height: 1.8;
}

.p-course-modal__item-wrap {
	display: grid;
	gap: 1.5rem;
	grid-template-columns: repeat(2, 1fr);
}

.p-course-modal__item {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

.p-course-modal__item-title {
	align-items: center;
	background: #66b1c5;
	border-radius: 0.25rem;
	color: #fff;
	display: flex;
	font-size: 1rem;
	font-weight: 500;
	justify-content: center;
	letter-spacing: 0.05rem;
	line-height: 1.8;
	padding-block: 0.25rem;
	text-align: center;
}

.p-course-modal__item-text {
	font-size: 1rem;
	font-weight: 400;
	letter-spacing: 0.05rem;
	line-height: 1.6;
}

.p-faq {
	background: #f7f7f7;
	padding-block: 7.5rem;
}

.p-faq__inner {
	position: relative;
}

.p-faq__inner::after {
	background: url(../img/faq-img.webp) no-repeat center center/contain;
	bottom: -4.40625rem;
	content: "";
	height: 9.5625rem;
	position: absolute;
	right: 0;
	width: 8.5625rem;
}

summary {
	display: block;
}

summary::-webkit-details-marker {
	display: none;
}

.p-faq__items {
	display: flex;
	flex-direction: column;
	gap: 2.0625rem;
	margin-inline: auto;
	margin-top: 3.75rem;
	width: 55rem;
}

.p-faq__question-wrap {
	background: #ffffff;
	border-radius: 0.625rem;
	padding: 1.1875rem 1.5rem;
}

.p-faq__question {
	display: inline-block;
	position: relative;
	width: 100%;
}

.p-faq__question::before,
.p-faq__question::after {
	background: #66b1c5;
	content: "";
	position: absolute;
	top: 50%;
	translate: 0 -50%;
}

.p-faq__question::before {
	height: 0.125rem;
	right: 0;
	width: 1rem;
}

.p-faq__question::after {
	height: 1rem;
	right: 0.46875rem;
	transition: rotate 0.3s ease;
	width: 0.125rem;
}

details[open] .p-faq__question::after {
	rotate: 90deg;
}

.p-faq__question-text {
	display: inline-block;
	font-size: 1rem;
	font-weight: 500;
	letter-spacing: 0.05rem;
	line-height: 1.8;
	list-style: none;
	padding-inline: 3.9375rem 3.125rem;
	position: relative;
}

.p-faq__question-text::before {
	background: url(../img/q-icon.webp) no-repeat center center/contain;
	content: "";
	height: 2.25rem;
	left: 0;
	position: absolute;
	top: 50%;
	translate: 0 -50%;
	width: 2.25rem;
}

.p-faq__answer {
	margin-top: 1.59375rem;
	padding-inline: 1.625rem;
}

.p-faq__answer-text {
	font-size: 1rem;
	font-weight: 400;
	letter-spacing: 0.05rem;
	line-height: 1.6;
	list-style: none;
	min-height: 3.2em; /* 2行分の高さを確保（行間に応じて調整） */
	padding-inline: 3.75rem 0rem;
	position: relative;
}

.p-faq__answer-text::before {
	background: url(../img/a-icon.webp) no-repeat center center/contain;
	content: "";
	height: 2.25rem;
	left: 0;
	position: absolute;
	top: 0rem;
	width: 2.25rem;
}

.js-content {
	overflow: hidden;
	transition: opacity 0.4s ease;
}

input[type=text],
input[type=email],
select,
textarea {
	background: #f7f7f7;
	border: none;
	border-radius: 0.5rem;
	color: #274b66;
	padding: 1rem;
	width: 100%;
}

input[type=text]::-moz-placeholder,
input[type=email]::-moz-placeholder,
select::-moz-placeholder,
textarea::-moz-placeholder {
	color: #b4adad;
	font-size: 0.875rem;
	font-weight: 500;
	letter-spacing: 0.035rem;
	line-height: normal;
}

input[type=text]::placeholder,
input[type=email]::placeholder,
select::placeholder,
textarea::placeholder {
	color: #b4adad;
	font-size: 0.875rem;
	font-weight: 500;
	letter-spacing: 0.035rem;
	line-height: normal;
}

input[type=text].invalid,
input[type=email].invalid,
select.invalid,
textarea.invalid {
	background: #f4d9d9;
	border: 0.0625rem solid #dc5d5c;
}

select {
	color: #b4adad;
	font-size: 0.875rem;
	font-weight: 500;
	letter-spacing: 0.035rem;
	line-height: normal;
}

textarea {
	height: 15rem;
	resize: vertical;
}

select {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	cursor: pointer;
}

.p-contact__select-wrap {
	position: relative;
}

.p-contact__select-wrap::after {
	background: url(../img/contact-arrow.svg) no-repeat center center/contain;
	content: "";
	cursor: pointer;
	height: 1.5rem;
	pointer-events: none;
	position: absolute;
	right: 1rem;
	top: 50%;
	translate: 0 -50%;
	width: 1.5rem;
}

.p-contact__select-wrap.is-selected select {
	color: #274b66;
	font-size: 0.75rem;
	font-weight: 500;
	line-height: 1.5;
}

input[type=checkbox] {
	height: 0.0625rem;
	position: absolute;
	width: 0.0625rem;
	clip: rect(0, 0, 0, 0);
}

input[type=checkbox]:checked + span::after {
	opacity: 1;
}

.p-contact__data-checkbox {
	display: flex;
	gap: 2.5rem;
}

.p-contact__data-checkbox span {
	display: inline-block;
	font-size: 0.875rem;
	font-weight: 500;
	letter-spacing: 0.035rem;
	line-height: normal;
	padding-left: 2rem;
	position: relative;
}

.p-contact__data-checkbox span::before {
	background: #f7f7f7;
	border: 0.0625rem solid #b4adad;
	border-radius: 0.25rem;
	content: "";
	height: 1.25rem;
	left: 0;
	position: absolute;
	top: 50%;
	translate: 0 -50%;
	width: 1.25rem;
}

.p-contact__data-checkbox span::after {
	color: #dc5d5c;
	content: "✓";
	font-size: 1.125rem;
	left: 0.1875rem;
	opacity: 0;
	position: absolute;
	top: 50%;
	translate: 0 -55%;
}

input[type=radio] {
	height: 0.0625rem;
	position: absolute;
	width: 0.0625rem;
	clip: rect(0, 0, 0, 0);
}

.p-contact__data-radio span {
	display: inline-block;
	position: relative;
}

.p-contact__data-radio span::before {
	content: "";
	position: absolute;
}

.p-contact__data-radio span::after {
	content: "";
	opacity: 0;
	position: absolute;
}

input[type=submit],
input[type=button] {
	border-radius: 0rem;
	-webkit-box-sizing: content-box;
	-webkit-appearance: button;
	padding-inline: 0;
	-moz-appearance: button;
	appearance: button;
	background: transparent;
	border: none;
	box-sizing: border-box;
	cursor: pointer;
}

input[type=submit]::-webkit-search-decoration,
input[type=button]::-webkit-search-decoration {
	display: none;
}

.row.jc-center {
	justify-content: center;
}

.p-contact__submit {
	background: #66b1c5;
	border: 0.0625rem solid #66b1c5;
	border-radius: 0.625rem;
	cursor: pointer;
	margin-inline: auto;
	padding: 0.6875rem 3.875rem 0.6875rem 1.3125rem;
	position: relative;
	text-align: center;
	width: 13.75rem;
}

.p-contact__submit span::after {
	background: url(../img/button-icon.svg) no-repeat center center/contain;
	content: "";
	height: 1.125rem;
	position: absolute;
	right: 1.1875rem;
	top: 50%;
	translate: 0 -50%;
	width: 1.125rem;
}

.p-contact__submit input[type=submit] {
	color: #f7f7f7;
	display: inline-block;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 1rem;
	font-weight: 700;
	letter-spacing: 0.03rem;
	line-height: 1.6;
	padding-right: 1.75rem;
	position: relative;
}

.p-contact {
	background: #ffffff;
	padding-block: 7.5rem;
}

.p-contact__form {
	display: flex;
	flex-direction: column;
	gap: 1.65625rem;
	margin-inline: auto;
	margin-top: 3.84375rem;
	width: 40rem;
}

.p-contact__row {
	display: flex;
	flex-direction: column;
	gap: 0.6875rem;
}

.p-contact__row.--textarea {
	margin-top: -0.3125rem;
}

.p-contact__head {
	font-size: 1rem;
	font-weight: 500;
	letter-spacing: 0.05rem;
	line-height: 1.8;
}

.p-contact__head span {
	color: #dc5d5c;
}

.p-contact__data-wrap {
	display: grid;
	gap: 2.5rem;
	grid-template-columns: 1fr 1fr;
}

.p-contact__row-wrap {
	display: grid;
	gap: 2.5rem;
	grid-template-columns: 1fr 1fr;
}

.p-contact__error-message {
	color: #dc5d5c;
	font-size: 0.8125rem;
	font-weight: 700;
}

.p-contact__data,
.p-contact__acceptance {
	position: relative;
}

.p-contact__acceptance {
	margin-top: -0.625rem;
}

.p-contact__acceptance span {
	font-size: 1rem;
	font-weight: 500;
	letter-spacing: 0.05rem;
	line-height: 1.8;
}

.p-contact__data,
.p-contact__acceptance {
	position: relative;
}

.p-contact__data .p-contact__error-message,
.p-contact__acceptance .p-contact__error-message {
	bottom: -1.125rem;
	left: 0;
	position: absolute;
}

.p-contact__data-checkbox.invalid span::before {
	border: 0.09375rem solid #dc5d5c;
}

.p-footer {
	background: #ecf6f9;
	padding-block: 3.75rem;
}

.p-footer__inner {
	margin-inline: auto;
	padding-inline: 1.25rem;
	width: min(67.5rem, 100%);
}

.p-footer__logo-wrap {
	display: flex;
	justify-content: space-between;
}

.p-footer__logo {
	aspect-ratio: 225/36;
	height: auto;
	width: 14.0625rem;
}

.p-footer__logo img {
	width: 100%;
}

.p-drawer__tel-wrapper {
	gap: 0;
}

.p-footer__nav {
	margin-top: 1.25rem;
}

.p-footer__nav-list {
	border-bottom: 0.0625rem solid #274b66;
	display: flex;
	gap: 1.5rem;
	padding-bottom: 2rem;
}

.p-footer__nav-item a {
	font-size: 0.875rem;
	font-weight: 500;
	letter-spacing: 0.035rem;
	line-height: normal;
	position: relative;
}

.p-footer__nav-item a::after {
	background: #274b66;
	bottom: -0.4375rem;
	content: "";
	height: 0.0625rem;
	left: 0;
	opacity: 0;
	position: absolute;
	transition: width 0.3s ease, opacity 0.3s ease;
	width: 0%;
}

.p-footer__copyright-wrap {
	display: flex;
	justify-content: space-between;
	margin-top: 2rem;
}

.p-footer__copyright {
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.0375rem;
	line-height: 1.6;
}

.p-footer__sns {
	display: flex;
	gap: 1rem;
}

.p-footer__sns a {
	height: 2.5rem;
	width: 2.5rem;
}

.p-footer__sns a img {
	width: 100%;
}

@media (any-hover: hover) {

.c-contact-button__wrap:hover {
	background: #ffffff;
}

.c-contact-button__wrap:hover .c-contact-button__btn span {
	color: #66b1c5;
}

.c-contact-button__wrap:hover .c-contact-button__btn span::before {
	background: url(../img/mail-icon-rev.svg) no-repeat center center/contain;
}

.c-contact-button__wrap:hover .c-contact-button__btn span::after {
	background: url(../img/button-icon-rev.svg) no-repeat center center/contain;
}

.p-header__logo:hover {
	opacity: 0.7;
}

.p-header__list li a:hover::after {
	opacity: 1;
	width: 100%;
}

.p-drawer__list li a:hover::after {
	opacity: 1;
	width: 100%;
}

.swiper-button-prev:hover,
.swiper-button-next:hover {
	opacity: 0.7;
}

.p-course-tabs__item[aria-selected=false]:hover {
	cursor: pointer;
	opacity: 0.7;
}

.p-course-modal__open-btn:hover {
	background: #ffffff;
}

.p-course-modal__open-btn:hover span {
	color: #66b1c5;
}

.p-course-modal__open-btn:hover span::after {
	background: url(../img/button-icon-rev.svg) no-repeat center center/contain;
}

.p-course-modal__close-btn:hover {
	opacity: 0.7;
}

.p-faq__question:hover {
	cursor: pointer;
}

.p-contact__submit:hover {
	background: #fff;
}

.p-contact__submit:hover input[type=submit] {
	color: #66b1c5;
}

.p-contact__submit:hover span::after {
	background: url(../img/button-icon-rev.svg) no-repeat center center/contain;
}

.p-contact__acceptance span a:hover {
	opacity: 0.6;
}

.p-footer__nav-item a:hover::after {
	opacity: 1;
	width: 100%;
}

.p-footer__sns a:hover {
	opacity: 0.7;
}

}

@media screen and (min-width: 768px) {

.u-hidden-sp {
	display: block;
}

.u-hidden-pc {
	display: none;
}

.u-hidden-sp-pc {
	display: none;
}

}

@media screen and (max-width: 1239px) and (min-width: 768px) {

html {
	font-size: calc(16 / 1240 * 100vw);
}

}

@media (max-width: 1260px) {

.p-header__nav {
	-moz-column-gap: 0.875rem;
	column-gap: 0.875rem;
}

}

@media (max-width: 1200px) {

.p-header__logo {
	width: 12.8125rem;
}

.p-header__list {
	-moz-column-gap: 1.75rem;
	column-gap: 1.75rem;
}

}

@media (max-width: 1000px) {

.p-header__nav {
	-moz-column-gap: 0.75rem;
	column-gap: 0.75rem;
}

.p-header__list {
	-moz-column-gap: 1.5rem;
	column-gap: 1.5rem;
}

}

@media (max-width: 800px) {

.p-header__list {
	-moz-column-gap: 1.375rem;
	column-gap: 1.375rem;
}

}

@media screen and (max-width: 767px) {

.c-drawer__icon {
	background: transparent;
	cursor: pointer;
	display: flex;
	flex-direction: column;
	height: 1.125rem;
	justify-content: space-between;
	position: fixed;
	right: 1.375rem;
	top: 1.360625rem;
	width: 1.75rem;
	z-index: 102;
}

.c-drawer__icon--bar {
	background: #274b66;
	border-radius: 1.875rem;
	display: flex;
	flex-direction: column;
	height: 0.1875rem;
	justify-content: space-between;
	opacity: 1;
	transition: translate 0.3s ease, rotate 0.3s ease;
	width: 100%;
}

.c-drawer__icon.js-show .c-drawer__icon--bar:nth-of-type(1) {
	rotate: 225deg;
	translate: 0 0.46875rem;
}

.c-drawer__icon.js-show .c-drawer__icon--bar:nth-of-type(2) {
	opacity: 0;
}

.c-drawer__icon.js-show .c-drawer__icon--bar:nth-of-type(3) {
	rotate: -225deg;
	translate: 0 -0.46875rem;
}

.c-section-title__ja {
	font-size: 1.625rem;
	letter-spacing: 0.08125rem;
}

html {
	font-size: calc(16 / 375 * 100vw);
}

.l-inner {
	padding-inline: 1.25rem;
	width: min(23.4375rem, 100%);
}

.p-header {
	padding-block: 1rem;
	padding-inline: 1.25rem;
}

.p-header__inner {
	grid-template-columns: 11.71875rem 1fr;
}

.p-header__logo {
	width: 11.71875rem;
}

.p-header__nav {
	display: none;
}

.p-drawer.js-show {
	opacity: 1;
	visibility: visible;
}

.p-fv {
	padding-block: 6.375rem 2.5rem;
}

.p-fv__content {
	gap: 1rem;
	position: static;
}

.p-fv__title-wrap {
	gap: 1rem;
}

.p-fv__sub-title {
	color: #274b66;
	font-size: 2.5rem;
	font-weight: 700;
	letter-spacing: 0.075rem;
	line-height: 1.5;
}

.p-fv__sub-title .p-fv__sub-title-span {
	color: #274b66;
	font-size: 2.5rem;
	font-weight: 700;
	letter-spacing: 0.075rem;
	line-height: 1.5;
}

.p-fv__sub-title .p-fv__sub-title-span span {
	color: #e9c243;
	font-size: 2.5rem;
	font-weight: 700;
	letter-spacing: 0.075rem;
	line-height: 1.5;
}

.p-fv__title span {
	color: #274b66;
	font-size: 1.125rem;
	font-weight: 700;
	letter-spacing: 0.05625rem;
	line-height: 1.5;
}

.p-fv__button-wrapper {
	align-items: center;
	margin-top: 3.65125rem;
	position: static;
}

.p-fv__button-title {
	font-size: 1.125rem;
	font-weight: 700;
	letter-spacing: 0.05625rem;
	line-height: 1.6;
	margin-left: 0;
}

.p-fv__btn-wrapper.c-contact-button__wrap {
	padding: 1.125rem 1.25rem;
}

.p-fv__btn-wrapper.c-contact-button__wrap span {
	font-size: 1.125rem;
	letter-spacing: 0.05625rem;
	line-height: 1.6;
	padding-inline: 2.25rem 2.125rem;
}

.p-fv__swiper-inner {
	margin-inline: auto;
	margin-top: 2.5rem;
	width: 100%;
}

.p-fv__swiper-slide {
	aspect-ratio: 335/228.07;
	height: auto;
	width: 100%;
}

.p-fv__swiper-slide img {
	border-radius: 0 0 0 0.438625rem;
}

.swiper-pagination-bullets.swiper-pagination-horizontal {
	top: calc(100% - 0.05rem);
}

.p-mission {
	padding-block: 5rem 4.6875rem;
}

.p-mission__text-wrap {
	width: 100%;
}

.p-mission__lead {
	font-size: 0.9375rem;
	letter-spacing: 0.046875rem;
}

.p-mission__cards {
	display: grid;
	grid-template-columns: 1fr;
	margin-top: 1.25rem;
}

.p-mission__card {
	display: grid;
	grid-row: span 2;
	grid-template-rows: subgrid;
	padding-bottom: 1.875rem;
	row-gap: 0.5rem;
}

.p-mission__card:not(:last-child) {
	border-bottom: 0.0625rem dashed #b4adad;
}

.p-mission-card__img {
	aspect-ratio: 240/137;
	height: auto;
	width: 15rem;
}

.p-mission-card__text-wrap {
	gap: 0.5rem;
	padding-inline: 0.75rem;
}

.p-mission-card__title {
	font-size: 1.125rem;
	letter-spacing: 0.05625rem;
}

.p-mission-card__text {
	font-size: 0.9375rem;
	letter-spacing: 0.046875rem;
	line-height: 1.6; /* 行間を設定 */
	min-height: 4.5em;
}

.p-cta1 {
	background: url(../img/sp/cta1-sp-bg.webp) no-repeat center center/cover;
	height: 30.875rem;
	padding-block: 5rem 5rem;
}

.p-cta1__text-wrap {
	gap: 1.25rem;
}

.p-cta1__title {
	font-size: 1.625rem;
	letter-spacing: 0.08125rem;
	text-align: center;
}

.p-cta1__text {
	font-size: 0.9375rem;
	letter-spacing: 0.046875rem;
	width: 100%;
}

.p-cta1__button-wrap {
	margin-top: 0.75rem;
}

.p-cta1__button-wrap.c-contact-button__wrap {
	padding: 1.15625rem 1.75rem;
}

.p-cta1__button-wrap.c-contact-button__wrap .c-contact-button__btn span {
	font-size: 1.125rem;
	letter-spacing: 0.05625rem;
	padding-inline: 2.25rem 2.125rem;
}

.p-reason {
	background: url(../img/sp/reason-sp-bg.webp) no-repeat center center/cover;
	padding-block: 5rem 5rem;
}

.p-reason__inner {
	grid-template-columns: 1fr;
}

.p-reason__illust {
	aspect-ratio: 56/113;
	left: calc(50% + 6.0625rem);
	top: -2.65625rem;
	width: 3.5rem;
}

.p-reason__cards {
	margin-top: 2.5rem;
}

.p-reason__card {
	border-radius: 1.25rem;
	gap: 1rem;
	grid-template-columns: 1fr;
	justify-content: center;
	padding: 1.25rem 1rem;
}

.p-reason-card__number-wrap {
	left: auto;
	right: 0.875rem;
	top: -1.25rem;
}

.p-reason-card__text-wrap {
	gap: 0.65625rem;
	width: 100%;
}

.p-reason-card__title {
	font-size: 1.125rem;
	letter-spacing: 0.05625rem;
}

.p-reason-card__text {
	font-size: 0.9375rem;
}

.p-reason-card__img {
	aspect-ratio: 303/200;
	height: auto;
	width: 18.9375rem;
}

.p-reason-card__img img {
	border-radius: 0.314875rem;
}

.p-teacher {
	height: auto;
	padding-block: 4.9375rem 11.875rem;
}

.p-teacher__swiper-inner {
	padding-inline: 1.25rem;
	position: static;
	width: min(23.4375rem, 100%);
}

.p-teacher__card {
	grid-template-columns: 20rem;
}

.p-teacher__card-img {
	aspect-ratio: 320/240;
	width: 20rem;
}

.p-teacher-card__category {
	margin-top: 1rem;
}

.p-teacher-card__category-text {
	padding: 0.0625rem;
}

.p-teacher-card__meta {
	gap: 0.75rem;
	margin-top: 0.25rem;
}

.p-teacher-card__name {
	font-size: 1.125rem;
	letter-spacing: 0.05625rem;
}

.p-teacher-card__text {
	font-size: 0.9375rem;
	letter-spacing: 0.0625rem;
}

.p-teacher__swiper-container {
	left: unset;
	margin-top: 2.5rem;
	position: relative;
	width: 100%;
}

.p-teacher__swiper {
	visibility: visible;
}

.p-teacher__swiper-slide {
	width: 20rem;
}

.swiper-button-prev,
.swiper-button-next {
	top: calc(100% + 4.40625rem);
}

.swiper-button-prev {
	left: unset;
	right: 0.1875rem;
}

.swiper-button-next {
	left: unset;
	right: 4rem;
}

.swiper-pagination-progressbar.swiper-pagination-horizontal {
	top: calc(100% + 5.375rem);
	width: 9.375rem;
}

.p-cta2 {
	background: url(../img/sp/cta2-sp-bg.webp) no-repeat center center/cover;
}

.p-cta2__inner {
	padding-block: 5rem;
}

.p-cta2__content {
	gap: 0.9375rem;
	width: 100%;
}

.p-cta2__item {
	flex-direction: column;
	gap: 1.9375rem;
}

.p-cta2__title {
	font-size: 1.625rem;
	letter-spacing: 0.08125rem;
}

.p-cta2__phone-title {
	font-size: 0.9375rem;
	letter-spacing: 0.046875rem;
	line-height: 1.8;
}

.p-cta2__phone {
	font-size: 2.1875rem;
	letter-spacing: 0.109375rem;
	line-height: 1.5;
	margin-top: 0.25rem;
}

.p-cta2__phone::before {
	aspect-ratio: 22.354/32.999;
	height: auto;
	width: 1.397125rem;
}

.p-cta2__button-text {
	font-size: 1.125rem;
	letter-spacing: 0.05625rem;
	line-height: 1.6;
}

.p-cta2__button-wrap.c-contact-button__wrap {
	padding: 1.1875rem 1.1875rem;
}

.p-cta2__button-wrap.c-contact-button__wrap .c-contact-button__btn span {
	font-size: 1.125rem;
	letter-spacing: 0.05625rem;
	padding-inline: 2.25rem 2.125rem;
}

.p-course {
	padding-block: 4.9375rem 4.59375rem;
}

.p-course__inner {
	padding-inline: 1.25rem;
	width: min(23.4375rem, 100%);
}

.p-course__title-wrap {
	align-items: start;
}

.p-course__contents-container {
	margin-top: 2.5rem;
	width: 100%;
}

.p-course-tabs__content-wrap {
	gap: 2rem;
}

.p-course-tabs__content-wrap::before {
	bottom: calc(100% + 5.09375rem);
	height: 6.3125rem;
	left: auto;
	right: 0.625rem;
	width: 4.5625rem;
}

.p-course-tabs__content-wrap.js-show {
	padding-block: 2rem;
}

.p-course-tabs-content__text-wrap {
	align-items: center;
	justify-content: center;
	padding-inline: 1rem;
	width: 100%;
}

.p-course-tabs-content__title {
	font-size: 1.125rem;
	letter-spacing: 0.05625rem;
	text-align: center;
}

.p-course-tabs-content__text {
	font-size: 0.9375rem;
	letter-spacing: 0.046875rem;
}

.p-course-modal__open-btn {
	margin-top: 0;
}

.p-course-modal__image {
	bottom: 38.1875rem;
	height: 6.3125rem;
	left: auto;
	right: 0.9375rem;
	width: 4.5625rem;
}

.p-course-modal__content {
	max-height: 55vh;
}

.p-course-modal__body {
	gap: 1.5rem;
	padding: 2.5rem 1rem;
}

.p-course-modal__close-btn {
	right: 0.5625rem;
	top: 1.625rem;
}

.p-course-modal__head-wrap {
	flex-direction: column;
	gap: 0.25rem;
	padding-inline: 1rem;
}

.p-course-modal__head-main {
	font-size: 1.125rem;
	letter-spacing: 0.05625rem;
}

.p-course-modal__head-sub {
	font-size: 0.9375rem;
	letter-spacing: 0.046875rem;
}

.p-course-modal__item-wrap {
	gap: 0.5rem;
}

.p-course-modal__item {
	gap: 0.5rem;
}

.p-course-modal__item-title {
	font-size: 0.9375rem;
	letter-spacing: 0.046875rem;
}

.p-course-modal__item-text {
	font-size: 0.9375rem;
	letter-spacing: 0.046875rem;
	padding-bottom: 3rem;
}

.p-faq {
	padding-block: 5rem 5.1875rem;
}

.p-faq__inner::after {
	bottom: auto;
	height: 5.375rem;
	right: 1.90625rem;
	top: -0.4375rem;
	width: 4.8125rem;
}

.p-faq__title-wrap {
	align-items: start;
}

.p-faq__items {
	gap: 2.15625rem;
	margin-top: 2.65625rem;
	width: 100%;
}

.p-faq__question-wrap {
	padding: 0.90625rem 1rem 1.09375rem;
}

.p-faq__question-text {
	padding-inline: 3.1875rem 1.75rem;
}

.p-faq__question-text {
	font-size: 0.9375rem;
	letter-spacing: 0.046875rem;
}

.p-faq__question-text::before {
	top: 0;
	translate: 0 0;
}

.p-faq__answer {
	padding-inline: 0.75rem;
}

.p-faq__answer-text {
	padding-inline: 3rem 0rem;
}

.p-faq__answer-text {
	font-size: 0.9375rem;
	letter-spacing: 0.046875rem;
}

.p-contact__data-checkbox {
	flex-wrap: wrap;
	gap: 0.4375rem 2.5rem;
	margin-top: -0.1875rem;
}

.p-contact__submit {
	margin-top: -0.875rem;
}

.p-contact {
	padding-block: 5rem;
}

.p-contact__form {
	margin-top: 2.5rem;
	width: 100%;
}

.p-contact__row.--prefecture {
	margin-top: 1rem;
}

.p-contact__head {
	font-size: 0.9375rem;
	letter-spacing: 0.046875rem;
}

.p-contact__data-wrap {
	gap: 0.625rem;
	grid-template-columns: 10rem 10rem;
	justify-content: space-between;
}

.p-contact__row-wrap.--sp-only {
	display: contents;
}

.p-contact__error-message {
	font-size: 0.6875rem;
}

.p-contact__acceptance {
	margin-inline: auto;
}

.p-contact__acceptance span {
	letter-spacing: 0;
}

.p-contact__data .p-contact__error-message,
.p-contact__acceptance .p-contact__error-message {
	bottom: -0.78125rem;
}

.p-footer {
	padding-block: 3.75rem;
}

.p-footer__inner {
	padding-inline: 1.25rem;
	width: min(23.4375rem, 100%);
}

.p-footer__logo-wrap {
	align-items: center;
	flex-direction: column;
	gap: 2.5rem;
	justify-content: center;
}

.p-footer__nav {
	margin-top: 2.5rem;
}

.p-footer__nav-list {
	align-items: center;
	flex-direction: column;
	gap: 2.175rem;
	justify-content: center;
	padding-bottom: 1.8125rem;
}

.p-footer__copyright-wrap {
	align-items: center;
	flex-direction: column-reverse;
	gap: 1rem;
	justify-content: center;
}

.u-hidden-sp {
	display: none;
}

.u-hidden-pc {
	display: block;
}

.u-hidden-sp-pc {
	display: none;
}

}

@media screen and (max-width: 767px) and (max-width: 767px) {

.p-fv__inner {
	margin-inline: auto;
	padding-inline: 1.25rem;
	width: min(23.4375rem, 100%);
}

}

@keyframes SlideUp {

0% {
	opacity: 0;
	translate: 0 100%;
}

100% {
	opacity: 1;
	translate: 0 0;
}

}

@keyframes SlideDown {

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

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

}

@keyframes circleAnimation {

0% {
	clip-path: circle(0 at 50% 50%);
}

100% {
	clip-path: circle(100% at 50% 50%);
}

}

@keyframes btn_animation {

0% {
	opacity: 0;
	transform: scale(0) rotate(45deg);
}

80% {
	opacity: 0.5;
	transform: scale(0) rotate(45deg);
}

81% {
	opacity: 1;
	transform: scale(4) rotate(45deg);
}

100% {
	opacity: 0;
	transform: scale(50) rotate(45deg);
}

}

@keyframes title_animation {

0% {
	transform: scale(1);
}

35% {
	transform: scale(1.2);
}

45% {
	transform: scale(1.2);
}

65% {
	transform: scale(1);
}

68% {
	transform: scale(1);
}

88% {
	transform: scale(1.1);
}

100% {
	transform: scale(1);
}

}

