@charset "UTF-8";
@import url('https://fonts.googleapis.com/css?family=Noto+Sans+JP:500,600,700,900');
/* ================================================== *
 *  base
 * ================================================== */
* {
  margin: 0;
  padding: 0;
}
html, body, h1, h2, h3, h4, ul, ol, dl, li, dt, dd, p, div, span, img, a, table, tr, th, td {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: 600;
  font-size: 100%;
  vertical-align:baseline;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}
article, header, footer, aside, figure, figcaption, nav, section {
  display:block;
}
body {
	color: #fff;
	font-family: 'Noto Sans JP', sans-serif;
	font-size: 16px;
	line-height: 2;
	-ms-text-size-adjust: 100%;
	-webkit-text-size-adjust: 100%;
	background-color: #000;
	margin: 0;
	width: 100%;
	height: 100%;
	overflow-x: hidden;
	position: relative;
	z-index: 0;
}
ol, ul {
  	list-style: none;
}
h1, h2, h3, h4, h5, h6 {
	font-weight: 700;
	font-size: 100%;
}
a {
	color: #000000;
	text-decoration: none;
}
a:hover, a:active, a:focus {
	color: #fff;
	opacity: 0.6;
	filter: alpha(opacity=60);
	-moz-opacity: 0.6;
	transition: all .3s;
	text-decoration: none;
}
a img {
  border: none;
}

/* ================================================== *
 *  common
 * ================================================== */
