@charset "utf-8";

:root {
--bg: #F2F4F6;
--white: #FFF;
--black: #000;
--gray01: #121212;
--gray02: #333;
--gray03: #666;
--gray04: #999;
--gray05: #AAA;
--gray06: #CCC;
--gray07: #DEDEDE;
--gray08: #E0E0E0;
--blue: #0779E3;
--blue02: #0185FF; /* primary */
--lightblue:#3AA0FF;
--darkblue: #2A54BB;
--yellow: #FBFF00;
--red: #FF1212;
--gradient01: linear-gradient(158deg,rgba(49, 193, 255, 1) 0%, rgba(0, 119, 230, 1) 100%);
interpolate-size: allow-keywords;
}

/*-------------- init --------------*/

html {
	font-size: 62.5%;
	scroll-behavior: smooth;
	scroll-padding-top: 10rem;
}

body {
	background: var(--white);
	color: var(--gray02);
	font-size: 1.5rem;
	line-height: 2.0;
	letter-spacing: 0.05em;
	font-family: "Noto Sans JP",sans-serif;
	font-feature-settings: "palt";
}

*{
	box-sizing: border-box;
}

img{
	max-width:100%;
}

p{
	font-size: 1.5rem;
	line-height: 3rem;
	font-weight: 400;
	color: var(--gray03);
	letter-spacing: 0.22rem;
}

p strong{
	font-weight:700;
}

.cf:before,
.cf:after {
	content: " ";
	display: table;
}

.cf:after {
	clear: both;
}

.cf {
	*zoom: 1;
}

.spbr{
	display:none;
}

.pcbr{
    display:inline;
}

.sp-only{
	display:none;
}



.text-white{
	color: var(--white);
}
.text-blue{
	color: var(--blue);
}
.text-left{
	text-align: left !important;
}
.text-center{
	text-align: center !important;
}
.text-right{
	text-align: rigth !important;
}
.text-narrow{
	letter-spacing:0.1rem;
}



/*-------------- header --------------*/

.header{
    display: flex;
	justify-content: space-between;
	align-items: center;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 7.2rem;
	padding: 0 2rem 0;
    background: var(--white);
	z-index: 10000;
	box-shadow: 0 0.1rem 0.3rem rgba(0,0,0,0.14);
	transition: 0.5s;
}

.header-title{
	transition: 0.5s;
}
.header-title a {
	display: flex;
	justify-content: flex-start;
	align-items: center;
	gap: 0.8rem;
}
.header-logo{
	width: 12.8rem;
}
.header-name{
	font-size: 1.6rem;
	letter-spacing: 0.05em;
	color: var(--blue02);
}
.header-name span{
	font-size: 2rem;
}

.header.header-tr{
    background: linear-gradient(0deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.2) 100%);
	box-shadow: none;
	color: var(--white)
}

.header.header-tr .header-name{
	color: var(--white);
	text-shadow: 0 0.4rem 0.4rem rgba(0,0,0,0.25);
}



/*-------------- navi --------------*/

.header-nav{
	display: flex;
	gap: 2rem;
	justify-content: flex-end;
	align-items: stretch;
}

.global-nav{
	display: flex;	
}
.global-nav-ul{
	display: flex;
	gap: 1.2rem;
	justify-content: space-between;
	align-items: stretch;
}
.global-nav-ul>li{
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	height: 7.2rem;
	padding: 0 0.4rem;
	border-bottom: 0.5rem solid transparent;
	transition: 0.3s;
}
.global-nav-ul>li>a{
	display: flex;
	height: 7.2rem;
	padding: 0 1.2rem;
	align-items: center;
	color:var(--gray03);
	font-weight: 500;
	transition: 0.3s;
}
.global-nav-ul>li:hover{
	border-bottom: 0.5rem solid var(--blue02);
}
.global-nav-ul>li:hover>a{
	color: var(--blue02);
}
.header-tr .global-nav-ul>li:hover>a{
	color: var(--white) !important;
}

.global-nav-ul>li.current-menu-item {
	border-bottom: 0.5rem solid var(--blue02);
}
.global-nav-ul>li.current-menu-item a{
	color: var(--blue02);
}

.contact-link{
	display: flex;
	align-items: center;
	padding-left:4.2rem
}
.contact-link a{
	display: flex;
	justify-content: center;
	align-items: center;
	padding: 1.0rem 2rem;
	background: var(--blue02);
	color: var(--white);
	font-weight: 600;
	font-size: 1.6rem;
	line-height: 1.6rem;
	gap: 0.8rem;
	border-radius: 2.4rem;
	transition: 0.3s;
}
.contact-link a:hover{
	background: var(--lightblue);
}
.contact-link a:before{
	content: '';
	display: block;
	width:2rem;
	height: 2rem;
	background: url(../images/icon-send-w.svg) no-repeat center center;
	background-size: contain;
}
.global-nav .sub-menu{
	display: none;
	position: absolute;
	top: 7.2rem;
	left: -3rem;
	width: 30rem;
	padding:0.2rem 0.8rem;
	transition: 0.3s;
	z-index:100;
	background: var(--gradient01);
	border-radius: 0 0 0.8rem 0.8rem;
	box-shadow: 0 0.8rem 1.2rem rgba(0,0,0,0.25);
	animation: sub-menu-anim 0.5s cubic-bezier(0.33, 1, 0.68, 1) forwards;
}
.global-nav-ul>li:hover .sub-menu{
	display: block;
	top: 7.2rem;
	left: 0;
	color: var(--white);
}
.global-nav .sub-menu li a{
	display: block;
	padding: 0.8rem 1.2rem 1.0rem;
	border-bottom: 0.1rem solid rgba(255,255,255,0.5);
	color: var(--white);
	font-weight: 500;
	transition: 0.3s;
}
.global-nav .sub-menu li a:hover{
	background: rgba(255,255,255,0.2);
}
.global-nav .sub-menu li:last-child a{
	border:none;
}
.header.header-tr .global-nav-ul>li a{
	color:var(--white);
	text-shadow: 0 0.4rem 0.4rem rgba(0,0,0,0.25);
}
.header.header-tr .global-nav-ul>li:hover>a{
	color:var(--blue02);
}

@keyframes sub-menu-anim {
	0% {
		display: none;
		top: 7.2rem;
		left: 0;
		margin-left:-3rem;
	}
	1%{
		display: block;
		top: 7.2rem;
		left: -3rem;
		margin-left:-3rem;
		opacity:0;
	}
	100% {
		left:0;
		opacity:1;
	}
  }


.global-nav-sp{
	display: none;
}

.hamburger{
	display: none;
}



/*-------------- footer --------------*/

.footer{
	background: var(--gray02);
	color: var(--gray05);
}
.footer .container.fixed-width{
	position: relative;
	max-width: 128.0rem;
	padding: 5rem 1.2rem;
	z-index: 10
}

.footer-body{
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	padding: 1rem 0;
}
.footer-address{
	width: 30%;
}

.footer-address address{
	font-size: 1.4rem;
	font-style: normal;
	line-height: 1.4;
}
.footer-menu{
	width: 70%;
	font-size: 1.4rem;
}

.footer-menu ul{
	display: flex;
	flex-wrap: wrap;
}
.footer-menu>ul>li{
	width: 25%;
	padding: 0 1.6rem 2rem;
	font-weight: normal;;
}
.footer-menu a{
	color: var(--gray05);
}
.footer-menu ul.sub-menu{
	display: flex;
	flex-direction: column;
}
.footer-copyright{
	margin-top: 2rem;
	font-size: 1.6rem;
	font-family: "Roboto Condensed", sans-serif;
}
.footer-menu-root>li{
	color: var(--white);
	padding-bottom: 3rem;
}

.footer-menu-root>li>a{
	display: block;
	color: var(--gray07);
	font-weight: normal;
}

