@charset "UTF-8";

/* --------------------------------------------------------------------------------------
	学習支援制度・キャンペーン
--------------------------------------------------------------------------------------- */

.campaign-wrap { padding-bottom: 64px; }

.campaign-details { margin-top: 64px; }

.campaign-details .head-title { text-align: center; }

.campaign-details .head-title + .column { margin-top: 32px; }

.campaign-details .column {
	background-color: #fff;
	border-radius: var(--border-radius);
	box-shadow: 2px 2px 4px 0 rgba(179, 179, 179, 0.20);
	overflow: hidden;
}

.campaign-details .column:nth-of-type(n+2),
.campaign-wrap .systems .systems-column:nth-of-type(n+2) { margin-top: 24px; }

.campaign-details .column:not(:has(.sub-title.magenta)) { padding-top: 32px; }

.campaign-details .column .sub-title { text-align: center; }

.campaign-details .column .sub-title.magenta {
	background-color: var(--color-magenta);
	color: #fff;
	line-height: 1.4;
	padding: 16px 0;
}

.campaign-details .column .sub-title small { font-size: 16px; }

.campaign-details .column-inner { padding: 32px; }

.campaign-details .present { text-align: center; }

.campaign-details .present h4 {
	display: inline-block;
	position: relative;
}

.campaign-details .present h4::before {
	background: url(../images/common/balloon-imanara.svg) no-repeat;
	content: '';
	display: block;
	height: 55px;
	position: absolute;
	top: -7px;
	width: 76px;
}

.campaign-details .present h4 span {
	display: block;
	font-size: 24px;
	font-weight: var(--Bold);
	margin-left: 90px;
}

.campaign-details .present h4 strong {
	color: var(--color-magenta);
	display: inline-block;
	font-size: 36px;
	font-weight: var(--Bold);
	position: relative;
	z-index: 0;
}

.campaign-details .present h4 strong::after {
	background: url(../images/top/text-line.png) no-repeat;
	bottom: -1px;
	content: '';
	display: block;
	height: 19px;
	left: -6px;
	position: absolute;
	width: 366px;
	z-index: -1;
}

.campaign-details .present .present-list-section {
	counter-reset: number 0;
	display: flex;
	gap: 16px;
	margin-top: 40px;
}

.campaign-details .present .present-list-section h5 {
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 56px;
	padding-left: 70px;
	position: relative;
	text-align: left;
}

.campaign-details .present .present-list-section h5::before {
	align-items: center;
	background-color: var(--color-blue);
	border-radius: var(--border-radius);
	color: #fff;
	content: "特典" "\a" counter(number);
	counter-increment: number 1;
	display: flex;
	font-size: 14px;
	font-weight: var(--Bold);
	height: 56px;
	justify-content: center;
	left: 0;
	line-height: 1.2;
	position: absolute;
	text-align: center;
	top: 0;
	white-space: pre-wrap;
	width: 56px;
}

.campaign-details .present .present-list-section h5 strong {
	display: block;
	font-size: 18px;
}

.campaign-details .present .present-list-section h5 small { font-size: 16px; }

.campaign-details .present .present-list-section .image { margin-top: 10px; }

.campaign-details .banner-image {
	margin-left: auto;
	margin-right: auto;
	max-width: 320px;
}

.campaign-details .banner-image + .course-table { margin-top: 32px; }

.campaign-wrap .accordion-plus {
	display: flex;
	flex-direction: column;
}

.campaign-wrap .column-inner .accordion-plus { margin: 32px -32px -32px; }
.campaign-wrap .column-inner .accordion-plus summary { 	border-top: 1px solid var(--color-border); }

.campaign-wrap .accordion-plus summary {
	border-top-left-radius: 0;
	border-top-right-radius: 0;
	order: 2;
	text-align: center;
}

.campaign-wrap .accordion-plus[open] summary { font-size: 0; }

.campaign-wrap .accordion-plus[open] summary::before {
	content: '閉じる';
	font-size: 18px;
}

.campaign-wrap .accordion-inner {
	margin-top: 0;
	padding:32px;
}

.campaign-wrap .campaign-note {
	border-top: 1px solid var(--color-border);
	margin-top: 24px;
	padding-top: 24px;
}

.campaign-wrap .campaign-note .dotted {
	margin-left: 0;
	margin-top: 12px;
}

.campaign-wrap .head-text { margin-top: 32px; }

.campaign-wrap .head-text dt { font-weight: var(--Bold); }
.campaign-wrap .head-text dd { margin-top: 8px; }

.campaign-wrap .systems { margin-top: 64px; }

.campaign-wrap .systems .head-title {
	margin-bottom: 32px;
	text-align: center;
}

