@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;
	--notojp: "Noto Sans JP", sans-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: var(--notojp);
	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; */
	position: relative;
	z-index: 10;
}

/*
	ページトップへ戻る
------------------------------ */
.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;
}

.btn {
	display: flex;
	justify-content: center;
	align-items: center;
	color: #fff;
	text-align: center;
	font-size: min(27px, 1.977vw);
	font-weight: 600;
	text-decoration: none;
	border-radius: 12px;
	position: relative;
}

.btn.typeA {
	opacity: 0.9;
	background: #35CAD4;
}

.btn.typeB {
	opacity: 0.9;
	background: #5DC5B9;
}

@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 5px;
	display: flex;
	justify-content: center;
	align-items: end;
}

.agbHeader .header_nav a {
	display: block;
	color: #35CAD4;
	font-size: min(18px, 1.318vw);
	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(18px, 4.8vw);
}

.hamburger span {
	position: relative;
	padding-top: 18px;
	color: #35CAD4;
}
.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: #CEFCFF;
		padding: 10px;
		border-top-right-radius: 10px;
		border-bottom-right-radius: 10px;
		position: fixed;
		top: 275px;
		left: 0;
		right: auto;
	}
	.agbHeader .header_nav {
		position: fixed;
		left: -100%;
		top: 0;
		width: 75%;
		height: 100%;
		background: #35CAD4;
		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(18px, 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 {
	background: url(../img/kv.webp) no-repeat;
	background-size: 100%;
	width: 100%;
	height: 53vw;
	position: relative;
	overflow: hidden;
}

.mvHeader h1 {
	position: absolute;
	top: 33%;
	left: 31%;
	transform: translate(-50%, -50%);
	-webkit-transform: translate(-50%, -50%);
	-ms-transform: translate(-50%, -50%);
	width: 41.9%;
	z-index: 100;
	opacity: 0;
	animation: h1FadeIn 1s ease forwards;
	animation-delay: 1.5s;
}

@keyframes h1FadeIn {
	0% {
		opacity: 0;
	}
	100% {
		opacity: 1;
	}
}


@media screen and (max-width: 768px) {
	.mvHeader {
		background: url(../img/kv_sp.webp) no-repeat;
		background-size: 100%;
		height: 170vw;
	}
	.mvHeader h1 {
		width: 90%;
		top: 19%;
		left: 50%;
	}
}

/*
	headline
------------------------------ */
.headline {
	background: url(../img/headline-area-a.webp) no-repeat;
	background-size: 100%;
	width: 100%;
	height: 35vw;
	position: relative;
}

.headline .bg {
	background: url(../img/headline-area-b.webp) no-repeat;
	background-size: 100%;
	width: 100%;
	height: 45vw;
	position: absolute;
	top: -10vw;
	opacity: 1;
	transform: translateY(10vw);
	animation: contactFadeUp 1.6s ease forwards;
}

@keyframes contactFadeUp {
	0% {
		opacity: 1;
		transform: translateY(10vw);
	}
	100% {
		opacity: 1;
		transform: translateY(0);
	}
}

.headline .bg h2 {
	width: 54vw;
	position: absolute;
	top: 0;
	right: 0;
	opacity: 0;
	animation: h2FadeIn 1s ease forwards;
	animation-delay: 2s;
}

@keyframes h2FadeIn {
	0% {
		opacity: 0;
	}
	100% {
		opacity: 1;
	}
}

.headline .bg h2 img {
	width: 100%;
	max-width: max-content;
}

.headline .contents {
	max-width: 1366px;
	width: 100%;
	position: relative;
	opacity: 0;
	animation: txtFadeIn 1.5s ease forwards;
	animation-delay: 2.5s;
	margin: 0 auto;
	padding-top: 5vw;
}

@keyframes txtFadeIn {
	0% {
		opacity: 0;
	}
	100% {
		opacity: 1;
	}
}


.headline .contents h3 {
	color: #545454;
	text-align: center;
	font-size: min(24px, 1.757vw);
	font-weight: 500;
	line-height: 59px;
	letter-spacing: 0.72px;
}

.headline .contents .area_btn {
	display: flex;
	justify-content: center;
	align-items: center;
	margin-top: 61px;
}

.headline .contents .area_btn .btn {
	justify-content: flex-start;
	width: 371.738px;
	height: 89.24px;
	margin: 0 8.5px;
	padding-left: 90px;
}

.headline .contents .area_btn .btn::after {
	content: '';
	background: url(../img/arrow01.svg) no-repeat;
	background-size: 100%;
	display: block;
	width: 30px;
	height: 30px;
	position: absolute;
	top: 52%;
	right: 40px;
	transform: translate(-50%, -50%);
	-webkit-transform: translate(-50%, -50%);
	-ms-transform: translate(-50%, -50%);
}

.headline .itemA,
.headline .itemB {
	position: absolute;
	z-index: 10;
	opacity: 0;
	animation: itemFedIn 1.5s ease forwards;
	animation-delay: 2.5s;
}

@keyframes itemFedIn {
	0% {
		opacity: 0;
	}
	100% {
		opacity: 1;
	}
}


.headline .itemA {
	width: 80px;
	top: -8%;
	left: 110px;
}

.headline .itemB {
	width: 110px;
	top: 63%;
	right: 50px;
}

@media screen and (max-width: 768px) {
	.headline {
		background-size: cover;
		height: 140vw;
	}
	.headline .bg {
		background: url(../img/headline-area-b_sp.webp) no-repeat;
		background-size: 100%;
		width: 100%;
		height: 170vw;
		top: -40vw;
		transform: translateY(30vw);
	}
	.headline .bg h2 {
		width: 95vw;
		top: -11vw;
	}
	.headline .contents {
		padding-top: 0;
	}
	.headline .contents h3 {
		font-size: min(20px, 5.333vw);
		line-height: 42px;
		letter-spacing: 0.6px;
	}
	.headline .contents .area_btn {
		display: block;
		margin-top: 28px;
	}
	.headline .contents .area_btn .btn {
		width: 90%;
		margin: 0 auto;
		padding-left: 90px;
		font-size: min(25px, 6.667vw);
	}
	.headline .contents .area_btn .btn:first-child {
		margin-bottom: 16px;
	}
	.headline .itemA {
		width: 50px;
		top: -28%;
		left: 10px;
	}
	.headline .itemB {
		width: 65px;
		top: auto;
		right: 20px;
		bottom: -30%;
	}
}

/*
	visual-wrapper
------------------------------ */
.visual-wrapper {
	position: relative;
	width: 100%;
	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(16px, 4.267vw);
	}
	.visual-wrapper .overlay-bg .inner .area_nav a {
		width: 167px;
		height: 42px;
		margin: 0 20px;
		border-radius: 43px;
		font-size: min(16px, 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(12px, 3.2vw);
	}
}



/* ---------------------------------------------------
	agbMain
---------------------------------------------------- */
.agbMain .contents h2 {
	display: flex;
	justify-content: center;
	align-items: center;
	color: #fff;
	width: 313px;
	margin: 0 auto;
	font-size: 36px;
	font-weight: 500;
	text-align: center;
	padding: 71px 0 40px;
	position: relative;
}

.agbMain .contents ul {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	max-width: 895px;
	margin: 0 auto;
	position: relative;
}

.agbMain .contents ul li {
	width: 48%;
	background: #fff;
	margin: 0 0 40px;
	padding: 5px;
	border-radius: 16px;
	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: 16px;
	border-top-right-radius: 16px;
}

.agbMain .contents ul li .flexbox {
	display: flex;
	align-items: center;
	height: 90px;
	margin: 0 37px;
}

.agbMain .contents ul li .flexbox h3 {
	color: #35CAD4;
	text-align: left;
	font-size: min(24px, 1.757vw);
	font-weight: 600;
	line-height: 33px;
}

.agbMain .contents ul li .flexbox h4 {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 56.799px;
	height: 56.799px;
	border-radius: 8px;
	background: #35CAD4;
	color: #fff;
	font-size: min(18px, 1.318vw);
	margin-right: 10px;
}

.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: #35CAD4;
	color: #fff;
	width: 84%;
	height: 52px;
	margin: 0 auto 36px;
	border-radius: 8px;
	text-decoration: none;
	font-size: min(17px, 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 #nisi.contents ul li .flexbox h3 {
	color: #5DC5B9;
}

.agbMain #nisi.contents ul li .flexbox h4 {
	background: #5DC5B9;
}

.agbMain #nisi.contents ul li a {
	background: #5DC5B9;
}

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

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

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