.footer-x-fig{
	width: 16px;
	margin-left: 12px;
}


/*-------------- common --------------*/

.contents-wrapper{

}

.contents-head{
	height: 35vw;
	max-height: 64rem;
	padding-top: 7.2rem;
	clip-path: ellipse(92% 100% at top);
	background-repeat: no-repeat;
	background-size: cover;
	background-position: center 0;
	opacity:0;
	animation: contents-head-anim 1s cubic-bezier(0.33, 1, 0.68, 1) forwards;
	animation-delay: 0.2s;
}
@keyframes contents-head-anim {
	0% {
		clip-path: ellipse(0% 0% at top);
		background-position: center -10rem;
	}
	100% {
		clip-path: ellipse(92% 100% at top);
		opacity:1;
		background-position: center 0;
	}
}



.page-name{
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-start;
	width: 100%;
	height: 90%;
	max-width: 128.0rem;
	mix-blend-mode: screen;
	margin: 0 auto;
	gap: 0.8em;
	padding: 0 3rem;
}
.page-name-ja{
	font-size: 5.8rem;
	font-weight: 800;
	line-height: 1;
	background: var(--gradient01);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	white-space: nowrap;
	text-align: left;
}
.page-name-en{
	font-size: 4.8rem;
	font-weight: 800;
	line-height: 1;
	letter-spacing: -0.02em;
	font-family: "Roboto Condensed", sans-serif;
	background: var(--gradient01);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	white-space: nowrap;
	text-align: left;
}

.breadcrumb{
	position: absolute;
	top:7rem;
	left:0;
}
.breadcrumb ul{
	padding: 0 1.2rem;
}
.breadcrumb ul li{
	display: inline-block;
	color: var(--gray05);
	font-size: 1.2rem;
}
.breadcrumb ul li a{
	color: var(--gray05);
}
.breadcrumb ul li a:after{
	content: '>';
	margin-left: 0.8rem; 
}


.slideanim-wrap{
	position: relative;
	display: block;
	width:auto;
	overflow: hidden;
	animation: slideanim 1s cubic-bezier(0.33, 1, 0.68, 1) forwards;
	animation-delay: 1s;
	opacity: 0;
}
.slideanim-wrap+.slideanim-wrap{
	animation-delay: 1.2s;
}

.contents-head-s .slideanim-wrap{
	animation-delay: 0.3s;
}
.contents-head-s .slideanim-wrap+.slideanim-wrap{
	animation-delay: 0.5s;
}

body:has(.service) .page-name:before{
	content:'法人・個人事業主様限定';
	background: var(--blue);
	color: var(--yellow);
	font-size: 2rem;
	line-height: 2rem;
	padding: 0.8rem 1.2rem;
	font-weight: bold;
}

@keyframes slideanim {
	0% {
		opacity: 0;
		width: auto;
		transform: translateX(-100px);
	}
	100% {
		opacity: 1;
		width: auto;
		transform: translateX(0px);
	}
  }

.contents-head-s{
	height: 24rem;
	padding-top: 7.2rem;
}
.contents-head-s .page-name{
	mix-blend-mode: normal;
	justify-content: flex-start;
	padding-top: 5rem;
}
.contents-head-s .page-name-ja{
	font-size: 4.2rem;
    font-weight: 800;
    line-height: 1;
    background: var(--gradient01);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    white-space: nowrap;
    text-align: left;
}

.contents-head-s .page-name-en{
	font-size: 3.8rem;
	font-weight: 800;
	line-height: 1;
	letter-spacing: -0.02em;
	font-family: "Roboto Condensed", sans-serif;
	background: var(--gradient01);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	white-space: nowrap;
	text-align: left;
	opacity: 0.2;
}

.section-bgblue{
	background: var(--blue);
	color: var(--white);
}

.section-content{

}
.container{
	display: block;
	margin-right: auto;
	margin-left: auto;
}

.container.fixed-width{
	position: relative;
	max-width: 128.0rem;
	padding: 0 3rem;
	z-index: 10
}

.content-box{

}

.mid{
	display: block;
	margin: 0;
	text-align: center;
}
.mid-l{
	font-size: 4.8rem;
	line-height: 1.2;
	font-weight: 800;
}
.mid-m{
	font-size: 3.0rem;
	line-height: 1.2;
	font-weight: 800;
}
.mid-s{
	font-size: 2.4rem;
	line-height: 1.2;
	font-weight: 800;
}
.mid-cube-b{
	padding-top: 5rem;
	background: url(../images/mid-cube-b.svg) no-repeat center top;
	background-size: 3.8rem 4.4rem;
}
.mid-cube-w{
	padding-top: 5rem;
	background: url(../images/mid-cube-w.svg) no-repeat center top;
	background-size: 3.8rem 4.4rem;
}
.mid-b{
	color: var(--blue02);
}
.mid-w{
	color: var(--white);
}

.catch{
	font-size: 3.8rem;
	line-height: 5.0rem;
	font-weight: 700;
	text-align: center;
}
.catch-b{
	color: var(--blue02);
}
.catch-w{
	color: var(--white);
}
.btn{
	display: inline-flex;
	justify-content: center;
	align-items: center;
	background: var(--yellow);
	gap: 0.4rem;
	padding: 1rem 2.4rem;
	border-radius: 2.4rem;
	color: var(--darkblue);
	font-size: 1.6rem;
	font-weight: 800;
	line-height: 1.6rem;
	box-shadow: 0 0.4rem 0.4rem rgba(0,0,0,0.15);
	border: 0.2rem solid var(--yellow);
	transition: 0.3s;
}
.btn:before{
	content: '';
	display: block;
	width: 1.8rem;
	height: 1.8rem;
	background: url(../images/icon-btnarrow.svg) no-repeat center center;
	background-size: contain;
}
.btn:hover{
	padding: 0.8rem 2.4rem 1.2rem;
	border: 0.2rem solid var(--lightblue);
	box-shadow: 0 0.8rem 0.8rem rgba(0,0,0,0.1);
	transform: translateY(-0.2rem);
}
.box{
	border: 0.1rem solid var(--gray08);
	box-shadow: 0 0.2rem 0.4rem rgba(0,0,0,0.1);
	border-radius: 1.6rem;
}

.list-table{
	width: 100%;
	display: flex;
	flex-direction: column;
	gap: 0;
}
.list-table .tr{
	display: flex;
	width: 100%;
	gap:0;
	justify-content: space-between;
	align-items: stretch;
	border-top: 0.1rem solid var(--gray06);
}
.list-table .tr .th{
	display: flex;
	justify-content: left;
	align-items: center;
	width: 20%;
	padding: 2rem;
	color: var(--gray03);
	border-top: 0.4rem solid var(--blue02);
	text-align: left;
	;
}
.list-table .tr .th{
	display: flex;
	justify-content: left;
	align-items: flex-start;
	width: 20%;
	padding: 1.6rem 2rem 2rem;
	font-size: 1.6rem;
	color: var(--gray03);
	border-top: 0.4rem solid var(--blue02);
	font-weight: 600;
	line-height: 1.5;
}
.list-table .tr .td{
	display: flex;
	justify-content: left;
	align-items: flex-start;
	width: 80%;
	padding: 2rem 2rem 2rem;
	font-size: 1.6rem;
	color: var(--gray03);
	font-weight: 400;
	line-height: 1.5;
}

/*-------------- form --------------*/


input,textarea,select{
    font-family:"Roboto", "Noto Sans JP", sans-serif;
}

input{
    margin: 0;
}

input[type="text"],input[type="password"],input[type="date"],input[type="email"],input[type="datetime-local"],input[type="tel"],input[type="url"],input[type="file"]{
    display: inline-block;
	width: 100%;
    padding: 0.4rem 1.2rem;
    height: 4.0rem;
    border: 1px solid var(--gray04);
    font-size: 1.6rem;
    line-height: 2.0rem;
    color: var(--gray02);
    border-radius: 4px;
    box-shadow: inset 0 0.2rem 0 rgba(0,0,0,0.1) ;
}

