@charset "UTF-8";
/* CSS Document */
/*
header SP用 レイアウト
========================================================================================== */
@media (width <=767px) {
	header {
		padding: 0 76px 0 5px;
	}

	header h1 {
		width: calc(325/750*100vw);
		top: 50%;
		left: 50%;
		right: auto;
		bottom: auto;
		transform: translate(-50%, -50%);
	}

	header h1 a {
		display: block;
	}

	header h1 img {
		width: 100%;
		height: auto;
	}

	header h2 {
		display: none;
	}
}

/*
highschool レイアウト
========================================================================================== */
html {
	scroll-behavior: smooth;
	scroll-padding-top: 230px;
}

@media (width <=767px) {
	html {
		scroll-padding-top: 130px;
	}
}

#highschool-contents {
	width: 100%;
	overflow-x: hidden;
	padding-top: 76px;
	font-family: "Noto Sans JP", sans-serif;
	letter-spacing: 0.06em;
	font-weight: bold;

	/* 変数 */
	--main-color: #1062c8;
	--sub-color: #37a5ff;
	--dot-color: #D3EDFD;
	--text-color: #505050;
	--black-color: #000;
	--white-color: #fff;
}

.highschool {
	width: 100%;
	height: 100%;
	background-image:
		radial-gradient(var(--dot-color) 20%, transparent 20%),
		radial-gradient(var(--dot-color) 20%, transparent 20%);
	background-size: 10px 10px;
	background-position: 0 0, 5px 5px;
	position: relative;
}

.highschool:after {
	content: "";
	width: 100%;
	height: 100%;
	background-image: url('../../images/highschool/bg.webp');
	background-repeat: no-repeat;
	background-size: 2153px;
	background-position: calc(50% - 40px) 0;
	position: absolute;
	top: 0;
	left: 0;
}

@media (width <=767px) {
	.highschool:after {
		background-image: url('../../images/highschool/bg_sp.webp');
		background-size: 100%;
		background-position: top center;
	}
}

/* ===========================
************ 共通 ************
=========================== */
.disp-pc {
	display: block;
}

@media (width <=767px) {
	.disp-pc {
		display: none;
	}
}

.disp-sp {
	display: none;
}

@media (width <=767px) {
	.disp-sp {
		display: block;
	}
}

.main-title {
	margin-top: 104px;
	color: var(--main-color);
	font-size: 3.2rem;
	text-align: center;
	position: relative;
	z-index: 1;
}

@media (width <=767px) {
	.main-title {
		margin-top: 0;
		padding-top: calc(110/750*100vw);
		font-size: calc(38/750*100vw);
		line-height: 1.75;
	}
}

.wbr-parent {
	word-break: keep-all;
	overflow-wrap: anywhere;
}

@media (width <=767px) {
	.ta-center_sp {
		text-align: center;
	}
}

.sec {
	position: relative;
	z-index: 1;
}

.sub-title {
	margin-bottom: 35px;
	color: var(--main-color);
	font-size: 3.2rem;
	text-align: center;
	text-transform: uppercase;
}

@media (width <=767px) {
	.sub-title {
		margin-bottom: calc(20/750*100vw);
		font-size: 2rem;
	}
}

.sub-desc {
	margin-bottom: 45px;
	color: var(--main-color);
	font-size: 1.6rem;
	font-weight: normal;
	line-height: 2;
	text-align: center;
}

@media (width <=767px) {
	.sub-desc {
		margin-bottom: calc(25/750*100vw);
		font-size: 1.2rem;
		line-height: 1.8;
	}
}

button {
	background-color: transparent;
	border: none;
	cursor: pointer;
	outline: none;
	padding: 0;
	appearance: none;
}

/* ===========================
*********** メニュー ***********
=========================== */
/* ハンバーガー */
.ham {
	width: 140px;
	height: 140px;
	border-radius: 50%;
	background: var(--sub-color);
	cursor: pointer;
	position: fixed;
	top: 13px;
	right: 45px;
	z-index: 999;
}

@media (width <=767px) {
	.ham {
		width: 76px;
		height: 76px;
		top: 0;
		right: 10px;
	}
}

.ham::before {
	content: "";
	width: 140px;
	height: 76px;
	background: var(--sub-color);
	position: absolute;
	top: -13px;
	right: 0;
}

