@charset "utf-8";
/*--------------------------------------
 base
--------------------------------------*/
html{
}
body{
	padding-top: 60px;
	font-size: 1.4rem;
}
:root {
	--color-green: #00A0B9;
	--p-font-size: 1.4rem;
}
/*--------------------------------------
 header
--------------------------------------*/
#site-header{
	height: 60px;
	width: 100%;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 20;
}
#site-header .logo{
	position: relative;
	z-index: 30;
}
#site-header .logo img{
	width: 220px;
}
#site-header .contact-btn{
	display: none;
}
#site-header .global-nav{
	align-items: center;
	justify-content: center;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 20;
	width: 100%;
	height: 100%;
	background: #fff;
	opacity: 0;
	visibility: hidden;
	transition: all 0.3s ease;
	background-image: url("../common/img/page-bg.png");
	background-size: contain;
	background-repeat: no-repeat;
	background-position: 0 5vw;
}
#site-header .global-nav.open{
	opacity: 1;
	visibility: visible;
}
#site-header .global-nav ul{
	display: block;
}
#site-header .global-nav ul li + li{
	margin-top: 40px;
}
#site-header .global-nav ul li a{
	color: var(--color-green);
	display: block;
	font-size: 2rem;
}
#site-header .global-nav ul li a::before{
	content: "";
	display: inline-block;
	width: 34px;
	height: 27px;
	background: url("../common/img/ico-link.svg") no-repeat;
	background-size: contain;
	vertical-align: -7px;
	margin-right: 15px;
}
.menubtn{
  display: block;
  width: 60px;
  height: 60px;
  position: relative;
  margin-left: 0;
  background: linear-gradient(180deg,rgba(0, 160, 185, 1) 0%, rgba(16, 102, 177, 1) 100%);
	position: absolute;
	top: 0;
	right: 0;
	z-index: 30;
}
.menubtn:hover{
	opacity: 1;
}
.hamburger{
  display: inline-block;
  cursor: pointer;
  width: 36px;
  position: absolute;
  top: 18px;
  left: 12px;
}
.bar1, .bar2, .bar3 {
  display: block;
  width: 36px;
  height: 3px;
  background-color: #ffffff;
	border-radius: 10px;
  transition: 0.4s;
}
.hamburger:hover .bar1,
.hamburger:hover .bar2,
.hamburger:hover .bar3{
  background-color: #ffffff;
}
.bar1,
.bar2{
  margin-bottom: 8px;
}
.active .bar1 {
  transform: rotate(-45deg) translate(-6px, 7px);
}
.active .bar2 {
  opacity: 0;
}
.active .bar3 {
  transform: rotate(45deg) translate(-8px, -9px);
}

/*--------------------------------------
 footer
--------------------------------------*/
#site-footer{
	padding: 40px 0 20px 0;
}
#site-footer .row01{
	display: block;
	text-align: center;
}
#site-footer .logo{
	text-align: center;
	& img{
		width: 200px;
		height: auto;
	}
}
#site-footer .row01 address p{
	text-align: left;
	font-size: 1.4rem;
	margin-top: 40px;
}
.footer-nav{
	margin: 40px 0 20px 0;
}
.footer-nav ul{
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	border-top: 1px solid #fff;
	border-bottom: 1px solid #fff;
}
.footer-nav ul li{
	padding-bottom: 0;
}
.footer-nav ul li a{
	font-size: 1.6rem;
	display: block;
	padding: 14px 0 14px 14px;
}
.footer-nav ul li + li{
	margin-left: 0;
	padding-left: 0;
	border-left: 0;
}
.footer-nav ul li:nth-child(2) ~ li{
	border-top: 1px dashed #fff;
}
.footer-nav ul li:nth-child(odd){
	border-right: 1px dotted #fff;
}
.footer-nav ul li:nth-child(6){
	border-bottom: 1px dashed #fff;
}