.agbMain .banner .inner a p {
	font-size: min(22px, 1.611vw);
	padding-bottom: 10px;
}

@media screen and (max-width: 768px) {
	.agbMain .contents h2 {
		width: 70%;
		font-size: min(26px, 6.933vw);
		font-weight: 500;
		text-align: center;
		padding: 50px 0 30px;
	}
	.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 .flexbox {
		margin: 0 20px;
	}
	.agbMain .contents ul li .flexbox h3 {
		height: auto;
		font-size: min(19px, 5.067vw);
		line-height: 26.558px;
		/* margin: 20px auto 5px; */
	}
	.agbMain .contents ul li .flexbox h4 {
		width: 45.712px;
		height: 45.712px;
		font-size: min(13px, 3.467vw);
		/* margin-top: 10px; */
	}
	.agbMain .contents ul li p {
		height: auto;
		font-size: min(14px, 3.733vw);
		padding: 0 20px 30px;
	}
	.agbMain .contents ul li a {
		width: 84%;
		height: 52px;
		margin: 0 auto;
		font-size: min(15px, 4vw);
	}
	.agbMain .banner {
		padding: 40px 0;
	}
	.agbMain .banner .inner {
		display: block;
	}
	.agbMain .banner .inner a {
		width: 80%;
		margin: 0 auto 30px;
	}
	.agbMain .banner .inner a p {
		font-size: min(15px, 4vw);
		padding-bottom: 5px;
	}
}


