@charset "utf-8";

@import url("https://fonts.googleapis.com/css?family=Noto+Sans+JP:300,400,700&display=swap");

/** 1.0 Custom Prop
 -----------------------------------*/
:root {
	--primary-color: #0c0991;
	--primary-tint-color: #4744f3;
	--secondary-color: #3498db;
	--secondary-tint-color: #55a9e1;
	--tertiary-color: #f39c12;
	--tertiary-tint-color: #f5ac37;
	--quaternary-color: #2ecc71;
	--quaternary-tint-color:#5bda91;
	--quinary-color: #1abc9c;
	--quinary-tint-color: #51e7c9;
	--senary-color: #e74c3c;
	--senary-tint-color: #e95c4d;
}

/** 2.0 Base Layout
 -----------------------------------*/
* {
	box-sizing: border-box;
}

body {
	font-family: 'Noto Sans JP', sans-serif;
	font-size: 17px;
	font-weight: 300;
	line-height: 1.4em;
}

#wrapper {

}

#main {

}

#not-support {
	width: 100%;
	margin: 20px;
	font-weight: 700;
	font-size: 24px;
	color: #e74c3c;
}

#not-support p {
	padding: 8px;
}

/** 3.0 Common
 -----------------------------------*/
/** 3.1 View
 -----------------------------------*/
.flex {
	display: flex;
}

.hide {
	display: none!important;
}
 
/** 3.2 Blend
 -----------------------------------*/
.blend-bg {
	position: absolute;
	top: 0;
	left: 0;
	background: #fff;
	z-index: 1;
}

.blend-bg::before {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	background: #000;
	z-index: 2;
}

.blend-over {
	position: absolute;
	top: 0;
	left: 0;
	mix-blend-mode: screen;
	z-index: 4;
}

.blend-text {
	position: absolute;
	color: #fff;
	line-height: 1em;
	mix-blend-mode: difference;
	z-index: 3;
}

.blend-color1 {
	background: var(--secondary-color);
}

.blend-color2 {
	background: var(--tertiary-color);
}

.blend-color3 {
	background: var(--quaternary-color);
}

.blend-color4 {
	background: var(--quinary-color);
}

.blend-color5 {
	background: var(--senary-color);
}

.blend-color6 {
	background: var(--primary-color);
}

/** 4.0 Header Layout
 -----------------------------------*/
header {
	width: 100%;
	padding: 10px 8px 2px 8px;
	align-items: center;
	position: sticky;
	top:0;
	background-color: #fff;
	z-index: 100;
    justify-content: space-between;
}

header::before  {
	content: "";
	position: absolute;
	display: block;
	height: 8px;
	width: 100%;
	top: 0;
	left: 0;
	background: linear-gradient(to right, 
		var(--secondary-color) 0%, var(--secondary-color) 20%, 
		var(--tertiary-color) 20%, var(--tertiary-color) 40%, 
		var(--quaternary-color) 40%, var(--quaternary-color) 60%, 
		var(--quinary-color) 60%, var(--quinary-color) 80%, 
		var(--senary-color) 80%, var(--senary-color) 100%);
}

header #div-logo {
	width: 300px;
	height: 50px;
}

header #div-logo h1 {
    background: url(../images/logo.png) left center no-repeat;
    background-size: contain;
    display: block;
	text-indent: -9999px;
	width: 100%;
	height: 50px;
}

/** 4.1 nav Layout
 -----------------------------------*/
#div-nav {
	display: block;
}

#div-nav nav {

}

#ul-nav li {
	color: var(--primary-color);
	padding: 0 8px;
}

#ul-nav li:hover {
	text-decoration: underline;
}

#ul-nav-sp {
	flex-flow: column;
}

#ul-nav-sp li {
	padding: 8px;
	color: #fff;
}

#ul-nav-sp li:hover {
	background: #fff;
	color: var(--secondary-color);
}

@media screen and (max-width: 800px) {
	#div-nav {
		display:none;
	}
	
	#div-nav-sp {
		overflow-x: hidden;
		width: 100%;
	}
	#div-nav-sp nav {
		position: fixed;
		top: calc(50px + 8px + 2px);
		right: -100%;
		height: calc(100vh - 50px - 8px - 2px);
		width: 100%;
		background-color: var(--secondary-color);
		border-left: solid 50px var(--senary-color);
		z-index: 100;
	}
	
	#div-nav-sp, #div-bars {
		display: block!important;
	}
	
}

