.splash * {
	pointer-events: none;
}

#splash {
	position: fixed;
	width: 100%;
	height: 100%;
	pointer-events: none;
	z-index: 99999;
	transition: height 1.2s 0.4s;
	overflow: hidden;
}
#splash:after {
	content: "";
	display: block;
	position: absolute;
	width: 100%;
	height: 100vh;
	top: 0px;
	left: 0px;
	background: url(../images/logow.svg) no-repeat center center;
	background-size: 340px auto;
	transition: top 1.2s 0.4s;
}
.sp #splash:after {
	background-size: 200px auto;
}
#splash:before {
	content: "";
	display: block;
	position: absolute;
	width: 625vw;
	height: 625vw;
	bottom: 0%;
	left: 50%;
	background: #0053b0;
	border-radius: 0%;
	transform: translateX(-50%);
	transition: width 1.2s 0.4s, height 1.2s 0.4s, bottom 1.2s 0.4s, border-radius 1.0s;
}
#splash.on {
	height: 0%;
}
#splash.on:after {
	top: -60vh;
}
#splash.on:before {
	width: 100vw;
	height: 100vw;
	border-radius: 50%;
}

.toppage #visualstage {
	background: #000;
}

body:before {
	content: "";
	display: block;
	position: fixed;
	top: 0px;
	left: 0px;
	width: 100%;
	height: 260px;
	background: -moz-linear-gradient(top, #454858 0%, rgba(0, 0, 0, 0) 100%);
	background: -webkit-linear-gradient(top, #454858 0%, rgba(0, 0, 0, 0) 100%);
	background: linear-gradient(to bottom, #454858 0%, rgba(0, 0, 0, 0) 100%);
	filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#454858', endColorstr='#00000000',GradientType=0 );
	opacity: 0.5;
	pointer-events: none;
}
.compactheader body:before {
	opacity: 0;
}
.sp body:before {
	opacity: 0;
}

#topvisual {
	position: relative;
	height: 100vh;
	transition: opacity 800ms;
	z-index: 10;
	pointer-events: none;
}
.tablet #topvisual {
	height: 42.5vw;
}
.sp #topvisual {
	height: calc(42.5vw + 56px);
}
.compactheader #topvisual {
	opacity: 0;
}
#topvisual .catch {
	position: fixed;
	top: 50%;
	left: 50%;
	width: 100%;
	text-align: center;
	transform: translate(-50%, -50%);
}
.tablet #topvisual .catch {
	position: absolute;
	top: calc((42.5vw) / 2);
}
.sp #topvisual .catch {
	top: calc((42.5vw) / 2 + 56px);
}
#topvisual .catch img {
	display: block;
	margin: auto;
	max-width: 100%;
	height: auto;
}
.sp #topvisual .catch img {
	max-width: 60%;
}
#topvisual .catch p {
	margin-top: -1.2em;
	font-size: min(1.4285714286vw, 24px);
	font-weight: 500;
	color: #fff;
}
.tablet #topvisual .catch p {
	font-size: min(2.1951219512vw, 18px);
}
.sp #topvisual .catch p {
	font-size: min(5.3748620085vw, 20.1557325319px);
}
.sp #topvisual .catch p {
	display: none;
}
#topvisual:before {
	content: "";
	display: block;
	position: fixed;
	left: 50%;
	bottom: 40px;
	width: 2px;
	height: 80px;
	margin-left: -1px;
	background: rgba(255, 255, 255, 0.3);
}
#topvisual:after {
	content: "";
	display: block;
	position: fixed;
	left: 50%;
	bottom: 40px;
	width: 2px;
	height: 0px;
	margin-left: -1px;
	background: #fff;
	animation: drop 1.5s cubic-bezier(0.25, 0.46, 0.45, 0.94) infinite;
}

