@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@700&display=swap');

:root {
	--c-primary: #0b975f;
	--c-secondary: hsla(190, 78%, 47%, 1.00);
	--c-accent: #d60012;
	--c-text: #001500;
	--bdc-gray: hsla(0, 0%, 80%, 1.00);
	--bgc-gray: hsla(0, 0%, 90%, 1.00);
	--scaling: 1;
	--ff-sans: "Noto Sans JP", -apple-system, BlinkMacSystemFont, ヒラギノ角ゴ ProN, Hiragino Kaku Gothic ProN, YuGothic, "Yu Gothic Medium", "Yu Gothic", sans-serif;
	--ff-serif: "Times New Roman", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif
}

* {
	text-wrap: pretty;
	word-break: break-all;
	min-width: 0;
	/* scroll-behavior: smooth; */
}

body,
html {
	font-size: clamp(0px, 2.5vw, 24.614px);
	/*font-size: clamp(0px,3.846vw,24.614px)*/
}

.container {
	padding-inline: 0rem;
	width: min(100%, 640px);
	margin-inline: auto;
}

/*HTML*/
html {
	overscroll-behavior: none;
	word-break: break-all;
	scroll-padding: 0rem 0 4rem
}

body {
	-webkit-font-smoothing: antialiased;
}

html,
body {
	overflow-x: hidden;
}

body,
body * {
	-webkit-overflow-scrolling: touch;
}

body {
	background: hsla(0, 0%, 100%, 1);
	font-family: var(--ff-sans);
	-webkit-font-feature-settings: "palt";
	font-feature-settings: "palt";
	font-weight: 400;
	line-height: 1.75;
	overflow-y: auto;
}

a {
	color: var(--c-text);
}

a[class] {
	text-decoration: none;
}

:where(a:active),
:where(a:focus),
:where(a:hover) {
	color: var(--c-text);
}

a.anchor {
	display: block;
	margin-top: -10em;
	padding-top: 10em;
}

img {
	max-width: 100%;
	display: block;
	height: auto;
	-ms-interpolation-mode: bicubic;
	shape-margin: 1em;
	font-style: italic;
	object-fit: cover;
	background-repeat: no-repeat;
}

hr {
	border-top: 1px solid hsla(0, 0%, 80%, 1.00);
	margin-bottom: 2em;
	margin-top: 2em;
}

hr.lg {
	border-top: 1px solid hsla(0, 0%, 80%, 1.00);
	margin-bottom: 4em;
	margin-top: 4em;
}

label {
	display: inline-block;
	font-weight: 400;
	margin-bottom: 0;
	max-width: 100%;
}

dl {
	margin: 0;
}

figure {
	display: block;
}

p {
	margin: 0;
	word-wrap: break-word;
}



.small,
small {
	color: inherit !important;
	font-size: 0.8em;
	font-weight: inherit !important;
}

.embed-responsive {
	overflow: auto !important;
	-webkit-overflow-scrolling: touch !important;
	width: 100% !important;
}




/* Utility */
.u-flex {
	display: flex;
}

.u-flex-wrap {
	display: flex;
	flex-wrap: wrap;
}

.u-posi-re {
	position: relative;
}

.u-posi-ab {
	position: absolute;
}

.btn_wrap {
	position: relative;
}
.btn_wrap .btn {
	position: absolute;
	left: 0;
	right: 0;
	margin: 0 auto;
	bottom: 1em;
}
.btn_01 {
	text-align: center;
	color: #06529e;
	background: #fff;
	margin: 1em auto;
	width: 80%;
	border-radius: 0.3em;
	padding: 0.5em 1.7em;
	font-size: clamp(0px, 2em, 32px);
	box-shadow: 0.2em 0.2em 0px rgb(6, 82, 158);
	line-height: 1.3em;
	border: 0.12em solid;
	position: relative;
	justify-content: center;
	align-items: center;
	min-height: 3.8em;
}
.btn_01_txt {
	margin: 0 auto;
	width: 100%;
}
.btn_01_triangle {
	font-size: 0.7em;
	position: absolute;
	right: 1.5em;
	top: 50%;
	transform: translateY(-50%);
	transition: 0.2s right;
	pointer-events: none;
}
.btn_01:hover .btn_01_triangle {
	right: 1em;
}
.fil:hover {
	filter: brightness(1.1);
}
.opa:hover {
	opacity: 0.8;
}






