@charset "utf-8";

@import url(http://fonts.googleapis.com/earlyaccess/notosansjapanese.css);
/*---- reset -----*/
:root {
	--font-base: clamp(0.875rem, 0.83rem + 0.23vw, 1rem);
	--font-size-h1: clamp(2rem, 1.818rem + 0.91vw, 2.5rem);
	--font-size-h2: clamp(1.5rem, 1.318rem + 0.91vw, 2rem);
	--font-size-h3: clamp(1rem, 0.818rem + 0.91vw, 1.5rem);
	--font-jp: 'Noto Sans JP', sans-serif;
	--text-color: #2a3b63;
	--bg-color: #d8deec;
	--border-color: #c2c9d8;
	--gradient-color1: #6d1f91;
	--gradient-color2: #1c065b;
	--gradient-color3: #0e6cae;
	--color-white: #ffffff;
	--bg-gradient-mv: linear-gradient(-25deg, var(--gradient-color3), var(--gradient-color2), var(--gradient-color1));
	--bg-gradient-ttl: linear-gradient(-25deg, var(--gradient-color2), var(--gradient-color1));
	--inr-width: 1400px;
	--margin-width: 2em;
}

html {
	overflow: auto;
}

body {
	overflow: hidden;
}

#header {
	background: none;
	padding-bottom: 0;
	border-top: none;
}
#header .inr {
	padding: 10px 0;
	border-top: none;
}
.sec-inr {
	max-width: var(--inr-width);
	padding: 0 2em ;
	box-sizing: border-box;
	margin: auto;
}
#contents {
	padding-top: 0;
	font-family: var(--font-jp);
	font-size: var(--font-base);
}
#contents .ttl_box {
	height: 49px;
}
h1 {
	max-width: 100%;
	width: 100%;
	margin: 0;
	padding: 0;
	text-align: center;
	font-size: var(--font-size-h1);
}
h2 {
	font-size: var(--font-size-h2);
}
h3 {
	font-size: var(--font-size-h3);
}
.note {
	margin: 10px 0;
	font-size: 0.7em!important;
}

.pc {
	display: block;
}

.tab {
	display: none;
}

.bg-grid {
	background-image: linear-gradient(0deg, transparent calc(100% - 1px), rgba(255, 255, 255, .2) calc(100% - 1px)),
		linear-gradient(90deg, transparent calc(100% - 1px), rgba(255, 255, 255, .2) calc(100% - 1px));
	background-size: 5em 5em;
	background-repeat: repeat;
	background-position: center center;
	background-color: var(--bg-color);
	padding: 10em 0;
	border-top: 1px solid rgba(255, 255, 255, .2);
	border-bottom: 1px solid rgba(255, 255, 255, .2);
}

.reverse {
	flex-direction: row-reverse;
}

.box-wired {
	border: 1px solid var(--border-color);
	border-radius: 10px;
}

.col-2 {
	gap: var(--margin-width);
}

.col-2 > div {
	width: calc(50% - var(--margin-width));
}

.img {
	margin: 0;
}

figure {
	margin: 0;
}

img {
	max-width: 100%;
}

a:hover {
	text-decoration: none;
}

.btn {
	display: block;
	margin-top: 40px;
	font-size: 20px;
	font-weight: bold;
	text-align: center;
	transition: 0.4s;
}

.btn:hover {
	opacity: 0.7;
}

.gradient-ttl {
	background: var(--bg-gradient-ttl) repeat;
	display: inline;
	line-height: 2;
	padding: 0 .25em;
}
.txt-white {
	color: var(--color-white);
}
.txt-center {
	text-align: center;
}
.txt-right {
	text-align: right;
}
.noise {
	background: url(../img/bg_noise.svg) repeat;
	background-blend-mode: color-dodge;
}

@media screen (orientation: portrait) , (max-width: 820px) {
	.col-2 > div {
		width: 100%;
	}
}

@media screen (orientation: portrait) , (max-width: 540px) {
	h1 {
		font-size: var(--font-size-h2);
	}
}

@media screen and (max-width: 490px) {
	h1 img {
		width: 100%;
	}

	.pc {
		display: none;
	}
	
	.btn {
		font-size: 16px;
	}
	
}

@media only screen and (max-width: 767px) {
	nav ul {
		width: 767px;
	}
	
	.scroll-bar-mask {
		overflow-x: scroll;
	}
}

@media screen and (max-width: 768px) {
	h1 img {
		width: 100%;
	}
	
	.bnrpc {
		display: none;
	}
	
	.tab {
		display: block;
	}
	
	.left_box,
	.right_box {
		float: none;
	}
	
	.img img {
		width: 100%!important;
	}
	
	.note {
		margin-left: 0!important;
	}
	
	.sp {
		display: block;
	}
}

@media only screen and (max-width: 823px) {
	.landscape .inr {
		padding: 0 20px;
		box-sizing: border-box;
	}
}