@keyframes drop {
	0% {
		bottom: 120px;
		height: 0px;
	}
	70% {
		bottom: 120px;
		height: 0px;
	}
	85% {
		bottom: 40px;
		height: 80px;
	}
	100% {
		bottom: 40px;
		height: 0px;
	}
}
.block2 h2, .block3 h2, .block4 h2, .block5 h2, .blocklocal h2 {
	position: relative;
	margin: 0px 0px 90px;
	padding: 0px;
	font-size: min(4.7619047619vw, 80px);
	line-height: 1.3;
	font-weight: 700;
}
.sp .block2 h2, .block2 .sp h2, .sp .block3 h2, .block3 .sp h2, .sp .block4 h2, .block4 .sp h2, .sp .block5 h2, .block5 .sp h2, .sp .blocklocal h2, .blocklocal .sp h2 {
	font-size: min(10.6666666667vw, 40px);
}
.block2 h2 span, .block3 h2 span, .block4 h2 span, .block5 h2 span, .blocklocal h2 span {
	display: inline-block;
}
.block2 h2:before, .block3 h2:before, .block4 h2:before, .block5 h2:before, .blocklocal h2:before {
	content: attr(data-sub);
	display: block;
	margin-bottom: 20px;
	font-size: min(2.0238095238vw, 34px);
	line-height: 1.3;
	font-weight: 700;
	color: #656565;
	font-family: 'Roboto', sans-serif;
}
.sp .block2 h2:before, .block2 .sp h2:before, .sp .block3 h2:before, .block3 .sp h2:before, .sp .block4 h2:before, .block4 .sp h2:before, .sp .block5 h2:before, .block5 .sp h2:before, .sp .blocklocal h2:before, .blocklocal .sp h2:before {
	font-size: min(4.2666666667vw, 16px);
}
.sp .block2 h2:before, .block2 .sp h2:before, .sp .block3 h2:before, .block3 .sp h2:before, .sp .block4 h2:before, .block4 .sp h2:before, .sp .block5 h2:before, .block5 .sp h2:before, .sp .blocklocal h2:before, .blocklocal .sp h2:before {
	margin-bottom: 10px;
}

.block1 {
	position: relative;
	overflow: hidden;
	z-index: 10;
}
.block1:before {
	content: "";
	display: block;
	position: absolute;
	width: 625vw;
	height: 625vw;
	bottom: 0px;
	left: 50%;
	border-radius: 50%;
	transform: translateX(-50%);
	box-shadow: 0px 0px 0px 4vw #fff;
}
.block1 > div {
	width: 100%;
	max-width: 1920px;
	margin: auto;
	padding: 60px 40px 110px;
}
.tablet .block1 > div {
	padding-bottom: 0px;
}
.sp .block1 > div {
	padding-left: 15px;
	padding-right: 15px;
	padding-bottom: 0px;
}
.block1 .list {
	position: relative;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 40px;
	z-index: 0;
}
.pc .block1 .list {
	gap: 20px;
}
.sp .block1 .list {
	gap: 2px;
}
.sp .block1 .list.left {
	justify-content: flex-start;
}
.block1 .list > div {
	width: calc((100% - 120px) / 4);
}
.pc .block1 .list > div {
	width: calc((100% - 60px) / 4);
}
.sp .block1 .list > div {
	width: calc((100% - 2px) / 2);
}
.block1 .list > div > div,
.block1 .list > div > a {
	position: relative;
	display: block;
	height: 100%;
	overflow: hidden;
}
.block1 .list > div > div:before,
.block1 .list > div > a:before {
	content: "";
	display: block;
	position: absolute;
	width: 100%;
	height: 65%;
	top: 0px;
	left: 0px;
	background: -moz-linear-gradient(top, black 0%, rgba(0, 0, 0, 0) 100%);
	background: -webkit-linear-gradient(top, black 0%, rgba(0, 0, 0, 0) 100%);
	background: linear-gradient(to bottom, black 0%, rgba(0, 0, 0, 0) 100%);
	filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#000000', endColorstr='#00000000',GradientType=0 );
}
.block1 .list > div > div .image,
.block1 .list > div > a .image {
	position: relative;
	height: 100%;
	z-index: -2;
	transition: transform 600ms;
}
.block1 .list > div > div .image img,
.block1 .list > div > a .image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.block1 .list > div > div .title, .block1 .list > div > a .title {
	position: absolute;
	top: 30px;
	left: 30px;
	max-width: calc(100% - 60px);
	font-size: min(1.7857142857vw, 30px);
	line-height: 1.5;
	font-weight: 500;
	color: #fff;
	overflow-wrap: break-word;
}
.sp .block1 .list > div > div .title,
.sp .block1 .list > div > a .title {
	font-size: min(4.2666666667vw, 16px);
}
.pc .block1 .list > div > div .title, .pc .block1 .list > div > a .title {
	top: 20px;
	left: 20px;
	max-width: calc(100% - 40px);
}
.tablet .block1 .list > div > div .title, .tablet .block1 .list > div > a .title {
	top: 15px;
	left: 15px;
	max-width: calc(100% - 30px);
}
.block1 .list > div > div .more, .block1 .list > div > a .more {
	display: none;
	position: absolute;
	width: 48px;
	height: 48px;
	top: 30px;
	right: 30px;
	background: url(../images/arrow_mw.svg) no-repeat center center;
}
.pc .block1 .list > div > div .more,
.pc .block1 .list > div > a .more {
	top: 15px;
	right: 10px;
}
.tablet .block1 .list > div > div .more, .tablet .block1 .list > div > a .more {
	width: 32px;
	height: 32px;
}
.block1 .list > div > div .more:before, .block1 .list > div > a .more:before {
	content: "";
	display: block;
	position: absolute;
	top: 50%;
	left: 50%;
	width: 100%;
	height: 100%;
	background: url(../images/more.svg) no-repeat center center;
	background-size: 100%;
	transform: translate(-50%, -50%);
}
.block1 .list > div > div .more:after, .block1 .list > div > a .more:after {
	content: "";
	display: block;
	position: absolute;
	top: 50%;
	left: 50%;
	width: 100%;
	height: 100%;
	transform: translate(-50%, -50%);
	background: url(../images/arrow_m.svg) no-repeat center center;
	opacity: 0;
	transition: 0.4s;
}
.block1 .list > div > div .more svg, .block1 .list > div > a .more svg {
	transform: rotate(-90deg);
	width: 100%;
	height: 100%;
}
.block1 .list > div > div .more svg circle, .block1 .list > div > a .more svg circle {
	stroke: #0053b0;
	stroke-width: 6px;
	width: 100%;
	height: 100%;
	fill: transparent;
	stroke-dashoffset: 283px;
	stroke-dasharray: 283px;
	stroke-linecap: round;
	transition: stroke-dashoffset 0.7s cubic-bezier(0.23, 1, 0.32, 1);
}
.block1 .list > div > div .category, .block1 .list > div > a .category {
	position: absolute;
	display: flex;
	align-items: flex-end;
	justify-content: flex-end;
	width: 30%;
	height: 30%;
	bottom: 0px;
	right: 0px;
	padding: 2.5%;
	font-size: min(1.6666666667vw, 28px);
	line-height: 1;
	font-weight: 400;
	color: #fff;
}
.tablet .block1 .list > div > div .category,
.tablet .block1 .list > div > a .category {
	font-size: min(1.9512195122vw, 16px);
}
.sp .block1 .list > div > div .category, .sp .block1 .list > div > a .category {
	font-size: min(5.3333333333vw, 20px);
}
.tablet .block1 .list > div > div .category, .tablet .block1 .list > div > a .category {
	width: 40%;
	height: 40%;
}
.sp .block1 .list > div > div .category, .sp .block1 .list > div > a .category {
	width: 35%;
	height: 35%;
}
.block1 .list > div > div .category:before, .block1 .list > div > a .category:before {
	content: "";
	display: block;
	position: absolute;
	bottom: 0px;
	right: 0px;
	width: 170%;
	height: 170%;
	background: rgba(0, 0, 0, 0.4);
	transform: translate(50%, 50%) rotate(-45deg);
	z-index: -1;
}
.block1 .list > div > a .title:before {
	content: "";
	display: block;
	float: right;
	width: 60px;
	height: 55px;
}
.pc .block1 .list > div > a .title:before {
	width: 45px;
	height: 50px;
}
.tablet .block1 .list > div > a .title:before {
	width: 40px;
	height: 35px;
}
.block1 .list > div > a .more {
	display: block;
}
.block1 .list > div > a:hover .image {
	transform: scale(1.15);
}
.block1 .list > div > a:hover .more svg circle {
	stroke-dashoffset: 0px;
}
.block1 .list > div > a:hover .more:after {
	opacity: 1;
}