/** 4.2 menu Layout
 -----------------------------------*/
header #div-bars {
	margin-left:auto;
}

header #div-bars .ic-menu {
	color: var(--primary-color);
	font-size: 30px;
	margin-right: 8px;
}

/** 5.0 Canvas Layout
 -----------------------------------*/
#canvas-container {
	width: 100%;
	height: 400px;
	border: solid 1px #ccc;
	overflow: hidden;
	margin-bottom: 20px;
}

@media screen and (max-width: 600px) {
	#canvas-container {
		height: calc(100vh - 120px);
	}
}

/** 6.0 Article Layout
 -----------------------------------*/
article {
	position: relative;
}

/** 6.1 article h2 Layout
 -----------------------------------*/
article h2 {
	font-weight: 400;
	font-size: 34px;
	margin-left: 4px;
}

.h2-container {
	position: relative;
	height: 40px;
	margin-left: 60px;
	margin-bottom: 30px;
	overflow: hidden;
	isolation: isolate;
}

/** override **/
.h2-container .blend-bg {
	width: 100%;
	height: 20px;
}

/** override **/
.h2-container .blend-over {
	width: 100%;
	height: 40px;
}

/** 6.2 article background Layout
 -----------------------------------*/
.bg-sticky {
	position: absolute;
	top: 10px;
	left: 0;
	height: 100%;
}

.bg-sticky::after {
	position: sticky;
	top: 100px;
	content: 'extension';
	font-family: 'Material Icons';
	font-size: 60px;
	z-index: -1;
}

#bg-color1::after {
	color: var(--secondary-color);
}

#bg-color2::after {
	color: var(--tertiary-color);
}

#bg-color3::after {
	color: var(--quaternary-color);
}

#bg-color4::after {
	color: var(--quinary-color);
}

#bg-color5::after {
	color: var(--senary-color);
}

/** 7.0 section Layout
 -----------------------------------*/
section {
	margin: 12px 12px 0 12px;
	background: rgba(255, 255, 255, 0.5);
}

/** 7.1 section h3 Layout
 -----------------------------------*/
section h3 {
	font-size: 24px;
	font-weight: 400;
}

.h3-container {
	align-items: center;
}
	
.h3-container i {
	font-size: 35px;
}

.font-tint-color1 {
	color: var(--secondary-tint-color);
}

.font-tint-color2 {
	color: var(--tertiary-tint-color);
}

.font-tint-color3 {
	color: var(--quaternary-tint-color);
}

.font-tint-color4 {
	color: var(--quinary-tint-color);
}

.font-tint-color5 {
	color: var(--senary-tint-color);
}

.font-tint-color6 {
	color: var(--primary-tint-color);
}

/** 7.2 section content Layout
 -----------------------------------*/
.section-content {
	padding: 12px;
	width: 100%;
	flex-wrap: wrap;
}

.border-tint-color1 {
	border: solid 1px var(--secondary-tint-color);
}

.border-tint-color2 {
	border: solid 1px var(--tertiary-tint-color);
}

.border-tint-color3 {
	border: solid 1px var(--quaternary-tint-color);
}

.border-tint-color4 {
	border: solid 1px var(--quinary-tint-color);
}

.border-tint-color5 {
	border: solid 1px var(--senary-tint-color);
}

.border-tint-color6 {
	border: solid 1px var(--primary-tint-color);
}

/** 7.3 card Layout
 -----------------------------------*/
.card-container {
	padding: 8px;
	margin-bottom: 12px;
	width: 100%;
}

@media screen and (min-width: 600px) {
	.card-container {
		width: calc(50% - 12px);
		margin: 0 6px 12px 6px;
	}
}

.card-title {
	font-size: 24px;
}

.card-explain {
	margin-top: 12px;
}

/** 7.4 mission Layout
 -----------------------------------*/
#mission-container {
	padding: 12px;
	margin:12px;
	width: calc(100% - 24px);
}

