/* =========================================
  * 1st Editionパッケージ キャンペーン追加
  * ======================================== */

:root {
	--cp-main-color: #0D2E9B;
	--cp-sub-color: #BDE0EA;
	--cp-yellow-color: #FFD114;
	--cp-main-txt-color: #333;
	--cp-font-16-14: 16px;
	--cp-mt-64-32: 64px;
	--cp-mt40-24: 40px;
	--cp-r-15-10: 15px;
}

.mt-cp-caption-wrap {
	background-color: #FFF00A;
	display: grid;
	place-items: center;
	padding: 8px 24px;
	text-align: center;
	color: var(--cp-main-color);
	font-size: 28px;
	font-weight: 800;
	margin-top: -56px;

	.mt-cp-note {
		font-size: var(--cp-font-16-14);
		color: var(--cp-main-txt-color);
		font-weight: 700;

	}
}

.mt-cp-area {
	display: flex;
	justify-content: space-between;
	align-items: end;
	position:relative;
	max-width: 1000px;
	width: 86%;
	padding: var(--cp-mt40-24);
	background-color: var(--cp-sub-color);

	& .mt-cp-catch{
		padding: 0px 5px;
		position:absolute;
		top: 0px;
		left: calc(50% - 270px);
		color: var(--cp-main-color);
		background: #f9f9f9;
		font-size: 24px;
		font-weight: 900;
		border: solid 2px var(--cp-main-color);
		transform: rotate(-4deg);
		z-index: 1;
	}
}

.mt-cp-package-wrap {
	background-color: #fff;
	max-width: 870px;
	padding: var(--cp-mt40-24) 72px;
}

.mt-cp-area,
.mt-cp-package-wrap {
	border-radius: var(--cp-r-15-10);
	margin: var(--cp-mt-64-32) auto;
	position: relative;

	& h2 {
		color: var(--cp-main-color);
		margin-bottom: 16px;

		& .mt-cp-txt1 {
			font-size: 34px;
			font-size: min(3vw, 34px);
			display: block;
		}

		& .mt-cp-txt2 {
			display: inline-block;
			background-color: var(--cp-main-color);
			color: var(--cp-yellow-color);
			font-size: min(5vw, 55px);
			line-height: 1em;
			padding: .25em;
			margin: 8px 0;
		}
	}
}


.mt-cp-txt {
	text-align: center;
	font-size: var(--cp-font-16-14);
}


.mt-cp-btn {
	display: block;
	width: 100%;
	max-width: 305px;
	color: #fff;
	position: relative;
	font-size: 18px;
	text-align: center;
	background: #E68000;
	border-radius: 10px;
	padding: 20px 1em 20px 0;
	margin: 24px auto 0 auto;

	&::before {
		content: "";
		display: block;
		width: 15px;
		height: 15px;
		background: url(../img/cpbtn-icon.svg) no-repeat center center / 100%;
		position: absolute;
		top: 50%;
		right: 1em;
		transform: translateY(-50%);
	}

}

.mt-cp-btn .mt-cp-main-img {
	order: 1;
	width: min(17.5vw, 184px);
}

.mt-cp-txt {
	order: 2;
}

.mt-cp-option-img {
	order: 3;
	width: min(17.5vw, 184px)
}

.mt-cp-circle-title {
	background-color: var(--cp-main-color);
	color: var(--cp-yellow-color);
	font-size: 20px;
	line-height: 1.2em;
	padding: 1em 0 .5em 0;
}

.mt-cp-circle {
	min-width: 185px;
	min-height: 185px;
	aspect-ratio: 1/1;
	border-radius: 100%;
	background-color: var(--cp-yellow-color);
	text-align: center;
	overflow: hidden;
	position: absolute;
	top: 24px;
	right: 24px;
	box-shadow: 5px 8px 10px -5px #777777;
	border-radius: 100%;

}

.mt-cp-package-wrap .mt-cp-circle {
	top: -40px;
	right: clamp(-80px, -5vw, -20px);
}
.mt-cp-date-area p {
	font-size: 44px;
	color: var(--cp-main-color);
	font-weight: 700;
	line-height: .5em;
	padding-top: .5em;
	
	
	
	

	& .mt-cp-year {
		padding: 0px 3px;
		margin-right: 3px;
		line-height: 1.2;
		display: inline-block;
		background: var(--cp-main-color);
		color: var(--cp-yellow-color);
		font-size: 14px;
	}
	
	
	& .mt-cp-circle-txt1 {
		font-size: 20px;
		color: var(--cp-yellow-color);
		background-color: var(--cp-main-color);
		border-radius: 100%;
		width: 27px;
		height: 27px;
		line-height: normal;
		display: inline-block;
		margin-left: .2em;
	}

	& .mt-cp-circle-txt2 {
		font-size: 24px;
		display: inline-block;
	}
}

.mt-cp-package-wrap {

	& .mt-cp-catch{
		padding: 0px 5px;
		position:absolute;
		top: -10px;
		left: 50px;
		color: var(--cp-main-color);
		background: #f9f9f9;
		font-size: 24px;
		font-weight: 900;
		border: solid 3px var(--cp-main-color);
		transform: rotate(-4deg);
		z-index: 1;
	}
	
	& details {
		border-top: solid 2px var(--cp-main-color);
		border-bottom: solid 2px var(--cp-main-color);
		margin: var(--cp-mt40-24) auto;

		&[open] h3::after {
			transform: translateY(-50%) rotate(90deg);
		}
	}

	& h3 {
		color: var(--cp-main-color);
		text-align: center;
		padding: .5em;
		font-size: 26px;
		font-weight: 700;
		cursor: pointer;
		position: relative;

		&::before,
		&::after {
			width: 1em;
			height: 2px;
			background-color: var(--cp-main-color);
			content: "";
			display: inline-block;
			position: absolute;
			right: 1em;
			top: 50%;
			transform: translateY(-50%);
		}

		&::after {
			transform: translateY(-50%) rotate(90deg);
		}
	}

	& details[open] h3::after {
		transform: translateY(-50%);
	}
}



