@charset "UTF-8";

body {
	font-family: "Zen Kaku Gothic New", sans-serif;
}

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

@media print, screen and (max-width: 767px) {
	.pc {
		display: none !important;
	}
}
@media print, screen and (min-width: 768px) {
	.sp {
		display: none !important;
	}
}

.shareBtn {
	position: fixed;
	top: 30px;
	right: 30px;
	z-index: 1000;
}
@media print, screen and (max-width: 1440px) {
	.shareBtn {
		top: 2vw;
		right: 2vw;
		width: 9vw;
	}
}
@media print, screen and (max-width: 767px) {
	.shareBtn {
		position: absolute;
		top: 75vw;
		right: 2vw;
		width: 24vw;
	}
	.shareBtn.fix {
		position: fixed;
		top: 2vw;
	}
}

.mainvisual {
	position: relative;
}
.mainvisual img {
	width: 100%;
}
.mainvisual a {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 2.4%;
	margin: 0 auto;
	width: 72.8%;
	background-color: #fff;
	border-radius: 30px;
}
.mainvisual a img {
	transition: opacity 0.3s;
}
.mainvisual a:hover img {
	opacity: 0.7;
}
@media print, screen and (max-width: 767px) {
	.mainvisual a {
		right: 0;
		bottom: -1px;
		width: 100%;
	}
}

.message {
	background: url(/assets/img/campaign/trainingcamp/message_bg.png) no-repeat 50% 100%;
	background-size: cover;
	padding: 100px 0 52px;
	text-align: center;
	color: #fff;
	font-size: 22px;
	font-weight: bold;
	line-height: 1.5;
}
.message p + p {
	margin-top: 0.72em;
}
.message .img {
	max-width: 30%;
	margin: 1.45em auto;
}
@media print, screen and (max-width: 1200px) {
	.message {
		padding: 6vw 0 3vw;
		font-size: 1.8vw;
	}
}
@media print, screen and (max-width: 767px) {
	.message {
		background-image: url(/assets/img/campaign/trainingcamp/message_bg_sp.png);
		padding: 24vw 0 18vw;
		font-size: 4.8vw;
	}
	.message p + p {
		margin-top: 1.5em;
	}
	.message .img {
		max-width: 80%;
		margin: 1em auto;
	}
}

.fixBtn {
	position: fixed;
	right: 10px;
	bottom: 0;
	z-index: 1000;
	display: none;
}
@media print, screen and (max-width: 767px) {
	.fixBtn {
		width: 70%;
	}
}

.sectionTitle {
	margin-bottom: 50px;
	text-align: center;
}
.sectionTitle span {
	margin-top: 20px;
	display: block;
	color: #001489;
	font-size: 20px;
	font-weight: bold;
}
@media print, screen and (max-width: 1000px) {
	.sectionTitle img {
		width: auto;
		max-height: 50px;
	}
}
@media print, screen and (max-width: 767px) {
	.sectionTitle {
		margin-bottom: 35px;
	}
	.sectionTitle span {
		margin-top: 12px;
		font-size: 16px;
	}
}

.campaign {
	background-color: #ebf6fc;
	padding: 140px 20px 120px;
}
.campaign .inner {
	max-width: 1040px;
	margin: 0 auto;
}
.campaign .schedule {
	margin-bottom: 65px;
	display: flex;
	justify-content: space-around;
}
.campaign .schedule li {
	width: 48.4%;
}
.campaign h3 {
	margin-bottom: 52px;
}
.campaign .cource {
	margin-bottom: 52px;
	display: flex;
	justify-content: space-between;
}
.campaign .cource li {
	width: 23.5%;
}
.campaign .example {
	text-align: center;
}
@media print, screen and (max-width: 767px) {
	.campaign {
		padding: 100px 16px 75px;
	}
	.campaign .schedule {
		margin-bottom: 32px;
		justify-content: center;
		flex-direction: column;
		gap: 16px;
	}
	.campaign .schedule li {
		width: 100%;
		text-align: center;
	}
	.campaign h3 {
		margin-bottom: 26px;
		text-align: center;
	}
	.campaign .cource {
		margin-bottom: 30px;
		justify-content: space-around;
		flex-wrap: wrap;
		gap: 3vw 0;
	}
	.campaign .cource li {
		width: 47%;
		text-align: center;
	}
}

