@charset "UTF-8";

.orange {
	color: #FE6F02;
}
.pink {
	color: #FF0353;
}
.bold {
	font-weight: bold;
}
.t-blue {
	color: #007FDE;
}
.t-orange {
	color: #FE6F02;
}

#content section {
	padding: 0 10px;
	overflow: hidden;
}
#content .wrap {
	max-width: 1000px;
	padding: 80px 0;
}
@media print, screen and (max-width: 769px) {
	#content .wrap {
		padding: 50px 0;
	}
}

.camp-btn {
	display: block;
	background: url("img/arrow_img01.svg") no-repeat right 40px center/8px auto;
	background-color: #FE6F02;
	max-width: 582px;
	height: 66px;
	margin: 0 auto;
	color: white;
	font-size: 24px;
	font-weight: bold;
	line-height: 66px;
	text-align: center;
	border-radius: 100px;
	letter-spacing: 1px;
	transition: background .3s ease-in-out 0s;
	& img {
		display: none;
	}
	&:hover {
		background-color: #FF8A35;
	}
}
@media print, screen and (max-width: 769px) {
	.camp-btn {
		background-position: right 20px center;
		height: 56px;
		font-size: 16px;
		line-height: 56px;
	}
}

.link_more {
	display: inline-block;
	background: url("img/arrow_img03.svg") no-repeat right bottom 15px/6px auto;
	padding-right: 20px;
	padding-bottom: 6px;
	position: relative;
	font-size: 16px;
	white-space: nowrap;
	flex-shrink: 0;
	&::before {
		content: "";
		display: block;
		background: #222;
		width: 100%;
		height: 1px;
		position: absolute;
		bottom: 0;
		left: 0;
	}
	&:hover::before {
		display: none;
	}
}
@media print, screen and (max-width: 769px) {
	.link_more {
		font-size: 14px;
	}
}

.cta {
	background: #FFE895;
	padding: 50px 10px !important;
	& .wrap {
		padding: 0 !important;
	}
	& .txt {
		margin-bottom: 27px;
		& p {
			font-size: 38px;
			font-weight: bold;
			line-height: 1;
			letter-spacing: 1px;
			text-shadow: 3px 3px 0 #FFF;
			text-align: center;
			& span {
				color: #FB7500;
			}
		}
	}
	& .cta-label-img {
		display: block;
		max-width: 174px;
		width: 100%;
		height: auto;
		margin: 0 auto;
		position: relative;
		z-index: 1;
		margin-bottom: -18px;
	}
}
@media print, screen and (max-width: 769px) {
	.cta {
		padding: 30px 10px !important;
		& .txt {
			margin-bottom: 20px;
			& p {
				font-size: 24px;
				line-height: 1.4;
				& span {
					display: block;
				}
			}
		}
	}
}

.secTit {
	font-size: 40px;
	font-weight: bold;
}
@media print, screen and (max-width: 769px) {
	.secTit {
		font-size: 24px;
	}
}

/* #mv */
#mv {
	padding: 0;
	color: #1E3143;
	& .mv-top {
		background: white url("img/mv_bg_pc.png") no-repeat center top/cover;
		max-width: none;
		& .wrap {
			padding: 40px 10px;
		}
		& .tit {
			max-width: 567px;
			margin: 0 auto;
			& img {
				display: block;
				width: 100%;
				height: auto;
			}
			& .sp {
				display: none;
			}
			& span {
				display: block;
				overflow: hidden;
				text-indent: 100%;
				white-space: nowrap;
				line-height: 0;
			}
		}
		& .mv-note {
			max-width: 552px;
			margin: 10px auto 0;
			padding-left: 16px;
			font-size: 11px;
			color: #222;
			text-align: left;
			line-height: 1.6;
		}
	}
	& .day {
		background: #FFE895;
		color: #222;
		max-width: none;
		padding: 14px 10px;
		font-size: 18px;
		font-weight: bold;
		line-height: 1.4;
		text-align: center;
		& .sp {
			display: none;
		}
	}
	& .mv-cta {
		background: #CCE8F9;
		max-width: none;
		padding: 40px 10px;
		text-align: center;
		& .camp-btn {
			max-width: 540px;
			height: 80px;
			line-height: 80px;
			margin: 30px auto 0;
			position: relative;
			& .mv-notice-img {
				display: block;
				position: absolute;
				top: -46px;
				left: 50%;
				transform: translateX(-50%);
				height: 46px;
				width: auto;
			}
		}
	}
}
@media print, screen and (max-width: 769px) {
	#mv {
		& .mv-top {
			background-image: url("img/mv_bg_sp.png");
			& .tit {
				max-width: 420px;
				& .pc {
					display: none;
				}
				& .sp {
					display: block;
				}
			}
			& .mv-note {
				max-width: 420px;
				padding-left: 16px;
			}
		}
		& .day {
			font-size: 13px;
			padding: 10px;
			& .pc {
				display: none;
			}
			& .sp {
				display: block;
			}
		}
		& .mv-cta {
			padding: 40px 10px 20px;
			& .camp-btn {
				max-width: 582px;
				height: 56px;
				line-height: 56px;
				margin-top: 20px;
				& .mv-notice-img {
					height: 36px;
					top: -38px;
				}
			}
		}
	}
}

