@charset "UTF-8";

/* #cpn_contents */
:root {
	/* font */
	--gothic: "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "游ゴシック体", "Yu Gothic", YuGothic, "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
	--mincho: "Hiragino Mincho Pro", "游明朝", "Yu Mincho", YuMincho, serif;

	/* color */
	--blk: 62, 58, 57;
	--wht: 255, 255, 255;
	--gre: 0, 168, 80;
	--light-gre: 215, 238, 209;
}

/* ----------------------------------------------------
	基本設定
---------------------------------------------------- */
html {
	scroll-behavior: smooth;
}

/*
	reset
------------------------------ */
* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
	list-style: none;
}

p {
	word-wrap: break-word;
}

p:not(:last-of-type) {
	margin-bottom: 1em;
}

table {
	border-collapse: collapse;
	border-spacing: 0;
}

fieldset,
img {
	border: 0;
}
/* fieldset,
#cpn_contents img {
	border: 0;
} */


address,
b,
caption,
cite,
code,
dfn,
em,
i,
strong,
th,
var {
	font-style: normal;
	font-weight: normal;
}

caption,
th {
	text-align: left;
}

a {
	text-decoration: underline;
	transition: all 0.5s ease 0s;
}
/* #cpn_contents a {
	text-decoration: underline;
	transition: all 0.5s ease 0s;
} */


a:hover {
	text-decoration: none;
	opacity: 0.7;
}
/* #cpn_contents a:hover {
	text-decoration: none;
	opacity: 0.7;
} */

area {
	border: none;
	outline: none;
}

img {
	max-width: 100%;
	height: auto;
	vertical-align: bottom;
}
/* #cpn_contents img {
	width: 100%;
	height: auto;
	vertical-align: bottom;
} */


/*
	表示設定
------------------------------ */
body {
	background: var(--wht);
	line-height: 1.8;
}
/* #cpn_contents {
	background: var(--wht);
	line-height: 1.8;
} */


.container {
	margin: 0 auto;
	padding: 0 50px;
	width: 100%;
}

.close {
	display: none;
}


@media screen and (max-width: 768px) {
	.container {
		padding: 0 4.8vw;
	}
}

/*
	font
------------------------------ */
body {
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 400;
	font-style: normal;
	font-feature-settings: "palt"1;
	font-size: 16px;
	letter-spacing: 0.05em;
	color: #4D4D4D;
}

@media screen and (max-width: 768px) {
	body {
		font-size: 3.46667vw;
	}
}

main {
	background: url(../img/bg_gradation.webp) no-repeat;
	background-size: cover;
}

/*
	ページトップへ戻る
------------------------------ */
.pagetop {
	height: 50px;
	width: 50px;
	position: fixed;
	right: 30px;
	bottom: 30px;
	background: #fff;
	border: solid 2px #4A9BD4;
	border-radius: 50%;
	display: none;
	justify-content: center;
	align-items: center;
	z-index: 5000;
	cursor: pointer;
}
.pagetop__arrow {
	display: block;
	height: 10px;
	width: 10px;
	border-top: 3px solid #4A9BD4;
	border-right: 3px solid #4A9BD4;
	transform: translateY(20%) rotate(-45deg);
}

@media screen and (max-width: 768px) {
	.pagetop {
		right: 10px;
	}	
}

/*
	SP,PC表示切り替え
------------------------------ */
.pc {
	display: block;
}

.sp {
	display: none;
}

@media screen and (max-width: 768px) {
	.pc {
		display: none;
	}

	.sp {
		display: block;
	}
}

/*
	list
------------------------------ */
ul.list li {
	padding-left: 1.25em;
	text-indent: 0;
	position: relative;
}

ul.list li::before {
	margin-right: 0.25em;
	position: absolute;
	left: 0;
}

/* note */
ul.note li {
	font-size: 14px;
}

ul.note li::before {
	content: "※";
}