@media (width <=767px) {
	.ham::before {
		width: 76px;
		height: 38px;
		top: 0;
	}
}

.ham-text {
	color: var(--white-color);
	font-size: 2rem;
	text-transform: uppercase;
	position: absolute;
	top: 35px;
	left: 50%;
	transform: translateX(-50%);
}

@media (width <=767px) {
	.ham-text {
		font-size: 1rem;
		top: 15px;
	}
}

.ham-line {
	width: 60px;
	height: 4px;
	background: var(--white-color);
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
}

@media (width <=767px) {
	.ham-line {
		width: 40px;
		height: 2px;
	}
}

.ham-line.top {
	top: 68px;
}

@media (width <=767px) {
	.ham-line.top {
		top: 32px;
	}
}

.ham-line.center {
	top: 83px;
}

@media (width <=767px) {
	.ham-line.center {
		top: 42px;
	}
}

.ham-line.bottom {
	top: 98px;
}

@media (width <=767px) {
	.ham-line.bottom {
		top: 52px;
	}
}

.hamMenu {
	width: 100%;
	max-height: 100vh;
	padding: 140px 0 115px;
	background: var(--sub-color);
	overflow-y: scroll;
	position: fixed;
	top: 0;
	right: 0;
	z-index: 9999;
	opacity: 0;
	visibility: hidden;
	transition: all 0.3s;
	text-transform: uppercase;
}


@media (width <=767px) {
	.hamMenu {
		padding: 110px 0 100px;
	}
}

.hamMenu.show {
	opacity: 1;
	visibility: visible;
}

.ham-close {
	width: 80px;
	height: 80px;
	position: absolute;
	top: 40px;
	right: 75px;
}

@media (width <=767px) {
	.ham-close {
		width: 76px;
		height: 76px;
		top: 5px;
		right: 10px;
	}
}

.ham-close:before,
.ham-close:after {
	content: "";
	width: 1px;
	height: 100%;
	background: var(--white-color);
	position: absolute;
	top: 0;
	left: 0;
}

.ham-close:before {
	transform: translate(40px, 0) rotate(45deg);
}

@media (width <=767px) {
	.ham-close:before {
		transform: translate(38px, 0) rotate(45deg);
	}
}

.ham-close:after {
	transform: translate(40px, 0) rotate(-45deg);
}

@media (width <=767px) {
	.ham-close:after {
		transform: translate(38px, 0) rotate(-45deg);
	}
}

.hamMenu {
	color: var(--white-color);
	text-align: center;
}

.hamMenu .hamMenu-head {
	display: block;
	margin-bottom: 45px;
	color: var(--white-color);
	font-size: 2.4rem;
	letter-spacing: 0.1em;
	text-align: center;
}

@media (width <=767px) {
	.hamMenu .hamMenu-head {
		font-size: 1.9rem;
		line-height: 1.75;
	}
}

.hamMenu ul {
	margin-inline: max(10px, 50% - 670px/2);
	padding: 50px 0;
}

.hamMenu a {
	display: inline-block;
	padding: 20px 0;
	color: var(--white-color);
	font-size: 1.8rem;
	letter-spacing: 0.1em;
	position: relative;
}

@media (width <=767px) {
	.hamMenu a {
		font-size: 1.5rem;
		font-weight: 500;
	}
}

.hamMenu a:after {
	content: "";
	width: 10px;
	height: 10px;
	border: 1px solid;
	border-color: transparent var(--white-color) var(--white-color) transparent;
	position: absolute;
	top: 50%;
	right: -1em;
	transform: translate(0, -50%) rotate(-45deg);
}

@media (width <=767px) {
	.hamMenu a:after {
		width: 8px;
		height: 8px;
	}
}

/* ===========================
*********** header ***********
=========================== */
.headerMenu {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 3%;
	padding-top: 42px;
	text-transform: uppercase;
}

@media (width <=767px) {
	.headerMenu {
		display: none;
		padding: calc(96/750*100vw) 0 calc(110/750*100vw);
		gap: 25px;
		text-align: center;
	}
}

.headerMenu li a {
	color: var(--sub-color);
	font-size: 2rem;
	font-weight: 500;
}

