@charset "UTF-8";
/*
Theme Name: Custom Theme
Template: basic
Author: Trendmake
Copyright: (c) 2023 Trendmake
Version: 20231228
*/

@font-face {
	font-family: 'icomoon';
	src:  url('fonts/icomoon.eot?klagb8');
	src:  url('fonts/icomoon.eot?klagb8#iefix') format('embedded-opentype'),
	  url('fonts/icomoon.ttf?klagb8') format('truetype'),
	  url('fonts/icomoon.woff?klagb8') format('woff'),
	  url('fonts/icomoon.svg?klagb8#icomoon') format('svg');
	font-weight: normal;
	font-style: normal;
	font-display: block;
  }
  
  [class^="icon-"], [class*=" icon-"] {
	/* use !important to prevent issues with browser extensions that change fonts */
	font-family: 'icomoon' !important;
	speak: never;
	font-style: normal;
	font-weight: normal;
	font-variant: normal;
	text-transform: none;
	line-height: 1;
  
	/* Better Font Rendering =========== */
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
  }
  
  .icon-chevron-up:before {
	content: "";
    border-top: 1px solid #fff;
    border-right: 1px solid #fff;
    display: inline-block;
    width: 15px;
    height: 15px;
    transform: rotate(-45deg);
  }
  .icon-phone:before {
	content: "\e901";
  }
  .icon-mail:before {
	content: "\e902";
  }
  .icon-paperplane:before {
	content: "\e903";
  }
  .icon-mail-envelope-closed:before {
	content: "\e904";
  }
  .icon-envelope:before {
	content: "\e905";
  }
  .icon-location:before {
	content: "\e906";
  }
  .icon-phone1:before {
	content: "\e907";
  }
  .icon-home:before {
	content: "\e908";
  }
  .icon-phone2:before {
	content: "\e942";
  }
  .icon-envelop:before {
	content: "\e945";
  }
  .icon-location1:before {
	content: "\e947";
  }
  .icon-amazon:before {
	content: "\ea87";
  }
  .icon-facebook2:before {
	content: "\ea91";
  }
  .icon-instagram:before {
	content: "\ea92";
  }
  

/*******************************
Common Setting
*******************************/
body {
	font-family: "Noto Sans JP", sans-serif;
	font-size: 16px;
	line-height: 2;
}
#content {
	padding: 0;
}
/* Those Classes change row_inner width,
   when you set the Themify Builder > Row Options > Row Width to Default and Boxed. */
/*.module_row > .row_inner,
.module-layout-part .module_row.fullwidth_row_container > .row_inner {
	width: 100%;
}*/

/* table setting */
body table{
	width: 100%;
    border-collapse: collapse;
    box-sizing: border-box;
}

/*******************************
Header Fix
*******************************/
#header.header {
	height: auto;
	border-bottom: none;
}

/* Header Site Branding */
#site-logo,
#site-description {
	position: static;
}
#site-logo {
	line-height: 1;
}
#site-logo a,
#site-logo a img {
	display: block;
}
/* Search Form in Header */
#headerwrap #header #searchform {
	position: static;
}
#headerwrap #header #searchform #s {
	float: none;
}

/*******************************
Footer Fix
*******************************/
#footer {
	border-top: none;
	clear: none;
	padding: 0;
}
#pc-backtop {
	display: flex;
    justify-content: center;
    align-items: center;
    position: fixed;
    z-index: 500;
    bottom: 0px;
    right: 0px;
    opacity: 0;
    transition: opacity .3s;
    width: 50px;
    height: 50px;
    background: #000;
    font-size: 30px;
}
#pc-backtop.is-visible {
	opacity: 1;
}
#pc-backtop.is-visible:hover {
	opacity: .7;
}
#pc-backtop a,
#pc-backtop a img {
	display: block;
}
.sp-footer-icons-container {
	display: none;
	justify-content: space-around;
	align-items: center;
	position: fixed;
	z-index: 600;
	right: 0;
	left: 0;
	bottom: 0;
	width: 100%;
	padding-bottom: calc( env(safe-area-inset-bottom) / 2 );
	background: #4f4f4f;
}

