@charset "utf-8";
::selection {
	background: #000;
	color: #fff;
}
::-moz-selection {
	background: #000;
	color:#fff;
}
* { outline: none; }
body {
	font-family: 'Noto Sans JP', "Yu Gothic", YuGothic, "Helvetica Neue", "Segoe UI", 'Hiragino Sans', 'Hiragino Kaku Gothic ProN', Meiryo, sans-serif;
	color: #111;letter-spacing: 0;font-feature-settings: "palt" 1;font-kerning: auto;-webkit-font-smoothing: antialiased;background: #fefefe;
}
body {-webkit-print-color-adjust: exact}
.serif {font-family: 'Noto Serif JP', "Yu Mincho", "Hiragino Mincho ProN", "MS PMincho", serif;}
html {font-size: 62.5%;}
a { color: #000;text-decoration: none;}
.sp { display: none}
strong {font-weight: 900}

.wrap {width: 1200px;margin: 0 auto;padding: 0 50px;}
section span.title {
	display: block;margin: 0 0 50px;
	font-size: 5em;line-height: 1;text-align: center;letter-spacing: .13em;
}
section span.title span {color: #0C4DA2}
section .two {
	display: flex;flex-wrap: wrap;
	margin: 0 0 212px;
}
.more {text-align: center;margin: 57px 0;}
.more a {
	padding: 22px 0 24px;background: var(--color-background-white);
	display: inline-block;position: relative;text-align: center;min-width: 390px;
}
.more.non a {pointer-events: none;cursor: not-allowed;background: var(--color-gray-400)}
.more a:hover::after {
	font-weight: 700;
}
.more a span {
	display: inline-block;position: relative;padding: 0 35px 0 0;
	font-size: 2rem;line-height: 1;font-weight: 700;
}
.more span::after {
	content: "";width: 20px;height: 20px;border: solid 3px var(--color-text-black);
	position: absolute;top: calc(50% - 9px);right: 0;
	box-sizing: border-box;border-radius: 50%;background: url(../img/icon/arrow.svg) no-repeat 61% 56% / 60%;
}
.more.dl span::after {
	width: 16px;height: 16px;border: none;
	top: calc(50% - 5px);
	box-sizing: border-box;border-radius: 0;background: url(../img/icon/dl.svg) no-repeat center / 100%;
}
.more.non a span {opacity: .3;}

header {
	width: 100%;height: 90px;padding: 35px;box-sizing: border-box;
	position: absolute;top: 0;left: 0;
}
header .logo {position: relative;padding: 0 0 0 113px;z-index: 9999;width: 40%;}
header .logo::before {
	content: "";width: 97px;height: 30px;position: absolute;top: 0;left: 0;
	background: url(../img/logo.svg) no-repeat center / 100%;
}
header .logo p {
	font-size: 1.4rem;line-height: 1;
	color: var(--color-background-white);
}
header .logo span:nth-of-type(2) {
	font-size: 1.8rem;font-weight: 700;
	display: block;padding: 0 0;
}
header .btn {position: absolute;top: 18px;right: 16px;z-index: 11;}
header .btn span {
	color: var(--color-background-white);font-size: 1.8rem;
	border: 1px solid #FFF;padding: 28px 38px;display: inline-block;
	background: linear-gradient(96deg, #003D58 3.43%, #003044 100%);
	box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.25);
}
nav {
	position: absolute;top: 684px;left: 0;z-index: 999;box-sizing: border-box;
	width: 100%;background: var(--color-text-black);
	display: flex;flex-wrap: wrap;justify-content: space-between;
}
nav.is-fixed {position: fixed;top: 0}
nav .logo {position: relative;margin: 26px 0 0 20px;}
nav .logo::before {
	content: "";width: 50px;height: 16px;position: absolute;top: 2px;left: 0;
	background: url(../img/logo.svg) no-repeat center / 100%;
}
nav .logo span {
	display: inline-block;padding: 0 0 0 65px;
	font-size: 1.6em;color: var(--color-background-white);line-height: 1;
}
nav ul {
	display: flex;flex-wrap: wrap;gap: 80px;
	padding: 0 0 0 34px;
}
nav ul li {padding: 23px 0;}
nav li span {
	display: inline-block;padding: 5px 0;position: relative;
	font-size: 1.6em;line-height: 1;color: var(--color-background-white);
}
nav li a:hover span {text-decoration: underline;}
nav li:last-child {
	padding: 0;
}
nav li:last-child span {
	border: 1px solid #FFF;padding: 28px 38px;
	background: linear-gradient(96deg, #003D58 3.43%, #003044 100%);
	box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.25);
}

footer {
	background: var(--color-primary);padding: 65px 0 20px;
	color: #fff;
}
footer .wrap {position: relative;display: flex;flex-wrap: wrap;justify-content: space-between;align-items: flex-end;}
footer a {color: #fff;}
footer .logo {position: relative;margin: 0 0 30px;}
footer .logo span {
	font-size: 2.2em;line-height: 1.3;
	display: block;padding: 15px 0 30px;
}
footer ul {margin: 0 0 50px}
footer ul li {font-size: 1.4em;margin: 0 0 19px;line-height: 1;}
footer .logo::before {
	content: "";width: 188px;height: 59px;display: block;
	background: url(../img/logo.svg) no-repeat center / 100%;
}
footer p.head {font-size: 1.4em;line-height: 1.6;margin: 0 0 10px;}
footer p.name {font-size: 1.8em;line-height: 1.6;margin: 0 0 30px;}
footer address {font-size: 1.8em;}
footer small {font-size: 1em;text-align: center;width: 100%;margin: 20px 0 0;}
footer .right span {
	display: block;
}
footer span.head  {
	font-size: 1.8em;
}
footer span.tel {
	font-size: 3.6em;
}
footer span.date {
	font-size: 1.6em;
}

section.mv {
	background: var(--color-gray-200);
	width: 100%;height: 80svh;max-height: 684px;position: relative;
	color: var(--color-background-white);overflow: hidden;
}
section.mv::after {
	content: "";width: 100vw;height: 80svh;max-height: 684px;position: absolute;top: 0;left: 0;z-index: 5;
	background: url(../img/mv01@2x.png) no-repeat left bottom / 1440px 684px;
	color: var(--color-background-white);
}
section.mv .text {
	position: absolute;left: 5%;z-index: 10;
	padding: 167px 0 0;
}
section.mv h1 {
	font-size: 4em;font-weight: 700;line-height: 1;
	margin: 0 0 40px;display: flex;flex-direction: column;
	gap: 11px;
}
section.mv h1 span {display: block}
section.mv h1 span:nth-of-type(1) {font-size: 1.6em}
section.mv p.lead {
	font-size: 2.4em;line-height: 1.4;
	margin: 0 0 15px;padding: 0 0 22px;position: relative;
}
section.mv p.lead::after {
	content: "";width: 350px;height: 1px;background: var(--color-background-white);
	position: absolute;bottom: 0;left: 0;
}
section.mv p.to {
	font-size: 2.4em;line-height: 1.4;
	margin: 0 0 15px;
}
section.mv ul {
	display: flex;flex-wrap: wrap;flex-direction: column;
	font-size: 1.6em;line-height: 1.6;
	margin: 0 0 0 40px;
}
section.mv .news {
	position: absolute;bottom: 0;right: 0;width: 100%;z-index: 3;height: 50px;
	background: var(--color-background-white);color: var(--color-text-black);
}
section.mv .news p {
	margin: 0 0 0 38vw;padding: 18px 0;
	font-size: 1.6em;line-height: 1;
}
section.mv .news p span.date {
	display: inline-block;margin: 0 30px 0 0;
}

section h2 {
	font-size: 4rem;line-height: 1.2;color: var(--color-primary);font-weight: 700;
	text-align: center;padding: 90px 0;
}

section.col {
	padding: 90px 0 100px;
	background: #E7F0F4 url(../img/back01@2x.png) repeat-y center / 100%;
}
section.col .course {
	counter-reset: course;
	display: flex;flex-wrap: wrap;flex-direction: column;gap: 100px;
}
section.col .course li.item {
	width: 100%;border: 10px solid var(--color-background-white);
	background: var(--color-primary);box-shadow: 0 0 20px 0 rgba(0, 0, 0, .10);
	display: flex;box-sizing: border-box;position: relative;
	padding: 95px 65px 75px 65px;
	color: var(--color-background-white);
}
section.col .course li.item::before {
	counter-increment: course;content: "第" counter(course, cjk-ideographic) "講座";
	font-size: 2rem;line-height: 1;color: var(--color-background-white);
	font-family: 'Noto Serif JP', "Yu Mincho", "Hiragino Mincho ProN", "MS PMincho", serif;
	background: #000;padding: 33px 150px;box-sizing: border-box;
	height: 90px;width: 380px;
	position: absolute;top: 0;left: 63px;z-index: 1;transform: translateY(-50%);
}
section.col .course li.item .text::before {
	content: "";width: 0;height: 0;position: absolute;top: 0;left: 18px;transform: translateY(-50%);
	border-style: solid;border-color: transparent transparent #000 transparent;
	border-width: 0 0 90px 45px;
}
section.col .course li.item .text::after {
	content: "";width: 0;height: 0;position: absolute;top: 0;left: 442px;transform: translateY(-50%);
	border-style: solid;border-color: #000 transparent transparent transparent;
	border-width: 90px 45px 0 0;
}
section.col .course li .text {
	padding: 0 50px 0 0;box-sizing: border-box;
	width: 600px;
}
section.col .course li .text h3 {
	font-size: 3.2rem;line-height: 1.3;font-weight: 700;
	margin: 0 0 27px;
}
section.col .course li .text p.lead {
	font-size: 2.4rem;line-height: 1.3;font-weight: 700;
	margin: 0 0 32px;
}
section.col .course li .text p.detail {
	font-size: 2rem;line-height: 2;
	margin: 0 0 50px;
}
section.col .course li .text ul {
	display: flex;flex-wrap: wrap;flex-direction: column;gap: 1.5em;
}
section.col .course li .text ul li {
	font-size: 2rem;line-height: 1.3;position: relative;
	padding: 0 0 0 1em;
}
section.col .course li .text ul li::before {
	content: "•";position: absolute;left: 0;top: 0;
}
section.col .course li dl.outline {
	width: 450px;padding: 0 0 0 50px;box-sizing: border-box;
	border-left: solid 2px var(--color-background-white);
	display: flex;flex-direction: column;gap: 12px;
}
section.col .course li dl.outline dt {
	font-size: 2rem;line-height: 1.3;color: var(--color-secondary);font-weight: 700;
}
section.col .course li dl.outline dd {
	font-size: 2.4rem;line-height: 1.3;margin: 0 0 35px;
}
section.col .course li dl.outline dd.pending {color: #78ACC2}
section.col .course li dl.outline dd a.map {
	font-size: 1.6rem;line-height: 1.3;color: var(--color-background-white);
	background: #072E3F;display: inline-block;padding: 5px 45px;margin: 20px 0 0;position: relative;
}
section.col .course li dl.outline dd a.map::before {
	content: "";width: 14px;height: 20px;position: absolute;top: 7px;left: 12px;
	background: url(../img/icon/map.svg) no-repeat center / 100%;
}
section.col .course li dl.outline dd a.map::after {
	content: "";width: 12px;height: 12px;position: absolute;top: 11px;right: 20px;
	border: solid 2px var(--color-background-white);box-sizing: border-box;border-radius: 50%;
	background: url(../img/icon/arrow2.svg) no-repeat 61% 56% / 60%;
}
section.col .course li dl.outline em {
	display: block;margin: 15px 0 0;
	font-size: 1.6rem;line-height: 1.4;
}
section.col .course li dl.outline .more {margin: 25px 0 0;text-align: left;}
section.col .course li dl.outline dd:last-of-type {margin: 0;}


section.achievement {
	background: var(--color-gray-100);padding: 0 0 100px;
	position: relative;
}
section.achievement::before {
	content: "";width: 1003px;height: 262px;position: absolute;top: 120px;left: calc(50% - 500px);
	background: url(../img/achievement01@2x.png) no-repeat top center / 1003px 262px;
	z-index: 0;mix-blend-mode: multiply;
}
.col2 {
	display: flex;flex-wrap: wrap;gap: 80px 0;
	margin: 0 0 35px;
}
.col2 .img {
	flex: 1 1 calc(50% - 40px);box-sizing: border-box;
	background: var(--color-gray-200);
	box-shadow: 0 0 15px 0 rgba(0, 0, 0, .15);
}
.col2 .img img {
	width: 100%;height: auto;
}
.col2:nth-of-type(1) .img {
	background: url(../img/achievement02@2x.png) no-repeat center / cover;
}
.col2:nth-of-type(2) .img {
	background: url(../img/achievement03@2x.png) no-repeat center / cover;
}
.col2 .text {
	background: var(--color-background-white);padding: 45px 50px 50px;
	flex: 1 1 calc(50% - 40px);box-sizing: border-box;margin: 25px 0 0;
	display: flex;flex-direction: column;justify-content: center;
}
.col2.right .img {order: 2}
.col2.right .text {order: 1}

.col2 .text h3 {
	font-size: 2.4rem;line-height: 1.4;color: var(--color-primary);font-weight: 700;
	margin: 0 0 30px;padding: 0 0 3px 30px;position: relative;
}
.col2 .text h3::before {
	content: "";width: 5px;height: 100%;background: var(--color-primary);
	position: absolute;top: 0;left: 0;
}
.col2 .text dl {
	font-size: 1.8rem;line-height: 1.4;color: var(--color-primary);
	margin: 0;
}
.col2 .text dl dt {font-weight: 700;margin: 0}
.col2 .text dl dd {margin: 0 0 30px}
.col2 .text dl dd:last-of-type {margin: 0;}

section.prof {padding: 0 0 90px;}
section.prof .col2 {
	display: flex;flex-wrap: wrap;gap: 100px;
}
section.prof .col2 .img {
	flex: 1 1 400px;box-sizing: border-box;position: relative;
	width: 400px;height: 500px;box-sizing: border-box;
	box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.20);
	background: var(--color-gray-200);
}
section.prof .col2 .img::before {
	content: "";width: 100%;height: 100%;position: absolute;top: 0;left: 0;
	border: solid 10px var(--color-background-white);z-index: 10;box-sizing: border-box;
}
section.prof .col2 .text {
	padding: 0;flex: 1 1 700px;margin: 0;
	display: block;
}
section.prof .col2 .text p.lead {
	color: var(--color-background-white);width: 60%;
	font-size: 1.8rem;font-weight: 400;line-height: 1;
}
section.prof .col2 .text p.lead span {
	display: inline-block;margin: 0 0 10px;
	background: var(--color-text-black);padding: 4px 5px 5px;
}
section.prof p.detail {
	margin: 25px 0;
}
section.prof p.detail span.name {
	font-size: 4em;
	display: inline-block;padding: 0 30px 0 0;
}
section.prof p.detail span.head {font-size: 1.8em}
section.prof p.bio {
	font-size: 1.8em;line-height: 2;
	margin: 0 0 2em;
}

/* ========================================
	フォーム
 ======================================== */
section.form {
	background-color: var(--color-primary);
	padding: 230px 0 100px;
}
section.form .wrapper {
	width: 850px;margin: 0 auto;
}
section.form h2 {padding: 0;}
section.form p.lead {font-size: 1.6rem;color: var(--color-background-white);line-height: 1.6;}
.modal-overlay.active .modal-container {
	opacity: 1;
	transform: translate(-50%, -50%) scale(1);
}

section.form .header {
	display: flex;justify-content: flex-start;align-items: center;gap: 30px;
	margin: 0 0 97px;
}
section.form h2.title {
	font-size: 4em;font-weight: 600;
	color: var(--color-background-white);
}
section.form span.required {
	font-size: 1.4em;color: var(--color-background-white);font-weight: 700;line-height: 1;
	background: #DF2424;padding: 11px 28px 13px;
}

.btn.back span {
	display: inline-block;position: relative;padding: 28px 90px 28px 110px;
}
.btn.back span::before {
	content: "";width: 43px;height: 43px;position: absolute;left: 55px;top: 20px;
	background: url(../img/icon/close.svg) no-repeat center / 100%;pointer-events: none;
}
.btn.back:focus {
	outline: 2px solid #007bff;
	outline-offset: 2px;
}

/* ========================================
	フォームのスタイル
 ======================================== */
.form-group {
	margin-bottom: 16px;position: relative;
	display: flex;flex-wrap: wrap;gap: 40px;
}
.form-group:nth-of-type(1) {margin: 0 0 70px}
.form-group em {
	margin: 8px 0 0;
	color: var(--color-background-white);font-size: 1.4rem;text-align: right;display: block;
}
.form-label {
	display: block;width: 160px;
	font-size: 2.4rem;color: var(--color-background-white);
}
.radio-label {
	display: block;width: 640px;position: relative;
	font-size: 2.4rem;color: var(--color-background-white);
}
.radio-label input {
	display: none;
}
.radio-label span.inbox {
	display: flex;flex-wrap: wrap;justify-content: space-between;
	padding: 0 0 0 40px;
}
.radio-label span.inbox span {
	line-height: 1.3;text-align: right;
}
.radio-label span.inbox span span {
	font-size: 1.4rem;line-height: 1;
}
.radio-label span.inbox::before {
	content: "";width: 20px;height: 20px;background: var(--color-background-white);border-radius: 50%;
	position: absolute;top: 5px;left: 0;
}
.radio-label span.inbox::after {
	content: "";width: 10px;height: 10px;background: var(--color-background-white);border-radius: 50%;
	position: absolute;top: 10px;left: 5px;transition: background .3s;
}
.radio-label input:checked + span.inbox::after {background: #003851}
.radio-group.sec {margin: 0 0 0 200px}
.form-select,
.form-input {
	width: 640px;padding: 17px;
	border-radius: 10px;box-sizing: border-box;
	font-size: 1.6em;
	transition: border-color 0.3s;
}
.form-select:focus,
.form-input:focus {
	outline: none;
	border-color: #007bff;
}
.form-select {margin: 15px 0 0}
.form-select.form-select2 {margin: 0}
.form-textarea {
	resize: vertical;
	min-height: 100px;
}
.form-group .error {
	position: absolute;top: 40px;left: 0;
	padding: 2px 6px 4px;border-radius: 4px;
	background-color: #DF2424;
	font-size: 1.2rem;color: var(--color-background-white);line-height: 1;
}
.form-group .error ~ .form-select,
.form-group .error ~ .form-input {
	background: #ecc5c5;
}
.submit {text-align: center;margin: 100px 0 0;position: relative;}
.submit::before {
	content: "";width: 24px;height: 24px;position: absolute;top: 28px;right: calc(32% - 25px);
	background: url(../img/icon/arrow3.svg) no-repeat center / 100%;pointer-events: none;
}
.form-submit {
	padding: 26px 106px 28px 44px;background-color: #D83054;
	border: none;border-radius: 10px;box-sizing: border-box;
	font-size: 1.8em;color: var(--color-background-white);
	cursor: pointer;transition: background-color 0.3s;
}
.form-submit:hover {background-color: #b42544}
.form-submit:focus {outline: 2px solid #b42544;outline-offset: 2px}