.mt-cp-contents {
	text-align: center;
	padding: 24px;

	& h4 {
		background-color: var(--cp-sub-color);
		font-size: 20px;
		border-radius: 10px;
		padding: .1em 0;
		margin-bottom: 24px;
	}

	& .cp-option-li01,
	& .cp-option-li02 {
		margin-bottom: 24px;
		text-align: left;
		font-size: var(--cp-font-16-14);
		padding-left: 1.5em;
		text-indent: -1.5em;
		display: grid;
		gap: 0 1em;
	}

	& p {
		font-size: var(--cp-font-16-14);
		text-align: left;
	}

	& .cp-option-li01 {
		grid-template-columns: 1.5fr 1fr;
	}

	& .cp-option-li02 {
		grid-template-columns: 1.1fr 1fr;
	}

	& ul li {
		list-style-type: disc;
		list-style-position: inside;
		margin: 0 .5em;
	}
}

.mt-cp-subsidy-wrap {
	text-align: center;
	border-bottom: solid 2px var(--cp-main-color);
	padding-bottom: var(--cp-mt40-24);
	margin-bottom: var(--cp-mt40-24);

	h3 {
		cursor: auto;
		padding-top: 0;

		&::before,
		&::after {
			display: none;
		}
	}

}

.mt-cp-microcopy {
	text-align: center;

	& p {
		font-size: 20px;
		font-weight: 900;
		color: var(--cp-main-color);
		border-bottom: 6px var(--cp-yellow-color) solid;
		line-height: normal;
		display: inline-block;
		position: relative;

		&::before,
		&::after {
			position: absolute;
			width: 2.5px;
			height: 1.5em;
			display: block;
			content: "";
			bottom: -5px;
			background-color: var(--cp-main-color);
		}

		&::before {
			left: -1em;
			transform: rotate(-30deg);
		}

		&::after {
			right: -1em;
			transform: rotate(30deg);
		}
	}

}

@media (max-width: 900px) {

	.mt-cp-caption-wrap {
		margin-top: -8vw;
	}

	.mt-cp-area {
		display: block;

		& .mt-cp-txt h2 {
			text-align: left;
		}
	}



	.mt-cp-sp-img {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 16px;
	}

	.mt-cp-main-img {
		width: 40%;
	}

	.mt-cp-option-img {
		width: 55%;
	}

}

@media (max-width: 768px) {
	:root {
		--cp-font-16-14: 14px;
		--cp-mt-64-32: 32px;
		--cp-mt40-24: 24px;
		--cp-r-15-10: 10px;
	}

	.mt-cp-caption-wrap {
		font-size: 18px;
		padding: 8px;
	}

	.mt-cp-btn {
		font-size: 16px;
		padding: .5em 1em .5em 0;
		margin: 16px auto 0 auto;
	}

	.mt-cp-circle {
		min-width: max(25vw, 110px);
		min-height: max(25vw, 110px);
		top: -16px;
		right: -16px
	}

	.mt-cp-package-wrap .mt-cp-circle {
		top: min(-11vw, -52px);
		right: -12px;
	}

	.mt-cp-circle-title {
		font-size: max(2.7vw, 12px);
	}


	.mt-cp-date-area p {
		font-size: max(5.2vw, 24px);
		

		& .mt-cp-year {
			font-size: max(2.5vw, 12px);
		}

		& .mt-cp-circle-txt1 {
			font-size: max(2.7vw, 12px);
			width: 1.5em;
			height: 1.5em;
		}

		& .mt-cp-circle-txt2 {
			font-size: max(3.2vw, 16px);
		}
	}

	.mt-cp-area,
	.mt-cp-package-wrap {

		& .mt-cp-catch{
			top: -17px;
			left: -10px;
			font-size: max(3.2vw, 20px);
		}
		
		& h2 .mt-cp-txt1 {
			font-size: 20px;
		}
	}

	.mt-cp-area h2 .mt-cp-txt2 {
		font-size: 30px;
		margin: 4px 0;
	}

	.mt-cp-package-wrap h2 .mt-cp-txt2 {
		font-size: max(5.2vw, 24px);
		margin: 4px 0;
	}


	.mt-cp-package-wrap {
		background-color: #fff;
		max-width: 870px;
		padding: 32px 24px;

		& h3 {
			font-size: 18px;
		}
	}

	.mt-cp-contents {
		padding: 16px 8px;

		& h4 {
			font-size: 16px;
			margin-bottom: 16px;
		}

		& .cp-option-li01,
		& .cp-option-li02 {
			display: block;
		}
	}

	.mt-cp-package-wrap h3 {

		&::before,
		&::after {
			right: .5em;
			height: 1.5px;
		}
	}

	.mt-cp-microcopy p {
		font-size: 16px;
	}

}

@media (max-width: 385px) {
	.mt-cp-area h2 .mt-cp-txt2 {
		font-size: 28px;
	}
	.mt-cp-area,
	.mt-cp-package-wrap {
		& h2 .mt-cp-txt1 {
			font-size: 18px;
		}
	}
}