@charset "utf-8";

.pc{
display: none!important;
}

*{
font-size:14px;
font-weight: 550;
letter-spacing: 0.05em
}

:root {
--main-width: 94%;
}

div.more{
display: flex;
align-items: center;
justify-content: center;
gap: 20px;
width: var(--main-width); 
margin-bottom: 60px
}

div.about_more{
margin-bottom: 30px
}

div.more a.more,div.about_more a.more{
width: 240px;
height: 50px;
line-height: 50px;
border-radius: 25px;
padding-left: 30px;
background: url(../img/icon/arrow.png) no-repeat center right 20px, linear-gradient(180deg,rgba(2, 151, 208, 1) 0%, rgba(32, 82, 154, 1) 100%);
}

a.more{
width: 180px;
height: 40px;
line-height: 40px;
padding-left: 20px;
display: block;
background: #0297D0;
background: url(../img/icon/arrow.png) no-repeat center right 15px, linear-gradient(180deg,rgba(2, 151, 208, 1) 0%, rgba(32, 82, 154, 1) 100%);
background-size: 15px;
color: #fff;
border-radius: 20px;
font-size:12px;
}

a.more:hover{
text-decoration: underline
}

/*--------------------menu--------------------*/

menu.menu{
width: 100%;
height: 100%;
position: fixed;
left: 0px;
top:0px;
background: #efefef url(../img/header/title.png) no-repeat left top;
background-size: 60px;
z-index: 20;
display: none
}

menu.menu:before{
content: '';
position: absolute;
top:0px;
left:80px;
height: 100%;
width: 1px;
background: #dcdcdc;
}

ul.menu_inner{
width: var(--main-width); 
position: absolute;
top:50%;
left: 50%;
transform: translate(-50%,-50%);
padding-left: 90px;
}

a.menu_logo{
display: none
}

.menu_right {
display: flex;
flex-direction: column;
}

.menu_top {
order: 2;
}

.menu_under {
order: 1;
}

div.menu_top{
border-top:solid 1px #000;
padding-top: 30px
}

p.connection{
width: max-content;
padding: 0px 15px;
background: #333;
height: 26px;
border-radius: 13px;
color: #fff;
line-height: 26px;
font-size: 12px;
margin-bottom: 15px
}

a.menu_top{
font-weight: 600;
color: #000;
display: flex;
font-size: 16px;
margin-bottom: 20px;
align-items: center
}

a.menu_top:before{
content: "";
width: 18px;
height: 18px;
background: url(../img/menu/link.png) no-repeat center;
background-size: 100%;
margin-right: 8px
}

span.menu_sns{
display: flex;
align-items: center;
justify-content: left
}

a.menu_sns{
width: 20px;
margin-right: 20px
}

div.menu_under{
margin-bottom: 30px
}

a.menu_under{
font-weight: 600;
color: #000;
display: block;
font-size: 15px;
margin-bottom: 15px
}

.menuIn{
animation-fill-mode:both;
animation-duration:0.5s; 
animation-name: menuIn;
display: block!important;
}
 
@keyframes menuIn {
0% { opacity: 0;}
100% {opacity: 100;}
}

/*--------------------left menu--------------------*/

div.top_ribbon{
width: 28px;
height: 100%;
position: fixed;
top:0px;
left: 0px;
z-index: 2;
opacity: 0;
transform: translateY(-20px);
transition: opacity 0.8s ease, transform 0.8s ease;
pointer-events: none; 
}

.top_ribbon.show {
opacity: 1;
transform: translateY(0);
pointer-events: auto;
}

div.ribbon_inner{
width: 80%;
top:20px;
position: absolute;
left: 0%;
height:100%;
display: flex;
align-items: center
}

div.hours{
transform: rotate(90deg);
transform-origin: left bottom; 
display: flex;
align-items: center;
}

p.en{
width: max-content;
margin-right: 25px;
font-size:10px;
font-weight: 500;
}

p.hours{
display: flex;
font-size:10px;
align-items: center;
font-size:10px;
font-weight: 500;
}

p.hours:before {
content: '';
width: 5px;
height: 5px;
border-radius: 50%;
background: #999;
box-shadow: 0 0 0 3px #cacbca; 
position: relative;
left:-10px
}