.block2 {
	position: relative;
	z-index: 10;
}
.block2 .head {
	position: relative;
	width: 100%;
	max-width: 1760px;
	margin: auto;
	padding: 160px 40px 65px;
}
.tablet .block2 .head {
	padding: 80px 20px 32.5px;
}
.sp .block2 .head {
	padding: 80px 15px 32.5px;
}
.block2 .head:before {
	content: "";
	display: block;
	position: absolute;
	width: 100vw;
	height: 100%;
	top: 0px;
	left: 50%;
	margin-left: -50vw;
	background: #fff;
}
.block2 h2 {
	margin-bottom: 0px;
	letter-spacing: 0.5em;
}
.block2 h2.langen {
	letter-spacing: 0;
}
.block2 h2:before {
	letter-spacing: 0;
}
.block2 .list1 {
	position: relative;
	height: 960px;
	min-height: 720px;
	max-height: calc(100vh - 65px);
	background: #fff;
	overflow: hidden;
}
.tablet .block2 .list1 {
	height: 560px;
	min-height: 0px;
}
.sp .block2 .list1 {
	height: auto;
	max-height: 1000vh;
}
.block2 .list1 .bg {
	position: absolute;
	top: 0px;
	left: 0px;
	width: 100%;
	height: 100%;
	opacity: 0;
	transition: opacity 600ms;
}
.sp .block2 .list1 .bg {
	display: none;
}
.block2 .list1 .bg div {
	position: absolute;
	top: 0px;
	left: 0px;
	width: 100%;
	height: 100%;
	background: none no-repeat center center;
	background-size: cover;
	opacity: 0;
	transition: opacity 600ms, transform 20s cubic-bezier(0, 1, 0.15, 1);
	transform: scale(1.15);
}
.block2 .list1 .bg div.view {
	opacity: 1;
	transform: scale(1);
}
.block2 .list1.hover .bg {
	opacity: 1;
}
.block2 .list1.hover .panel:before {
	opacity: 0;
}
.sp .block2 .list1.hover .panel:before {
	opacity: 1;
}
.block2 .list1.hover .panel:not(.active) > a, .block2 .list1.hover .panel:not(.active) .case {
	opacity: 0.5;
}
.sp .block2 .list1.hover .panel:not(.active) > a, .sp .block2 .list1.hover .panel:not(.active) .case {
	opacity: 1;
}
.block2 .list1.langen .panel > a .title {
	font-size: min(2.2619047619vw, 38px);
	line-height: 1.3;
	font-weight: 500;
}
.sp .block2 .list1.langen .panel > a .title {
	font-size: min(7.4666666667vw, 28px);
}
.block2 .list1.langen .panel > a .title span {
	display: inline-block;
	margin-top: 10px;
	font-size: min(1.5476190476vw, 26px);
	line-height: 1;
}
.sp .block2 .list1.langen .panel > a .title span {
	font-size: min(5.3333333333vw, 20px);
}
.sp .block2 .list1.langen .panel > a .title span {
	display: block;
}
.block2 .list1.langen .panel > a .title div {
	display: flex;
	align-items: center;
	min-height: 2.6em;
}
.sp .block2 .list1.langen .panel > a .title div {
	min-height: 0;
}
.sp .block2 .list1.langen .panel > a .title br {
	display: none;
}
.block2 .list1.langen .panel .case .title {
	font-size: min(1.4285714286vw, 24px);
	line-height: 1;
	font-weight: 500;
	color: #fff;
}
.sp .block2 .list1.langen .panel .case .title {
	font-size: min(5.3333333333vw, 20px);
}
.sp .block2 .list1.langen .panel .case .title {
	color: #000000;
}
.block2 .list1.langen .panel .case .title:after {
	height: 2px;
}
.block2 .list1 .panel {
	position: absolute;
	width: calc((100% - 2px) / 3);
}
.sp .block2 .list1 .panel {
	position: relative;
	width: 100%;
}
.block2 .list1 .panel:before {
	content: "";
	display: block;
	position: absolute;
	width: 100%;
	height: 100%;
	top: 0px;
	left: 0px;
	background: none no-repeat center center;
	background-size: cover;
	z-index: 0;
	transition: opacity 600ms;
}
.sp .block2 .list1 .panel:before {
	height: 53.33333333333333vw;
}
.block2 .list1 .panel:after {
	content: "";
	display: block;
	position: absolute;
	width: 100%;
	height: 100%;
	top: 0px;
	left: 0px;
	background: rgba(0, 0, 0, 0.5);
	z-index: 1;
	transition: opacity 600ms;
}
.sp .block2 .list1 .panel:after {
	height: 53.33333333333333vw;
}
.block2 .list1 .panel > a {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	width: 100%;
	height: 100%;
	color: #fff;
	z-index: 5;
	transition: opacity 600ms;
}
.tablet .block2 .list1 .panel > a {
	padding-bottom: 40%;
}
.sp .block2 .list1 .panel > a {
	padding-bottom: 0%;
	height: 53.33333333333333vw;
}
.block2 .list1 .panel > a .title {
	font-size: min(2.8571428571vw, 48px);
	line-height: 1.48;
	font-weight: 500;
	font-weight: 500;
	text-align: center;
}
.sp .block2 .list1 .panel > a .title {
	font-size: min(7.4666666667vw, 28px);
}
.block2 .list1 .panel > a .title span {
	display: block;
	font-size: min(1.9047619048vw, 32px);
	line-height: 1.48;
}
.sp .block2 .list1 .panel > a .title span {
	font-size: min(5.3333333333vw, 20px);
}
.block2 .list1 .panel > a .more {
	position: relative;
	margin-top: 40px;
	width: 96px;
	height: 96px;
	background: url(../images/arroww.svg) no-repeat center center;
}
.sp .block2 .list1 .panel > a .more {
	margin-top: 10px;
	width: 40px;
	height: 40px;
	background-size: 25% auto;
}
.block2 .list1 .panel > a .more:before {
	content: "";
	display: block;
	position: absolute;
	top: 50%;
	left: 50%;
	width: 100%;
	height: 100%;
	background: url(../images/more.svg) no-repeat center center;
	background-size: 100%;
	transform: translate(-50%, -50%);
}
.block2 .list1 .panel > a .more:after {
	content: "";
	display: block;
	position: absolute;
	top: 50%;
	left: 50%;
	width: 100%;
	height: 100%;
	transform: translate(-50%, -50%);
	background: url(../images/arrow.svg) no-repeat center center;
	opacity: 0;
	transition: 0.4s;
}
.sp .block2 .list1 .panel > a .more:after {
	background-size: 25% auto;
}
.block2 .list1 .panel > a .more svg {
	transform: rotate(-90deg);
	width: 100%;
	height: 100%;
}
.block2 .list1 .panel > a .more svg circle {
	stroke: #0053b0;
	stroke-width: 6px;
	width: 100%;
	height: 100%;
	fill: transparent;
	stroke-dashoffset: 283px;
	stroke-dasharray: 283px;
	stroke-linecap: round;
	transition: stroke-dashoffset 0.7s cubic-bezier(0.23, 1, 0.32, 1);
}
.block2 .list1 .panel > a:hover .more svg circle {
	stroke-dashoffset: 0px;
}
.block2 .list1 .panel > a:hover .more:after {
	opacity: 1;
}
.block2 .list1 .panel .case {
	position: absolute;
	bottom: 50px;
	left: 0px;
	width: 100%;
	text-align: center;
	z-index: 10;
	pointer-events: none;
	transition: opacity 600ms;
}
.sp .block2 .list1 .panel .case {
	position: static;
	padding: 20px 15px 40px;
}
.block2 .list1 .panel .case .title {
	position: relative;
	display: inline-block;
	padding-bottom: 20px;
	padding-left: 0.2em;
	font-size: min(2.1428571429vw, 36px);
	line-height: 1;
	font-weight: 500;
	color: #fff;
	text-align: center;
	letter-spacing: 0.2em;
}
.sp .block2 .list1 .panel .case .title {
	font-size: min(5.3333333333vw, 20px);
}
.sp .block2 .list1 .panel .case .title {
	color: #000000;
}
.block2 .list1 .panel .case .title:after {
	content: "";
	display: block;
	position: absolute;
	width: calc(100% - 0.4em);
	height: 4px;
	bottom: 0px;
	left: 0.2em;
	background: #fff;
}
.sp .block2 .list1 .panel .case .title:after {
	background: #000000;
}
.block2 .list1 .panel .case .caselink {
	margin-top: min(30px, 1.5625vw);
}
.sp .block2 .list1 .panel .case .caselink {
	margin-top: 20px;
}
.block2 .list1 .panel .case .caselink ul {
	display: flex;
	justify-content: center;
	gap: min(40px, 2.0833333333vw);
}
.sp .block2 .list1 .panel .case .caselink ul {
	gap: 20px;
}
.block2 .list1 .panel .case .caselink a {
	display: flex;
	align-items: center;
	height: min(48px, 2.5vw);
	min-height: 32px;
	font-size: min(1.6666666667vw, 28px);
	line-height: 1;
	font-weight: 500;
	color: #fff;
	pointer-events: auto;
}
.sp .block2 .list1 .panel .case .caselink a {
	font-size: min(4.2666666667vw, 16px);
}
.sp .block2 .list1 .panel .case .caselink a {
	color: #000000;
	justify-content: center;
}
.block2 .list1 .panel .case .caselink a span {
	margin-right: min(20px, 1.0416666667vw);
}
.sp .block2 .list1 .panel .case .caselink a span {
	margin-right: 10px;
}
.block2 .list1 .panel .case .caselink a .more {
	position: relative;
	width: min(48px, 2.5vw);
	min-width: 32px;
	height: min(48px, 2.5vw);
	min-height: 32px;
	background: url(../images/arrow_mw.svg) no-repeat center center;
}
.sp .block2 .list1 .panel .case .caselink a .more {
	width: 20px;
	height: 20px;
	background-image: url(../images/arrow_mb.svg);
}
.block2 .list1 .panel .case .caselink a .more:before {
	content: "";
	display: block;
	position: absolute;
	top: 50%;
	left: 50%;
	width: 100%;
	height: 100%;
	background: url(../images/more.svg) no-repeat center center;
	background-size: 100%;
	transform: translate(-50%, -50%);
}
.sp .block2 .list1 .panel .case .caselink a .more:before {
	background-image: url(../images/moreb.svg);
}
.block2 .list1 .panel .case .caselink a .more:after {
	content: "";
	display: block;
	position: absolute;
	top: 50%;
	left: 50%;
	width: 100%;
	height: 100%;
	transform: translate(-50%, -50%);
	background: url(../images/arrow_m.svg) no-repeat center center;
	opacity: 0;
	transition: 0.4s;
}
.block2 .list1 .panel .case .caselink a .more svg {
	transform: rotate(-90deg);
	width: 100%;
	height: 100%;
}
.block2 .list1 .panel .case .caselink a .more svg circle {
	stroke: #0053b0;
	stroke-width: 6px;
	width: 100%;
	height: 100%;
	fill: transparent;
	stroke-dashoffset: 283px;
	stroke-dasharray: 283px;
	stroke-linecap: round;
	transition: stroke-dashoffset 0.7s cubic-bezier(0.23, 1, 0.32, 1);
}
.block2 .list1 .panel .case .caselink a:hover .more svg circle {
	stroke-dashoffset: 0px;
}
.block2 .list1 .panel .case .caselink a:hover .more:after {
	opacity: 1;
}
.block2 .list1 .p1 {
	top: 0px;
	left: 0px;
	height: 100%;
	border-right: 1px solid #fff;
}
.sp .block2 .list1 .p1 {
	border-right: 0px;
	border-bottom: 1px solid #fff;
}
.block2 .list1 .p1:before {
	background-image: url(../../images/p01.jpg);
}
.sp .block2 .list1 .p1:before {
	background-image: url(../../images/p01bg.jpg);
}
.block2 .list1 .p2 {
	top: 0px;
	left: calc((100% - 2px) / 3 + 1px);
	height: 100%;
	border-right: 1px solid #fff;
}
.sp .block2 .list1 .p2 {
	top: auto;
	left: 0px;
	border-right: 0px;
	border-bottom: 1px solid #fff;
}
.block2 .list1 .p2:before {
	background-image: url(../../images/p02.jpg);
}
.block2 .list1 .p3 {
	top: 0px;
	right: 0px;
	height: 100%;
}
.sp .block2 .list1 .p3 {
	top: auto;
	bottom: 0px;
	right: auto;
	left: 0px;
}
.block2 .list1 .p3:before {
	background-image: url(../../images/p03.jpg);
}
.block2 .list1 .p3 > a .more {
	background-image: url(../images/blankw.svg);
}
.block2 .list1 .p3 > a .more:after {
	background-image: url(../images/blank.svg);
}