@media only screen and (max-width: 1200px) {
	h1 img {
		max-width: 100%;
	}
}


/* mv
---------------------------------------- */
.mv	{
	padding: 1rem!important;
	box-sizing: border-box;
	background: var(--bg-color);
	height: 60vh;
	max-height: 720px;
}

.mv	h1 {
	margin-bottom: 1.5em;
}

.grid_system {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	grid-template-rows: repeat(2, 1fr);
	gap: 1em;
	height: 100%;
	place-items: center;
}

.grid_system .item {
	padding: 2em;
	box-sizing: border-box;
	width: 100%;
	height: 100%;
	border-radius: 10px;
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
}

.grid_system .svg_icon {
	width: auto;
	height: 100%;
	max-width: 100%;
}

.grid_system .svg_icon svg {
	height: 100%;
	width: 100%;
	fill: url(#gradient);
}

.grid5 .svg_icon {
	width: 30%;
}

.grid2 {
	grid-column-start: 1;
    grid-row-start: 2;
}

.grid3{
	grid-column: span 2 / span 2;
    grid-row: span 2 / span 2;
    grid-column-start: 2;
    grid-row-start: 1;
	background: url(../img/bg_noise.svg), var(--bg-gradient-mv) repeat;
	background-blend-mode: color-dodge;
}

.grid4{
	grid-column-start: 4;
    grid-row-start: 1;
}

.grid5 {
	grid-column-start: 4;
    grid-row-start: 2;
}

.grid1,
.grid2,
.grid4,
.grid5 {
	background: #fff;
	color: var(--text-color);
}

.grid3 {
	position: relative;
	overflow: hidden;
}

.grid3:before {
	content: "";
	position: absolute;
	display: block;
	width: 100%;
	height: 100%;
	background-image: url(../img/bg_wave.svg);
	background-size: cover;
	background-repeat: no-repeat;
	background-position: 50%;
	z-index: 0;
	mix-blend-mode: overlay;
}

.grid_content {
	position: relative;
	z-index: 1;
}

.grid_caption {
	font-size: var(--font-size-h3);
	font-weight: bold;
	margin-top: 0;
}

.name-caption {
	font-weight: bold;
}

.img_product {
	max-width: 70%;
	margin: auto;
}


@media screen and (orientation: portrait) {
	.mv {
		height: 100dvh;
		max-height: 85dvh;
	}
	.grid_system {
		grid-template-columns: repeat(2, 1fr);
		grid-template-rows: repeat(4, 1fr);
	}
	.grid1 {
		grid-area: 3 / 1 / 4 / 2;
	}
	.grid2 {
		grid-area: 3 / 2 / 4 / 3;
	}
	.grid3 {
		grid-area: 1 / 1 / 3 / 3;
	}
	.grid4 {
		grid-area: 4 / 1 / 5 / 2;
	}
	.grid5 {
		grid-area: 4 / 2 / 5 / 3;
	}

	.grid_system .grid1,
	.grid_system .grid2,
	.grid_system .grid4,
	.grid_system .grid5 {
		padding: 1em;
	}
	
	.grid_system .svg_icon {
		height: initial;
	}

}

@media screen and (orientation: portrait) , (max-width: 768px) {
	.mv {
		max-height: 90dvh;
	}
}

@media screen (orientation: landscape) , (max-width: 1000px) {
	.mv {
		height: 100dvh;
	}
}


@media screen and (min-width: 1400px) {
	.mv {
		max-height: 900px;
	}
}

/* concept
---------------------------------------- */
.concept {
	color: var(--text-color);
}

/* feature
---------------------------------------- */
.feature {
	color: var(--text-color);
}
.feature .flex_box {
	justify-content: center;
	align-items: center;
}
.feature .flex_box + .flex_box {
	margin-top: 6em;
}
.feature img {
	object-fit: cover;
}

.feature .svg_icon {
	width: 70%;
	height: 100%;
	max-width: 100%;
	margin: 2em auto auto;
}

.feature .svg_icon svg {
	height: 100%;
	width: 100%;
	fill: url(#gradient);
}

.feature .flex_box:nth-child(4) .svg_icon {
	width: 21%;
}


/* fanctions
---------------------------------------- */
.fanctions {
	color: var(--text-color);
}
.fanctions h2 {
	margin-bottom: 1.5em;
} 
.fanctions .flex_box {
	justify-content: center;
	align-items: stretch;
}

.fanctions .box-wired {
	padding: 2em;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
}

.fanctions .svg_icon {
	width: 30%;
	height: 100%;
	max-width: 100%;
	margin: auto auto 1em;
}

.fanctions .box-wired:nth-child(1) .svg_icon,
.fanctions .box-wired:nth-child(3) .svg_icon {
	width: 40%;
}

.fanctions .svg_icon svg {
	height: 100%;
	width: 100%;
	fill: var(--text-color);
}