@charset "UTF-8";
/* CSS Document */
main{
    padding-top: 0;
}
body:not(.past_fv) .menu_btn span {
    background: #fff;
}
/*ロゴ切替*/
body:not(.past_fv) .fv_now,
body.past_fv .fv_past{
    display: block;
}
body:not(.past_fv) .fv_past,
body.past_fv .fv_now{
    display: none;
}
/*================================
sec_fv
================================*/
.sec_fv {
    width: 100vw;
    height: 100vh;
    height: 100svh;
    overflow: hidden;
}
.art_fv {
    height: 100%;
    width: 100%;
}
.fv_inr {
    display: flex;
    justify-content: center;
    align-items: center;
}
.fv_slide_wrap {    
    width: 100%;
    z-index: 1;
    position: relative;
}
.fv_slide_wrap::after {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    height: 100svh;
    background: rgba(0, 0, 0, 0.25);
    z-index: 2;
}
.fv_slide_inr {
    position: relative;
    z-index: 1;
}
.fv_slide {
    position: absolute !important;
    z-index: 1;
}
.fv_slide img {
  height: 100vh;
  height: 100svh;
  margin: auto;
  max-height: 100%;
  max-width: 100%;
  object-fit: cover;
  width: 100%;
}
.fv_slide.slick-active {
    left: 0 !important;
    opacity: 1 !important;
}
.fv_copy {
    color: #fff;
    position: absolute;
    font-size: max(27px, 3vw);
    height: max(27px, 3vw);
    line-height: 1;
    z-index: 10;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    margin: auto;
    text-align: center;
    letter-spacing: 0.5vw;
}
/*================================
sec_news
================================*/
.sec_news {
    position: absolute;
    bottom: min(6vw,50px);
    left: 4%;
    z-index: 10;
    background: rgba(255, 255, 255, 0.8);
    border-radius: min(10vw, 10px);
    padding: min(4vw, 20px);
    width: min(92%, 800px);
}
.news_ttl {
    color: #0071b7;
    font-weight: normal;
    line-height: 1;
    font-size: min(4.5vw, 18px);
    border-bottom: 1px solid #cbcccd;
    padding-bottom: 4px;
    margin-bottom: 10px;
}
.news_link {
    line-height: 1;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 1;
    overflow: hidden;
}
.news_link:hover {
    color: #0071b7;
}
.news_link time {
    font-size: min(3.5vw, 14px);
    margin-right: 1em;
}
.news_name {
    font-size: min(4vw, 16px);
}

/*================================
sec_service
================================*/
.sec_service{
    padding: min(12vw,100px) 0 min(20vw,150px);
    position: relative;
    overflow: hidden;
}
.art_service {
    padding: 0 5%;
    z-index: 2;
}
.service_ttl_wrap {
    position: relative;
    text-align: center;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: min(4vw, 25px);
}
.service_ttl_en {
    font-size: min(22vw, 160px);
    line-height: 1;
    color: #0080d3;
    opacity: 0.1;
    font-style: italic;
    font-weight: 600;
}
.service_ttl {
    text-align: center;
    font-size: min(6.5vw, 34px);
    line-height: 1.3;
    position: absolute;
}
.service_txt_wrap {
    margin-bottom: min(12vw, 70px);
}
.service_txt {
    font-size: min(3.5vw, 18px);
    line-height: min(7vw, 200%);
    font-weight: 400;
    text-align: center;
}
.service_link_btn{
    margin-left: auto;
    margin-right: auto;
}

.service_img {
    position: absolute;
    z-index: 1;
    bottom: min(12vw, 90px);
    max-width: max-content;
}
.service_img img {
    max-width: max-content;
}
.service_img.imgL {
    left: 0;
    width: 24vw;
}
.service_img.imgR {
    right: 0;
    width: 29vw;
}
/*================================
movie
================================*/
.movie_wrap {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    height: min(56vw, 420px);
    overflow: hidden;
}
video.movie {
    width: 100%;
}