/*.TOPへ戻る*/
.pagetop {
	bottom: 10em;
	color: #0075b7;
	cursor: pointer;
	display: block;
	position: fixed;
	right: 0.5rem;
	width: min(4.5rem, 54px);
	z-index: 1000;
}
@media (min-width: 640px) {
	.pagetop {
	    bottom: 7.5em;
	}
}
@media screen and (min-width: 640px) and (max-width: 950px) {
	.pagetop {
	    bottom: 12.3%;
	}
}
.pagetop img {
	width: 100%;
}

/* スクロールで表示 */
.floating-btns,.pagetop {
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.4s ease;
}

.floating-btns.visible,.pagetop.visible {
	opacity: 1;
	visibility: visible;
}

/* FV */
.p-fv__text,
.p-fv__mv {
	width: 50%;
	max-height: calc(100vh - 0.625em);
	overflow: hidden;
	min-height: 20.25em;
	pointer-events: none;
}

.p-fv:after {
	content: '';
	display: block;
	width: 100%;
	height: 0.625em;
	background: url(../images/top-fv_border.webp) repeat-x center/auto 100%;
}

.p-fv .header {
	width: 50%;
	padding: 1em 0;
	left: 0;
	margin: 0 auto;
}

.p-fv .header .logo {
	width: 85%;
	margin: 0 auto;
}

.p-fv .header .logo:after {
	content: '';
	display: block;
	width: 100%;
	height: 0.5em;
	background: url(../images/top-fv_logo_boder.webp) no-repeat left/contain;
	margin-top: 0.5em;
}

.p-fv__text {
	justify-content: center;
	align-items: center;
	padding: 3.75em 2.25em 2.25em;
	box-sizing: border-box;
}

.p-fv__text img {
	width: 100%;
	max-width: 600px;
	margin: 0 auto;
}

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

@media screen and (max-width:640px) {
	.p-fv:after {
		display: none;
	}

	.p-fv .header {
		width: 100%;
		position: relative;
		padding: 1.5em 0;
	}

	.p-fv .header .logo {
		width: 90%;
	}

	.p-fv .header .logo img {
		width: 17.875em;
	}

	.p-fv .header .logo:after {
		display: none;
	}

	.p-fv__text,
	.p-fv__mv {
		width: 100%;
	}

	.p-fv__text {
		order: 2;
		padding: 0;
	}
}


/* ページタイトル */
.header-page {
	margin-top: 2rem;
	padding: 1em;
}

/* タブ切り替え */
.p-tab-body {
	overflow: hidden;
}

.p-tab-list {
	gap: 0 0.7em;
	justify-content: space-between;
}

.p-tab-item {
	cursor: pointer;
	padding: 0.8em 1em;
	width: calc((100% - 0.8em)/2);
	background: #9d9d9d;
	color: #fff;
	text-align: center;
	font-size: clamp(0px, 1.575em, 22px);
	border-radius: 1em 1em 0 0;
	line-height: 1.4;
	box-sizing: border-box;
}

.p-tab-item.is-active[data-target="tab-student"],
.p-tab-item.is-active[data-target="tab-student"]~.active-border {
	background: #12789b;
}

.p-tab-item.is-active[data-target="tab-graduate"],
.p-tab-item.is-active[data-target="tab-graduate"]~.active-border {
	background: #ff8c2e;
}

.p-tab-item.active-border {
	width: 100%;
	padding: 0;
	border-radius: 0;
	height: 0.4em;
}

/* タブコンテンツの初期状態（非表示） */
.p-tab-content {
	display: none;
	opacity: 0;
}

/* アクティブになったら表示＆アニメーション実行 */
.p-tab-content.is-active {
	display: block;
	animation: fadeIn 0.6s ease forwards;
}

/* フェードインのアニメーション定義 */
@keyframes fadeIn {
	0% {
		opacity: 0;
		transform: translateX(20%);
	}

	100% {
		opacity: 1;
		transform: translateX(0);
	}
}





/* 高校生 */
.tab-student__bg01 {
	background: url(../images/student_bg01.webp) repeat-y top / 100%;
	padding: 1em 0 0;
}

.tab-student__bg02 {
	background: url(../images/student_bg02.webp) repeat-y top / 100%;
}

/* 大学受験科 */
.tab-graduate__bg01 {
	background: url(../images/graduate_bg01.webp) repeat-y top / 100%;
	padding: 1em 0 0;
}