.stepArea {
	margin-bottom: 160px;
	background: linear-gradient(to bottom, #ebf6fc 100px, #39beff 600px);
	padding: 5px 0 120px;
}
.stepArea h2 {
	margin-bottom: 66px;
	text-align: center;
}
.stepArea .step {
	position: relative;
	background: url(/assets/img/campaign/trainingcamp/step_bg.png) no-repeat 50% 0;
	min-height: 650px;
	display: flex;
	align-items: center;
	padding-bottom: 30px;
}
.stepArea .step ol {
	width: 100%;
	max-width: 1180px;
	margin: 0 auto;
	display: flex;
}
.stepArea .step ol > li {
	width: 33.33%;
	padding: 0 15px;
	text-align: center;
	font-size: 18px;
	font-weight: bold;
	line-height: 1.7;
}
.stepArea .step h3 {
	margin-bottom: 30px;
}
.stepArea .step ul {
	margin: 5px 0;
	display: inline-block;
}
.stepArea .step ul li {
	background: url(/assets/img/campaign/trainingcamp/step_list.svg) no-repeat 0 7px;
	padding-left: 26px;
	text-align: left;
	color: #001489;
}
.stepArea .step ul li small {
	font-size: 12px;
}
.stepArea .step .btn {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 60px;
	margin: 25px auto 0;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 1048px;
	max-width: 90%;
	height: 60px;
	border-radius: 30px;
	background: linear-gradient(to right, #ff4322 0%, #e60012 15%, #e60012 85%, #ff4622 100%);
	text-align: center;
	color: #fff;
	font-size: 26px;
	font-weight: bold;
	transition: background-color 0.3s;
}
.stepArea .step .btn:hover {
	background-color: #ee3c4b;
}
.stepArea .step .blue {
	color: #001489;
}
.stepArea .step .note {
	margin-top: 10px;
	font-size: 10px;
	font-weight: bold;
}
.stepArea .step .img {
	margin: 25px -20% 0 0;
}
.stepArea .more {
	position: relative;
	max-width: 1040px;
	margin: 0 auto;
	padding: 0 20px;
}
.stepArea .more .inner {
	padding-right: 48%;
}
.stepArea .more .img {
	position: absolute;
	right: 20px;
	bottom: 8%;
	width: 44.2%;
}
.stepArea .more .noteBox {
	margin-top: 18px;
	border-radius: 12px;
	background-color: #fff;
	padding: 12px;
	font-size: 11px;
}
@media print, screen and (max-width: 1100px) {
	.stepArea {
		margin-bottom: 120px;
	}
	.stepArea .step {
		background-size: 140% auto;
		min-height: 60vw;
	}
	.stepArea .step ol > li {
		padding: 0 10px;
		font-size: 15px;
		line-height: 1.5;
	}
	.stepArea .step h3 {
		margin: 0 auto 20px;
		max-width: 60%;
	}
	.stepArea .step ul li {
		background-size: 14px auto;
		background-position: 0 3px;
		padding-left: 20px;
	}
}
@media print, screen and (max-width: 900px) {
	.stepArea .step {
		margin-bottom: 40px;
	}
	.stepArea .step .btn {
		bottom: 20px;
	}
}
@media print, screen and (max-width: 767px) {
	.stepArea {
		margin-bottom: 90px;
		background: linear-gradient(to bottom, #ebf6fc 100px, #39beff 600px);
		padding: 5px 0 50px;
 	}
	.stepArea h2 {
		margin-bottom: 40px;
	}
	.stepArea .step {
		margin-bottom: 50px;
		background-image: url(/assets/img/campaign/trainingcamp/step_bg_sp.png);
		background-size: auto;
		min-height: 1627px;
		display: block;
		padding: 110px 0 0;
	}
	.stepArea .step ol {
		flex-direction: column;
		gap: 150px;
	}
	.stepArea .step ol > li {
		width: 100%;
		font-size: 18px;
	}
	.stepArea .step h3 {
		max-width: none;
	}
	.stepArea .step ul li {
		background-size: 16px auto;
		background-position: 0 6px;
		padding-left: 24px;
	}
	.stepArea .step .btn {
		position: static;
		background: #e60012;
		height: 80px;
		border-radius: 40px;
		font-size: 22px;
		line-height: 1.3;
	}
	.stepArea .more .inner {
		padding-right: 0;
	}
	.stepArea .more picture {
		display: block;
		margin: 0 -20px 0 -50px;
		max-width: none;
	}
	.stepArea .more .img {
		position: static;
		width: 100%;
	}
	.stepArea .more .noteBox {
		margin-top: 30px;
		border-radius: 8px;
		padding: 18px;
		font-size: 13px;
		text-shadow: none;
	}
}

.entry {
	max-width: 880px;
	margin: 0 auto 120px;
	padding: 0 20px;
}
.entry h3 {
	margin: 40px 0 10px;
	font-size: 18px;
	font-weight: bold;
}
.entry .list {
	margin: 5px 0;
}
.entry .list li {
	padding-left: 1em;
	text-indent: -1em;
}
.entry .dotList li {
	position: relative;
	padding-left: 1.2em;
}
.entry .dotList li::before {
	content: '';
	position: absolute;
	top: 9px;
	left: 2px;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background-color: #e60012;
}
.entry .tel {
	color: #e60012;
	font-size: 24px;
	font-weight: bold;
}
.entry dl {
	margin-top: 8px;
	display: flex;
}
.entry dl + dl {
	margin-top: 0;
}
.entry dl dt {
	font-weight: normal;
	white-space: nowrap;
}
@media print, screen and (max-width: 767px) {
	.entry {
		margin: 0 auto 90px;
		font-size: 15px;
	}
	.entry h3 {
		margin: 30px 0 6px;
		font-size: 17px;
	}
	.entry .dotList li::before {
		top: 7px;
	}
}

.faq {
	max-width: 880px;
	margin: 0 auto 120px;
	padding: 0 20px;
}
.faq li + li {
	margin-top: 16px;
}
.faq .question {
	position: relative;
	background-color: #001489;
	border-radius: 4px;
	padding: 12px 20px 13px 50px;
	color: #fff;
	font-size: 18px;
	font-weight: bold;
	cursor: pointer;
}
.faq .question::after {
	content: '＋';
	position: absolute;
	top: 50%;
	right: 20px;
	transform: translateY(-50%);
}
.faq .question.open::after {
	content: '－';
}
.faq .question > span {
	position: absolute;
	top: 7px;
	left: 20px;
	font-size: 24px;
}
.faq .answer {
	display: none;
}
.faq .answer .inner {
	position: relative;
	padding: 20px 0 5px 50px;
	color: #001489;
	font-weight: bold;
}
.faq .answer .inner > span {
	position: absolute;
	top: 14px;
	left: 20px;
	color: #e60012;
	font-size: 24px;
}
@media print, screen and (max-width: 767px) {
	.faq {
		margin: 0 auto 90px;
	}
	.faq .question {
		padding: 12px 30px 13px 50px;
	}
	.faq .question::after {
		right: 10px;
	}
}