/* #step */
#step {
	padding: 0 10px !important;
	& .step-announce {
		max-width: 880px;
		margin: 60px auto;
		border: #FFE895 1px solid;
		border-radius: 20px;
		overflow: hidden;
		& .announce-title {
			background: #FFE895;
			color: #042878;
			font-size: 24px;
			font-weight: bold;
			text-align: center;
			padding: 10px 20px 18px;
			letter-spacing: .04em;
		}
		& .announce-body {
			background: #FFFBED;
			font-size: 20px;
			font-weight: bold;
			text-align: center;
			padding: 20px 20px 24px;
			line-height: 1.7;
		}
	}
}
@media print, screen and (max-width: 769px) {
	#step .step-announce {
		margin: 30px auto;
		& .announce-title {
			font-size: 15px;
			padding: 14px 16px;
		}
		& .announce-body {
			font-size: 14px;
			padding: 20px 16px;
		}
	}
}

/* #plan */
.scroll_tb {
	padding-top: 30px;
	overflow-x: scroll;
}
.camp_tb {
	min-width: 500px;
	width: 100%;
	& th,
	& td {
		width: 20%;
		height: 74px;
		font-size: 15px;
		text-align: center;
	}
	& th {
		font-size: 16px;
		font-weight: 600;
	}
	& td {
		border-left: #333 1px solid;
	}
	& thead th {
		font-size: 18px;
		&:not(:first-of-type) {
			background: #D7EFFB;
			border-left: #333 1px solid;
		}
		& span {
			display: block;
			font-size: 16px;
			line-height: 1;
		}
	}
	& tbody {
		& tr {
			border-top: #333 1px solid;
		}
		& th {
			background: #D7EFFB;
		}
		& td {
			& s {
				display: block;
				margin-bottom: 10px;
				font-size: 14px;
				line-height: 1;
			}
			&>span {
				display: block;
				font-weight: bold;
				line-height: 1;
				& span {
					font-size: 20px;
				}
			}
			& .attention {
				display: inline-block;
				margin: 0 auto;
				font-size: 12px;
			}
		}
	}
}
@media only screen and (min-width: 960px) {
	.camp_tb {
		& th,
		& td {
			font-size: 18px;
		}
		& th {
			font-size: 18px;
		}
		& tbody td s {
			font-size: 18px;
		}
		& thead th {
			font-size: 20px;
		}
	}
}

#plan {
	background: #F5F5F5;
	& .secTit {
		text-align: center;
		font-size: 32px;
		margin-bottom: 36px;
		line-height: 1.4;
	}
	& .camp_tb {
		border-bottom: #333 1px solid;
		border-right: #333 1px solid;
		& thead {
			background: none;
			& th:not(:first-of-type) {
				background: #D7EFFB;
				border-top: #333 1px solid;
			}
			& .no1 {
				position: relative;
				& span {
					background: #008FE1;
					width: 100%;
					height: 28px;
					position: absolute;
					top: -29px;
					left: 0;
					color: white;
					font-size: 14px;
					font-weight: bold;
					text-align: center;
					line-height: 28px;
					border-radius: 5px 5px 0 0;
				}
			}
		}
		& tbody {
			& th {
				border-left: #333 1px solid;
			}
			& td {
				background: #fff;
				height: 94px;
				font-size: 20px;
				&>span em {
					font-size: 30px;
					font-style: normal;
				}
			}
		}
	}
	& .scrollTxt span {
		background: #F5F5F5;
	}
	& .plan-footer {
		display: flex;
		justify-content: space-between;
		align-items: center;
		margin-top: 6px;
		margin-bottom: 30px;
		& .plan-notes .attention {
			font-size: 13px;
			line-height: 1.7;
			margin: 0;
		}
	}
}
@media only screen and (max-width: 960px) {
	#plan .camp_tb tbody td > span em {
		font-size: 20px;
	}
}
@media print, screen and (max-width: 769px) {
	#plan {
		& .secTit {
			font-size: 22px;
		}
		& .plan-footer {
			flex-direction: column;
			align-items: flex-start;
			gap: 8px;
		}
		& .link_more {
			font-size: 14px;
			margin: 0 0 0 auto;
		}
	}
}