/*--------------------------------------
 common
--------------------------------------*/
.sp-hide{
	display: none;
}
br.sp{
	display: inline;
}
.page-bg{
	background-size: contain;
	background-position: center 5vw;
}
.page-title{
	height: 170px;
}
.sp-al-center{
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
}
/*--------------------------------------
 top
--------------------------------------*/
#main-visual{
	margin-bottom: 7vw;
}
#main-visual .img{
	width: calc(100% - 14px);
	border-radius: 33px 0 0 33px;
	max-height: none;
}
#main-visual .img img{
	margin-top: 0;
}
#main-visual .mv-copy{
	left: 0;
	bottom: 13vw;
	border-radius: 0 33px 33px 0;
	height: 20vw;
	min-height: 0;
	background: rgba(255, 255, 255, 0.9);
	width: auto;
	height: 27vw;
	justify-content: flex-start;
	padding-left: 14px;
	padding-right: 7vw;
}
#main-visual .mv-copy img{
	width: 55vw;
}
#main-visual .mv-txt{
	font-size: 8vw;
}
#main-visual .line{
	width: calc(100% - 14px);
	bottom: -6.5vw;
}
.inner{
	padding: 0 14px;
}
.inpage-nav ul{
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}
.inpage-nav ul li:nth-child(3){
	border-left: 0;
}
.ico-link-arrow{
	width: 41px;
	height: 31px;
}
.ico-link-arrow img{
	width: 32px;
	height: auto;
	top: 9px;
	left: 9px;
}
.ico-link-arrow::before,
.ico-link-arrow::after{
	width: 31px;
	height: 31px;
}
.inpage-nav{
	border-radius: 8px;
}
.inpage-nav ul{
	padding: 17px 0;
	gap: 14px 0;
}
.inpage-nav ul li a{
	justify-content: flex-start;
	gap: 10px;
	padding-left: 15px;
	height: 36px;
	font-size: 1.6rem;
}
#top-topics{
	display: block;
	padding-right: 0;
}
.ico-link-pos{
	position: static;
}
.title{
	align-items: center;
	margin-bottom: 30px;
	.en{
		font-size: 2.6rem;
		border-bottom-width: 3px;
		padding-bottom: 15px;
	}
	.en::after{
		width: 20px;
		height: 3px;
		position: absolute;
		left: 0;
		bottom: -3px;
	}
	.jp{
		font-size: 1.6rem;
		margin-top: 10px;
		margin-bottom: 0;
	}
}
#top-topics{
	margin-bottom: 70px;
}
.topics-list{
	margin-bottom: 24px;
}
.topics-list li a{
	display: block;
	border-radius: 19px;
	padding: 14px;
	font-size: var(--p-font-size);
	.txt{
		display: block;
		margin-top: 10px;
	}
	& time{
		padding-right: 14px;
		border-right-width: 3px;
	}
}
.lead-txt{
	font-size: var(--p-font-size);
}
#top .title{
	align-items: center;
}
#top-about{
	width: auto;
	margin-left: 14px;
	border-radius: 40px 0 0 40px;
	padding: 40px 25px;
	margin-bottom: 60px;
}
#top-about .txt-img{
	display: block;
	gap: 40px;
	.txt{
		width: auto;
		min-width: auto;
	}
}
#top-about .bg-txt{
	position: static;
	width: auto;
	text-align: right;
	margin-right: -24px;
	& img{
		width: 264px;
		height: auto;
	}
}
#top-about .txt-img {
	display: flex;
	flex-direction: column-reverse;
	.lead-title {
		font-size: 3rem;
	}
	.img{
		margin-top: 23px;
		margin-right: -25px;
	}
	.lead-txt{
		margin-top: 30px;
	}
}
.bdr-left{
	border-radius: 19px 0 0 19px;
}
#top-service{
	display: block;
	padding-right: 0;
	margin-top: 70px;
}
.service-list{
	display: block;
	margin-bottom: 45px;
	& a{
		display: block;
		padding: 20px;
	}
	& a + a{
		margin-top: 50px;
	}
	& h3{
		font-size: 1.6rem;
		margin-bottom: 15px;
	}
	& p{
		font-size: var(--p-font-size);
	}
}
#top-philosophy{
	padding-top: 50px;
	padding-left: 15px;
	padding-bottom: 60px;
	margin-left: 14px;
	border-radius: 27px 0 0 27px;
	.bg-txt{
		position: static;
		width: auto;
		text-align: right;
		margin-bottom: 33px;
		& img{
			width: 341px;
		}
	}
}
.box-right{
	width: auto;
}
#top-philosophy .flex-content {
	display: block;
	padding-right: 30px;
	.txt .lead-title{
		white-space: initial;
		font-size: 3rem;
		margin-top: 34px;
		& br{
			display: none;
		}
	}
	.txt .lead-txt{
		margin-top: 25px;
	}
}
#top-office .grid{
	display: flex;
	align-items: center;
	margin-bottom: 45px;
	height: auto;
	padding: 70px 0;
}
#top-office .al-center{
	margin-bottom: 0;
	margin-left: 0;
	order: 3;
}
#top-office .title{
	margin-left: 0;
}
#top-office .img{
	margin-left: 14px;
}
#top-office .img{
	border-radius: 29px 0 0 29px;
	margin-bottom: 34px;
	& img{
		object-view-box: inset(0 13% 0 0);
	}
}
#top-office .table-wrap{
	width: 100%;
}
#top-office .table-wrap .bg{
	padding: 15px;
	margin: 0 14px 0 0;
	border-radius: 0 14px 14px 0;
}
.table-style01 {
	font-size: 1.4rem;
	& th, & td {
		padding: 20px 0;
	}
	& th {
		padding-right: 20px;
		display: table-cell;
		vertical-align: middle;
	}
	.ico img {
		margin-right: 10px;
		width: 30px;
		height: auto;
		vertical-align: -10px;
	}
}
.map{
	margin: 60px 14px;
}
.map iframe{
	height: 300px;
}
.sp-delay0ms{ transition-delay: 0ms; }
.sp-delay200ms{ transition-delay: 200ms; }
.sp-delay300ms{ transition-delay: 300ms; }
.sp-delay400ms{ transition-delay: 400ms; }
.sp-delay500ms{ transition-delay: 500ms; }
.sp-delay600ms{ transition-delay: 600ms; }
.sp-delay700ms{ transition-delay: 700ms; }
.sp-delay800ms{ transition-delay: 800ms; }
.sp-delay900ms{ transition-delay: 900ms; }
.sp-delay1000ms{ transition-delay: 1000ms; }
.sp-delay1200ms{ transition-delay: 1200ms; }
/*--------------------------------------
 service
--------------------------------------*/
#service{
	padding: 0 14px;
}
#service .lead-section{
	flex-direction: column-reverse;
	margin-left: 0;
	.lead-title {
		white-space: wrap;
	}
	.img-box{
		margin-right: -14px;
	}
}
.lead-title{
	font-size: 2.8rem;
}
.lead-txt{
	margin-top: 30px;
}
.bg-content{
	margin: 40px 0;
	box-shadow: 0px 0px 20px 0px rgba(0,0,0,0.16);
	padding: 35px 20px;
}
.bg-content .col{
	flex-direction: column-reverse;
	gap: 40px;
}
.bg-content .img{
	width: auto;
	margin: -35px -20px 0 -20px;
}
.bg-content .img img{
	border-radius: 17px 17px 0 0;
	object-view-box: inset(18% 0 0 0);
}
#service .lead-section .bg-txt{
	text-align: right;
}
#service .lead-section .bg-txt img{
	width: 70vw;
}
h2.ico-link{
	font-size: 1.8rem;
	margin-bottom: 20px;
}
.ico-dot{
	font-size: 2rem;
	margin-bottom: 20px;
}
.ico-dot::before{
	width: 10px;
	height: 10px;
	margin-right: 10px;
}
#service .ico-dot{
	margin-top: 0;
}