@media (width <=767px) {
	.headerMenu li a {
		color: var(--black-color);
		font-size: 1.4rem;
		letter-spacing: 0.1em;
	}
}

/* ===========================
************* KV *************
=========================== */
.secKv {
	margin-top: 490px;
	position: relative;
}

@media (width <=767px) {
	.secKv {
		margin-top: calc(550/750*100vw);
	}
}

.kv-cont {
	text-align: center;
	color: var(--main-color);
}

@media (width <=767px) {
	.kv-cont .sub-title {
		font-size: calc(45/750*100vw);
	}
}

.kv-cont p {
	margin-top: 60px;
	font-size: 1.8rem;
	line-height: 2.8;
	letter-spacing: 0.1em;
}

@media (width <=767px) {
	.kv-cont p {
		margin-top: calc(70/750*100vw);
		font-size: calc(30/750*100vw);
		line-height: 2.1;
		letter-spacing: normal;
	}
}

.kv-image {
	height: auto;
	position: absolute;
}

.kv-image.ph01 {
	width: 300px;
	top: -500px;
	left: calc(50% - 590px);
}

@media (width <=767px) {
	.kv-image.ph01 {
		width: calc(180/750*100vw);
		top: calc(-640/750*100vw);
		left: calc(20/750*100vw);
	}
}

.kv-image.ph01.moveUp-finish {
	animation: 1s up 0.5s both;
}

.kv-image.ph02 {
	width: 300px;
	top: -340px;
	left: calc(50% + 290px);
}

@media (width <=767px) {
	.kv-image.ph02 {
		width: calc(180/750*100vw);
		top: calc(-760/750*100vw);
		left: calc(530/750*100vw);
	}
}

.kv-image.ph02.moveUp-finish {
	animation: 1s up 0.8s both;
}

.kv-image.ph03 {
	width: 200px;
	top: -115px;
	left: calc(50% - 445px);
}

@media (width <=767px) {
	.kv-image.ph03 {
		width: calc(120/750*100vw);
		top: calc(-410/750*100vw);
		left: calc(30/750*100vw);
	}
}

.kv-image.ph03.moveUp-finish {
	animation: 0.5s up 1s both;
}

.kv-image.ph04 {
	width: 200px;
	top: -10px;
	left: calc(50% + 240px);
}

@media (width <=767px) {
	.kv-image.ph04 {
		width: calc(120/750*100vw);
		top: calc(-410/750*100vw);
		left: calc(630/750*100vw);
	}
}

.kv-image.ph04.moveUp-finish {
	animation: 0.5s up 1.2s both;
}

.kv-image.ph05 {
	width: 300px;
	top: 145px;
	left: calc(50% + 395px);
}

@media (width <=767px) {
	.kv-image.ph05 {
		width: calc(200/750*100vw);
		top: calc(-80/750*100vw);
		left: calc(570/750*100vw);
	}
}

.kv-image.ph05.moveUp-finish {
	animation: 1s up 1s both;
}

.kv-image.ph06 {
	width: 200px;
	top: 468px;
	left: calc(50% + 190px);
}

@media (width <=767px) {
	.kv-image.ph06 {
		width: calc(144/750*100vw);
		top: calc(920/750*100vw);
		left: calc(560/750*100vw);
	}
}

.kv-image.ph06.moveUp-finish {
	animation: 0.6s up 0.2s both;
}

.kv-image.ph07 {
	width: 300px;
	top: 470px;
	left: calc(50% - 548px);
}

@media (width <=767px) {
	.kv-image.ph07 {
		width: calc(180/750*100vw);
		top: calc(860/750*100vw);
		left: calc(40/750*100vw);
	}
}

.kv-image.ph07.moveUp-finish {
	animation: 0.5s up 0.5s both;
}

.js-moveUp {
	opacity: 0;
	will-change: transform, filter, opacity;
}

.js-moveUp.moveUp-finish {
	opacity: 1;
}

@keyframes up {
	0% {
		opacity: 0;
		filter: blur(10px);
		transform: translateY(50px);
	}

	100% {
		opacity: 1;
		filter: blur(0);
		transform: translateY(0);
	}
}

/* ===========================
************ MOVIE ************
=========================== */
.secMovie {
	margin-top: 310px;
}