/* #compare */
#compare {
	position: relative;
	background: white;
	& .wrap {
		max-width: 1000px;
	}
	& .compare-heading-bg {
		position: absolute;
		top: 140px;
		left: 50%;
		transform: translate(-50%, -50%);
		width: 100%;
		height: auto;
	}
	& .compare-heading {
		position: relative;
		text-align: center;
	}
	& .compare-heading-sub {
		position: relative;
		font-size: 24px;
		font-weight: bold;
		color: #222;
		letter-spacing: .04em;
	}
	& .compare-heading-main {
		position: relative;
		margin-top: 4px;
		font-size: 34px;
		font-weight: bold;
		color: #222;
		letter-spacing: .04em;
		& em {
			font-style: normal;
			font-family: "Oswald", sans-serif;
			color: #FE6F02;
			font-size: 60px;
			line-height: 1;
		}
	}
	& .compare-note {
		position: relative;
		text-align: center;
		font-size: 13px;
		color: #666;
		margin-top: 8px;
	}
	& .compare-chart {
		display: block;
		max-width: 1000px;
		width: 100%;
		height: auto;
		margin: 40px auto 0;
	}
	& .compare-summary {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		justify-content: center;
		gap: 8px;
		max-width: 1000px;
		margin: 40px auto -20px;
		padding: 16px 20px;
		background: #FFF2D1;
		border-radius: 70px;
		font-size: 24px;
		font-weight: bold;
		line-height: 1;
		text-align: center;
		letter-spacing: .04em;
		& .compare-summary-icon {
			width: 88px;
			height: auto;
		}
		& .orange span {
			font-family: "Oswald", sans-serif;
			font-size: 34px;
		}
	}
}
@media print, screen and (max-width: 769px) {
	#compare {
		& .compare-heading-bg {
			top: 80px;
			min-width: 600px;
		}
		& .compare-heading-sub {
			font-size: 16px;
		}
		& .compare-heading-main {
			font-size: 22px;
			& em {
				font-size: 36px;
			}
		}
		& .compare-summary {
			gap: 4px;
			margin: 30px auto -20px;
			font-size: 16px;
			border-radius: 20px;
			& .compare-summary-icon {
				width: 50px;
			}
			& .orange span {
				font-size: 22px;
			}
		}
	}
}

/* #versus */
#versus {
	& .wrap {
		padding-top: 0;
	}
}
.versus_tb {
	min-width: 640px;
	width: 100%;
	border-collapse: collapse;
	border: #DDDDDD 1px solid;
	& th,
	& td {
		width: 33.33%;
		height: 70px;
		font-size: 16px;
		text-align: center;
		border-bottom: #ddd 1px solid;
	}
	& thead th {
		height: 58px;
		font-size: 18px;
		font-weight: bold;
		background: #CCE8F9;
		&.recommend {
			background: #009FE8;
			color: white;
			position: relative;
			& span {
				display: block;
				position: absolute;
				top: -20px;
				left: 50%;
				width: 92px;
				transform: translateX(-50%);
				background: #FFAE00;
				color: white;
				font-size: 12px;
				font-weight: bold;
				padding: 4px 14px;
				border-radius: 14px;
				white-space: nowrap;
			}
		}
	}
	& tbody th {
		font-weight: bold;
		& .versus-sub {
			display: block;
			font-weight: normal;
			font-size: 12px;
			color: #666;
		}
	}
	& tbody td {
		&.recommend {
			background: #E7F6FF;
		}
		& .versus-check {
			width: 20px;
			height: auto;
			vertical-align: -4px;
			margin-right: 6px;
		}
		& .versus-blue {
			color: #0C3CA8;
			font-weight: bold;
		}
	}
}
.versus-btns {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 48px;
	max-width: 1000px;
	margin: 40px auto 0;
}
.versus-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	max-width: 380px;
	width: 100%;
	height: 80px;
	border-radius: 100px;
	font-size: 20px;
	font-weight: bold;
	text-align: center;
	transition: opacity .3s ease-in-out 0s;
	&:hover {
		opacity: .8;
	}
	&.versus-btn--main {
		background: #FE6F02 url("img/arrow_img01.svg") no-repeat right 30px center/8px auto;
		color: white;
	}
	&.versus-btn--sub {
		background: white url("img/arrow_img02.svg") no-repeat right 30px center/10px auto;
		border: #0C3CA8 2px solid;
		color: #0C3CA8;
		& span {
			font-size: 12px;
			font-weight: bold;
		}
	}
}
@media print, screen and (max-width: 769px) {
	.versus_tb th,
	.versus_tb td {
		font-size: 13px;
		height: 60px;
	}
	.versus_tb thead th {
		height: 50px;
		font-size: 15px;
	}
	.versus-btns {
		flex-direction: column;
		gap: 16px;
	}
	.versus-btn {
		max-width: 100%;
		height: 60px;
		font-size: 16px;
	}
}