.agbMain #higasi {
	background: url(../img/east-japan-area.webp) no-repeat;
	background-size: cover;
}

.agbMain #nisi {
	background: url(../img/west-japan-area.webp) no-repeat;
	background-size: cover;
}

@media screen and (max-width: 768px) {
	.agbMain #higasi {
		background: url(../img/east-japan-area.webp) repeat-y;
		background-size: 100%;
	}
	.agbMain #nisi {
		background: url(../img/west-japan-area.webp) repeat-y;
		background-size: 100%;
	}
}

.box {
	max-width: 1366px;
	margin: 0 auto;
	padding-bottom: 100px;
	position: relative;
}

.box .itemC,
.box .itemD,
.box .itemE,
.box .itemF,
.box .itemG,
.box .itemH,
.box .itemI,
.box .itemJ {
	position: absolute;
}

.box .itemC {
	width: 80px;
	top: -7%;
	left: 80px;
}

.box .itemD {
	width: 120px;
	top: 38%;
	right: 40px;
}

.box .itemE {
	width: 100px;
	top: 82%;
	left: 60px;
}

.box .itemF {
	width: 150px;
	top: -4%;
	right: 46px;
}

.box .itemG {
	width: 120px;
	top: 22%;
	left: 46px;
}

.box .itemH {
	width: 100px;
	top: 45%;
	right: 60px;
}

.box .itemI {
	width: 100px;
	top: 68%;
	left: 60px;
}

.box .itemJ {
	width: 85px;
	top: 94%;
	right: 60px;
}

@media screen and (max-width: 768px) {
	.box {
		padding-bottom: 60px;
	}
	.box .itemC,
	.box .itemD,
	.box .itemE,
	.box .itemF,
	.box .itemG,
	.box .itemH,
	.box .itemI,
	.box .itemJ {
		display: none;
	}

}