@media (width <=767px) {
	.secMovie {
		margin-top: calc(620/750*100vw);
	}
}

.movie-thumbMain {
	display: block;
	width: 600px;
	margin: 50px auto;
}

@media (width <=767px) {
	.movie-thumbMain {
		width: calc(650/750*100vw);
		margin: calc(50/750*100vw) auto;
	}
}

.movie-thumbMain img {
	width: 100%;
	height: auto;
}

.movie-thumbSub {
	margin-inline: max(10px, 50% - 1140px/2);
}

.movie-subTitle {
	display: block;
	margin-bottom: 30px;
	color: var(--main-color);
	font-size: 2.4rem;
	text-align: center;
}

@media (width <=767px) {
	.movie-subTitle {
		margin-bottom: calc(40/750*100vw);
		font-size: 1.4rem;
	}
}

.movie-thumbSub ul {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 43px;
	width: 100%;
}

@media (width <=900px) {
	.movie-thumbSub ul {
		grid-template-columns: repeat(2, 1fr);
		grid-template-rows: repeat(2, 1fr);
		gap: calc(46/750*100vw);
	}
}

.movie-thumbSub ul li {
	width: 100%;
}

.movie-thumbSub ul li a {
	display: flex;
	flex-direction: column;
	width: 100%;
}

.movie-thumbSub ul li a img {
	width: 100%;
	height: auto;
	margin-bottom: 15px;
}

@media (width <=767px) {
	.movie-thumbSub ul li a img {
		margin-bottom: calc(20/750*100vw);
	}
}

.movie-thumbSub ul li a span {
	font-size: 1.8rem;
	color: var(--sub-color);
}

@media (width <=767px) {
	.movie-thumbSub ul li a span {
		font-size: 1.2rem;
		font-weight: normal;
	}
}


/* ===========================
************ 半円 ************
=========================== */
.circle-sec {
	position: relative;
}

.secRecruitment {
	margin-top: 200px;
	background: #c8ffff;
}

@media (width <=767px) {
	.secRecruitment {
		margin-top: calc(132/750*100vw);
	}
}

.secRecruitment .semicircle {
	background: #c8ffff;
}

.secWelfare {
	background: #fff5a0;
}

.secWelfare .semicircle {
	background: #fff5a0;
}

.secEducation {
	background: #c8ff7d;
}

.secEducation .semicircle {
	background: #c8ff7d;
}

.content {
	padding-bottom: 168px;
	position: relative;
	z-index: 1;
}

@media (width <=767px) {
	.content {
		padding-bottom: calc(150/750*100vw);
	}
}

.semicircle {
	position: absolute;
	top: -100px;
	left: 50%;
	width: 110%;
	height: 200px;
	border-radius: 50% 50% 0 0;
	transform: translateX(-50%) scaleY(0.5);
	transform-origin: bottom;
	z-index: 0;
}

@media (width <=767px) {
	.semicircle {
		top: -50px;
		height: 100px;
	}
}

/* 募集要項 */
.recruitment-table {
	margin-inline: max(10px, 50% - 1140px/2);
	padding: 60px 9% 70px 9%;
	border-radius: 40px;
	background: var(--white-color);
	color: var(--text-color);
	font-weight: normal;
	text-align: left;
}

@media (width <=767px) {
	.recruitment-table {
		padding: calc(60/750*100vw) calc(100/750*100vw) calc(100/750*100vw);
		color: var(--black-color);
	}
}

.recruitment-table table {
	width: 100%;
}

.recruitment-table tr {
	border-bottom: 1px solid var(--main-color);
}

@media (width <=767px) {
	.recruitment-table tr {
		border-bottom: none;
	}
}

.recruitment-table th,
.recruitment-table td {
	padding: 25px 0;
}

@media (width <=767px) {

	.recruitment-table th,
	.recruitment-table td {
		display: block;
		padding: 20px 0;
	}
}

.recruitment-table th {
	width: 220px;
	padding-left: 10px;
	vertical-align: middle;
	font-size: 1.8rem;
	letter-spacing: 0.15em;
}

@media (width <=767px) {
	.recruitment-table th {
		width: 100%;
		padding-left: 0;
		border-bottom: 1px solid #999999;
		font-size: 1.4rem;
		text-align: center;
	}
}