textarea{
    display: inline-block;
	width: 100%;
    padding: 0.8rem 1.2rem;
    border: 1px solid var(--gray04);
    font-size: 1.6rem;
    line-height: 2.0rem;
    color: var(--gray02);
    border-radius: 4px;
}

input[type="text"]:focus,input[type="password"]:focus,input[type="date"]:focus,input[type="email"]:focus,input[type="datetime-local"]:focus,textarea:focus,input[type="tel"]:focus,input[type="url"]:focus,input[type="file"]:focus{
    border: 1px solid var(--blue);
    background: var(--bg);
}

input[type="text"]::placeholder,input[type="password"]::placeholder,input[type="date"]::placeholder,input[type="email"]::placeholder,input[type="datetime-local"]::placeholder,textarea::placeholder,input[type="tel"]::placeholder,input[type="url"]::placeholder,input[type="file"]::placeholder{
    font-size: 1.6rem;
    line-height: 2.0rem;
    color: var(--gray05);
}

input[type="text"].error,input[type="password"].error,input[type="date"].error,input[type="email"].error,input[type="datetime-local"].error,textarea.error,input[type="tel"].error,input[type="url"].error,input[type="file"].error{
    border: 1px solid var(--red);
    background: var(--dangerlight);
}

input[type="file"] {
}

input:disabled,select:disable,textarea:disable{
    opacity: 0.4;
}

.input-checkboxes{
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 2rem 2.4rem;
    padding: 0.4rem 3.6rem 0.4rem 0.2rem;
}
.input-checkboxes-v{
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    padding: 0.4rem 3.6rem 0.4rem 0.2rem;
}
.input-checkbox{
    display: flex;
    align-items: center;
    gap: 0.8rem;
}

input[type="checkbox"]{
    width: 2rem;
    height: 2rem;
    display: inline-block;
    background: url(../images/check-off.svg) no-repeat center center ;
    background-size: 2rem;
}

input[type="checkbox"]:checked{
    background: url(../images/check-on.svg) no-repeat center center ;
    background-size: 2rem;
}

.input-radios{
    display: flex;
    justify-content: flex-start;
    align-items: center;
    flex-wrap: wrap;
    gap: 2rem 2.4rem;
    padding: 0.4rem 3.6rem 0.4rem 0.2rem;
}
.input-radios-v{
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start;
    padding: 0.4rem 3.6rem 0.4rem 0.2rem;
}
.input-radio{
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 0.8rem;
}

input[type="radio"]{
    width: 2rem;
    height: 2rem;
    display: inline-block;
    background: url(../images/radio-off.svg) no-repeat center center ;
    background-size: 2rem;
}

input[type="radio"]:checked{
    background: url(../images/radio-on.svg) no-repeat center center ;
    background-size: 2rem;
}

.check-wrap{
    display: flex;
    justify-content: flex-start;
    align-items: center;
    padding: 0 0.4rem;
}

.check-wrap:last-child{
    padding-bottom: 0;
}

.check-wrap input[type="checkbox"]{
    margin-right: 0.8rem;
}

input[type="checkbox"],input[type="radio"]{
    max-width: 2.4rem !important;
    min-width: 2.4rem !important;
}

select{
    display: inline-block;
    padding: 0.4rem 1.2rem;
    height: 4.0rem;
    border: 1px solid var(--gray500);
    font-size: 1.6rem;
    line-height: 2.0rem;
    color: var(--darkgray);
    background: #FFF url(../images/arrow-dd.svg) right 0.8rem center no-repeat;
    background-size: 2.4rem;
    border-radius: 0.4rem;
    box-shadow: inset 0 0.2rem 0 rgba(0,0,0,0.1) ;
}

select:focus{
    border: 1px solid var(--blue);
    background: var(--highlight) url(../images/arrow-dd.svg) right 0.8rem center no-repeat;
    background-size: 2.4rem;
    outline: none;
}

input.hasdatalist::-webkit-calendar-picker-indicator{
    display: none;
    opacity:0;
}

input[type="text"].error-disp,input[type="password"],input[type="email"].error-disp,textarea.error-disp,select.error-disp,textarea.error-disp,input[type="tel"].error-disp,input[type="url"].error-disp,input[type="file"].error-disp{
    border-color: var(--red);
}
label{
    white-space: nowrap;
    margin-right: 1.0rem;
}
.input-error{
    width: 100%;
    padding: 0;
    font-size: 1.3rem;
    line-height: 1.5;
    color: var(--red);
    text-align: left;
}
.input-error .error{
    display: block;
    width: 100%;
    padding: 0.2rem;
    text-align: left;
}
.th.required:after{
	content: '必須';
	display: inline-block;
	color: var(--red);
	border: 0.1rem solid var(--red);
	font-size: 1.2rem;
	line-height: 1.2rem;
	padding: 0.2rem 0.4rem;
	margin-left:0.8rem;
	margin-top: 0.4rem;
	white-space: nowrap;
}
input::placeholder {
	color: var(--gray05);
  }

section.page{
	padding: 0 3rem 4rem;
}

.page-body{
	padding: 3rem;
	text-align: center;
}
.formmemo{
	padding:8px 0;
	text-align:left;
	font-size:90%
}

/*-------------- home --------------*/

section.intro{
	min-height: 100vh;
	padding-top: 7.2rem;
	padding-bottom: 10rem;
	z-index: 10;
}

section.intro:after{
	content: '';
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: linear-gradient(180deg, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0.6) 100%);
	z-index: 1;
}

.home-intro{
	padding-top: 18vh !important;
}

.intro-box-1{
	position: relative;
}
.intro-catch{
	position: relative;
	max-width:126rem;
	height: 28rem;
}

.intro-catch-1{
	position: absolute;
	display: flex;
	align-items: flex-end;
	gap: 0.4rem;
	top: 0;
	left: 0;
	font-size: 11.4rem;
	line-height: 1.1;
	font-weight: 600;
	letter-spacing: -0.02em;
	background: var(--gradient01);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	z-index: 11;
}
.intro-catch-2{
	position: absolute;
	display: flex;
	align-items: flex-end;
	gap: 0.4rem;
	top: 0;
	left: 0;
	font-size: 11.4rem;
	line-height: 1.1;
	font-weight: 600;
	letter-spacing: -0.02em;
	text-shadow: -0.2rem -0.2rem 0 #96E1FF , 0.2rem 0.2rem 0 #1E70C8 , 0rem 0.6rem 0.4rem rgba(0,0,0,0.25);
	z-index: 10;
}
.intro-catch-3{
	position: absolute;
	display: flex;
	align-items: flex-end;
	gap: 0.4rem;
	top: 12rem;
	left: 17rem;
	font-size: 11.4rem;
	line-height: 1.1;
	font-weight: 600;
	letter-spacing: -0.02em;
	background: var(--gradient01);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	z-index: 11;
}
.intro-catch-4{
	position: absolute;
	display: flex;
	align-items: flex-end;
	gap: 0.4rem;
	top: 12rem;
	left: 17rem;
	font-size: 11.4rem;
	line-height: 1.1;
	font-weight: 600;
	letter-spacing: -0.02em;
	text-shadow: -0.2rem -0.2rem 0 #96E1FF , 0.2rem 0.2rem 0 #1E70C8 , 0rem 0.6rem 0.4rem rgba(0,0,0,0.25);
	z-index: 10;
}
.intro-catch span{
	font-size: 6.2rem;
}
.intro-catch-en{
	position: absolute;
	bottom: -1rem;
	left: 18rem;
	color: var(--white);
	font-family: "Roboto Condensed", sans-serif;
	font-size: 2.0rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	opacity: 0.8;
	z-index: 5;
}