.block3 {
	position: relative;
	background: url(../../images/valuebg.png) no-repeat top center #fff;
	background-size: 100% auto;
	z-index: 10;
}
.block3 > div {
	position: relative;
	width: 100%;
	max-width: 1760px;
	margin: auto;
	padding: 170px 40px 160px;
}
.tablet .block3 > div {
	padding: 85px 20px 80px;
}
.sp .block3 > div {
	padding: 85px 15px 80px;
}
.sp .block3 > div {
	padding-top: 40px;
	padding-bottom: 50px;
}
.block3 h2 {
	margin-bottom: 50px;
}
.block3 ul {
	position: relative;
	display: flex;
	gap: 3.27526132404181%;
	max-width: 1435px;
	max-width: 1188px;
	margin: auto;
}
.sp .block3 ul {
	flex-wrap: wrap;
	gap: 12px;
}
.block3 ul:before {
	content: "";
	display: block;
	position: absolute;
	width: calc(100% - ((100% - 16.37630662020906%) / 6));
	width: calc(100% - ((100% - 15.82491582491582%) / 5));
	height: 14px;
	left: 50%;
	top: min(6.45vw, 100px);
	margin-top: -7px;
	background: #0053b0;
	border-radius: 7px;
	transform: translateX(-50%);
}
.sp .block3 ul:before {
	width: 8px;
	top: 50px;
	left: 50px;
	height: calc(100% - 100px);
}
.block3 ul li {
	width: calc((100% - 16.37630662020906%) / 6);
	width: calc((100% - 15.82491582491582%) / 5);
}
.sp .block3 ul li {
	width: 100%;
}
.block3 ul a {
	display: block;
	color: #000000;
}
.sp .block3 ul a {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 100px;
	padding-left: 120px;
}
.block3 ul a .image {
	position: relative;
	width: 100%;
	height: 0px;
	padding-top: 100%;
}
.sp .block3 ul a .image {
	position: absolute;
	width: 100px;
	height: 100px;
	padding-top: 0%;
	left: 0px;
	top: 0px;
}
.block3 ul a .image:before {
	content: "";
	display: block;
	position: absolute;
	top: 50%;
	left: 50%;
	width: 100%;
	height: 100%;
	background: url(../../images/v.svg) no-repeat center center;
	background-size: 100%;
	border-radius: 50%;
	box-shadow: 2px 6px 24px rgba(0, 0, 0, 0.09);
	transform: translate(-50%, -50%);
}
.block3 ul a .image svg {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 100%;
	height: 100%;
	transform: translate(-50%, -50%) rotate(-90deg);
	z-index: 0;
	opacity: 0;
	transition: opacity 1000ms;
}
.block3 ul a .image svg circle {
	stroke: #0053b0;
	stroke-width: 15px;
	width: 100%;
	height: 100%;
	fill: transparent;
	stroke-dashoffset: 519px;
	stroke-dasharray: 519px;
	stroke-linecap: round;
	transition: stroke-dashoffset 1.3s cubic-bezier(0.23, 1, 0.32, 1);
}
.block3 ul a .image img {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 55%;
	max-width: 90px;
	height: auto;
	transform: translate(-50%, -50%);
	z-index: 5;
}
.block3 ul a:hover svg {
	opacity: 1;
	transition: opacity 400ms;
}
.block3 ul a:hover svg circle {
	stroke-dashoffset: 0px;
}
.block3 ul a .title {
	margin-top: 30px;
	font-size: min(1.3095238095vw, 22px);
	font-weight: 700;
	text-align: center;
}
.tablet .block3 ul a .title {
	font-size: min(2.012195122vw, 16.5px);
}
.sp .block3 ul a .title {
	font-size: min(5.0286561483vw, 18.857460556px);
}
.sp .block3 ul a .title {
	margin-top: 0px;
	text-align: left;
}
.block3 ul a .info {
	margin-top: 16px;
	font-size: min(1.0714285714vw, 18px);
	line-height: 1.7;
	text-align: center;
}
.tablet .block3 ul a .info {
	font-size: min(1.6463414634vw, 13.5px);
}
.sp .block3 ul a .info {
	font-size: min(4.2967192587vw, 16.1126972201px);
}
.sp .block3 ul a .info {
	margin-top: 5px;
	text-align: left;
}