@media screen and (max-width: 768px) {
	ul.note li {
		font-size: 2.93333vw;
	}
}

/*
	linkBtn
------------------------------ */
.linkBtn a {
	text-decoration: none;
	display: flex;
	justify-content: center;
	align-items: center;
	position: relative;
}

@media screen and (max-width: 768px) {
	.linkBtn a {}
}

/* ---------------------------------------------------
	agbHeader
---------------------------------------------------- */
.agbHeader {
	position: sticky;
	top: 0;
	z-index: 1000;
}

.agbHeader .header_nav {
	background: #fff;
	width: 100%;
	height: 64px;
	margin: 0 auto;
	display: flex;
	justify-content: center;
	align-items: center;
}

.agbHeader .header_nav a {
	display: block;
	color: #4A9BD4;
	text-decoration: none;
	margin: 0 5px;
}
.agbHeader .header_nav a::before {
	content: '｜';
	padding-right: 6px;
}
.agbHeader .header_nav a:last-child::after {
	content: '｜';
	padding-left: 6px;
}

/* ハンバーガーボタン */
.hamburger {
	display: none;
	flex-direction: column;
	cursor: pointer;
	position: absolute;
	right: 10px;
	top: 95px;
	width: 35px;
	height: 88px;
	justify-content: space-around;
	z-index: 1001;
	writing-mode: vertical-rl;
	text-orientation: mixed;
	color: #4A9BD4;
	font-size: min(1.8rem, 4.8vw);
}

.hamburger span {
	position: relative;
	padding-top: 18px;
}
.hamburger span::before {
	content: '';
	background: url(../img/menu_open.svg) no-repeat;
	background-size: 100%;
	width: 8px;
	height: 13px;
	position: absolute;
	top: 0;
	left: 35%;
}

.agbHeader .hamburger.active {
	transform: translateX(75vw);
	transition: transform 0.3s ease;
}

.agbHeader .hamburger.active span::before {
	background: url(../img/menu_close.svg) no-repeat;
	left: 32%;
}

@media screen and (max-width: 768px) {
	.agbHeader {
		position: relative;
		overflow: hidden;
	}
	.agbHeader .hamburger {
		display: flex;
		justify-content: center;
		align-items: center;
		background: #EAF6F9;
		padding: 10px;
		border-top-right-radius: 10px;
		border-bottom-right-radius: 10px;
		position: fixed;
		left: 0;
		right: auto;
	}
	.agbHeader .header_nav {
		position: fixed;
		left: -100%;
		top: 0;
		width: 75%;
		height: 100%;
		background: #38D8EA;
		background: linear-gradient(135deg, rgba(56, 216, 234, 1) 15%, rgba(66, 161, 233, 1) 86%);
		display: flex;
		flex-direction: column;
		align-items: normal;
		justify-content: flex-start;
		transition: left 0.26s ease;
		z-index: 1000;
		padding: 90px 20px;
	}
	.agbHeader .header_nav.open {
		left: 0;
	}
	.agbHeader .header_nav a {
		color: #fff;
		font-size: min(1.8rem, 4.8vw);
		text-align: left;
		border-bottom: 1px solid #fff;
		margin-top: 15px;
		padding-bottom: 15px;
	}
	.agbHeader .header_nav a::before,
	.agbHeader .header_nav a:last-child::after {
		content: '';
		padding: 0;
	}
	.agbHeader .header_nav a:last-child {
		border-bottom: none;
	}
}

/*
	mvHeader
------------------------------ */
.mvHeader {
	position: relative;
	overflow: hidden;
}

.mvHeader h1 {
	position: absolute;
	top: 34%;
	left: 77%;
	transform: translate(-50%, -50%);
	-webkit-transform: translate(-50%, -50%);
	-ms-transform: translate(-50%, -50%);
	width: 40.2%;
	z-index: 100;
}