.intro-box-2{
	position: relative;
	margin-top: 10rem;
    margin-left: 50.5%;
    width: 49.5%;
	border-left: 0.2rem solid var(--lightblue);
	padding: 0.4rem 0 0.4rem 3.2rem;
	text-shadow: 0 0.2rem 0.4rem rgba(0,0,0,0.2);
	z-index: 6;
}
.intro-box-2 h3{
	margin-bottom: 1.5rem;
	font-size: 3.2rem;
	color: var(--gray08);
	font-weight: 800;
}
.intro-box-2 h3 span{
	font-size: 5.2rem;
	line-height: 1;
}
.intro-box-2 p{
	color: var(--gray08);
	font-weight: 600;
	line-height: 1.75;
}

.intro-box-3{
	position: relative;
	margin-top: 12rem;
	width: 45%;
	border-left: 0.2rem solid var(--lightblue);
	padding: 0.4rem 0 0.4rem 3.2rem;
	text-shadow: 0 0.2rem 0.4rem rgba(0,0,0,0.2);
	z-index: 6;
}
.intro-box-3 h3{
	margin-bottom: 1.5rem;
	font-size: 3.2rem;
	color: var(--gray08);
	font-weight: 800;
}
.intro-box-3 h3 span{
	font-size: 5.2rem;
	line-height: 1;
}
.intro-box-3 p{
	color: var(--gray08);
	font-weight: 600;
	line-height: 1.75;
}

.intro-box-4{
	position: relative;
	margin-top: -30rem;
	width: 48%;
	z-index: 6;
	margin-left: 52%;
	margin-bottom: -12rem;
}
.home-intro-fig-1{
	margin-top: -40rem;
	width: 53rem;
}
.home-intro-fig-2{

}



section.company{
	position: relative;
	padding-bottom: 16rem;
	background: var(--white);
	z-index:4;
}

section.company:before{
	display: block;
	content:'';
	position: absolute;
	top: -5vw;
	width: 100vw;
	height: 5vw;
	background: url(../images/home-separator-1.svg) no-repeat center bottom;
	background-size: cover;
}

.home-company{
	padding: 8rem 3.2rem 0 !important;
	height: 94rem
}

.home-company .catch-en{
	font-size: 17rem;
	line-height: 17rem;
	color: #CEE3F7;
	font-family: "Roboto Condensed", sans-serif;
	font-weight: 800;
	letter-spacing: -0.03em;
	text-align: center;
	z-index: -1;
}

.home-company-body{
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 2rem;
	margin-top: -16rem;
	padding: 0 6rem;
}
.home-company-figs{
	width: 50%;
	height: 60rem;
	margin-top: -16rem;
	z-index: 10;
}
.home-company-fig-1{
	margin-top: -18rem;
	width: 53rem;
}
.home-company-fig-2{
	margin-top: 32rem;
}
.home-company-read{
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 1.8rem;
	width: 50%;
	margin-top: 30rem;
}

section.business{
	position: relative;
	padding-bottom: 0;
	background: var(--bg);
	z-index: 5;
}
section.business:before{
	display: block;
	content:'';
	position: absolute;
	top: -5vw;
	width: 100vw;
	height: 5vw;
	background: url(../images/home-separator-2.svg) no-repeat center bottom;
	background-size: cover;
}
section.business:after{
	display: block;
	content:'';
	position: absolute;
	bottom: -5vw;
	width: 100vw;
	height: 5vw;
	background: url(../images/home-separator-3.svg) no-repeat center bottom;
	background-size: cover;
}

.home-business{
	padding: 8rem 3.2rem 0 !important;
	height: 88rem
}

.home-business .catch-en{
	font-size: 17rem;
	line-height: 17rem;
	color: #CEE3F7;
	font-family: "Roboto Condensed", sans-serif;
	font-weight: 800;
	letter-spacing: -0.03em;
	text-align: center;
	z-index: -1;
}

.home-business-body{
	display: flex;
	position: relative;
	width: 100%;
	justify-content: center;
	align-items: center;
	gap: 4.8rem;
	padding: 0 6rem;
}
.home-business-figs{
	position: relative;
	right: 0;
	width: 40%;
	max-width: 35rem;
	z-index: 10;
}
.home-business-fig-1{

}

.home-business-read{
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 1.8rem;
	width: 50%;
}


section.recruit{
	position: relative;
	margin-top: -32rem;
	padding-bottom: 0;
	background: rgba(0,0,0,0.4);
	z-index: 4;
}

.home-recruit{
	position: relative;
	padding: 20rem 3.2rem 12rem !important;
	z-index: 5;
}

.home-recruit .catch-en{
	position: relative;
	font-size: 17rem;
	line-height: 17rem;
	color: rgba(58,160,255,0.7);
	font-family: "Roboto Condensed", sans-serif;
	font-weight: 800;
	letter-spacing: -0.03em;
	text-align: center;
	z-index: 5;
}

.home-recruit-body{
	display: flex;
	position: relative;
	width: 100%;
	justify-content: center;
	align-items: center;
	gap: 4.8rem;
	padding: 0 6rem;
	z-index: 10;
}

.home-recruit-read{
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1.8rem;
	width: 70%;
	color: var(--white);
	z-index: 10;
}
.home-recruit-read p{
	color: var(--white);
}


/*-------------- video --------------*/

.video-wrap {
	position: fixed;
	width: 100%;
	height: 100vh;
	top: 0;
	left: 0;
	z-index: -1;
}
.video {
	overflow: hidden;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: -1;
}
.video video {
	position: absolute;
	top: 50%;
	left: 50%;
	display: block;
	width: auto;
	height: auto;
	min-width: 100%;
	min-height: 100%;
	transform: translate(-50%,-50%);
}


/*-------------- about --------------*/

section.philosophy{
	padding: 8rem 3rem 16rem;
}

.philosophy-body{
	max-width: 72.8rem;
	margin: 0 auto;
}

.philosophy .catch{
	position: relative;
	margin:-6rem auto 4rem;
}

.philosophy .catch-en{
	font-size: 17rem;
	line-height: 17rem;
	color: #eee;
	font-family: "Roboto Condensed", sans-serif;
	letter-spacing: -0.03em;
	text-align: center;
	z-index: -1;
}

section.vision{
	padding: 8rem 3rem 16rem;
}
.vision .catch-en{
	font-size: 17rem;
	line-height: 17rem;
	color: #fff;
	opacity: 0.1 !important;
	font-family: "Roboto Condensed", sans-serif;
	letter-spacing: -0.03em;
	text-align: center;
	z-index: -1;
}
.vision .catch{
	position: relative;
	margin:-6rem auto 4rem;
}

section.corpinfo{
	padding: 5rem 3rem 8rem;
}
.corpinfo-body{
	padding: 4rem 0 0 0;
}
.corpinfo-table{
	width: 80%;
	margin: 3rem auto 3rem;
}
.corpmap {
	max-width: 100%;
	border-top: 0.1rem solid var(--gray06);
  }
  .map {
	position: relative;
	width: 100%;
	height: 0;
	padding-top: 40%;
  }
  .map iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
  }

/*-------------- business --------------*/