#footer .sp-footer-icons-container a span{
	display: block;
	font-size: 20px;
	margin-bottom: 8px;
}
#footer .sp-footer-icons-container a {
	display: block;
	width: 100%;
	line-height: 1;
	text-align: center;
	background-color: #fafafa;
	text-decoration: none;
	font-size:10px;
	padding: 10px 0 6px;
	border-left:1px solid #1f7bb6;
}
#footer .sp-footer-icons-container a:first-child{
	border-left:0;
}


/*******************************
Contact form
*******************************/
.wpcf7 table tr th{
	width:30%;
	text-align: left;
}
.wpcf7 table tr th,
.wpcf7 table tr td{
	padding:10px 15px
}
.wpcf7 table tr td input,
.wpcf7 table tr td select,
.wpcf7 table tr td textarea{
	background-color: #f3f3f3;
    border: solid 1px #ddd;
    padding: 6px 10px;
    border-radius: 5px;
	width:100%;
	max-width:100%;
	box-sizing:border-box;
}
.wpcf7 table tr td span input{
	margin-top:10px;
}
.wpcf7 table tr td span:first-child input{
	margin-top:0px;
}
.wpcf7 table tr td input[type="radio"],
.wpcf7 table tr td input[type="checkbox"]{
	width:auto;
}
.wpcf7 .submit_btn{
	display:block;
}
.wpcf7 .submit_btn input[type="submit"]{
	display:block;
	width:250px;
	margin:0 auto;
}
/* =============================================
	mobile menu settings
=============================================　*/
#menu-button{
	visibility:visible;
	opacity:1;
	z-index: 900;
	position: relative;
	float:right;
}
#main-menu-container {
	position: fixed;
	z-index: 700;
	top: 0;
	left: 0;
	right: auto;
	bottom: auto;
	overflow-y: auto;
	background-color: rgba(255, 255, 255, 0.8);
	display:block;
	width: 100vw;
	height: 100vh;
	transition: opacity .3s linear;
	opacity:0;
	pointer-events:none;
}
#main-menu-container.is-active{
	opacity:1;
	pointer-events:auto;
}
#menu-button.nav-on {
	visibility:visible;
	opacity:1;
}
#menu-button .ham-lines {
	position: relative;
	width: 32px;
	height: 32px;
}
#menu-button .ham-lines span,
#menu-button .ham-lines::before,
#menu-button .ham-lines::after {
	position: absolute;
	display: block;
	right: 0;
	left: 0;
	margin: 0 auto;
	width: 28px;
	height: 2px;
	background-color: #fff;
	border-radius: 1px;
}
#menu-button .ham-lines span {
	bottom: 15px;
	transition: all .25s .25s;
	opacity: 1;
}
#menu-button .ham-lines::before,
#menu-button .ham-lines::after {
	content: "";
}
#menu-button .ham-lines::before{
	bottom: 24px;
	animation: menu-bar01 .75s forwards;
}
#menu-button .ham-lines::after {
	bottom: 6px;
	animation: menu-bar03 .75s forwards;
}
#menu-button .ham-text {
	font-size: 12px;
	line-height: 1;
}
#menu-button.is-active .ham-lines span {
	opacity: 0;
}
#menu-button.is-active .ham-lines::before {
	animation: active-menu-bar01 .5s forwards;
}
#menu-button.is-active .ham-lines::after {
	animation: active-menu-bar03 .5s forwards;
}
@keyframes menu-bar01 {
	0% {
		transform: translateY(9px) rotate(45deg);
	}
	50% {
		transform: translateY(9px) rotate(0);
	}
	100% {
		transform: translateY(0) rotate(0);
	}
}
@keyframes menu-bar03 {
	0% {
		transform: translateY(-9px) rotate(-45deg);
	}
	50% {
		transform: translateY(-9px) rotate(0);
	}
	100% {
		transform: translateY(0) rotate(0);
	}
}
@keyframes active-menu-bar01 {
	0% {
		transform: translateY(0) rotate(0);
	}
	50% {
		transform: translateY(9px) rotate(0);
	}
	100% {
		transform: translateY(9px) rotate(45deg);
	}
}
@keyframes active-menu-bar03 {
	0% {
		transform: translateY(0) rotate(0);
	}
	50% {
		transform: translateY(-9px) rotate(0);
	}
	100% {
		transform: translateY(-9px) rotate(-45deg);
	}
}
/* Mobile Menu Button end */
/* castum start */
body{
	background-color:#f5f5f8 !important;
}
body::-webkit-scrollbar { 
  display: none;
}
.no-scroll{
	overflow:hidden;
	transition:.5s;
}
.no-scroll #pc-backtop{
	display:none;
}
#headerwrap{
	position:absolute;
	top:5%;
	width:100%;
	z-index:5;
}
body #menu-button {
    position: fixed;
    top: 8%;
    right: 5%;
	filter: drop-shadow(2px 2px 2px black);
}
.header-brand-container{
	display:flex;
	justify-content:space-between;
	align-items:center;
	max-width: 94%;
	margin: 0 auto;
}
#site-logo a{
	width:50%;
}
/*menu*/
#header .main-menu{
	text-align: center;
    margin: 0;
    position: relative;
    top: 20%;
	width: 25vw;
    margin: auto;
    padding: 2.5%;
    background: #f5f5f5;
}
#header .menu-item a{
	font-family: "Montserrat", sans-serif;
	font-size: max(1.875vw, 26px);
    line-height: 1.5;
    display: flex;
    justify-content: center;
    align-items: center;
    width: fit-content;
	margin: 1.5rem auto;
    flex-direction: column;
    color: #003775;
	font-weight:500;
	transition:.5s;
}
#header .menu-item a:hover{
	opacity:.5;
	text-decoration:none;
}
#header .menu-item a:after{
	content: attr(title);
	font-size:14px;
}
/*end*/
.main-tit-wrap{
	z-index:3;
}
.module .main-tit{
	font-family: "Montserrat", sans-serif;
	font-size: max(6.5vw, 54px);
	color:#fff;
	display: flex;
    flex-direction: column;
    margin: 0;
    line-height: 1.2;
	font-weight:bold;
	overflow:hidden;
	z-index:3;
}
.module .main-tit .main-first-txt{
	animation:Uptxt .5s;
	animation-fill-mode:forwards;
	transform: translateY(110px);
	opacity:0;
}
.module .main-tit .main-second-txt{
	animation:Uptxt .5s;
	animation-delay:.2s;
	animation-fill-mode:forwards;
	transform: translateY(110px);
	opacity:0;
}
@keyframes Uptxt{
	100%{
		transform:translateY(0px);
		opacity:1;
	}
}
.main-tit-wrap{
	max-width:80%;
	margin:auto;
}
.main_fv:before {
    content: "";
    background: #000;
    width: 100vw;
    height: 100vh;
    position: absolute;
    top:0;
    right: 0;
	animation:FvMainAnime .5s;
	z-index:2;
	animation-delay:1s;
	animation-fill-mode:forwards;
}
@keyframes FvMainAnime{
	0%{
		height: 100vh;
	}
	100%{
		height: 0vh;
	}
}
.infinitanim {
    position: relative;
    white-space: nowrap;
    overflow: hidden;
    width: 100%;
}