.mvHeader img {
	width: 100%;
	height: auto;
	object-fit: cover;
	transform-origin: center center;
	transition: transform 6s linear;
	transform: scale(1);
}

.mvHeader .zoom-active img {
	transform: scale(1.1);
}

@media screen and (max-width: 768px) {
	.mvHeader h1 {
		width: 78.7%;
		top: 30%;
		left: 65%;
	}
	.mv {
		padding-top: 0;
	}
}

/*
	visual-wrapper
------------------------------ */
.visual-wrapper {
	position: relative;
	width: 100%;
	/* height: 100vh; */
	overflow: hidden;
	margin-top: -90px;
}

.visual-wrapper .Slide {
	height: 100%;
}

.visual-wrapper .Slide img {
	width: 100%;
	height: 100%;
	object-fit: 100%;
	transition: none;
	transform: none;
}

.visual-wrapper .overlay-bg {
	display: flex;
	justify-content: center;
	align-items: center;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: url('../img/Frame.webp') top/100% no-repeat;
	opacity: 0.9;
	z-index: 2;
}

.visual-wrapper .overlay-bg .inner {
	color: #fff;
	font-size: 19px;
	text-align: center;
}

.visual-wrapper .overlay-bg .inner .area_nav {
	display: flex;
	justify-content: center;
	padding-top: 50px;
	flex-wrap: wrap;
}

.visual-wrapper .overlay-bg .inner .area_nav a {
	background: #EAF6F9;
	color: #4A9BD4;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 262px;
	height: 69px;
	margin: 0 20px;
	border-radius: 43px;
	font-size: 25px;
	text-decoration: none;
	position: relative;
	z-index: 10;
}
.visual-wrapper .overlay-bg .inner .area_nav a::after {
	content: '▼';
	color: #EAF6F9;
	width: 22px;
	position: absolute;
	bottom: -50px;
}

.visual-wrapper .Slide {
	position: relative;
	/* top: 15px; */
	top: 1.2vw;
	z-index: 1;
}

@media screen and (max-width: 768px) {
	.visual-wrapper {
		/* height: 45vh; */
		height: 320px;
		overflow: unset;
	}
	.visual-wrapper .overlay-bg {
		background: url('../img/Frame_sp.webp') top/100% no-repeat;
		top: -20px;
		height: 110%;
	}
	.visual-wrapper .overlay-bg .inner {
		font-size: min(1.6rem, 4.267vw);
	}
	.visual-wrapper .overlay-bg .inner .area_nav a {
		width: 167px;
		height: 42px;
		margin: 0 20px;
		border-radius: 43px;
		font-size: min(1.6rem, 4.267vw);
	}
	.visual-wrapper .overlay-bg .inner .area_nav a:first-child {
		margin: 0 100px 30px;
	}
	.visual-wrapper .overlay-bg .inner .area_nav a:nth-of-type(2),
	.visual-wrapper .overlay-bg .inner .area_nav a:nth-of-type(3) {
		margin: 0 10px;
	}
	.visual-wrapper .overlay-bg .inner .area_nav a::after {
		width: 22px;
		bottom: -20px;
		font-size: min(1.2rem, 3.2vw);
	}
}



/* ---------------------------------------------------
	agbMain
---------------------------------------------------- */
.agbMain .contents h2 {
	display: flex;
	justify-content: center;
	align-items: center;
	color: #4A9BD4;
	width: 313px;
	margin: 0 auto;
	font-size: 36px;
	font-weight: 500;
	text-align: center;
	padding: 71px 0;
	position: relative;
}
.agbMain .contents h2::before {
	content: '';
	background: url(../img/item01.svg) no-repeat;
	background-size: 100%;
	width: 66px;
	height: 4px;
	position: absolute;
	top: 52%;
	left: -30px;
}
.agbMain .contents h2::after {
	content: '';
	background: url(../img/item01.svg) no-repeat;
	background-size: 100%;
	width: 66px;
	height: 4px;
	position: absolute;
	top: 52%;
	right: -30px;
}