.hours i{
display:block;
width:25px;
margin: 0px 5px;
position: relative;
top:5px;
height:1px;
background:#919191
}

h1.jp{
height:80%;
top:70px;
position: absolute;
right: 0px;
writing-mode: vertical-rl;
font-size:10px;
}

div.top_ribbon_bottom{
width: 80%;
bottom: 100px;
position: absolute;
left: 10%;
display: none
}

a.top_ribbon_bottom{
display: block;
font-size: 13px;
margin-bottom: 20px
}

a.top_ribbon_bottom:hover{
text-decoration: underline
}

a.top_ribbon_bottom_contact{
width: 150px;
height: 40px;
line-height: 40px;
padding-left: 20px;
font-size: 13px;
display: block;
background: url(../img/icon/arrow.png) no-repeat center right 15px, #000;
background-size: 15px;
color: #fff;
border-radius: 20px;
margin-bottom: 20px
}

p.top_ribbon_bottom_connection{
width: 150px;
height: 40px;
border:solid 1px #20529a;
line-height: 40px;
padding-left: 20px;
font-size: 13px;
display: block;
background: url(../img/icon/arrow_kon.png) no-repeat center right 15px;
background-size: 15px;
color: #20529a;
border-radius: 20px;
margin-bottom: 30px
}

div.top_ribbon_sns{
display: flex;
align-items: center;
gap: 20px;
padding-left: 10px
}

a.top_ribbon_sns{
width: 24px
}

/*--------------------nav--------------------*/

nav.nav{
width: 100%;
position: fixed;
padding-top: 5px;
padding-bottom: 5px;
left: 0px;
z-index: 21;
display: flex;
align-items: center;
justify-content: right;
}

img.nav_main{
width: 140px;
position: absolute;
left: 3%;
top:50%;
transform: translateY(-50%)
}

ul.nav{
width: 94%;
margin: 0px auto;
display: flex;
align-items: center;
justify-content: right;
height: 60px
}

a.nav_logo{
width: 100%;
display: block;
}

li.nav_logo{
width: 150px;
margin-right: 10px
}

li.nav{
width: 54px;
height: 54px;
background:#20529a ;
border-radius: 30px;
display: flex;
align-items: center;
justify-content: center
}

a.menu-trigger,
a.menu-trigger span {
display: inline-block;
transition: all .4s;
position: relative;
}

a.menu-trigger {
width: 24px;
height: 15px;
}

a.menu-trigger span {
position: absolute;
left: 0;
width: 100%;
height: 1px;
background: #fff;
}

a.menu-trigger span:nth-of-type(1) {
top: 0;
}
a.menu-trigger span:nth-of-type(2) {
top: 7px;
}
a.menu-trigger span:nth-of-type(3) {
bottom: 0;
}

a.menu-trigger.active span:nth-of-type(1) {
-webkit-transform: translateY(7px) rotate(-45deg);
transform: translateY(7px) rotate(-45deg);
}

a.menu-trigger.active span:nth-of-type(2) {
opacity: 0;
}

a.menu-trigger.active span:nth-of-type(3) {
-webkit-transform: translateY(-7px) rotate(45deg);
transform: translateY(-7px) rotate(45deg);
}

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

header.header{
width: 100%;
height: 90vh;
}

video.top_new{
width: 100%;
height: 100%;
object-fit: cover
}

p.header_title{
width: 70px;
position: absolute;
top:0px;
left: 0px;
}

/*--------------------main--------------------*/

section#information{
padding: 40px 0px 40px 28px;
}

.left_space{
width: calc(100% -28px);
margin-left: 28px
}

.bk{
border-left:solid 1px #000
}

.wh{
border-left:solid 1px #fff
}

article.section{
position: relative;
z-index: 1
}

article.section:before{
content: "";
position: absolute;
width: 3px;
height: 100%;
background: #000;
left: -21px;
z-index: 10
}

article.section_left_space{
position: relative
}

article.section_left_space:before{
content: "";
position: absolute;
width: 3px;
height: 100%;
background: #000;
left: -30px;
z-index: 2
}

article.white:before{
content: "";
background: #fff;
}

