@charset "utf-8";
::selection {background: #111;color: #fefefe}
::-moz-selection {background: #111;color:#fefefe}
* { 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}
html {font-size: calc(62.5% + 4 * (100vw - 375px) / 150);-webkit-overflow-scrolling: touch;}
.serif {font-family: 'Noto Serif JP', "Yu Mincho", "Hiragino Mincho ProN", "MS PMincho", serif;}
a { color: #000;text-decoration: none;}
.pc { display: none; }
strong {font-weight: 900;}

.wrap {margin: 0 auto;padding: 0;}
section .wrap {padding: 0 20px;}
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 20px 24px;background: var(--color-background-white);
	width: 100%;display: block;box-sizing: border-box;
	display: inline-block;position: relative;text-align: center;
}
.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: 1.6rem;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: 10px;box-sizing: border-box;
	position: absolute;top: 0;left: 0;
}
header .logo {position: relative;padding: 0;z-index: 9999;}
header .logo p {
	font-size: 1rem;line-height: 1;
	color: var(--color-background-white);
}
header .logo span:nth-of-type(2) {
	font-size: 1.1rem;font-weight: 700;
	display: block;padding: 0 0;
}
header .btn {position: fixed;top: 18px;right: 0;z-index: 1000;}
header .btn span {
	padding: 18px 16px;
	font-size: 1.2rem;color: var(--color-background-white);
	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: 110vw;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: auto;bottom: 0;
	animation: fade-in .3s;
}
@keyframes fade-in {
	0% {opacity: 0}
	100% {opacity: 1}
}

nav .logo {display: none;}
nav ul {
	display: flex;justify-content: flex-start;
	width: 100%;
}
nav ul li {padding: 23px 0;flex-grow: 1;text-align: center;box-sizing: border-box;border-left: solid 1px #444;}
nav li span {
	display: inline-block;padding: 5px 0;position: relative;
	font-size: 1.4em;line-height: 1;color: var(--color-background-white);
}
nav li a:hover span {text-decoration: underline;}
nav li:last-child {
	display: none;
}

footer {
	background: var(--color-primary);padding: 50px 20px 20px;
	color: #fff;
}
footer .wrap {position: relative;display: flex;flex-wrap: wrap;flex-direction: column;gap: 30px;}
footer a {color: #fff;}
footer .logo {position: relative;margin: 0 0 30px;}
footer .logo span {
	font-size: 1.6em;line-height: 1.3;
	display: block;padding: 15px 0 30px;
}
footer .logo::before {
	content: "";width: 94px;height: 30px;display: block;
	background: url(../img/logo.svg) no-repeat center / 100%;
}
footer ul {margin: 0 0 50px}
footer ul li {font-size: 1.4em;margin: 0 0 19px;line-height: 1;}
footer p.head {font-size: 1.4em;line-height: 1.6;margin: 0 0 10px;}
footer p.name {font-size: 1.6em;line-height: 1.6;margin: 0 0 20px;}
footer address {font-size: 1.4em;}
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.4em}
footer span.tel {font-size: 3em}
footer span.date {font-size: 1.4em}

section.mv {
	background: var(--color-gray-200);
	width: 100%;height: 110vw;position: relative;
	color: var(--color-background-white);overflow: hidden;
}
section.mv::after {
	content: "";width: 100vw;height: 110vw;position: absolute;top: 0;left: 0;z-index: 5;
	background: url(../img/mv01sp@2x.jpg) no-repeat center / cover;
	color: var(--color-background-white);
}
section.mv .text {
	position: absolute;left: 20px;z-index: 10;
	padding: 21vw 0 0;
}
section.mv h1 {
	font-size: 2em;font-weight: 700;line-height: .7;
	margin: 0 0 13px;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: 1.2em;line-height: 1.4;
	margin: 0 0 10px;padding: 0 0 10px;position: relative;
}
section.mv p.lead::after {
	content: "";width: 100%;height: 1px;background: var(--color-background-white);
	position: absolute;bottom: 0;left: 0;
}
section.mv p.to {
	font-size: 1.4em;line-height: 1.4;
	margin: 0 0 10px;
}
section.mv ul {
	display: flex;flex-wrap: wrap;flex-direction: column;
	font-size: 1.2em;line-height: 1.6;
	margin: 0 0 0 15px;
}
section.mv .news {
	position: absolute;bottom: 0;right: 0;width: 100%;z-index: 10;
	background: var(--color-background-white);color: var(--color-text-black);
	height: 40px;
}
section.mv .news p {
	padding: 13px 20px;
	font-size: 14px;line-height: 1;
}
section.mv .news p span.date {
	display: inline-block;margin: 0 30px 0 0;
}

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

section.col {
	padding: 50px 0;
	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: 50px;
}
section.col .course li.item {
	width: 100%;border: 5px solid var(--color-background-white);
	background: var(--color-primary);box-shadow: 0 0 20px 0 rgba(0, 0, 0, .10);
	display: flex;flex-direction: column;
	box-sizing: border-box;position: relative;
	padding: 45px 15px 20px;
	color: var(--color-background-white);
}
section.col .course li.item::before {
	counter-increment: course;content: "第" counter(course, cjk-ideographic) "講座";
	font-size: 1rem;line-height: 1;color: var(--color-background-white);text-align: center;
	font-family: 'Noto Serif JP', "Yu Mincho", "Hiragino Mincho ProN", "MS PMincho", serif;
	background: #000;padding: 15px 10px;box-sizing: border-box;
	height: 40px;width: 10rem;
	position: absolute;top: 0;left: 30px;z-index: 1;transform: translateY(-50%);
}
section.col .course li.item .text::before {
	content: "";width: 0;height: 0;position: absolute;top: 0;left: 10px;transform: translateY(-50%);
	border-style: solid;border-color: transparent transparent #000 transparent;
	border-width: 0 0 40px 20px;
}
section.col .course li.item .text::after {
	content: "";width: 0;height: 0;position: absolute;top: 0;left: calc(10rem + 30px);transform: translateY(-50%);
	border-style: solid;border-color: #000 transparent transparent transparent;
	border-width: 40px 20px 0 0;
}
section.col .course li .text h3 {
	font-size: 2rem;line-height: 1.3;font-weight: 700;
	margin: 0 0 20px;
}
section.col .course li .text p.lead {
	font-size: 1.4rem;line-height: 1.3;font-weight: 700;
	margin: 0 0 25px;
}
section.col .course li .text p.detail {
	font-size: 1.2rem;line-height: 2;
	margin: 0 0 25px;
}
section.col .course li .text ul {
	display: flex;flex-wrap: wrap;flex-direction: column;gap: 1.2em;
	margin: 0 0 25px;
}
section.col .course li .text ul li {
	font-size: 1.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: 100%;padding: 0;box-sizing: border-box;
	border-top: solid 1px var(--color-background-white);
	display: flex;flex-direction: column;gap: 8px;padding: 25px 0 0;
}
section.col .course li dl.outline dt {
	font-size: 1.2rem;line-height: 1.3;color: var(--color-secondary);font-weight: 700;
}
section.col .course li dl.outline dd {
	font-size: 1.4rem;line-height: 1.3;margin: 0 0 17px;
}
section.col .course li dl.outline dd.pending {color: #78ACC2}
section.col .course li dl.outline dd a.map {
	font-size: 1.2rem;line-height: 1.3;color: var(--color-background-white);
	background: #072E3F;display: inline-block;padding: 5px 30px;margin: 10px 0 0;position: relative;
}
section.col .course li dl.outline em {
	display: block;margin: 15px 0 0;
	font-size: 1.2rem;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 50px;
	position: relative;
}
section.achievement::before {
	content: "";width: 100%;height: 262px;position: absolute;top: 120px;left: 0;
	background: url(../img/achievement01@2x.png) no-repeat top center / 100%;
	z-index: 0;mix-blend-mode: multiply;
}
.col2 {
	display: flex;flex-wrap: wrap;flex-direction: column;
	margin: 0 0 35px;
}
.col2 .img {
	width: 50vw;height: 50vw;box-sizing: border-box;
	position: relative;z-index: 11;
	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 15px 20px;
	box-sizing: border-box;margin: -25px 0 0;
	display: flex;flex-direction: column;justify-content: center;
}

.col2 .text h3 {
	font-size: 1.6rem;line-height: 1.4;color: var(--color-primary);font-weight: 700;
	margin: 0 0 25px;padding: 0 0 2px 20px;position: relative;
}
.col2 .text h3::before {
	content: "";width: 4px;height: 100%;background: var(--color-primary);
	position: absolute;top: 0;left: 0;
}
.col2 .text dl {
	font-size: 1.4rem;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 20px}
.col2 .text dl dd:last-of-type {margin: 0;}

section.prof {padding: 0 0 30px;}
section.prof .col2 {
	display: flex;flex-wrap: wrap;gap: 20px;flex-direction: column;
}
section.prof .col2 .img {
	height: 60vw;overflow: hidden;
	box-sizing: border-box;position: relative;
	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;margin: 0;
	display: block;
}
section.prof .col2 .text p.lead {
	color: var(--color-background-white);
	font-size: 1.4rem;font-weight: 400;line-height: 1;
}
section.prof .col2 .text p.lead span {
	display: inline-block;margin: 0 0 8px;
	background: var(--color-text-black);padding: 4px 5px 5px;
}
section.prof p.detail {
	margin: 20px 0;
}
section.prof p.detail span.name {
	font-size: 2.4em;
	display: block;
}
section.prof p.detail span.head {font-size: 1.4em}
section.prof p.bio {
	font-size: 1.4em;line-height: 2;
	margin: 0 0 2em;
}

/* ========================================
	フォーム
 ======================================== */
section.form {
	background-color: var(--color-primary);
	padding: 100px 0 100px;position: relative;
}
section.form .wrapper {
	padding: 0 20px;
}
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 50px;
}
section.form h2.title {
	font-size: 2em;font-weight: 600;
	color: var(--color-background-white);
}
section.form span.required {
	font-size: 1.2rem;color: var(--color-background-white);font-weight: 700;line-height: 1;
	background: #DF2424;padding: 8px 28px 10px;
}
header .btn.back {position: absolute;top: 0;}
header .btn.back span {
	display: inline-block;position: relative;padding: 18px 20px 18px 50px;
}
header .btn.back span::before {
	content: "";width: 21px;height: 21px;position: absolute;left: 20px;top: 17px;
	background: url(../img/icon/close.svg) no-repeat center / 100%;pointer-events: none;
}
header .btn.back:focus {
	outline: 2px solid #007bff;
	outline-offset: 2px;
}

/* ========================================
	フォームのスタイル
 ======================================== */
.form-group {
	margin-bottom: 16px;
	display: flex;flex-wrap: wrap;gap: 5px;flex-direction: column;
}
.form-group em {
	margin: 8px 0 0;
	color: var(--color-background-white);font-size: 1.4rem;text-align: left;display: block;
}
.form-group:nth-of-type(1) {margin: 0 0 40px}
.form-label {
	display: block;
	font-size: 1.4rem;color: var(--color-background-white);
}
.radio-label {
	display: block;position: relative;
	font-size: 1.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 25px;
}
.radio-label span.inbox::before {
	content: "";width: 15px;height: 15px;background: var(--color-background-white);border-radius: 50%;
	position: absolute;top: 5px;left: 0;
}
.radio-label span.inbox::after {
	content: "";width: 7px;height: 7px;background: var(--color-background-white);border-radius: 50%;
	position: absolute;top: 9px;left: 4px;transition: background .3s;
}
.radio-label input:checked + span.inbox::after {background: #003851}
.form-select,
.form-input,
.form-textarea {
	width: 100%;padding: 17px;
	border-radius: 5px;box-sizing: border-box;
	font-size: 1.6em;
	transition: border-color 0.3s;
}
.form-select:focus,
.form-input:focus,
.form-textarea:focus {
	outline: none;
	border-color: #007bff;
}
.form-select {
	margin: 15px 0 0;
	-webkit-appearance: none;appearance: none;
}
.form-textarea {
	resize: vertical;
	min-height: 100px;
}
.submit {text-align: center;margin: 50px 0 0;}
.form-submit {
	padding: 26px 0;background-color: #D83054;
	border: none;border-radius: 10px;box-sizing: border-box;width: 100%;
	font-size: 1.6em;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}

/* ========================================
	非表示コンテンツ
 ======================================== */
.modal-content-hidden {
	display: none;
}