.block4 {
	position: relative;
	background: rgba(19, 47, 95, 0.75);
	overflow: hidden;
	z-index: 5;
}
.block4 > div {
	position: relative;
	width: 100%;
	max-width: 1760px;
	margin: auto;
	padding: 120px 40px 180px;
}
.tablet .block4 > div {
	padding: 60px 20px 90px;
}
.sp .block4 > div {
	padding: 60px 15px 90px;
}
.sp .block4 > div {
	padding-top: 30px;
	padding-bottom: 40px;
}
.block4 h2 {
	margin-bottom: 75px;
	color: #fff;
}
.block4 h2:before {
	color: rgba(255, 255, 255, 0.7);
}
.sp .block4 h2 {
	margin-bottom: 30px;
}
.block4 p {
	max-width: 1215px;
	margin: auto;
	font-size: min(1.0714285714vw, 18px);
	line-height: 2;
	font-weight: 500;
	color: #fff;
}
.tablet .block4 p {
	font-size: min(1.6463414634vw, 13.5px);
}
.sp .block4 p {
	font-size: min(4.2967192587vw, 16.1126972201px);
}
.block4 .list {
	position: relative;
	margin-top: 90px;
}
.sp .block4 .list {
	margin-top: 40px;
}
.block4 .list:before {
	content: "";
	display: block;
	position: absolute;
	width: 100vw;
	height: 100vh;
	top: 105px;
	left: 50%;
	background: #fff;
	transform: translateX(-50%);
	z-index: -1;
}
.sp .block4 .list:before {
	top: 40px;
}
.block4 .list ul {
	display: flex;
	gap: 40px;
	justify-content: center;
}
.sp .block4 .list ul {
	flex-wrap: wrap;
	gap: 35px;
}
.block4 .list ul li {
	width: calc((100% - 120px) / 4);
	max-width: 240px;
}
.sp .block4 .list ul li {
	width: calc((100% - 65px) / 2);
}
.block4 .list ul a {
	display: block;
}
.block4 .list ul a:hover .image {
	border-radius: 50%;
}
.block4 .list ul a .image {
	border-radius: 8%;
	transition: border-radius 400ms;
	overflow: hidden;
}
.block4 .list ul a .image img {
	display: block;
	max-width: 100%;
	height: auto;
}
.block4 .list ul a .title {
	margin-top: 20px;
	font-size: min(1.3095238095vw, 22px);
	line-height: 1.3;
	font-weight: 700;
	color: #000000;
	text-align: center;
	letter-spacing: -.01em;
}
.tablet .block4 .list ul a .title {
	font-size: min(2.012195122vw, 16.5px);
}
.sp .block4 .list ul a .title {
	font-size: min(5.0286561483vw, 18.857460556px);
}
.block4 .list ul a .title span {
	display: inline-block;
}
.sp .block4 .list ul a .title {
	margin-top: 5px;
}