.agbMain .contents ul {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	max-width: 1212px;
	margin: 0 auto;
}

.agbMain .contents ul li {
	width: 30.4%;
	background: #fff;
	margin: 0 14px 70px;
	border-radius: 10px;
	text-align: center;
	position: relative;
	box-shadow: 0 0 8px 3px rgba(148, 189, 223, 0.45);
}

.agbMain .contents ul li .img img {
	border-top-left-radius: 10px;
	border-top-right-radius: 10px;
}

.agbMain .contents ul li h3 {
	color: #47BCF7;
	display: flex;
	justify-content: center;
	align-items: center;
	height: 64px;
	font-size: min(2.6rem, 2.031vw);
	font-weight: 500;
	line-height: 1.5;
	margin: 20px auto 0;
}
@media screen and (min-width: 1300px) {
	.agbMain .contents ul li h3 {
		font-size: 26px;
	}
}

.agbMain .contents ul li h4 {
	font-size: 15px;
	margin-top: 20px;
}

.agbMain .contents ul li p {
	height: 220px;
	text-align: left;
	padding: 16px 35px 30px;
}

.agbMain .contents ul li a {
	display: flex;
	justify-content: center;
	align-items: center;
	background: #38D8EA;
	background: linear-gradient(90deg, rgba(56, 216, 234, 1) 15%, rgba(66, 161, 233, 1) 86%);
	color: #fff;
	width: 84%;
	height: 52px;
	margin: 0 auto 36px;
	border-radius: 43px;
	text-decoration: none;
	font-size: min(1.7rem, 1.328vw);
	font-weight: 500;
	position: relative;
}
.agbMain .contents ul li a::after {
	content: '';
	background: url(../img/link_arrow.svg) no-repeat;
	background-size: 100%;
	width: 13px;
	height: 20px;
	position: absolute;
	top: 53%;
	right: 10px;
	transform: translate(-50%, -50%);
	-webkit-transform: translate(-50%, -50%);
	-ms-transform: translate(-50%, -50%);
}
@media screen and (min-width: 1300px) {
	.agbMain .contents ul li a {
		font-size: 17px;
	}
}

.agbMain .banner {
	background: #fff;
	padding: 160px 0;
}

.agbMain .banner .inner {
	display: flex;
	justify-content: center;
	align-items: center;
}

.agbMain .banner .inner a {
	display: block;
	margin: 0 23px;
	text-align: center;
	color: #4d4d4d;
	text-decoration: none;
}

@media screen and (max-width: 768px) {
	.agbMain .contents h2 {
		width: 70%;
		font-size: min(2.6rem, 6.933vw);
		font-weight: 500;
		text-align: center;
		padding: 50px 0 30px;
	}
	.agbMain .contents h2::before,
	.agbMain .contents h2::after {
		top: 58%;
	}
	.agbMain .contents ul {
		display: block;
		margin: 0 10px;
	}
	.agbMain .contents ul li {
		width: 100%;
		background: #fff;
		margin: 0 0 35px;
		padding-bottom: 30px;
	}
	.agbMain .contents ul li h3 {
		height: auto;
		font-size: min(2.3rem, 6.133vw);
		margin: 20px auto 5px;
	}
	.agbMain .contents ul li h4 {
		font-size: min(1.3rem, 3.467vw);
		margin-top: 10px;
	}
	.agbMain .contents ul li p {
		height: auto;
		font-size: min(1.4rem, 3.733vw);
		padding: 16px 35px 30px;
	}
	.agbMain .contents ul li a {
		width: 84%;
		height: 52px;
		margin: 0 auto;
		font-size: min(1.5rem, 4vw);
	}
	.agbMain .banner {
		padding: 40px 0;
	}
	.agbMain .banner .inner {
		display: block;
	}
	.agbMain .banner .inner a:first-child {
		margin-bottom: 30px;
	}

}