.infinitanim p {
    display: inline-block;
    font-size: max(7.344vw, 74px);
    opacity: 0.5;
    font-weight: bold;
    color: transparent;
    -webkit-text-stroke: 2px #003775;
    animation: InfinitTxt 60s linear infinite;
    position: relative;
    left: 0;
    white-space: nowrap;
	margin:0;
}

.infinitanim p:before {
    content:"TECHNOLOGYFORLIFETECHNOLOGYFORLIFE";
	width:100%;
	height:100%;
    position: absolute;
    top: 0;
    left: 100%;
    white-space: nowrap;
    color: transparent;
    -webkit-text-stroke: 2px #2c2c2c;
}
.infinitanim.infinit_left p:after {
    content:"TECHNOLOGYFORLIFETECHNOLOGYFORLIFE";
	width:100%;
	height:100%;
    position: absolute;
    top: 0;
    right: 100%;
    white-space: nowrap;
    color: #2c2c2c;
	-webkit-text-stroke: 2px #2c2c2c;
}
.infinit_under.infinitanim.infinit_right p{
	-webkit-text-stroke: 2px #2c2c2c;
	color: transparent;
}
.infinit_under.infinitanim.infinit_left p{
	color: #2c2c2c;
	-webkit-text-stroke: 2px #2c2c2c;
	right:0;
	animation:InfinitTxtR 60s linear infinite;
}
.infinit_under.infinitanim p{
	position:relative;
	margin:0;
	line-height:1;
}
.txt_cl{
	overflow:hidden;
	width:100%;
}
@keyframes InfinitTxt{
	0%{
		transform: translate3d(0, 0, 0);
	}
	100%{
		transform: translate3d(-100%, 0, 0);
	}
}
@keyframes InfinitTxtR{
	0%{
		transform: translate3d(0, 0, 0);
	}
	100%{
		transform: translate3d(100%, 0, 0);
	}
}
body .module.module-text.top_content{
	max-width:89%;
	margin-top: -15%;
    background-image: none;
    background-color: #003775;
    padding: 15% 19.23076% 15% 19.23076%;
	text-align:center;
}
.module.module-text.top_content .module-title{
	font-family: "Montserrat", sans-serif;
	margin-bottom:15%;
	font-size: max(1.667vw, 28px);
}
/*link*/
#pagewrap .rinktxt-left{
	position: absolute;
	left: 0;
    margin-left: 9%;
}
#pagewrap .rinktxt-right{
	position: absolute;
	right: 0;
    margin-right: 9%;
}
body .top_content3_rinktxt .tb_link_block_heading{
	font-family: "Montserrat", sans-serif;
	font-size: max(2.188vw, 24px);
	margin:0;
	color:#fff;
	font-weight:400;
	line-height:1.6;
}
.top_content3_rinktxt .tb_link_block_blurb{
	font-size: max(0.938vw, 14px);
	color:#fff;
}
#pagewrap .top_content3_rinktxt a{
	background:#2c2c2c;
	padding-top: calc(80 / 1920* 100vw);
    padding-right: calc(550 / 1920* 100vw);
    padding-bottom: calc(85 / 1920* 100vw);
    padding-left: calc(200 / 1920* 100vw);
	transition:.5s;
}
#pagewrap .top_content3_rinktxt a:hover{
	background:#003775;
	transition:.5s;
}
.top_content3_rinktxt:before{
	position: absolute;
	content: "";
	width: 1px;
	height: 100%;
	top: 0;
	right: 14.17769%;
	background-color: #e8e8e8;
	opacity: 0.2;
}
body .top_content3_rinktxt:after{
	content:"";
	display:flex;
	margin-top:5px;
	transition:.5s;
	position:absolute;
	top: 50%;
    right: 7.17769%;
	width: 10px;
    height: 10px;
    border: solid white;
    border-width: 1px 1px 0px 0px;
    transform: rotate(45deg);
	opacity: 0.7;
}
body .top_mn_wrap .top_content3_txt:hover{
	background:#003775;
}
/*link end*/
/*top news*/
.module_row.top_news_wrap{
	width:80vw;
	margin:auto 0 auto auto;
}
.module_row.top_news_wrap .top_news_title .main-head{
	font-size: max(4.4945vw, 39px);
	color:#000;
}
.module_row.top_news_wrap .top_news article{
	padding-bottom: 30px;
    border-bottom: 1px solid;
    width: calc(80vw / 2);
}
.module_row.top_news_wrap .top_news .post-content{
	display:flex;
	justify-content:left;
	align-items:center;
}
.module_row.top_news_wrap .top_news  .post-date{
	margin: 0 15px 0 0;
}
.module_row.top_news_wrap .top_news .post-content a{
	color:#000;
}
/*end*/
.contact_tit{
	text-align:center;
}
.contact_tit .module-title{
	font-family: "Montserrat", sans-serif;
	font-size: max(8.989vw, 78px);
    font-weight: 600;
    color: transparent;
    -webkit-text-stroke: 2px #000;
	margin:0 0 26px 0;
	line-height:1;
}
.contact_btn{
	text-align:center;
}
.contact_tit p{
	color:#000;
	margin:0 0 26px 0;
	font-size: 16px;
}
.contact_btn{
	overflow:hidden;
}
.contact_btn .module-buttons-item a{
	background:#2c2c2c;
}
.contact_btn .module-buttons-item a span{
	color:#fff;
	z-index:4;
	position:relative;
	line-height: 1.8;
}
.contact_btn .module-buttons-item:before{
	content:"";
	background:#003775;
	width: 100%;
	height:100%;
	position:absolute;
	bottom:-100px;
	z-index:3;
	left:0;
	right:0;
	transition: all .5s cubic-bezier(.473,.427,0,.993);
}
.contact_btn .module-buttons-item:hover:before {
	bottom:0px;
}
.top_mn_wrap.top_mn_wrap_imgright .tb-column-inner{
	display:flex;
	justify-content:right;
	align-items:center;
}
.top_mn_wrap .tb-column-inner{
	display:flex;
	justify-content:left;
	align-items:center;
}
.top_mn_wrap .top_mn_img{
	width:80vw;
}
#footer{
	background-color: #003775;
}
.copyright{
	color:#fff;
}
.copyright-container{
		text-align:center;
}
.menu-item{
	list-style:none;
}
@media screen and (max-width: 1180px) {
	body .pagewidth{
		max-width:100%;
	}
	body #headerwrap{
		top:0;
	}
	body .module.main-tit-wrap {
    max-width: 100%;
    position:absolute;
	bottom:42.2vw;
}
	body .top_content .row_inner{
		display:flex;
		flex-direction:column-reverse;
	}
	body .module.module-text.top_content{
		float:right;
		margin-top:-35%;
	}
	body .top_mn_wrap .top_mn_img{
		width:100%;
	}
	body #pagewrap .top_mn_wrap .top_content3_rinktxt{
		position:relative;
		margin:0;
		padding: 40px 0px;
        margin-top: -15%;
	}
	body #pagewrap .top_mn_wrap .tb-column-inner {
		flex-direction:column;
	}
	.module_row.top_news_wrap .top_news .post-content {
		flex-direction:column;
		align-items:flex-start;
	}
	body #pagewrap .top_content3_rinktxt:after{
		top:45%;
	}
	body .header #menu-button{
		top:2%;
	}
}
@media screen and (max-width: 600px) {
	body .module_row.top_news_wrap {
    width: 96vw;
    margin: auto;
}
	body .co_table .tb_text_wrap {
    width: 95vw;
    margin: auto;
}
	body #site-logo{
		margin-top:15px;
	}
	body .contact_tit p {
    font-size: 16px;
}
	body #pagewrap .co_table .module-title {
	margin:0;
    left: 1.5%;
    position: absolute;
}
	.contact_btn .module-buttons-item a span{
		font-size:16px;
	}
	#pagewrap .contact_btn .module-buttons-item a{
		padding:10px 0;
	}
	body .module_row.top_news_wrap .top_news article{
		border:none;
	}
	body #pagewrap .top_mn_wrap .top_content3_rinktxt {
        width: 100%;
    }
	.wpcf7 table tr td input[type="radio"],
	.wpcf7 table tr td input[type="checkbox"]{
		padding:5px;
	}
}
/*sub*/
body:not(.home) .pagewidth{
	width:100%;
}
.co_title .module-title{
	padding:5em;
    width: fit-content;
	background:#003775;
	color:#fff;
	font-size: max(1.458vw, 24px);
	margin:0;
}
.co_title.co_title_contact .module-title{
	padding:5em 4em;
}
.ab_subcol .tb-column-inner{
	position: absolute;
    left: 14vw;
    top: -15vh;
	z-index:4;
}
.sub-hd{
	padding-left:10vw;
}
.sub-hd .main-head{
	font-family:Montserrat, sans-serif;
	font-size: max(4.687vw, 54px);
}
.sub-hd .main-head .sub-head{
	font-size: max(1.667vw, 32px);
}
#pagewrap .co_table{
	display:flex;
	justify-content:left;
	align-items:flex-start;
	flex-wrap:nowrap;
	background:#fff;
}
.co_table table td:first-child,
.co_table .wpcf7 th{
	font-size: 14px;
    vertical-align: middle;
    width: 25%;
	color:#9D9D9D;
	font-weight:400;
}
.co_table table td{
	font-size: 16px;
    width: 75%;
}
.co_table .wpcf7 p{
	margin:0;
}
.co_table .module-title{
	writing-mode: vertical-lr;
    margin: 50px 8.6% 0 0;
    font-weight: 400;
    letter-spacing: 0.2em;
    font-size: 14px;
	color:#424242;
}
.co_table .module-title:after{
	content: "";
    width: 1px;
    height: 30px;
    display: inline-block;
    background: #424242;
    vertical-align: sub;
    margin: 10px 0 0 0;
}
.co_table .tb_text_wrap{
	width:100%;
}
.co_table table th,
.co_table table td{
	border-bottom:1px solid #DBDBDB;
	padding:32px 0;
}
.co_table .wpcf7 th,
.co_table .wpcf7 td{
	border-bottom:none;
}
.co_table .wpcf7 table tr td input,
.co_table .wpcf7 table tr td select,
.co_table .wpcf7 table tr td textarea{
	background:none;
/* 	padding: 15px; */
	border-radius:0;
}
body .co_table .module-title{
	margin: 0px 8.6% 0 0;
}
.co_table_se.co_table h4{
	font-size: max(1.875vw, 26px);
    font-weight: 500;
    color: #000;
    margin-bottom: 1.5em;
}
.co_table_se.co_table .tb_text_wrap p{
	font-size: max(1.458vw, 20px);
    color: #000;
    font-weight: 400;
    margin-bottom: 1.5em;
}
.co_table_se.co_table .tb_text_wrap .sc-txt{
    font-size:16px;
	margin-bottom: 1.5em;
}
@media screen and (max-width: 1180px) {
	.co_title .module-title{
		padding: 3em 5em;
		float: right;
	}
	.co_title_contact.co_title .module-title{
		padding: 3em 4em;
	}
	body .co_table .wpcf7 th {
    font-size: 14px;
    vertical-align: middle;
    width: 100%;
	}
	body .ab_subcol .tb-column-inner{
		left:auto;
	}
	body #header .main-menu{
		width:80vw;
	}
}
/*news*/
.single article .post-content{
	max-width:85vw;
	margin:auto;
}
.single .post-title{
	font-size: max(1.354vw, 20px);
}
.single .entry-content{
	font-size: max(0.938vw, 16px);
}

/* =============================================

	Common settings

============================================= */
/* table border and paddings */
table th,
table td{
	padding: 10px;
}

/* =============================================

	Media Query

============================================= */
@media screen and (max-width: 1400px) { /* for iPad pro landscapes */

}

@media screen and (max-width: 1180px) { /* for tablet landscapes */

	#pagewrap {
		position: relative;
	}

	#header.header {
		padding-top: 0;
	}
}

@media screen and (max-width: 1024px) { /* for tablet landscape */
	.wpcf7 table tr th,
	.wpcf7 table tr td{
		width:100%;
		display:block;
		padding: 10px 0px;
	}
	.wpcf7 table tr th{
		padding-bottom:0;
	}
}