.tab-graduate__bg02 {
	background: url(../images/graduate_bg02.webp) repeat-y top / 100%;
}

/* 春のイベント */
.tab__event {
	background: #fff;
	border-top: 0.625em solid;
	border-bottom: 0.625em solid;
	border-color: #ff7d7d;
	padding: 4%;
	margin-top: 4em;
}

.tab__event h2 {
	margin-top: -9%;
}

.tab__event .btn_wrap {
	border-bottom: 0.26em dotted #ff7d7d;
}

.tab__event .btn_wrap .btn {
	bottom: 0.5em;
}

#tab-student .btn_01 {
	color: #12789b;
	box-shadow: 0.2em 0.2em 0px rgb(18, 120, 155);
	background: #ffea75;
}

#tab-graduate .btn_01 {
	color: #603813;
	box-shadow: 0.2em 0.2em 0px rgb(96 56 19);
	background: #fed337;
	margin: 0.8em auto;
}

.tab__campaign .btn_01,
.tab__event .btn_01 {
	border-radius: 5em;
	min-height: 3.5em;
	margin: 0.8em auto;
	background: #fff !important;
}

#tab-graduate .tab__campaign .btn_01,
#tab-graduate .tab__event .btn_01 {
	color: #ff8400;
	box-shadow: 0.2em 0.2em 0px rgb(255 132 0);
	margin: 1.4em auto;
}

.tab__event .btn_wrap:last-child {
	border: 0;
}


/* 3つの特徴 */
.u-section__nav {
	width: 90%;
	margin: 0 auto;
	gap: 1em;
}
.u-section__nav li a {
	display: block;
}
.u-section__nav li a:before {
	content: '';
	display: block;
	width: 2.5em;
	height: 2.5em;
	background: url(../images/student_sec-nav01_arrow.webp) no-repeat center/contain;
	border-radius: 50%;
	position: absolute;
	right: 1em;
	top: 50%;
	transform: translateY(-50%);
	transition: 0.2s top;
}

#graduate-section02 .u-section__nav li a:before {
	background-image: url(../images/graduate_sec-nav01_arrow.webp);
}
@media (min-width: 640px) {
.u-section__nav li a:before {
    width: 1.5em;
    height: 1.5em;
}
}
.u-section__nav li a:hover:before {
	top: 60%;
}

#student_feature01 .btn_01 {
	margin: 9% auto;
}

#graduate_feature01 .btn {
	bottom: 2.5%;
}

/* 合格者の声 */
#student-section03:before {
	content: '';
	display: block;
	width: 100%;
	height: 100%;
	position: absolute;
	background: #FF7D7D;
	background: linear-gradient(0deg, rgba(255, 125, 125, 1) 0%, rgba(255, 188, 188, 1) 70%, rgba(255, 255, 255, 1) 100%);
	z-index: -1;
}

#graduate-section03 {
	background: #FED337;
	background: linear-gradient(0deg, rgba(254, 211, 55, 1) 0%, rgba(255, 233, 156, 1) 40%, rgba(255, 255, 255, 1) 95%);
}

/* 入会までの流れ */
#student-section04 {
	margin-top: -25%;
	padding-top: 25%;
	background: url(../images/student_flow_bg.webp) repeat center/1.45em;
}

#graduate-section04 {
	background: url(../images/graduate_flow_bg.webp) repeat center/1.45em;
}


/* フッター */
.footer-page {
	background: url(../images/student_bg03.webp) repeat-y top / 100%;
	padding-bottom: 6em;
}

.footer-graduate {
	background: url(../images/graduate_bg02.webp) repeat-y center 820%/ 100%;
}

.footer-common {
	mask: url(../images/access-ttl.webp) no-repeat center/contain;
}

.footer-common img {
	visibility: hidden;
}

h3.footer-common {
	mask-image: url(../images/access-ttl.webp);
}

h4.footer-common {
	mask-image: url(../images/movie_check.webp);
}

.footer-common.line {
	mask-image: url(../images/support-line.webp);
}

.access a.footer-common {
	mask-image: url(../images/tel.svg);
}

.pagetop.footer-common {
	mask-image: url(../images/ic-double-arrow.svg);
}

.footer-student .footer-common {
	background: #12789b;
}

.footer-student .access a.footer-common {
	background: #4ec35b;
}

.footer-graduate .footer-common {
	background: #f94e61;
}

.footer-graduate .access a.footer-common {
	background: #ff8400;
}