h2.section{
font-size:15px;
font-weight: 600;
letter-spacing: 0.05em;
display: flex;
align-items: center;
margin-bottom: 20px
}

i.section{
font-size:12px;
color: #20529a;
font-family: "Jost", sans-serif;
font-optical-sizing: auto;
font-weight: 600;
font-style: normal;
display: flex;
align-items: center;
}

i.section:after{
content: '';
width: 20px;
height: 1px;
background: #000;
display: block;
margin: 0px 5px
}

h3.section{
font-size:20px;
font-weight: 700;
margin-bottom: 20px;
line-height: 1.4
}

p.lead{
width: 90%;
font-weight: 500;
margin-bottom: 40px;
font-size:13px;
position: relative;
z-index: 1
}

article.information{
width: var(--main-width);
border-bottom: dotted 1px #dcdcdc;
padding-bottom: 20px;
margin-bottom: 20px;
padding-right: 40px;
position: relative;
background: url(../img/icon/triangle.png) no-repeat center right 10px;
background-size: 14px;
position: relative;
}

article.information::after {
content: "";
position: absolute;
left: 0;
bottom: -0px;
width: 0;
height: 1px;
background: #20529a;
transition: width 0.3s ease;
}

article.information:hover::after {
width: 100%;
}

p.information_date{
color: #919191;
margin-bottom: 10px;
font-size: 13px;
}

span.category{
color: #20529a;
display: inline-block;
margin-left: 10px
}

a.information{
display: block
}

/*--------------------reason--------------------*/

section#reason{
padding: 40px 0px 80px 48px;
background: #f6f6f6;
position: relative
}

section#reason:before{
content: '';
width: 1px;
height: 100%;
background: #000;
position: absolute;
left: 28px;
top:0px
}

ul.reason{
width: var(--main-width); 
}

li.reason_left{
display: none
}

article.reason_left{
width: 50%;
display: flex;
align-items: center;
padding: 15px 0px;
border-bottom: solid 1px #dcdcdc
}

p.reason_left{
width: 70px;
height: 70px;
border:solid 3px #e9e9e9;
border-radius: 50%;
text-align: center;
font-size: 26px;
font-weight: 300;
font-family: "Oswald", sans-serif;
line-height: 22px;
padding-top: 8px;
margin-right: 15px;
letter-spacing: 0em
}

p.reason_left small{
font-size:13px;
color: #20529a;
font-family: "Jost", sans-serif;
font-optical-sizing: auto;
font-weight: 600;
font-style: normal;
display: block;
}

p.reason_select{
border:solid 3px #ffe100;
}

h3.reason_left{
font-size: 22px;
}

li.reason_right{
width: 100%;
position: relative
}

article.reason_right{
width: 100%;
margin-right: 15px;
background: #fff;
border-radius: 15px;
padding: 30px 15px;

}

h3.reason_right{
font-size: 22px;
color: #20529a;
margin-top: 10px;
margin-bottom: 15px
}

p.reason_right{
font-size: 12px;
line-height: 1.6;
margin-bottom: 20px;
font-weight: 500
}

/*--------------------service--------------------*/

section#service{
padding: 40px 0px 40px 28px;
}

div.service{
width: var(--main-width); 
}

article.service{
border-top:solid 1px #000;
padding: 80px 0px 80px 0px;
position: relative
}

article.service:before{
content: '';
width: 1px;
height: 30px;
background: #000;
position: absolute;
top:-15px;
right: 0px
}

h5.service{
width: max-content;
padding: 0px 30px 0px 10px;
font-family: "Bebas Neue", sans-serif;
font-weight: 400;
font-style: normal;
line-height: 26px;
font-style: normal;
background: #ffe100;
height: 26px;
font-size: 18px;
position: absolute;
top:-13px;
}

h3.service{
font-size: 22px;
text-align: center;
font-weight: 600;
margin-bottom: 25px
}

h4.service{
font-size: 16px;
text-align: center;
font-weight: 600;
color: #919191;
margin-bottom: 10px
}

p.service{
width: 290px;
margin: 0px auto;
font-weight: 500;
margin-bottom: 20px;
line-height: 1.8
}

a.service{
color: #20529a;
display: block;
text-align: center
}

a.service:hover{
text-decoration: underline
}

