@charset "utf-8";

.mobile{
display: none!important;
}

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

:root {
--main-width: 1200px;
}

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

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
}

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

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

menu.menu{
background: #fff;
display: flex;
align-items: center;
}

img.contents_logo{
width: 240px;
margin-left: 20px
}

ul.menu_inner{
width: var(--main-width); 
margin: 0px auto;
display: flex;
align-items: center;
justify-content: right
}

a.menu_logo{
width: 250px;
display: block;
margin-right: 40px
}

div.menu_top{
height: 50px;
border-bottom: solid 1px #000 ;
display: flex;
align-items: center;
justify-content: flex-end;
}

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

a.menu_top{
font-weight: 600;
color: #000;
margin-left: 25px;
border-right: solid 1px #000;
padding-right: 25px;
display: flex;
align-items: center;
white-space: nowrap;
}

a.menu_top:hover,a.menu_under:hover{
text-decoration: underline
}

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

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

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

div.menu_under{
height: 50px;
display: flex;
align-items: center;
justify-content: flex-end;
}

a.menu_under{
font-weight: 600;
color: #000;
margin-left: 40px;
white-space: nowrap;
}

a.menu_contact{
margin-left: 20px
}

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

nav.nav{
display: none
}

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

div.top_ribbon{
width: 200px;
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:300px;
}

div.hours{
transform: rotate(90deg) translateX(50%);
font-size: 0.6em;
position: absolute;
font-weight: 500;
left: -10px;
top:0px
}

p.hours{
display: flex;
font-size: 8px;
align-items: center;
padding-top: 10px
}

p.en{
font-size: 11px;
font-weight: 500
}

p.hours span{
font-size: 11px;
font-weight: 500
}

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

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

h1.jp{
height:100%;
top:24px;
position: absolute;
right: 0px;
writing-mode: vertical-rl;
font-size:18px
}

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

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: 20px;
position: relative
}

p.top_ribbon_bottom_connection:hover{
cursor: pointer;
text-decoration: underline
}

span.top_ribbon_bottom_connection{
width: 260px;
display: block;
border:solid 1px #20529a;
border-radius: 10px;
position: absolute;
background: rgba(255,255,255,0.9);
left: 170px;
top:50%;
transform: translateY(-50%)
}

a.top_ribbon_bottom_connection{
width: 84%;
margin: 0px auto;
color: #20529a;
display: block;
font-size: 13px;
border-bottom: solid 1px #20529a;
background: url(../img/icon/triangle.png) no-repeat center right 0px;
background-size: 12px
}

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

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

.top_ribbon_bottom_connection span {
opacity: 0;
visibility: hidden;
transition: opacity 0.6s ease, visibility 0.6s ease;
}


.top_ribbon_bottom_connection:hover span {
opacity: 1;
visibility: visible;
}

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

a.top_ribbon_sns{
width: 24px
}

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

header.header{
width: 100%;
min-height: 75vh;
position: relative;
margin-bottom: 60px;
z-index: 1
}

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

p.header_title{
width: 200px;
position: absolute;
top:-100px;
left: 0px;
}

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

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

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

.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: 4px;
height: 100%;
background: #000;
left: -43px;
z-index: 10
}

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

i.section{
font-size:20px;
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:34px;
font-weight: 700;
margin-bottom: 20px;
line-height: 1.4
}

p.lead{
font-weight: 500;
margin-bottom: 60px;
position: relative;
z-index: 1
}

article.information{
width: var(--main-width);
border-bottom: dotted 1px #dcdcdc;
padding-bottom: 20px;
margin-bottom: 20px;
position: relative;
background: url(../img/icon/triangle.png) no-repeat center right 10px;
background-size: 16px;
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: 60px 0px 60px 240px;
background: #f6f6f6;
position: relative
}

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

ul.reason{
width: var(--main-width); 
display: flex;
align-items: start;
justify-content: space-between
}

li.reason_left{
width: 740px;
border-top:solid 1px #dcdcdc;
display: flex;
align-items: start;
flex-wrap: wrap
}

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;
position: relative;
overflow: hidden;
}

p.reason_left::after {
content: "";
position: absolute;
top: -3px;
left: -3px;
width: 100%;
height: 100%;
border: 3px solid #ffe100;
border-radius: 50%;
transform: rotate(0deg);
opacity: 0;
}