/* アクセス */
.access.u-posi-re a {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 19.5%;
	width: 76%;
	margin: 0 auto;
}

/* グーグルの地図*/
.embed-map__wrapper {
	padding: 1rem;
	margin: 0 auto;
}

.embed-map {
	display: block;
	aspect-ratio: 580 / 434;
	width: 100%;
	border: 2px solid;
}

.footer-student .embed-map {
	border-color: #12789b;
}

.footer-graduate .embed-map {
	border-color: #f94e61;
}



/*ユーチューブ*/
.youtube {
	padding: 0 1rem 1rem;
}

.youtube__link {
	position: relative;
	display: block;
}

.youtube__icon {
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	width: 15%;
}
iframe {
	width: 100%;
}


/* SNS */
.sns_btn {
	justify-content: space-around;
	max-width: 600px;
	gap: 1em;
	width: 90%;
	margin: 1em auto;
}

/* フローティングボタン */
.floating-btns {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	width: 100%;
	z-index: 1000;
	background: rgba(78, 195, 91, 0.3);
}
.footer-graduate .floating-btns {
    background: rgba(255,234,66,0.3);
}

.footer-student .btn-wrap.graduate,
.footer-graduate .btn-wrap.student {
	display: none;
}

.footer-page .btn-wrap {
	max-width: 640px;
	padding: 1.4em 1em;
	box-sizing: border-box;
	margin: 0 auto;
	justify-content: space-between;
	gap: 0.5em;
}
.footer-page .btn-wrap .btn {
    width: 50%;
}
.footer-page .btn-wrap .btn_01 {
	font-size: clamp(0px, 1.375em, 22px);
	margin: 0 auto;
	width: 100%;
	color: #fff;
	border: 0;
	padding: 0.9em 1em;
}

.footer-page .btn-wrap .btn_01 .btn_01_triangle {
	right: 0.6em;
}

.footer-page .btn-wrap .btn:first-child .btn_01 {
	background: #fc5066;
	box-shadow: 0 0.3em 0 rgb(224 59 79);
}
.footer-page .btn-wrap.student .btn:last-child .btn_01 {
	background: #44b74c;
	box-shadow: 0 0.3em 0 rgb(43 142 50);
}
.footer-page .btn-wrap.graduate .btn:last-child .btn_01 {
	background: #ff8400;
	box-shadow: 0 0.3em 0 rgb(186 90 2);
}




/*追加*/
.gnav-list {
	gap: 0;
	text-align: center;
	border-block: 1px solid hsl(195, 4%, 64%);
	width: 90%;
	margin: 1.5em auto 2em;
}

.gnav-list-item {
	flex-grow: 1;
	flex-shrink: 0;
	flex-basis: 0;
	padding-top: 0.8em;
	padding-bottom: 1.2em;
}

.gnav-list-item-link {
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: clamp(0px, 1.375em, 22px);
	font-weight: bold;
	line-height: 1.4;
	min-height: 4.5em;
	padding: 0.5em 0em 1.2em 0em;
	color: #000f14;
	/* background-color: #FFF; */
	background-repeat: no-repeat;
	background-size: 0.5em auto;
	background-position: right 50% bottom 2%;
	transition: background-position 0.3s ease-out;
	text-align: center;
	background-image: url(../images/arrow-gray-down.svg);
}
.gnav-list-item-link span {
    display: block;
    width: 100%;
}

#tab-student .gnav-list-item-link {
	background-image: url(../images/arrow-down_student.svg);
}

#tab-graduate .gnav-list-item-link {
	background-image: url(../images/arrow-down_graduate.svg);
}

#tab-graduate .gnav-list-item-link:hover,#tab-graduate .gnav-list-item-link:active,#tab-graduate  .gnav-list-item-link:focus {
	color: #ff8c2e;
}

#tab-graduate .gnav-list,
#tab-graduate .gnav-list-item:nth-child(n+2) .gnav-list-item-link {
	border-color: #ff8c2e !important;
}

.gnav-list-item-link:hover,
.gnav-list-item-link:active,
.gnav-list-item-link:focus {
	background-position: right 50% bottom -2%;
	color: #12789b;
}

.gnav-list-item:nth-child(n+2) .gnav-list-item-link {
	border-left: 1px solid hsl(195, 4%, 64%);
}




@media print {
	a[href]:after {
		content: "" !important;
	}

	abbr[title]:after {
		content: "" !important;
	}
}