/* #overview */
#overview {
	background: #CCE8F9;
	padding: 100px 10px !important;
	& .secTit {
		color: #008FE1;
		text-align: center;
	}
	& .wrap {
		background: white;
		padding: 40px 20px;
		border-radius: 20px;
	}
	& table {
		max-width: 800px;
		margin: 0 auto;
		& tr:not(:first-of-type) {
			border-top: #008FE1 1px solid;
		}
		& th,
		& td {
			padding: 16px 0;
		}
		& th {
			width: 26%;
			padding-right: 10px;
			font-weight: normal;
			text-align: left;
		}
		& td {
			width: 74%;
			& a {
				color: #008FE1;
				text-decoration: underline;
				&:hover {
					text-decoration: none;
				}
			}
		}
	}
}
.dotList {
	& li {
		position: relative;
		padding-left: 16px;
		line-height: 1.8;
		&::before {
			content: "・";
			position: absolute;
			left: 0;
		}
	}
}
.numList {
	counter-reset: numlist;
	& li {
		position: relative;
		padding-left: 22px;
		line-height: 1.8;
		counter-increment: numlist;
		&::before {
			content: counter(numlist) ".";
			position: absolute;
			left: 0;
		}
	}
}
@media print, screen and (max-width: 769px) {
	#overview {
		padding: 50px 10px !important;
		& .wrap {
			padding: 30px 20px;
		}
		& table {
			font-size: 13px;
		}
	}
}

/* #point */
#point {
	background: white;
	& .detail {
		display: flex;
		gap: 35px;
		&>li {
			background: white;
			width: calc((100% - 70px) / 3);
			padding: 40px 14px 30px;
			border-radius: 30px;
			border: 1px solid #007FDE;
			box-shadow: 0 6px 20px rgba(0, 127, 222, .12);
			& .tit {
				font-size: 18px;
				font-weight: bold;
				text-align: center;
				display: flex;
				align-items: center;
				justify-content: center;
			}
			& img {
				display: block;
				width: auto;
				height: 150px;
				margin: 20px auto;
			}
			& p {
				text-align: center;
			}
			& .attList {
				margin-top: 8px;
				font-size: 10px;
			}
		}
	}
}
@media print, screen and (max-width: 769px) {
	#point .detail {
		flex-wrap: wrap;
		gap: 24px;
		&>li {
			width: 100%;
			padding: 30px 14px;
			& .tit {
				font-size: 16px;
				min-height: 0;
			}
			& img {
				margin: 20px auto;
			}
			& .attList {
				display: table;
				margin: 8px auto 0;
			}
		}
	}
}

/* #free */
#free {
	background: #F3F8FD;
	& .wrap {
		max-width: 1000px;
		padding-bottom: 0;
	}
	& .free-header {
		text-align: center;
		margin-bottom: 4px;
		& .free-badge-img {
			display: block;
			height: auto;
			width: auto;
			max-height: 42px;
			margin: 0 auto -10px;
		}
		& .free-tit {
			color: #007FDE;
			font-size: 34px;
			font-weight: bold;
			letter-spacing: .04em;
			line-height: 1.6;
			& .t-dark {
				color: #333;
			}
			& em {
				font-size: 73px;
				font-style: normal;
				line-height: 1;
				vertical-align: baseline;
			}
		}
	}
	& .free-sub {
		font-size: 20px;
		font-weight: bold;
		color: #333;
		text-align: center;
		margin-bottom: 40px;
		& span {
			color: #007FDE;
			display: inline-block;
			&::after {
				content: "";
				display: block;
				width: 119px;
				height: 11px;
				background: #FFE895;
				margin: -10px auto 0;
			}
		}
	}
	& .detail {
		background: white;
		padding: 30px 20px;
		border-radius: 20px;
		& img {
			display: block;
			max-width: 830px;
			width: 100%;
			margin: 0 auto;
		}
	}
}
@media print, screen and (max-width: 769px) {
	#free {
		& .free-header .free-badge-img {
			max-height: 32px;
			margin-bottom: 10px;
		}
		& .free-header .free-tit {
			font-size: 24px;
			& em {
				font-size: 52px;
			}
		}
		& .free-sub {
			font-size: 16px;
			margin-bottom: 30px;
		}
		& .detail {
			padding: 20px;
		}
	}
}