section.biz-1{
	padding: 3rem 3rem 8rem;
}
.biz-fig{
	position: absolute;
	right: 8%;
	top: calc(40rem - 4vw);
	width: 24vw;
	animation: biz-fig-anim 1s cubic-bezier(0.33, 1, 0.68, 1) forwards;
	animation-delay: 1s;
	opacity: 0;
	z-index: 10;
}
@keyframes biz-fig-anim {
0% {
	opacity: 0;
	top: calc(-35vw + 14vw);
}
100% {
	opacity: 1;
	top: calc(-35vw + 9vw);
}
}
.biz-body{
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	padding: 0 5rem;
	text-align: center;
	gap: 3.2rem;
}
.biz-body .box{
	display: flex;
	flex-direction: column;
	justify-content: stretch;
	gap: 1.2rem;
	width: calc(50% - 1.6rem);
	padding: 4rem 5rem;
	text-align: center;
}
.biz-body .biz-box1{
	width: 100%;
}
.mid-quot{
	display: inline-block;
	position: relative;
	padding: 4rem;
	text-align: center;
	align-self: center;
}
.mid-quot:before{
	content:'“';
	position: absolute;
	top:0;
	left:0;
	font-size: 10.8rem;
	line-height: 10.8rem;
	color: var(--blue02);
	opacity: 0.15;
}
.mid-quot:after{
	content:'”';
	position: absolute;
	top:0;
	right:0;
	font-size: 10.8rem;
	line-height: 10.8rem;
	color: var(--blue02);
	opacity: 0.15;
}
.skills{
	display: flex;
	justify-content: space-between;
	align-items: stretch;
	gap: 3.2rem;
	margin-top: 3.2rem;
}
.skill{
	width: 33.33%;
	display: flex;
	border-radius: 1.0rem;
	flex-direction: column;
	gap: 2rem;
	background: var(--bg);
	padding: 3.2rem 3.2rem;
	color: var(--blue);
}
.skill .skill-name{
	position: relative;
	padding-bottom: 1.2rem;
}

.skill .skill-name:after{
	content: '';
	display: block;
	position: absolute;
	left: calc(50% - 1.5rem);
	bottom: 0;
	width: 3rem;
	height: 0.2rem;
	background: var(--blue);
}
.skill .skill-name h4{
	font-size: 2.4rem;
	color: var(--darkblue);
}
.skill .skill-name span{
	font-family: "Roboto Condensed", sans-serif;
}
.skill p{
	color: var(--blue);
	text-align: left;
}

a.go3dprint{
	display:flex;
	width: 100%;
	height: 14rem;
	border-radius:2rem;
	justify-content: center;
	align-items: center;
	gap: 1.2rem;
	flex-direction: column;
	font-size: 2.4rem;
	line-height: 2.4rem;
	background: url(../images/go-3dprint.jpg) no-repeat center center;
	background-size: 100%;
	font-weight: bold;
	color: var(--white);
	text-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.6);
	transition: .3s !important;
}
a.go3dprint span{
	display: flex;
    justify-content: center;
    align-items: center;
    gap: 0.4rem;
    flex-grow: 0;
    height: 2rem;
    font-size: 1.5rem;
    font-weight: bold;
}
a.go3dprint span:before{
	content: '';
    display: block;
    position: relative;
    width: 1.8rem;
    height: 1.8rem;
    background: url(../images/icon-btnarrow-w.svg) no-repeat center center;
    background-size: contain;
}
a.go3dprint:hover{
	background-size: 110%;
}


/*-------------- message --------------*/

section.message{
	padding: 8rem 3rem 16rem;
}

.message-body{
	max-width: 94rem;
	margin: 0 auto;
}

.message .catch{
	position: relative;
	margin:2rem auto 4rem;
}

.message h3.catch{
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 0.4rem;
	font-size: 7rem;
}
.message h3.catch span{
	color: #31C1FF;
    font-size: 11.4rem;
    line-height: 1.1;
    font-weight: 600;
    letter-spacing: -0.02em;
    text-shadow: -0.2rem -0.2rem 0 #96E1FF, 0.2rem 0.2rem 0 #1E70C8;
    z-index: 10;
}

section.from{
	padding: 8rem 3rem 8rem;
	position: relative;
}
.from .catch-en{
	font-size: 17rem;
	line-height: 17rem;
	color: #fff;
	opacity: 0.1 !important;
	font-family: "Roboto Condensed", sans-serif;
	letter-spacing: -0.03em;
	text-align: center;
	z-index: -1;
}
.from .catch{
	position: relative;
	margin:-6rem auto 4rem;
}

.ceo-photo-wrap{
	position:absolute;
	top: -8rem;
	right: calc(50vw - 64rem);
	width: 51.3rem;
	height: 48rem;

}
.ceo-photo{
	position: relative;
	width: 51.3rem;
	height: 48rem;
	z-index: 100;
}

.ceo-photo-ghost{
	position: absolute;
	width: 41rem;
	height: 41.9rem;
	top: 0;
	left: 6rem;
	z-index: 10;
	mix-blend-mode: color-burn;
	opacity: 0.4;
}

.message-text{
	margin-top: 10rem;
	padding: 2rem;
}

.ceo-sign-box{
	margin-top: 1rem;
	padding: 2rem;
	text-align: right;
}

/*-------------- anout-menu --------------*/
.about-menu{
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 4rem;
	padding: 6rem 2rem;
	background: #F2F4F6;
}

.about-menu-link{
	display: flex;
	position: relative;
	flex-direction: row;
	justify-content: center;
	align-items: center;
	width: 31.4rem;
	height: 23rem;
	background: var(--gray01);
	border-radius:2rem;
	transition: .3s;
	overflow: hidden;
	color: var(--white);
}

.about-menu-link:before{
	content:'';
	display: block;
	position: absolute;
	width: 100%;
	height: 100%;
	background-color: rgba(0,0,0,0.2);
	transition: .3s;
	z-index: 0;
}

.about-menu-company{
	background: url(../images/about-menu-company.jpg) no-repeat center center;
	background-size: 100%;
}
.about-menu-future{
	background: url(../images/about-menu-future.jpg) no-repeat center center;
	background-size: 100%;
}
.about-menu-facility{
	background: url(../images/about-menu-facility.jpg) no-repeat center center;
	background-size: 100%;
}
.about-menu-message{
	background: url(../images/about-menu-message.jpg) no-repeat center center;
	background-size: 100%;
}

.about-menu-link:hover{
	background-size: 110%;
}
.about-menu-link:hover:before{
	background-color: rgba(0,0,0,0.5);
}
.about-menu-box{
	display: flex;
	flex-direction: column;
	z-index: 100;
	justify-content: stretch;
	align-items: center;
	height: 100%;
}
.about-menu-name{
	flex-grow: 2;
	display: flex;
	align-items: center;
	padding-top: 5rem;
	font-size: 2.4rem;
	font-weight: bold;
	text-shadow: 0 0.2rem 0.5rem rgba(0,0,0,0.6);
}
.about-menu-more{
	display: flex;
	justify-content: center;
	align-items: center;
	gap:0.4rem;
	flex-grow: 0;
	height: 5rem;
	font-size: 1.5rem;
	font-weight: bold;
	text-shadow: 0 0.2rem 0.5rem rgba(0,0,0,0.6);
}
.about-menu-more:before{
	content: '';
	display: block;
	position: relative;
	width: 1.8rem;
	height: 1.8rem;
	background: url(../images/icon-btnarrow-w.svg) no-repeat center center;
	background-size: contain;
}

/*-------------- future --------------*/