div.connection{
width: var(--main-width); 
border-top: solid 1px #000;
border-bottom: solid 1px #000;
position: relative;
left: -28px
}

article.connection{
background: #333;
color: #fff;
text-align: left;
padding: 8px 0px 8px 28px
}

p.connection_contents{
font-size: 12px;
font-family: "Jost", sans-serif;
}

h3.connection_contents{
font-size: 16px;
font-weight: 600
}

a.connection_contents{
font-size: 14px;
display: block;
height: 46px;
line-height: 46px;
padding-left: 30px;
font-weight: 600;
position: relative;
background: url(../img/icon/arrow_bk.png) no-repeat center right 20px;
background-size: 15px;
border-bottom: solid 1px #333
}

a.connection_contents:nth-of-type(3){
border-bottom: none
}



a.connection_contents:after{
content: '';
position: absolute;
right: 0px;
width: 1px;
height: 100%;
background: #000
}

/*--------------------company--------------------*/

section#company{
padding: 40px 0px 40px 48px;
background: url(../img/company/back_mobile.jpg) no-repeat center;
background-size: cover;
position: relative;
color: #fff;
}

section#company:before{
content: '';
width: 1px;
height: 100%;
background: #fff;
position: absolute;
left: 28px;
top:0px
}

section#company:after{
content:'';
position: absolute;
width: 100%;
height: 100%;
top:0px;
left: 0px;
background: #000000;
background: linear-gradient(90deg,rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0) 100%);
z-index: 0
}

section#company i{
color: #fff!important
}

section#company i:after{
background: #fff;
}

div.company_link{
width: var(--main-width); 
display: flex;
align-items: center;
gap: 10px;
flex-wrap: wrap;
position: relative;
z-index: 1
}

div.company_link a.more{
width: 46%;
height: 42px;
line-height: 42px;
border-radius: 21px;
padding-left: 20px;
background: url(../img/icon/arrow.png) no-repeat center right 20px, linear-gradient(180deg,rgba(2, 151, 208, 1) 0%, rgba(32, 82, 154, 1) 100%);
background-size: 15px;
}

a.boater{
border: solid 1px #20529a;
color: #20529a!important;
background: url(../img/icon/arrow_kon.png) no-repeat center right 20px , #fff!important;
background-size: 15px!important;
}

/*--------------------voice--------------------*/

section#voice{
padding: 40px 0px 10px 48px;
position: relative;
background: #F1F2F4;
background: linear-gradient(160deg,rgba(241, 242, 244, 1) 0%, rgba(199, 213, 211, 1) 100%);
}

section#voice:before{
content: '';
width: 1px;
height: 100%;
background: #000;
position: absolute;
left: 28px;
top:0px
}

div.voice{
width: var(--main-width); 
}

a.voice_post{
width: 100%;
overflow:hidden;
display: block;
border-radius: 15px;
box-shadow:0 15px 15px rgba(0,0,0,.12);
background: #fff;
margin-bottom: 20px
}

div.card-top{
height:180px;
background:#f5f5f6;
position:relative;
overflow: hidden;
border-bottom: solid 1px #a9cee4;
}

.card-top::before{
content:"";
position:absolute;
right:-60%;
top:-0%;
width:100%;
aspect-ratio:1/1;
background:#fff;
transform:rotate(35deg);
}

img.card-top{
width: 90px;
position: absolute;
top:20px;
left:20px
}

p.client{
width: 140px;
height: 140px;
background: #e9e9e9;
border-radius: 50%;
position: absolute;
right: 20px;
bottom:20px;
overflow: hidden
}

article.voice_post{
padding: 20px
}

h3.voice{
font-size: 18px;
line-height: 1.4;
margin-bottom: 20px;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
text-overflow: ellipsis;
}

h5.voice{
background: #eaf5f9;
padding: 16px;
border-radius: 10px;
font-size:16px;
margin-bottom: 15px
}

h5.voice small{
display: block;
font-size:80%;
}

p.voice{
font-weight: 600;
margin-bottom: 5px
}

h4.voice{
line-height: 1.6
}

/*--------------------recruit--------------------*/

section#recruit{
padding: 40px 0px 40px 28px;
}

section#recruit p.lead{
margin-bottom: 0px;
position: relative;
z-index: 1
}