.campaign-wrap .systems .systems-column {
	background-color: #fff;
	border-radius: var(--border-radius);
	overflow: hidden;
}

.campaign-wrap .systems .systems-column h3 {
	background: linear-gradient(90deg, #00B4DC 41.83%, #70DCF0 100%);
	color: #fff;
	padding: 14px 0;
	text-align: center;
}

.campaign-wrap .systems .systems-column .accordion-plus[open] summary { border-top: 1px solid var(--color-border); }

.campaign-note .diagram-section {
	align-items: center;
	display: flex;
	justify-content: space-between;
}

.campaign-note .diagram-section .diagram { width: 45%; }
.campaign-note .diagram-section p { width: 51%; }

@media (max-width: 1099px) {

	.campaign-wrap { padding: 0 4.975vw; }

	.campaign-details { margin-top: 12.935vw; }

	.campaign-details .head-title + .column { margin-top: 5.97vw; }

	.campaign-details .column .sub-title.magenta { padding: 2.488vw; }

	.campaign-details .column-inner { padding: 6.965vw 4.975vw; }

	.campaign-details .column:nth-of-type(n+2),
	.campaign-wrap .systems .systems-column:nth-of-type(n+2) { margin-top: 5.97vw; }

	.campaign-details .present h4 span {
		font-size: 3.98vw;
		margin-left: 19.333vw;
		text-align: left;
	}

	.campaign-details .present h4::before {
		background-size: 100% auto;
		height: 12.114vw;
		top: 0.333vw;
		width: 17.582vw;
	}

	.campaign-details .present h4 strong {
		font-size: 6.965vw;
		margin-top: 2.975vw;
	}

	.campaign-details .present h4 strong::after {
		background-size: 100% auto;
		bottom: -.667vw;
		height: 3.726vw;
		left: -6px;
		width: 71.045vw;
	}

	.campaign-details .present .present-list-section {
		flex-wrap: wrap;
		gap: 3.98vw;
		margin-top: 6.965vw;
	}

	.campaign-details .present .present-list-section .present-item {
		align-items: center;
		display: flex;
		justify-content: space-between;
		width: 100%;
	}

	.campaign-details .present .present-list-section .image {
		height: 20.398vw;
		margin-top: 0;
		width: 19.9vw;
	}

	.campaign-details .present .present-list-section .image img {
		display: block;
		height: 100%;
		object-fit: cover;
		width: 100%;
	}

	.campaign-details .present .present-list-section h5 {
		display: block;
		order: 2;
		padding-left: 0;
		width: 54.229vw;
	}

	.campaign-details .present .present-list-section h5::before {
		border-radius: .498vw;
		content: "特典" counter(number);
		counter-increment: number 1;
		display: inline-block;
		font-size: 2.985vw;
		height: auto;
		left: auto;
		line-height: 1;
		padding: 0.933vw 1.333vw;
		position: relative;
		text-align: left;
		top: auto;
		width: auto;
	}

	.campaign-details .present .present-list-section h6 strong {
		font-size: 4.478vw;
		margin-top: 1.488vw;
	}

	.campaign-details .present .present-list-section h6 small { font-size: 3.483vw; }

	.campaign-details .banner-image { max-width: 52.488vw; }

	.campaign-wrap .column-inner .accordion-plus { margin: 7.96vw -4.975vw -6.16vw; }

	.campaign-wrap .accordion-plus summary { justify-content: center; }

	.campaign-wrap .accordion-inner {
		font-size: 2.985vw;
		padding: 0 4.975vw 4.975vw;
	}

	.campaign-wrap .campaign-note {
		margin-top: 4.975vw;
		padding-top: 4.975vw;
	}

	.campaign-wrap .campaign-note .dotted { margin-top: 2.985vw; }

	.campaign-details .column:not(:has(.sub-title.magenta)) { padding-top: 5.97vw; }

	.campaign-details .banner-image + .course-table { margin-top: 4.975vw; }

	.campaign-wrap .head-text { margin-top: 4.975vw; }

	.campaign-wrap .head-text dd { margin-top: 1.99vw; }

	.campaign-wrap .systems { margin-top: 5.97vw; }

	.campaign-wrap .systems .head-title { margin-bottom: 5.97vw; }

	.campaign-wrap .systems .systems-column h3 { padding: 3.98vw 0; }

	.campaign-wrap .systems .accordion-inner { padding-top: 4.975vw; }

	.campaign-note .diagram-section {
		flex-direction: column;
		gap: 2.985vw 0;
	}

	.campaign-note .diagram-section .diagram,
	.campaign-note .diagram-section p { width: auto; }
}