p.reason_left.reason_select::after {
opacity: 1;
animation: spinBorder 1.2s linear; /* ← 0.6s → 1.2s に変更 */
}

@keyframes spinBorder {
from {
transform: rotate(-180deg);
opacity: 0;
}
to {
transform: rotate(0deg);
opacity: 1;
}
}

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: 400px
}

article.reason_right {
  width: 320px;
  background: #fff;
  border-radius: 15px;
  padding: 30px 15px;
  box-shadow: 0 15px 15px rgba(0,0,0,.12);
  position: relative;
  display: none;           /* 完全に非表示 */
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}

article.reason_right.shows {
  display: block;          /* 表示させる */
}

article.reason_right.animate {
  opacity: 1;
  transform: translateY(0); /* 元の位置に戻す */
}

article.reason_left:hover h3{
cursor: pointer;
text-decoration: underline
}

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: 60px 0px 60px 40px;
}

div.service{
width: var(--main-width); 
display: flex;
align-items: start;
flex-wrap: wrap; 
gap: 60px;
}

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

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

article.service:nth-of-type(1):after,
article.service:nth-of-type(3):after{
content: '';
width: 1px;
height: 80%;
background: #000;
position: absolute;
right: -30px;
top:50%;
transform: translateY(-50%)
}

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;
display: flex;
align-items: center;
position: relative;
left: -40px
}

article.connection{
width: 260px;
background: #333;
color: #fff;
text-align: left;
padding: 10px 0px 10px 20px
}

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

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

a.connection_contents{
width: calc(( var(--main-width) - 320px) / 3);
font-size: 16px;
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: 18px
}

a.connection_contents:hover{
text-decoration: underline;
}

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

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

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

section#company:before{
content: '';
width: 1px;
height: 100%;
background: #fff;
position: absolute;
left: 200px;
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: 40px;
position: relative;
z-index: 1
}

div.company_link 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%);
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: 60px 0px 60px 240px;
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: 200px;
top:0px
}

div.voice{
width: var(--main-width); 
display: flex;
align-items: center;
gap: 60px;
margin-bottom: 40px
}

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

a.voice_post:hover h3.voice{
text-decoration: underline
}

div.card-top{
height:220px;
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: 160px;
height: 160px;
background: #e9e9e9;
border-radius: 50%;
position: absolute;
right: 20px;
bottom:20px;
overflow: hidden
}

article.voice_post{
padding: 20px
}

h3.voice{
font-size: 20px;
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:18px;
margin-bottom: 15px
}

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

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

h4.voice{
line-height: 1.6;
font-size:14px
}

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

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

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

div.recruit{
width: 990px;
aspect-ratio: 16 / 9;
overflow: hidden;
position: relative;
top:30px;
left:-60px;
}

div.recruit_link{
position: absolute;
top:50%;
transform: translateY(-50%);
left: 60px;
z-index: 10
}

div.recruit_link a{
width: 240px;
height: 50px;
display: block;
line-height: 50px;
border-radius: 25px;
padding-left: 30px;
}

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

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

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

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

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

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

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

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

div.contact_wrap{
width: 900px;
margin: 0px auto;
background: #fff;
display: flex;
align-items: center
}

div.contact{
width: 300px;
height: 180px;
border-right: solid 1px #20529a;
text-align: center;
display: flex;
align-items: center;
justify-content: center
}

div.contact:last-of-type{
border-right: 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: 40px 0px 0px 0px;
color: #fff
}

footer.footer a:hover{
cursor: pointer;
text-decoration: underline
}

ul.footer_inner{
width: var(--main-width); 
margin: 0px auto 40px auto;
display: flex;
align-items: start;
justify-content: space-between;
gap: 50px;
}

li.footer_left{
width: 300px
}

li.footer_center{
width: 600px;
padding-top: 30px
}

li.footer_right{
width: 300px
}

img.footer_logo{
margin-bottom: 40px
}

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;
}

a.footer_google_map{
color: #fff
}

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

a.footer_google_map:after{
content: "";
width: 14px;
left: 14px;
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
}

div.footer_link{
display: flex;
align-items: center;
gap: 20px;
margin-bottom: 20px
}

a.footer_link{
color: #fff;
font-size: 13px;
border-right: solid 1px #fff;
padding-right: 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:13px;
text-align: center;
background: #fff;
color: #000;
padding: 20px 0px 30px 0px
}