article p{
	font-size: var(--p-font-size);
}
.faq-title{
	font-size: 1.6rem;
	line-height: 1.5;
	position: relative;
	padding-left: 60px;
}
.faq-title::before{
	position: absolute;
	left: 0;
	top: 0;
	width: 50px;
	height: 38px;
}
.faq-content dl dd{
	font-size: var(--p-font-size);
}
.faq-content dl dt{
	font-size: 1.4rem;
}
.faq-content dl dd{
	padding: 20px;
}
.faq-content dl dd::before{
	display: none;
}
.faq-content dl dd{
	font-size: var(--p-font-size);
}
/*--------------------------------------
 office
--------------------------------------*/
#office{
	padding: 0 14px;
}
.lead-section{
	margin-left: 0;
	flex-direction: column-reverse;
}
#office .lead-section {
	.bg-txt{
		margin-right: -14px;
	}
	.lead-title {
		white-space: wrap;
	}
	.lead-title br {
		display: none;
	}
	.img{
		text-align: center;
	}
	.img img{
		width: 220px;
	}
}
.lead-section .bg-txt{
	text-align: right;
	& img{
		width: 60%;
	}
}
.contents-col{
	display: block;
}
.contents-col .bracket{
	padding: 20px 40px;
	font-size: 2rem;
}
.contents-col .bracket::before,
.contents-col .bracket::after{
  width: 20px;
  height: 20px;
}
#office section + section{
	margin-top: 80px;
}
.bg-txt.al-right{
	margin-top: 80px;
}
.bg-txt.al-right{
	margin-right: -14px;
}
#office .bg-txt.al-right img{
	width: 74%;
}
#office .map + p{
	padding: 0 35px;
}
.txt-history{
	margin-top: 40px !important;
}
.txt-history img{
	max-width: 514px;
	height: auto;
}
/*--------------------------------------
 profile
--------------------------------------*/
#profile{
	padding: 0 14px;
}
#profile{
	.bg-txt{
		margin-right: -14px;
	}
}
#profile .lead-section{
	margin-left: 0;
	padding: 0;
	gap: 35px;
	.lead-title{
		width: auto;
		white-space: wrap;
	}
	.img{
		margin: 0 15%;
	}
	.img .name{
		font-size: 1.6rem;
	}
	.txt{
		width: auto;
	}
	.profile-txt{
		margin-top: 30px;
	}
}
#profile .bg-txt img{
	width: 60%;
	height: auto;
}
/*--------------------------------------
 recruit
--------------------------------------*/
#recruit .lead-section{
	padding: 14px;
	margin-left: 0;
	.txt{
		flex: initial;
		width: auto;
	}
	.img-box{
		margin-right: -14px;
	}
}
#recruit .bg-txt {
	& img {
		width: 75%;
	}
}
#jobs{
	padding: 0 14px;
}
.job-content{
	padding: 14px;
	margin: 0;
}
.job-content .grid{
	margin-bottom: 15px;
	gap: 0 20px;
  grid-template-areas:
  "img txt"
  "table table";
	grid-template-columns: 20% auto;
	& h3{
		font-size: 1.6rem;
	}
	.tags{
		gap: 10px;
		margin: 20px 0;
		& li{
			font-size: 1.2rem;
			padding: 5px 10px;
		}
	}
}
.btn-l {
	font-size: 1.4rem;
	line-height: 1.5;
	text-align: left;
	padding: 14px 48px 15px 15px;
	min-width: auto;
	letter-spacing: normal;
	&::after {
		right: 20px;
	}
}
.btn-l .ico-link-arrow{
	top: calc(50% - 16px);
	right: 3px;
}
.sub-title{
	text-align: center;
	& h2{
		font-size: 2rem;
		margin-bottom: 1em;
	}
}