section.future{
	padding: 8rem 3rem 8rem;
}
.future-body{
	text-align: center;
}
.future-logo{

}
.future-logo img{
	width: 18.7rem;
}
.future .catch-en{
	position: relative;
	color: var(--gradient01);
	font-family: "Roboto Condensed", sans-serif;
	font-size: 12.0rem;
	letter-spacing: -0.02em;
	background: linear-gradient(146.86deg, #31c1ff, #0779e3);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	text-align: center;
	mix-blend-mode: normal;
}

.future-text-text{
	position: relative;
	font-size: 2rem;
	letter-spacing: 0.1em;
	line-height: 220%;
	font-weight: 500;
	font-family: 'Noto Sans JP';
	background: linear-gradient(146.86deg, #31c1ff, #0779e3);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	text-align: center;
}


/*-------------- equipment --------------*/

section.eq{
	padding: 3rem 3rem 8rem;
}

.eq-body{
	display: flex;
	flex-direction: column;
	flex-wrap: wrap;
	align-items: stretch;
	padding: 0 5rem;
	gap: 2rem;
}
.eq-body .box{
	display: flex;
	flex-direction: column;
	justify-content: stretch;
	gap: 1.2rem;
	margin-top:4rem;
	padding: 4rem 12rem;
}
.eq-machines{
	display: flex;
	flex-direction: column;
	gap:4rem;
	padding: 6rem 0 2rem;
}
.eq-machine{
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	padding-bottom: 4rem;
	gap: 2.4rem;
}
.eq-fig{
	width: 32%;
	max-width:36.8rem;
}




/*-------------- saiyou --------------*/

section.saiyou{
	padding: 3rem 3rem 8rem;
}

.saiyou-body{
	display: flex;
	flex-direction: column;
	flex-wrap: wrap;
	align-items: stretch;
	padding: 0 5rem;
	text-align: center;
	gap: 2rem;
}
.saiyou-body .box{
	display: flex;
	flex-direction: column;
	justify-content: stretch;
	gap: 1.2rem;
	margin-top:4rem;
	padding: 4rem 12rem;
	text-align: center;
}
.saiyou-message{
	text-align: left;
	border-left: 0.5rem solid var(--blue);
	margin: 2rem 3rem 2rem 3rem;
	padding:0rem  3.2rem;
}
.saiyou-message h2{
	padding: 0 0 1rem 0;
	color: var(--blue02);
	font-size: 3.2rem;
	line-height:140%;
}

.saiyou-jobs-wrap{
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
}

.saiyou-jobs{
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	gap: 1.6rem;
	padding: 0rem 2rem;
}
.saiyou-jobs li{
	width: 50%;
	background: var(--yellow);
	color: var(--blue);
	font-size: 2.8rem;
	font-weight: bold;
	line-height: 1;
	padding: 1rem;
}
.saiyou-jobs-wrap strong{
	font-weight: bold;
	color: var(--blue);
	font-size: 2.4rem;
}
.saiyou-cta-box{
	padding: 0 2rem;
	text-align: center;
}
.saiyou-cta{
	position: relative;
	display: inline-flex;
	box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.15);
	border-radius: 1rem;
	background-color: var(--blue02);
	overflow: hidden;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 1.8rem 10rem;
	box-sizing: border-box;
	gap: 1rem;
	cursor: pointer;
	text-align: center;
	font-size: 3.0rem;
	color: var(--white);
	font-weight: bold;
	transition: 0.3s;
}
.saiyou-cta:hover{
	background-color: var(--lightblue);
}
.saiyou-cta div{
	line-height: 1;
}
.saiyou-cta span{
	display: inline-flex;
	justify-content: center;
	align-items: center;
	gap: 0.8rem;
	line-height: 1;
	font-size: 2rem;
}
.saiyou-cta span:before{
	content: '';
	display: block;
	position: relative;
	width: 1.8rem;
	height: 1.8rem;
	background: url(../images/icon-btnarrow-w.svg) no-repeat center center;
	background-size: contain;
}
.saiyou-job-links{
	display: flex;
	justify-content: center;
	align-items: center;
	gap:1.6rem;
	padding: 0rem 2rem;
	margin-bottom: 1.6rem;
}
.saiyou-job-link{
	display: flex;
	justify-content: center;
	align-items: center;
	padding: 1rem 2rem;
	width: 33.33%;
	border: 0.1rem solid var(--blue02);
	color: var(--blue02);
	font-size: 2rem;
	line-height: 2.2rem;
	font-weight: bold;
	border-radius: 0.8rem;
	background: url(../images/icon-downarrow.svg) no-repeat right 1.2rem center;
	transition: 0.3s;
	background-color: #fff;
}
.saiyou-job-link:hover{
	filter: brightness(1.2);
	background-color:#CEE3F7;
}
.saiyou-box{
	padding: 2rem;
}
.job-head{
	background: url(../images/bg-grid.svg) left top;
	border-top: 3px solid var(--lightblue);
	height: 130px;
	margin: 0 8px;
	border-right: 1px solid #D9EDFF;
}

.job-name{
	line-height: 100%;
	text-align: left;
	margin-top: 2rem;
	margin-left: 2.8rem;
	font-size: 3.2rem;
}
.job-name span{
	font-size: 2.0rem;
	font-weight: normal;
}
.job-name-en{
	display: block;
	line-height: 100%;
	text-align: left;
	margin-top: 1rem;
	margin-left: 2.8rem;
	font-size: 1.4rem;
	color: var(--lightblue);
}
.job-catch{
	line-height: 100%;
	text-align: right;
	margin-top: 0.2em;
	margin-right: 1.8rem;
	font-size: 2.2rem;
	color: var(--lightblue);
}
.job-btn-wrap{
	display: flex;
	justify-content: flex-end;
	padding: 0.8rem;
}
.job-btn{
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 0.8rem;
	position: relative;
	padding: 1rem 2.4rem;
	box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.15);
	border-radius: 8px;
	background-color: #ffe100;
	color: var(--blue02);
	font-weight: bold;
	font-size: 1.8rem;
	line-height: 2rem;;
	transition: 0.3s;
}
.job-btn:before{
	content: '';
	display: block;
	position: relative;
	width: 2.6rem;
	height: 2.2rem;
	background: url(../images/icon-interview.svg) no-repeat center center;
	background-size: contain;
}
.job-btn:hover{
	background-color: var(--yellow);
}

.job-body{
	padding: 3rem 4rem;
	text-align: left;
}
.job-fig-wrap{
	width: 100%;
	max-width: 76.1rem;
	margin:5rem auto 2rem;
}
.job-fig-wrap span{
	display: block;
	text-align: right;
	font-size: 1.2rem;
	line-height: 1.6rem;
	color: var(--gray03);
}
.job-about{
	position: relative;
	border: 1px solid var(--lightblue);
	padding: 2rem 3rem;
	margin: 3rem auto;
	color: var(--blue);
}
.job-about:after{
	display: flex;
	justify-content: center;
	align-items: center;
	position: absolute;
	top: -2rem;
	right: -2rem;
	width: 90px;
	height: 90px;
	content:'こんな方が\Aぴったり!';
	white-space: pre;
	text-align: center;
	background-color: var(--blue02);
	color: var(--white);
	line-height: 1.6rem;
	font-size: 1.4rem;
	font-weight: bold;
}
.job-about h4{
	color: var(--blue);
	font-size: 1.8rem;
	line-height: 1.4;
	margin-bottom: 0.8rem
}
.job-about p{
	color: var(--blue);
	line-height: 1.4;
}

.traiings{
	display: flex;
	justify-content: space-between;
	align-items: stretch;
	flex-wrap: wrap;
	gap: 3.2rem;
	margin-top: 3.2rem;
}
.traiing{
	width: calc(50% - 1.6rem);
	display: flex;
	border-radius: 1.0rem;
	flex-direction: column;
	gap: 2rem;
	background: var(--bg);
	padding: 3.2rem 3.2rem;
	color: var(--blue);
}
.traiing .traiing-name{
	position: relative;
	padding-bottom: 1.2rem;
}

.traiing .traiing-name:after{
	content: '';
	display: block;
	position: absolute;
	left: calc(50% - 1.5rem);
	bottom: 0;
	width: 3rem;
	height: 0.2rem;
	background: var(--blue);
}
.traiing .traiing-name h4{
	font-size: 2.4rem;
	color: var(--darkblue);
}
.traiing .traiing-name span{
	font-family: "Roboto Condensed", sans-serif;
}
.traiing p{
	color: var(--blue);
	text-align: left;
}
.benefits{
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 2rem;
	margin:4rem 2rem 6rem;
}