.flex {
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.fadeIn {
	opacity: 0;
	filter: alpha(opacity=0);
	-ms-filter: "alpha(opacity=0)";
	transform: translate(0, 20px);
	-webkit-transform: translate(0, 20px);
	transition: .6s;
	-webkit-transition: .6s;
}
.inview {
	opacity: 1;
	filter: alpha(opacity=100);
	-ms-filter: "alpha(opacity=100)";
	transform: translate(0, 0);
	-webkit-transform: translate(0, 0);
}
@media only screen and (max-width: 768px) {
	.flex {
		display: block;
	}
}
img {
	max-width: 100%;
	height: auto;
}
.pc-only {
	display: block;
}
.sp-only {
	display: none;
}
@media screen and (max-width: 768px) {
	.pc-only {
		display: none;
	}
	.sp-only {
		display: block;
	}
}

/* ================================================== *
 *  header / main
 * ================================================== */
.inner {
	width: 100%;
	margin: auto;
	position: relative;
}
.nav {
	width: 100%;
	background: #000;
	text-align: center;
	line-height: 60px;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 10;
}
.nav::after {
	content: "";
	background: linear-gradient(to right, rgba(18,162,169,1) 0%,rgba(149,89,142,1) 82%,rgba(149,89,142,1) 100%);
	background: -webkit-linear-gradient(left, rgba(18,162,169,1) 0%,rgba(149,89,142,1) 82%,rgba(149,89,142,1) 100%);
	width: 100%;
	height: 1px;
	position: absolute;
	left: 0;
	bottom: 0;
}
@media only screen and (min-width:1601px) {
	.nav::after {
		width: calc(100% - 60px);
		left: 50%;
		transform: translateX(-50%);
	}
}
@media only screen and (max-width:1600px) {
	.nav::after {
		width: calc(100% - 3.75vw);
		left: 50%;
		transform: translateX(-50%);
	}
}
.mv {
	background: #000;
	width: 100%;
	margin-top: 60px;
	padding-bottom: 2rem;
	position: relative;
}
.mv::after {
	content: "";
	background: linear-gradient(to left, rgba(18,162,169,1) 0%,rgba(149,89,142,1) 82%,rgba(149,89,142,1) 100%);
	background: -webkit-linear-gradient(right, rgba(18,162,169,1) 0%,rgba(149,89,142,1) 82%,rgba(149,89,142,1) 100%);
	width: 100%;
	height: 1px;
	position: absolute;
	left: 0;
	bottom: 0;
}
.mv-inner {
	max-width: 1600px;
	width: 100%;
	margin: auto;
	padding: 0 3.75%;
}
.mv .mv-inner-txt {
	padding-top: 20px;
}
.mv .mv-inner-txt .mv-ttl {
	line-height: 1;
	margin-bottom: 1.25rem;
}
.mv .mv-inner-txt h2 {
	color: #ffffff;
	letter-spacing: 0.2em;
	line-height: 1.3;
	text-align: center;
	margin: 0 0 1rem 0;
}
.mv .mv-inner-txt p {
	flex-basis: 50%;
	color: #ffffff;
	letter-spacing: 0.1em;
	line-height: 2.1;
	text-align: center;
}
@media only screen and (min-width:1601px) {
	.mv:after {
		width: calc(100% - 60px);
		left: 50%;
		transform: translateX(-50%);
	}
	.mv .mv-inner-txt h2 {
		font-size: 3.75rem;
	}
	.mv .mv-inner-txt p {
		font-size: 1.19rem;
	}
}
@media only screen and (max-width:1600px) {
	.mv .mv-inner-txt h2 {
		font-size: 3.73vw;
	}
	.mv .mv-inner-txt p {
		font-size: 1.19vw;
	}
}
@media only screen and (max-width:1600px) {
	.mv:after {
		width: calc(100% - 3.75vw);
		left: 50%;
		transform: translateX(-50%);
	}
}
@media only screen and (max-width: 768px) {
	.nav {
		line-height: 52px;
	}
	.nav h1 img {
		width: 90px;
	}
	.mv {
		margin-top: 52px;
	}
	.mv-inner {
		max-width: initial;
		/* width: 92.187%; */
		margin: auto;
	}
	.mv .mv-inner-txt h2 {
		font-size: 5vw;
		letter-spacing: 0;
	}
	.mv .mv-inner-txt p {
		flex-basis: 100%;
		font-size: 2.2vw;
		padding-left: 0;
	}
}

/* ================================================== *
 *  section
 * ================================================== */
.section {
	padding: 1.875vw;
}
.sec-list {
	display: flex;
	flex-wrap: wrap;
	gap: 1.25vw;
}
.sec-list li {
	flex: 1 1 auto;
	width: calc(25% - 1.25vw);
	height: 30vw;
	line-height: 0;
	overflow: hidden;
	position: relative;
}
@media only screen and (min-width:1601px) {
	.section {
		padding: 30px;
	}
	.sec-list {
		gap: 20px;
	}
	.sec-list li {
		flex: 1 0 auto;
		width: calc(25% - 20px);
	}
}
.sec-list li .sec-list-image {
	-webkit-transition:	all 0.4s ease;
	transition:	all 0.4s ease;
}

.sec-list li img {
	width: 100%;
	height: auto;
	object-fit: cover;
	transform-origin: top center;
	-webkit-transition:	all 0.4s ease;
	transition:	all 0.4s ease;
}
@media only screen and (min-width:769px) {
	.sec-list li:hover img {
		transform: scale(1.47);
	}
}
.sec-list li .mask {
	width: 100%;
	height: 10vw;
	position: absolute;
	bottom: 0;
	left: 0;
	background: #000;
	-webkit-transition:	all 0.4s ease;
	transition:	all 0.4s ease;
	line-height: 1.8;
}
.sec-list li .mask .mask-inner {
	width: 100%;
	height: 100%;
	background: url(../images/bg-hover.png) center center no-repeat;
	background-size: cover;
	display: flex;
	justify-content: center;
	align-items: center;
}
.sec-list li:hover .mask {
	height: 100%;
	background: transparent;
}
.sec-list li .mask .mask-txt {
	margin: auto;
	text-align: center;
	line-height: 1.4;
}
.sec-list li .mask .mask-txt h3.h3-list {
	font-size: .875vw;
	padding: 1em 0 1.5em;
}
.sec-list li .mask .mask-txt h2.h2-list {
	font-size: 1vw;
}
.sec-list li .mask .mask-txt h2.h2-list span {
	font-size: 1.5vw;
	margin-right: .2em;
}
.sec-list li .mask .mask-txt p {
	font-size: .75vw;
	height: 0;
	overflow: hidden;
}
.sec-list li:hover .mask .mask-txt p {
	padding: 2em 0;
	height: auto;
}
.sec-list li .mask .mask-txt .btn {
	display: block;
	width: 10.5vw;
	height: 0;
	overflow: hidden;
	line-height: 3;
	border: none;
	color: #fff;
	font-size: .75vw;
	margin: auto;
}
.sec-list li:hover .mask .mask-txt .btn {
	height: auto;
	border: 1px solid #fff;
}
.mask .modal-link {
	display: block;
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
}
.modal-link-sp {
	display: none;
}
@media only screen and (max-width: 768px) {
	.mask .modal-link {
		display: none;
	}
	.modal-link-sp {
		display: block;
		position: absolute;
		left: 0;
		top: 0;
		width: 100%;
		height: 100%;
	}
}
.sec-modal {
	display: none;
}
.modaal-container .h2-modal {
	font-size: 1.5vw;
	line-height: 1.2;
	margin-bottom: 1.5rem;
}
.modaal-container .modal-txt .h2-modal span {
	font-size: 2.5vw;
	margin-right: .2em;
}
@media only screen and (min-width: 1601px) {
	.modaal-container .h2-modal {
		font-size: 1.5rem;
	}
	.modaal-container .modal-txt .h2-modal span {
		font-size: 2.5rem;
	}
}
.modaal-container .modal-txt .h3-modal {
	font-size: 1.8vw;
	font-weight: 900;
	line-height: 1.2;
	padding-bottom: 3rem;
	position: relative;
}
.modaal-container .modal-txt .h3-modal.f-s {
	font-size: 1.8vw;
	letter-spacing: -.05em;
}

@media only screen and (min-width: 1601px) {
	.modaal-container .modal-txt .h3-modal {
		font-size: 1.5rem;
	}
	.modaal-container .modal-txt .h3-modal.f-s {
		font-size: 1.4rem;
	}
}
@media only screen and (max-width: 768px) {
	.modaal-container .modal-txt .h3-modal.f-s {
		font-size: 1rem;
	}
}
.modaal-container .modal-txt .h3-modal::after {
	content: "";
	background: #fff;
	width: 20px;
	height: 4px;
	position: absolute;
	left: 0;
	bottom: 1.75rem;
}
.modaal-container .modal-txt .h4-modal {
	font-size: 1vw;
	line-height: 1.2;
	margin-bottom: .625rem;
}
@media only screen and (min-width: 1601px) {
	.modaal-container .modal-txt .h4-modal {
		font-size: 1rem;
	}
}
.modaal-container .h2-modal + p {
	font-size: 1vw;
}
@media only screen and (min-width: 1601px) {
	.modaal-container .h2-modal + p {
		font-size: 1rem;
	}
}
.modal-text-subject {
	margin-top: 1.4em;
	font-size: 1vw;
}
@media only screen and (min-width: 1601px) {
	.modal-text-subject {
		font-size: 1rem;
	}
}
/* modal custom */
.modaal-container {
	max-width: 1120px;
	width: 100%;
	height: auto;
	background: url(../images/bg-modal.png) left top no-repeat;
	background-size: cover;
	color: #fff;
}
.modaal-content-container {
	display: flex;
	align-items: center;
	padding: 0;
}
.modaal-content-container .modal-ph {
	line-height: 0;
	flex-basis: 40.178%;
}
.modaal-content-container .modal-txt {
	flex-basis: 59.821%;
	padding: 0 50px;
}
.modaal-close {
	position: absolute;
	width: 40px;
    height: 40px
}
.modaal-close:after, .modaal-close:before {
	top: 0;
    left: 20px;
	width: 1px;
    height: 40px;
	border-radius: 0;
}
.modaal-close:focus, .modaal-close:hover {
	background: none;
}
.modaal-close:focus:after, .modaal-close:focus:before,
.modaal-close:hover:after, .modaal-close:hover:before {
	background: #fff;
	opacity: 0.6;
	filter: alpha(opacity=60);
	-moz-opacity: 0.6;
	transition: all .3s;
}
.modaal-overlay {
	background: url(../images/bg-modal-overlay.png) !important;
	opacity: 1 !important;
}
/* //modal custom */

@media only screen and (max-width: 768px) {
	.section {
		background: #000;
	}
	.sec-list li {
		width: calc(50% - 2.5vw);
		height: auto;
	}
	.sec-list li .mask {
		/* background: url(../images/bg-hover01.png), linear-gradient(135deg, rgba(18,162,169,.5) 0%,rgba(149,89,142,.5) 82%,rgba(149,89,142,.5) 100%,rgba(149,89,142,.5) 100%);

		-webkit-transition:	none;
		transition:	none;
		-webkit-transform: none;
		transform: none;
		 */
		position: relative;
		height: auto;
	}
	.sec-list li:hover .mask {
		height: auto;
		background: transparent;
	}
	.sec-list li .mask-inner {

	}
	.sec-list li .mask .mask-txt {
		position: relative;
		bottom: 0;
		padding: 5vw 0 5vw;
	}
	.sec-list li .mask .mask-txt p {
		height: 5em;
		padding: 1em 0;
		display: flex;
		justify-content: center;
		align-items: flex-end;
	}
	.sec-list li:hover .mask .mask-txt p {
		height: 5em;
		padding: 1em 0;
	}
	.sec-list li .mask .mask-txt .btn {
		height: auto;
		border: 1px solid #fff;
	}
	.sec-list li .mask .mask-txt h3.h3-list{
		height: 6em;
		padding: 0.5em 0 1em;
	}
	.sec-list li .mask .mask-txt h3.h3-list,
	.sec-list li .mask .mask-txt h2.h2-list,
	.sec-list li .mask .mask-txt h2.h2-list span {
		font-weight: 500;
	}
	.sec-list li .mask .mask-txt h3.h3-list {
		font-size: 2.343vw;
		/* position: absolute;
		left: 0;
		right: 0;
		top: 0; */
	}
	.sec-list li .mask .mask-txt h3.h3-list.f14 {
		font-size: 1.822vw;
	}
	.sec-list li .mask .mask-txt h3.h3-list.f16 {
		font-size: 2.083vw;
	}
	.sec-list li .mask .mask-txt h2.h2-list {
		font-size: 2.343vw;
	}
	.sec-list li .mask .mask-txt h2.h2-list span {
		font-size: 3.906vw;
	}
	.sec-list li .mask .mask-txt p {
		font-size: 2vw;
	}
	.sec-list li .mask .mask-txt p.txt-none {
		/* height: 2.8vw; */
	}
	.sec-list li .mask .mask-txt .f14 {
		font-size: 1.822vw;
	}
	.sec-list li .mask .mask-txt .f16 {
		font-size: 2.083vw;
	}
	.sec-list li .mask .mask-txt .btn {
		/* position: absolute;
		left: 0;
		right: 0;
		bottom: 0; */
		width: 31.51vw;
		font-size: 2.604vw;
		font-weight: 500;
		line-height: 24px;
	}
	.modaal-inner-wrapper {
		padding: 80px 0;
	}
	.modaal-container {
		max-width: initial;
		width: 94.791%;
		padding: 2rem 1.25rem;
	}
	.modaal-content-container {
		display: block;
	}
	.modaal-content-container .modal-ph {
		flex-basis: 100%;
		text-align: center;
		margin-bottom: 1.5rem;
	}
	.modaal-content-container .modal-ph img {
		width: 48.262%;
		margin: auto;
	}
	.modaal-content-container .modal-txt {
		flex-basis: 100%;
		padding: 0;
	}
	.modaal-container .modal-txt .h3-modal {
		font-size: 1.125rem;
		padding-bottom: 2rem;
	}
	.modaal-container .modal-txt .h3-modal::after {
		height: 2px;
		bottom: 1rem;
	}
	.modaal-container .modal-txt .h4-modal {
		font-size: .85rem;
		font-weight: 500;
	}
	.modaal-container .h2-modal {
		font-size: .85rem;
		margin-bottom: 1rem;
	}
	.modaal-container .modal-txt .h2-modal span {
		font-size: 1.5rem;
	}
	.modaal-container .h2-modal + p {
		font-size: .75rem;
	}
	.modal-text-subject {
		font-size: .75rem;
	}
	.modaal-close {
		width: 26px;
		height: 26px;
		right: 10px;
		top: 10px;
	}
	.modaal-close::after, .modaal-close::before {
		height: 26px;
		left: 13px;
	}
}

/* ================================================== *
 *  footer
 * ================================================== */
footer {
	color: #fff;
}
footer .inner {
	position: relative;
}
footer .inner::before {
	content: "";
	background: linear-gradient(to right, rgba(18,162,169,1) 0%,rgba(149,89,142,1) 82%,rgba(149,89,142,1) 100%);
	background: -webkit-linear-gradient(left, rgba(18,162,169,1) 0%,rgba(149,89,142,1) 82%,rgba(149,89,142,1) 100%);
	width: 100%;
	height: 1px;
	position: absolute;
	left: 0;
	top: 0;
}
footer .inner::after {
	content: "";
	background: linear-gradient(to left, rgba(18,162,169,1) 0%,rgba(149,89,142,1) 82%,rgba(149,89,142,1) 100%);
	background: -webkit-linear-gradient(right, rgba(18,162,169,1) 0%,rgba(149,89,142,1) 82%,rgba(149,89,142,1) 100%);
	width: 100%;
	height: 1px;
	position: absolute;
	left: 0;
	bottom: 0;
}
footer .inner ul {
	padding: 1rem 0;
	display: flex;
	justify-content: center;
	align-items: center;
}
footer .inner li {
	font-size: .75rem;
	font-weight: 500;
	line-height: 1.3;
}
footer .inner li:first-child {
	margin-right: 1.875rem;
}
footer .inner li:first-child a {
	border: 1px solid #fff;
	border-radius: 3px;
	color: #fff;
	padding: 0 .5rem;
}
@media only screen and (min-width:1601px) {
	footer {
		padding: 0 30px 42px;
	}
}
@media only screen and (max-width:1600px) {
	footer {
		padding: 0 1.875vw 2.625vw;
	}
}