.recruitment-table td {
	width: calc(100% - 220px);
	font-size: 1.6rem;
	line-height: 1.75;
}

@media (width <=767px) {
	.recruitment-table td {
		width: 100%;
		margin-bottom: 20px;
		font-size: 1.2rem;
	}
}

.recruitmentTable-list li {
	list-style: disc;
	margin-left: 2em;
}


/* アイコンコンテンツ */
.icon-cont {
	display: grid;
	gap: 30px;
	margin-inline: max(10px, 50% - 1140px/2);
}

@media (width <=767px) {
	.icon-cont {
		gap: 20px;
	}
}

.icon-cont li {
	display: grid;
	gap: 20px;
	place-content: center;
	place-items: center;
	border-radius: 40px;
	padding: 40px 6%;
	background: var(--white-color);
}

@media (width <=767px) {
	.icon-cont li {
		padding: 35px 15%;
	}
}

.icon-cont li img {
	display: block;
	width: 136px;
	height: auto;
}

.icon-cont li p {
	color: var(--text-color);
	font-size: 1.6rem;
	font-weight: normal;
	line-height: 2;
}

@media (width <=767px) {
	.icon-cont li p {
		font-size: 1.2rem;
	}
}

.icon-cont li span {
	display: block;
	color: var(--main-color);
	font-size: 2.4rem;
	line-height: 1.75;
	text-align: center;
}

@media (width <=767px) {
	.icon-cont li span {
		font-size: 1.4rem;
	}
}

/* 福利厚生 */
.contWelfare {
	grid-template-columns: repeat(2, 1fr);
}

@media (width <=767px) {
	.contWelfare {
		grid-template-columns: 1fr;
	}
}

.contWelfare li {
	grid-template-rows: subgrid;
	grid-row: span 3;
}

/* .contWelfare li:last-child {
	display: flex;
	grid-column: span 2;
	gap: 8%;
}

@media (width <=767px) {
	.contWelfare li:last-child {
		display: grid;
		grid-column: auto;
		gap: 20px;
	}
}

.contWelfare li:last-child span {
	white-space: nowrap;
} */

/* 教育・研修制度 */
.contEducation li .education-figure {
	width: 100%;
	margin-top: 40px;
}

@media (width <=767px) {
	.contEducation li .education-figure {
		margin: 0 calc(50% - 50vw) 0 calc(50% - 50vw + 20px);
		width: 100vw;
		overflow-x: scroll;
	}
}

.contEducation li .education-figure img {
	width: 100%;
}

@media (width <=767px) {
	.contEducation li .education-figure img {
		width: 838px;
	}
}

/* 上書きクラス */
.scroll-hint-icon {
	width: 120px;
	height: 100px;
	border-radius: 15px;
	background: rgba(35, 28, 29, 0.8);
	background-image: none;
}

.scroll-hint-icon:before {
	width: 50px;
	height: 61px;
	background-image: url("../../images/highschool/icon_swipe.svg");
}

.scroll-hint-icon:after {
	display: none;
}

.scroll-hint-text {
	display: none;
}

/* ===========================
*********** フッター ***********
=========================== */
.secFooter {
	padding: 40px 0;
}

.secFooter span {
	display: block;
	color: var(--main-color);
	font-size: 2rem;
	letter-spacing: 0.1em;
	text-align: center;
}

@media (width <=767px) {
	.secFooter span {
		margin-top: calc(110/750*100vw);
		font-size: 1.6rem;
	}
}


@media (width <=767px) {
	.secFooter .headerMenu {
		display: flex;
		flex-direction: column;
	}
}

.secFooter .headerMenu li a {
	color: var(--black-color);
	font-weight: normal;
}

/*
footer SP用 レイアウト
========================================================================================== */
@media (width <=767px) {
	footer div#footer-inner {
		line-height: 1.5;
		letter-spacing: 0.06em;
	}

	footer div#footer-inner > *:not(:last-child) {
		margin-bottom: 5px;
	}

	footer div#footer-inner ul {
		border-right: none;
	}

	footer div#footer-inner li {
		border-left: none;
	}

	footer div#footer-inner small {
		display: block;
	}
}