.block5 {
	position: relative;
	background: #fff;
	overflow: hidden;
}
.block5:before {
	content: "";
	display: block;
	position: absolute;
	width: 625vw;
	height: 625vw;
	top: 0px;
	left: 50%;
	background: #F2F7FC;
	border-radius: 50%;
	transform: translateX(-50%);
}
.block5 > div {
	position: relative;
	width: 100%;
	max-width: 1760px;
	margin: auto;
	padding: 160px 40px 135px;
}
.tablet .block5 > div {
	padding: 80px 20px 67.5px;
}
.sp .block5 > div {
	padding: 80px 15px 67.5px;
}
.sp .block5 > div {
	padding-top: 40px;
	padding-bottom: 50px;
}
.block5 h2 {
	margin-bottom: 30px;
}
.sp .block5 .button {
	margin-top: 30px;
	text-align: center;
}
.block5 .button a {
	display: flex;
	align-items: center;
	height: 32px;
	font-size: min(1.0714285714vw, 18px);
	color: #000000;
}
.tablet .block5 .button a {
	font-size: min(1.6463414634vw, 13.5px);
}
.sp .block5 .button a {
	font-size: min(4.2967192587vw, 16.1126972201px);
}
.sp .block5 .button a {
	justify-content: center;
}
.block5 .button a span {
	margin-right: 18px;
}
.block5 .button a .more {
	position: relative;
	width: 32px;
	height: 32px;
	background: url(../images/arrow_sb.svg) no-repeat center center;
}
.sp .block5 .button a .more {
	width: 20px;
	height: 20px;
}
.block5 .button a .more:before {
	content: "";
	display: block;
	position: absolute;
	top: 50%;
	left: 50%;
	width: 100%;
	height: 100%;
	background: url(../images/moreb.svg) no-repeat center center;
	background-size: 100%;
	transform: translate(-50%, -50%);
}
.block5 .button a .more:after {
	content: "";
	display: block;
	position: absolute;
	top: 50%;
	left: 50%;
	width: 100%;
	height: 100%;
	transform: translate(-50%, -50%);
	background: url(../images/arrow_s.svg) no-repeat center center;
	opacity: 0;
	transition: 0.4s;
}
.block5 .button a .more svg {
	transform: rotate(-90deg);
	width: 100%;
	height: 100%;
}
.block5 .button a .more svg circle {
	stroke: #0053b0;
	stroke-width: 6px;
	width: 100%;
	height: 100%;
	fill: transparent;
	stroke-dashoffset: 283px;
	stroke-dasharray: 283px;
	stroke-linecap: round;
	transition: stroke-dashoffset 0.7s cubic-bezier(0.23, 1, 0.32, 1);
}
.block5 .button a:hover .more svg circle {
	stroke-dashoffset: 0px;
}
.block5 .button a:hover .more:after {
	opacity: 1;
}
.block5 .columnbox {
	display: flex;
}
.tablet .block5 .columnbox {
	display: block;
}
.block5 .columnbox .head {
	position: relative;
	width: 23.51190476190476%;
	flex-shrink: 0;
	z-index: 5;
}
.tablet .block5 .columnbox .head {
	width: 100%;
	margin-bottom: 40px;
}
.block5 .columnbox .body {
	width: 100%;
	max-width: 1050px;
}