/*================================
sec_pages
================================*/
.sec_pages{
background: linear-gradient(135deg,  rgba(0,135,226,1) 0%,rgba(0,87,139,1) 100%); 
}
.art_pages{
    background: url(../img/common/bg_dot.webp) repeat;
    background-attachment: fixed;
}

.pages_list {
    padding-top: min(22vw, 140px);
    padding-bottom: min(10vw,90px);
}

.pages_item {
    width: 80%;
    padding-bottom: min(15vw, 100px);
}

.page_name_wrap {
    background: rgba(255, 255, 255, 0.65);
    width: 266px;
    min-width: 266px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: min(5vw,60px) min(6vw,52px) min(5vw,25px) min(4vw,30px);
    margin-left: 15px;
    transition: all ease 300ms;
}
.pages_content_link:hover .page_name_wrap{
    background: rgba(255, 255, 255, 1);
}
.pages_name {
    -ms-writing-mode: vertical-rl;
    writing-mode: vertical-rl;
    font-size: min(6vw, 34px);
    line-height: 1;
    letter-spacing: min(0.8vw, 8px);
    font-weight: 600;
}
.pages_name::before {
    content: "";
    display: inline-block;
    margin-bottom: 12px;
    width: min(6vw,42px);
    aspect-ratio:1 / 1;
    background: url(../img/common/ttl_dot.svg) no-repeat center / 86% 86%;
}
.pages_more {
    color: #7c746e;
    font-size: min(4vw, 18px);
    line-height: 1;
    text-decoration: underline;
}
.pages_en {
    font-size: min(15vw, 140px);
    line-height: 1;
    position: relative;
    z-index: 1;
    font-style: italic;
    color: rgba(255, 255, 255, 0.15);
    mix-blend-mode: overlay;
    margin-bottom: max(-80px,-6vw);
    margin-left: min(10vw,140px);
}

.page_img_wrap {
    position: relative;
    height: min(45vw, 380px);
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
}
.page_img_wrap:after{
    content: "";
    position: absolute;
    width: 100%;
    height: 100%;
    background: rgba(0,74,122,0.15);
    top: 0;
    left: 0;
    mix-blend-mode: multiply;
    transition: all ease 300ms;
}
.pages_content_link:hover .page_img_wrap:after{
    opacity: 0;
}
.page_img{
    height: 100vh;
    margin: auto;
    max-height: 100%;
    max-width: 100%;
    object-fit: cover;
    width: 100%;
}
.page_img img {
    transition: all ease 300ms;
}
@media screen and (max-width:1400px) {
.page_img img {
    width: auto;
    height: 100%;
}
}
.pages_content_link:hover .page_img img{
    transform: scale(1.05);
}
.pages_content_link {
    display: flex;
}

:where(.pages_item:nth-of-type(2n-1)) {
    margin-left: auto;
}
:where(.pages_item:nth-of-type(2n-1)) .pages_content_link{
    flex-direction: row-reverse;
}
:where(.pages_item:nth-of-type(2n-1)) .pages_en {
    margin-left: max(-10vw, -140px);
}
:where(.pages_item:nth-of-type(2n-1)) .page_name_wrap{
    align-items: flex-start;    
    padding: min(5vw,42px) min(4vw,30px) min(5vw,25px) min(6vw,42px);
    margin-right: 15px;
    margin-left: 0;
}
:where(.pages_item:nth-of-type(2n-1)) .pages_more{
    margin-left: auto;    
}
@media screen and (max-width:860px) {
.pages_item {
width: 90%;
}
.page_img_wrap,
.page_name_wrap {
width: 100%;
margin: 0;
}
.pages_content_link {
flex-direction: column;
}
.pages_name{
display: flex;
align-items: center;
-ms-writing-mode: horizontal-tb;
writing-mode: horizontal-tb;
}
.pages_name::before {
margin-bottom: 0;
margin-right: 12px;
}
.pages_more{
margin-left: auto;
margin-top: 5vw;
}

.page_img img {
    width: 100%;
    height: auto;
}
}