/* #domain */
#domain {
	background: #F3F8FD;
	& .wrap {
		padding-top: 70px;
	}
	& .domain-card {
		width: 100%;
		box-sizing: border-box;
		border: 2px solid #007FDE;
		border-radius: 20px;
		padding: 0 110px 30px;
		margin-bottom: 30px;
	}
	& .domain-title {
		max-width: 692px;
		margin: -40px auto 0;
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 12px;
		padding: 16px 0;
		margin-bottom: 20px;
		background: #F3F8FD;
		& .domain-icon {
			width: 53px;
			height: 53px;
			flex-shrink: 0;
		}
	}
	& .domain-tit {
		font-size: 30px;
		font-weight: bold;
		color: #333;
		letter-spacing: .04em;
		white-space: nowrap;
	}
	& .domain-result {
		background: #FFF9F0;
		border: 1px solid #FE6F02;
		border-radius: 10px;
		display: flex;
		align-items: center;
		justify-content: center;
		max-width: 798px;
		margin: 20px auto 16px;
		padding: 2px 0 8px;
		& p {
			font-size: 22px;
			font-weight: bold;
			color: #333;
			letter-spacing: .04em;
			text-align: center;
		}
		& em {
			font-size: 42px;
			font-style: normal;
			line-height: 1;
			vertical-align: baseline;
			color: #FE6F02;
		}
	}
	& .attList {
		font-size: 12px;
		margin: 0;
	}
	& .camp-btn {
		background-color: #007FDE !important;
		font-size: 20px;
		&:hover {
			background-color: #00A2FF !important;
		}
	}
	& .dom_search {
		display: flex;
		gap: 18px;
		height: 62px;
		margin: 0 auto;
		& .input_area {
			background: white;
			flex: 1;
			display: flex;
			padding: 10px 0;
			border-radius: 6px;
			border: #007FDE 2px solid;
			& input[type=text] {
				flex: 1;
				padding: 0 20px 0 28px;
				font-size: 13px;
				border: none;
				&::placeholder {
					color: #9CA3AF;
				}
			}
		}
		& .select_area {
			background: white;
			width: 88px;
			position: relative;
			overflow: hidden;
			cursor: pointer;
			border-left: #E5E5E5 1px solid;
			&::before {
				content: "";
				display: block;
				width: 5px;
				height: 5px;
				margin-top: -4px;
				position: absolute;
				top: 50%;
				right: 14px;
				border-top: #111 2px solid;
				border-right: #111 2px solid;
				transform: rotate(135deg);
			}
			& select {
				background: white;
				width: 120%;
				height: 100%;
				padding: 0 18px;
				color: #111;
				font-size: 14px;
				cursor: pointer;
				border: none;
			}
		}
		& input[type=submit] {
			background: url("img/icon_serach.svg") no-repeat left 20px center/16px;
			background-color: #007FDE;
			width: 138px;
			padding-left: 20px;
			font-size: 16px;
			color: white;
			font-weight: bold;
			cursor: pointer;
			border: none;
			border-radius: 5px;
			transition: background .3s ease-in-out 0s;
			&:hover {
				background-color: #00A2FF;
			}
		}
	}
}
@media print, screen and (max-width: 769px) {
	#domain {
		& .domain-card {
			padding: 0 16px 20px;
		}
		& .domain-tit {
			font-size: 18px;
			white-space: normal;
		}
		& .domain-title {
			max-width: 320px;
			padding-bottom: 0;
			gap: 8px;
			& .domain-icon {
				width: 40px;
				height: 40px;
			}
		}
		& .domain-result {
			height: auto;
			padding: 12px 16px;
			& p {
				font-size: 16px;
			}
			& em {
				font-size: 30px;
			}
		}
		& .attList {
			margin: 0;
		}
		& .camp-btn {
			font-size: 14px;
		}
		& .dom_search {
			width: 100%;
			gap: 10px;
			height: 60px;
			& input[type=submit] {
				background-size: 20px;
				background-position: center;
				width: 60px;
				overflow: hidden;
				text-indent: 500%;
				white-space: nowrap;
				font-size: 11px;
			}
		}
	}
}
@media print, screen and (max-width: 500px) {
	#domain .dom_search {
		display: block;
		height: auto;
		& .input_area {
			height: 60px;
		}
		& input[type=submit] {
			width: 100%;
			height: 40px;
			margin-top: 10px;
		}
	}
}