/*--------------------------------------
 contact
--------------------------------------*/
#contact{
	padding: 0 14px;
}
.hide-contact-btn .contact-btn{
	display: none !important;
}
.form-grid{
	display: block;
	.tit-col{
		margin-bottom: 10px;
		margin-top: 30px;
	}
	& h3{
		font-size: 1.6rem;		
	}
	.tit-col:first-child{
		margin-top: 0;
	}
	& input[type="text"],
	& input[type="number"],
	& input[type="email"],
	& input[type="tel"],
	& textarea{
		padding: 10px;
		font-size: 1.6rem;
	}
}
.privacy{
	margin-top: 50px;
}
#form .btn-wrap{
	margin-top: 50px;
}
/*--------------------------------------
 topics
--------------------------------------*/
.main-twocol{
	display: flex;
	flex-direction: column;
	margin: 0;
	padding: 14px;
}
.main-twocol main{
	order: 1;
}
.main-twocol aside{
	order: 2;
}
.archive-content{
	grid-template-columns: 25% 1fr;
	& h2{
		font-size: 1.4rem;
		line-height: 1.75;
		margin-top: 6px;
	}
}
.cat-list{
	margin-top: 10px;
	& a{
		font-size: 1.2rem;
	}
}
.breadcrumb{
	padding: 0 14px;
	line-height: 1.25;
}
.single-title{
	font-size: 2rem;
}