#mission-letter {
	background: var(--quaternary-tint-color);
	border-radius: 8px;
	font-size: 24px;
	font-weight: 400;
	color: #fff;
	width: 100%;
	max-width: 400px;
	margin: 0 auto;
	padding: 12px;
	flex-wrap: wrap;
	justify-content: center;
}

#message-container {
	padding: 12px;
	margin:12px;
	width: calc(100% - 24px);
	position: relative;
	min-height: 200px;
}

#ripple-container {
	position: absolute;
	bottom: 0;
	left: 0;
	z-index: -1;
	width: 100%;
	height: 100%;
	align-items: center;
	justify-content: center;
}

#ripple {
	position: relative;
	width: 180px;
	height: 180px;
}

#ripple::after, #ripple::before {
	content: '';
	position: absolute;
	box-sizing: border-box;
	width: 200px;
	height: 200px;
	border:solid 3px var(--quaternary-color);
	border-radius: 50%;
	animation: 2s ripple-animation linear infinite;
	opacity: 1;
}

#ripple::before {
	animation-delay: 1s; 
}


@keyframes ripple-animation {
	0%{
	  transform: scale(0.6);
	}
	100%{
		transform: scale(1);
		opacity: 0;
	}
}


#credo-container {
	padding: 12px;
	margin:12px;
	width: calc(100% - 24px);
	height: 250px;
}

#credo-cube {
	display: block;
	position: relative;
	margin: 30px auto 0;
	width: 150px;
	height: 150px;
	transform-style: preserve-3d;
	transform: rotateX(360deg) rotateY(360deg) rotateZ(720deg);
}

.credo-cube-animation {
	animation: cube-animation 10s linear infinite;
}

.credo-cube-item {
	position:absolute;
	left:0;
	right:0;
	border: 1px solid #333;
	box-sizing:border-box;
	width:100%;
	height:100%;
	flex-flow: column;
	justify-content: center;
	align-items: center;
	color: #fff;
}

.credo-cube-item:nth-child(1) {
	transform:translateY(75px) rotateX(-90deg);
	background: var(--quinary-tint-color);
}

.credo-cube-item:nth-child(2) {
	transform:translateZ(75px);
	background: var(--senary-tint-color);
}

.credo-cube-item:nth-child(3) {
	transform:translateX(75px) rotateY(90deg);
	background: var(--primary-tint-color);
}

.credo-cube-item:nth-child(4) {
	transform:translateX(-75px) rotateY(-90deg);
	background: var(--secondary-tint-color);
}

.credo-cube-item:nth-child(5) {
	transform:translateZ(-75px) rotateY(180deg);
	background: var(--tertiary-tint-color);
}

.credo-cube-item:nth-child(6) {
	transform:translateY(-75px) rotateX(-90deg);
	background: var(--quaternary-tint-color);
}

@keyframes cube-animation {
	0% {
		transform:rotate3d(0, 0, 0, 0);
	}
	25% {
		transform:rotate3d(0.25, 0.25, 0.25, -90deg);
	}
	50% {
		transform:rotate3d(0.5, 0.5, 0.5, -180deg);
	}
	75% {
		transform:rotate3d(0.75, 0.75, 0.75, -270deg);
	}
	100% {
		transform:rotate3d(1, 1, 1, -360deg);
	}
}

.credo-cube-item p {
	padding: 8px 0;
}

.value-small {
	font-size: 15px;
}

.value-bold {
	font-size: 40px;
	font-weight: 400;
}

#credo-list-container {
	padding: 12px;
	margin:12px;
	width: calc(100% - 24px);
	flex-wrap: wrap;
}

/** 7.5 company Layout
 -----------------------------------*/
.company-info {
	width: 100%;
	flex-wrap: wrap;
	margin: 4px 0;
}

.p-company-title {
	width: 30%;
	background: var(--quinary-tint-color);
	color: #fff;
	padding: 8px;
}

.p-company-value {
	width: 70%;
	padding: 8px;
}

@media screen and (max-width: 600px) {
	
	.p-company-title {
		width: 100%;
	}

	.p-company-value {
		width: 100%;
	}
}

/** 7.5 contact Layout
 -----------------------------------*/