div.recruit{
width: 100%;
aspect-ratio: 16 / 9;
overflow: hidden;
margin-bottom: 20px;
position: relative;
margin-top: 20px
}

div.recruit_link a{
width: 240px;
height: 50px;
line-height: 50px;
border-radius: 25px;

}

div.recruit_link a:nth-of-type(1){
margin-bottom: 20px
}

img.recruit{
width: 90%;
position: absolute;
bottom: 0px;
mix-blend-mode:overlay
}

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

section#contact{
padding: 40px 0px 40px 0px;
border-top:solid 1px #000;
text-align: center;
background: #f6f6f6
}

h3.contact{
font-size:28px;
color: #20529a;
font-family: "Jost", sans-serif;
font-optical-sizing: auto;
font-weight: 600;
font-style: normal;
}

i.contact{
color: #000;
font-size: 18px;
margin-bottom: 20px
}

h4.contact{
position: relative;
padding-bottom: 20px;
margin-bottom: 40px
}

h4.contact:after{
content: '';
width: 30px;
height: 2px;
background: #000;
position: absolute;
bottom:0px;
left: 50%;
transform: translateX(-50%)
}

div.contact_wrap{
width: 84%;
margin: 0px auto;
background: #fff;
}

div.contact{
width: 100%;
height: 160px;
border-bottom:solid 1px #20529a;
text-align: center;
display: flex;
align-items: center;
justify-content: center
}

div.contact:last-of-type{
border-bottom: none
}

h3.contact_wrap{
color: #20529a;
margin-bottom: 10px
}

a.contact_tel{
display: block;
font-size: 34px;
color: #20529a;
font-family: "Oswald", sans-serif;
font-optical-sizing: auto;
font-weight: 500;
font-style: normal;
line-height: 100%;
}

h4.contact_wrap{
color: #919191;
font-size: 12px;
margin-top: 10px
}

div.contact a.more{
width: 240px;
text-align: left;
height: 50px;
line-height: 50px;
border-radius: 25px;
padding-left: 30px;
}

a.line{
background: #06C755;
background: url(../img/icon/arrow.png) no-repeat center right 15px,linear-gradient(160deg,rgba(6, 199, 85, 1) 0%, rgba(6, 153, 85, 1) 100%);
}

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

footer.footer{
background: #20529a;
padding-top: 30px;
color: #fff
}

ul.footer_inner{
width: var(--main-width); 
margin: 0px auto 40px auto;
padding: 0px 4%
}

img.footer_logo{
width: 60%;
margin: 0px auto 30px auto
}

div.footer_sns{
display: flex;
align-items: center;
gap: 30px;
justify-content: center;
margin-bottom: 20px;
}

a.footer_sns{
width: 26px
}

p.address{
font-size:12px;
margin-bottom: 20px
}

a.google_map{
display: block;
color: #727272;
font-weight: 500;
display: flex;
line-height: 2;
letter-spacing: 0em
}

a.footer_google_map{
color: #fff
}

a.footer_google_map{
color: #fff!important;
margin-top: 10px
}

a.footer_google_map:after{
content: "";
width: 16px;
left: 16px;
background: url(../img/icon/maps-icon.png) no-repeat center!important;
background-size: 100%!important;
margin-left: 5px
}

div.footer_other{
display: flex;
align-items: center;
gap: 50px;
border-top:solid 1px #fff;
border-bottom:solid 1px #fff;
padding: 15px 0px;
margin-bottom: 30px
}

a.footer_other{
color: #fff;
margin-bottom: 10px;
display: block;
}

div.footer_link{
margin-bottom: 20px
}

a.footer_link{
color: #fff;
font-size: 13px;
display: block;
margin-bottom: 10px;
padding-left: 20px
}

a.footer_right{
width: 100%;
display: block;
background: #fff;
color: #20529a;
font-weight: 600;
padding: 15px 0px;
text-align: center;
margin-bottom: 20px;
display: flex;
justify-content: center;
align-items: center
}

span.footer_right{
display: block;
margin-right: 10px;
font-weight: 300
}

p.copy{
font-size:12px;
text-align: center;
background: #fff;
color: #000;
padding: 20px 0px 30px 0px
}