.benefits li{
	display: block;
	padding: 1rem;
	color: var(--blue02);
	font-size: 1.8rem;
	font-weight: bold;
	line-height: 1.8rem;
	border: 1px solid var(--blue02);
	background-color: var(--white);
	border-radius: 0.8rem;
}

.benefits-box{
	background: url(../images/fig-benefits.png) no-repeat right 2rem center;
	background-size: 26.4rem;
	margin-bottom: 2rem;
}

/*-------------- interview --------------*/

.interview-items{
	display: flex;
	flex-direction: column;
	gap: 5rem;
	padding: 4rem 0 8rem;
}
.interview-item{
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap:4rem;
}
.interview-item:nth-child(even){
	flex-direction: row-reverse;
}

.interview-box{
	padding: 2rem 4rem;
}
.interview-head{
	border-bottom: 1px solid var(--gray02);
	padding: 1rem 0 1.6rem;
}
.interview-group{
	display: inline-block;
	background: var(--blue02);
	color: var(--white);
	font-weight: bold;
	font-size: 1.6rem;
	line-height: 2rem;
	padding: 0.8rem 1.4rem;
}
.interview-name{
	display: flex;
	justify-content: flex-start;
	gap:0.8rem;
	align-items: center;
	font-weight: bold;
	font-size: 2.2rem;
}
.interview-name span{
	font-size: 4.2rem;
	line-height: 5.2rem;
}
.interview-desc{
	font-size: 1.6rem;
	line-height: 2rem;
}
.interview-fig{
	width: 30rem;
	border-radius: 3rem;
	flex-shrink: 0;
}
.interview-fig img{
	width: 30rem;
	border-radius: 3rem;
}
.interview-body{
	padding: 3rem 0 0;
}
.interview-body h4{
	padding-left:30px;
	background: url(../images/icon-voice.svg) no-repeat left 8px;
	background-size: 22px;
	color: var(--blue02);
	font-weight: bold;
	font-size: 1.8rem;
}
.interview-body p{
	margin: 0.6rem 0 2rem; 
}

.saiyou-back{
	position: relative;
	box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.15);
	border-radius: 10px;
	background: linear-gradient(146.86deg, #31c1ff, #3aa0ff);
	height: 46px;
	width: 31rem;
	overflow: hidden;
	flex-shrink: 0;
	display: flex;
	flex-direction: row;
	align-items: center;
	color: #fff;
	font-weight: bold;
	font-size: 2rem;
	justify-content: center;
	margin: 0 auto;
	gap: 0.8rem;
}
.saiyou-back:before {
    content: '';
    display: block;
    position: relative;
    width: 1.8rem;
    height: 1.8rem;
    background: url(../images/icon-btnarrow-w.svg) no-repeat center center;
    background-size: contain;
	transform: rotate(180deg);
}




/*-------------- 3Dprint --------------*/

section.service{
	padding: 8rem 3rem 4rem;
}

.service-body{
	margin: 6rem auto;
	padding: 5rem 8rem;
}

.service .catch{
	position: relative;
	margin:-6rem auto 4rem;
}

.service .catch-en{
	font-size: 17rem;
	line-height: 17rem;
	color: #eee;
	font-family: "Roboto Condensed", sans-serif;
	letter-spacing: -0.03em;
	text-align: center;
	z-index: -1;
}

.s-sec-1{
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 6rem;
	padding-bottom:6rem;
}
.h3t{
	display: block;
	font-size: 3.2rem;
	line-height: 1.25;
	margin-bottom: 3rem;
}
.h4t1{
	display: block;
	font-size: 2rem;
	line-height: 1.25;
	margin-bottom: 1.2rem;
}
.service-fig-1{
	width: 32.8rem;
}
.flex-alpha{
	flex-shrink: 2;
}
.flex-beta{
	flex-shrink: 0;
	width: 32.8rem;
}
.s-sec-2{
	display: block;
	width: 100%;
	max-width: 71.2rem;
	margin: 0rem auto 4rem;
}
.s-sec-2 img{
	display: block;
	border-radius: 1.2rem;
}
.s-sec-2 p{
	padding: 0.4rem;
	font-weight: bold;
	font-size: 1.8rem;
}

.s-sec-3 h4{
	border-top: 1px solid var(--gray05);
}
.s-sec-3 h4 span{
	display: inline-block;
	font-size: 2.4rem;
	padding: 0.4rem 2rem;
	border-top: 4px solid var(--blue02);
	color: var(--blue02);
}
.sample-models{
	display: flex;
	gap: 3rem;
	margin: 2rem auto;
}
.sample-model{
	background: #F2F4F6;
	border-radius: 1.2rem;
	padding: 1.6rem;
}
.sample-model img{
	border-radius: 1.2rem;
}
.sample-model p{
	padding: 0.5rem;
	color: var(--blue);
	line-height: 1.75;
}
.service-services{
	display: flex;
	flex-direction: column;
	gap: 4rem;
	margin-top: 4rem;
}
.service-fig-6{
	width: 37rem;
	margin-left: 4rem;
	margin-bottom: -4rem;
	float: right;
}

.spec-wrap {
 position: relative;
 margin: 3rem auto;
 width: 100%;
 text-align: center;
}
table.spec_table {
 margin: 0 auto;
 width: 100%;
 border: 1px solid #cccccc;
 border-collapse: collapse;
 color: #333333;
 font-size: 13px;
 line-height: 140%;
}
table.spec_table th {
 border: 1px solid #cccccc;
 border-collapse: collapse;
 background-color: #F2F4F6;
 padding: 5px 1em;
 text-align: left;
 white-space: nowrap;
 font-weight: normal;
}
table.spec_table tr th:first-of-type {
 width: 25%;
}
table.spec_table th.typenum {
 font-size: 14px;
 text-align: center;
}
table.spec_table th span {
 font-size: 11px;
}
table.spec_table td {
 border: 1px solid #cccccc;
 border-collapse: collapse;
 padding: 5px 12px;
 text-align: center;
}
table.spec_table td.lt {
 padding: 5px 1em;
 text-align: left;
 line-height: 1.3em;
}
table.spec_table td div.sitxt {
 margin: 0;
 padding: 3px 1em;
 text-align: left;
 font-size: 12px;
 line-height: 1.6em;
}
.columns {
 margin: 0 auto;
 width: 70%;
 text-align: left;
 column-count: 2;
 column-gap: 3em;
 column-width: auto;
}
.h4t2{
	border-bottom: 1px solid var(--gray03);
	font-size: 2.2rem;
	line-height: 4rem;
	margin: 2rem 0;
}
.spce-box{
	display: flex;
	justify-content: space-between;
	padding: 0.8rem;
	gap:3rem;
	margin-bottom: 1.2rem;
}
.spce-box p{
	line-height: 1.75;
}
.spce-box p strong{
	font-size: 110%;
	line-height: 1.75;
}
.service-fig-7{
	margin-left: 2rem;
	width:40rem;
}
.service-fig-8{
	margin-left: 2rem;
	width:22.8rem;
}
.service-fig-9{
	margin-left: 2rem;
	width:21.2rem;
}
.service-flow{
	background: #F2F4F6;
	padding: 4rem;
}
.flows{
	display: flex;
	justify-content: center;
	align-items: center;
	gap:2rem;
	margin: 3rem 0;
}
.flow{
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap:1rem;
	width:16%;
}
.flow-name{
	font-weight: bold;
	color: var(--blue);
	font-size: 1.6rem;
}
.service-flow p{
	text-align: center;
	color: var(--blue);
	line-height: 1.8rem;
}
.price-boxes{
	display: flex;
	justify-content: center;
	align-items: flex-end;
	gap:4rem;
	padding: 2rem;
	margin-bottom: 2rem;
}
.price-box{
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	align-items: flex-start;
}
.price-box span{
	font-size: 2.2rem;
	font-weight: bold;
}
.h5t{
	color: var(--blue);
	font-size: 1.6rem;
}
.fix-flows{
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
	padding: 1rem;
}
.fix-flow{
	display: flex;
	justify-content: center;
	align-items: center;
	flex-grow: 2;
	border: 1px solid var(--blue);
	padding: 1.2rem;
	color: var(--blue);
	line-height: 1.5;
	font-weight: bold;
	text-align: center;
	height: 5em;
}
.fix-flow-arrow{
	width: 1.8rem;
}