.blocklocal {
	position: relative;
	background: #fff;
	z-index: 10;
}
.blocklocal > div {
	position: relative;
	width: 100%;
	max-width: 1760px;
	margin: auto;
	padding: 160px 40px 0px;
}
.tablet .blocklocal > div {
	padding: 80px 20px 0px;
}
.sp .blocklocal > div {
	padding: 80px 15px 0px;
}
.blocklocal .inner {
	max-width: 1215px;
	margin: auto;
}
.blocklocal .image {
	text-align: center;
}
.blocklocal .image img {
	display: block;
	margin: auto;
	max-width: 100%;
	height: auto;
}
.blocklocal .image > a {
	display: inline-block;
	max-width: 100%;
	transition: opacity 0.2s, background 0.2s;
	cursor: pointer;
}
.blocklocal .image > a:hover {
	opacity: 0.7;
}
.blocklocal .sns dl {
	display: flex;
	gap: 70px;
	align-items: center;
	justify-content: center;
}
.blocklocal .sns dt {
	font-size: min(3.5714285714vw, 60px);
	line-height: 1;
	font-weight: 700;
}
.tablet .blocklocal .sns dt {
	font-size: min(5.487804878vw, 45px);
}
.sp .blocklocal .sns dt {
	font-size: min(9.6989732031vw, 36.3711495116px);
}
.blocklocal .sns dd {
	margin: 0px;
	padding: 0px;
}
.blocklocal .sns ul {
	display: flex;
	gap: 20px;
}
.blocklocal .sns li {
	width: 76px;
}
.blocklocal .sns img {
	display: block;
	margin: auto;
	max-width: 100%;
	height: auto;
}
.blocklocal .sns a {
	transition: opacity 0.2s, background 0.2s;
	cursor: pointer;
}
.blocklocal .sns a:hover {
	opacity: 0.7;
}
.blocklocal * + .image, .blocklocal * + .sns {
	margin-top: 40px;
}
.sp .blocklocal * + .image,
.sp .blocklocal * + .sns {
	margin-top: 30px;
}