#contact-error {
	color: var(--senary-tint-color);
}

.contact {
	width: 100%;
	flex-wrap: wrap;
	margin: 4px 0;
}

.p-contact-title {
	width: 30%;
	background: var(--senary-tint-color);
	color: #fff;
	padding: 8px;
}

.contact-input {
	width: calc(70% - 16px);
	margin: 8px;
	padding: 12px;
}

@media screen and (min-width: 601px) {
	#p-contact-privacy {
		width: 100%;
	}
}

@media screen and (max-width: 600px) {
	
	.p-contact-title {
		width: 100%;
	}

	.contact-input {
		width: 100%;
	}
}

#policy-frame {
	margin: 12px 0;
	padding: 8px;
	height: 200px;
	width: 100%;
	overflow-x: hidden;
	overflow-y:scroll;
	border: solid 1px #ccc;
	font-size: 14px;
}

#policy-frame h3 {
	font-size: 17px;
}

.caution {
	font-size: 12px;
}

#label-privacy {
	justify-content: center;
	width: 100%;
	margin: 20px 0;
}

.btn-contact {
	width: 120px;
	margin: 0 auto;
	padding: 8px;
	border: solid 1px #ccc;
	border-radius: 8px;
	background: #ccc;
	color: #fff;
	justify-content: center;
	box-shadow: 0 5px 11px 0 rgba(0, 0, 0, 0.18), 0 4px 15px 0 rgba(0, 0, 0, 0.15);
}

.btn-contact-enable {
	border-color: var(--senary-tint-color);
	background: var(--senary-tint-color);
}

.btn-contact-enable:hover {
	color: var(--senary-tint-color);
	background: #fff
}

.p-contact-message {
	width: 100%;
	text-align: center;
	padding: 12px 0 40px 0;
}

.p-contact {
	padding: 8px;
}

#contact-btn-container {
	padding: 20px 0;
	width: 100%;
	text-align: center;
}
/** 7.6 policy Layout
 -----------------------------------*/
.security-container {
	padding: 12px 0;
}

.security-title {
	padding-bottom: 8px;
	font-weight: 400;
}

/** 8.0 FAB Layout
 -----------------------------------*/
#fab {
	position: fixed;
	bottom: 24px;
	right: 20px;
	z-index: 10;
	width: 40px;
	height: 40px;
	background-color: var(--secondary-color);
	color: #fff;
	border-radius: 20px;
	text-align: center;
	line-height: 40px;
	font-size: 1.8em;
	box-shadow: 0 5px 11px 0 rgba(0, 0, 0, 0.18), 0 4px 15px 0 rgba(0, 0, 0, 0.15);
}

/** 9.0 footer Layout
 -----------------------------------*/
footer {
	position: relative;
	width: 100%;
	margin-top: 20px;
}

.footer-logo-container {
	position: relative;
	height: 48px;
	width:40px;
	align-self: flex-end;
	isolation: isolate;
}

/** override **/
.footer-logo-container .blend-bg {
	width: 40px;
	height: 24px;
}

/** override **/
.footer-logo-container .blend-over {
	width: 40px;
	height: 48px;
}

/** override **/
.footer-logo-container .blend-text {
	font-size: 48px;
	font-weight: 700;
	width: 40px;
	text-align: center;
}

#footer-bottom {
	width: 100%;
}


#footer-bottom p {
	font-size: 9px;
	color: #fff;
	padding: 2px 6px;
	width: 100%;
	text-align: center;
}

#footer-content {
	flex: 1;
	height: 24px;
	margin-top: auto;
	flex-wrap: wrap;
	padding-right: 100px;
	text-align: right;
}

#footer-content p {
	font-size: 14px;
	color: var(--primary-color);
	text-decoration: underline;
}


/** 10.0 Effect
 -----------------------------------*/
.effect-fade {
	opacity: 0;
	transition: all 350ms linear;
}

.effect-fade-delay {
	transition: all 2s linear;
}

.effect-fadeX {
	transform: translateX(-200px);
}

.effect-fadeY {
	transform: translateY(200px);
}

.effect-fadeX-rev {
	transform: translateX(100vw);
}

.effect-complete {
	opacity: 1;
	transform: translate(0, 0);
}