.service-cta-wrap{
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	padding-bottom: 4rem;
}

.service-cta{
	display: inline-block;
	box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.15);
	border-radius: 10px;
	background: linear-gradient(146.86deg, #31c1ff, #3aa0ff);
	overflow: hidden;
	flex-direction: row;
	align-items: center;
	justify-content: center;
	padding: 1.2rem 4rem;
	box-sizing: border-box;
	text-align: center;
	font-size: 2.2rem;
	line-height: 1.4;
	color: var(--white);
	font-weight: bold;
	transition: 0.3s;
	text-shadow:0px 4px 4px rgba(0, 0, 0, 0.15);
}

.service-cta:hover{
	filter: brightness(1.2);
}
.service-cta-wrap span{
	padding: 1rem;
	color: var(--blue02);
	font-weight: bold;
	font-size: 1.8rem;
}

.service-cta.head-cta{
	position: absolute;;
	top: 28rem;
	right: calc(50vw - 60rem);
}

/*-------------- contact --------------*/

section.contact{
	padding: 2rem 3rem 8rem;
}

.contact-body{
	padding: 4rem 0 4rem 0;
	text-align: center;
}
.contact-table{
	width: 80%;
	margin: 3rem auto 0rem;
}

.notice{
	display: block;
	width: 80%;
	margin: 1rem auto;
	padding: 1.2rem 2.4rem;
	text-align: left;
	background: var(--bg);
	color: var(--darkblue);
	border-radius: 0.8rem;
}

.notice p{
	color: var(--darkblue);
}
.notice a{
	text-decoration: underline;
}
.submit-area{
	margin: 3rem auto 0;
}
.btn-submit{
	display: inline-flex;
	justify-content: center;
	align-items: center;
	background: var(--blue);
	gap: 0.4rem;
	min-width: 20rem;
	padding: 1.2rem 3.2rem 1.4rem;
	border: none;
	border-radius: 2.4rem;
	color: var(--white);
	font-size: 1.8rem;
	font-weight: 800;
	line-height: 1.8rem;
	box-shadow: 0 0.4rem 0.4rem rgba(0,0,0,0.15);
	transition: 0.3s;
}
.btn-submit:hover{
	box-shadow: 0 0.8rem 0.8rem rgba(0,0,0,0.1);
	background: var(--lightblue);
	transform: translateY(-0.2rem);
	cursor: pointer;
}
.remark{
	border-top: 0.1rem solid var(--gray06);
	padding: 2rem;
	text-align:left;
}

.btn-submit:disabled{
	background: var(--gray07);
	color: var(--white);
	box-shadow: 0 0.4rem 0.4rem rgba(0,0,0,0);
	border: none;
}
.btn-submit:disabled:hover{
	transform: translateY(0rem);
}


/*-------------- pp --------------*/

.pp{
	font-size: 1.4rem;
}

.pp h5{
	font-size: 1.5rem;
	font-weight: bold;
	margin-top: 1.8rem;
}
.pp p{
	font-size: 1.4rem;
}

.pp ul{
	padding-left: 1.6rem;
}
.pp li{
	list-style: square;
	font-size: 1.4rem;
}


/*-------------- CF7 --------------*/

.wpcf7-form-control-wrap {
	width: 100%;
}

.wpcf7-not-valid-tip{
	text-align:left;
}

input.wpcf7-not-valid{
	background: #FBE7E9;
}
textarea.wpcf7-not-valid{
	background: #FBE7E9;
}

.wpcf7 form.sent .wpcf7-response-output{
    border: none;
}

.wpcf7 form .wpcf7-response-output {
    margin: 2rem 1rem 1rem;
    padding: 1.2rem;
    border: none;
    font-size: 2rem;
    color: var(--white);
    background: var(--gradient01);
    border-radius: 0.8rem;
    box-shadow: 0 0.8rem 0.8rem rgba(0,0,0,0.2);
    font-weight: bold;
    white-space: pre-line;
}

.wpcf7-list-item{
	margin:0 2rem 0 0;

}

/*-------------- sns --------------*/

.sns-body{
    display: flex;
    flex-direction:column;
    text-align: center;
    gap: 3.2rem;
}

.media-items{
	display: flex;
	flex-direction: column;
	gap: 3.2rem;
	padding: 2.4rem 8rem;
}

.media-item{
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	align-items: flex-start;
	text-align: left;
	gap: 0.4rem;
}

.media-name{
	display: inline-flex;
	padding: 0 12px 0 0;
	justify-content: center;
	align-items: center;
	border: 1px solid var(--gray02);
	color: var(--gray02);
	font-weight: bold;
	font-size: 1.3rem;
}

.media-name span{
	background: var(--gray02);
	color: var(--white);
	padding: 0 12px;
	margin-right: 12px;
}

.media-link{
	display: block;
	color: var(--blue);
	font-weight: bold;
	font-size: 2rem;
	line-height: 1.4;
}

.sns-x-fig{
	width: 36px;
	margin: 12px 12px 24px 12px;
	transition: 0.3s;
}
.sns-x-fig:hover{
	opacity: 0.5;
}

/*-------------- scroll --------------*/

.scroll {
  position: fixed;
  width: 1em;
  height: 3em;
  bottom: 3.6em;
  right: 5rem;
  cursor: pointer;
  color: var(--lightblue);
  text-decoration: none;
  border: 2px solid var(--lightblue);
  border-radius: 1em;
  background: var(--lightblue);
  z-index: 10000;
  transition: .3s;
 }


.scroll::before {
    content: 'scroll';
    position: absolute;
    top: -2em;
    left: -1.2em;
    font-weight: bold;
  }

.scroll span {
    position: absolute;
    top: 15%;
    left: 0em;
    display: block;
    width: .75em;
    height: .75em;
    border-radius: 50%;
    background: var(--yellow);
    animation: 2s small-dot-move infinite running ease-out;
  }


@keyframes small-dot-move {
  from {
    top: 15%;
    opacity: .8;
  }
  50% {
    opacity: 1;
  }
  to {
    top: 80%;
    opacity: .3;
  }
}


.arrow {
  position: absolute;
  top: 2.8em;
  left: 0.325em;
  width: 0;
  height: 2em;
  border: 1px solid var(--lightblue);
}

.arrow::after {
    content: '';
    display: block;
    position: absolute;
    top: 100%;
    left: -5.25px;
    width: 2px;
    height: 4px;
    border-top: 13px solid var(--lightblue);
    border-left: 4px solid transparent;
    border-right: 4px solid transparent;
 }


.next-section {
  padding: 3em 1.5em;
  background-color: #78909C;
 }
.next-section h2 {
    margin-bottom: 2em;
    text-align: center;
    font-size: 24px;
    letter-spacing: .1em;
}

.next-section h2::after {
      content: '';
      display: block;
      width: 10%;
      height: 2px;
      margin-top: .5em;
      margin-left: 45%;
      background: var(--lightblue);
}

.next-section p {
    padding: 1.5em;
  }

.scroll.d-none {
	opacity: 0;
}


html:not(:has(.wpcf7-form)) .grecaptcha-badge { 
   visibility: hidden; 
}

