@charset "UTF-8";
@import "base.css";
@import "fonts.css";
/*==========================================================================*/
/*                                                                          */
/*    base.css  --> スタイルの初期設定を行うため、変更しないで下さい。      */
/*    fonts.css --> フォントの初期設定を行うため、変更しないで下さい。      */
/*                                                                          */
/*==========================================================================*/

/*==========================================================================*/
/*                           Common-Setting                                 */
/*==========================================================================*/
/* 基本タグのフォントサイズを指定（12px -> 120% or 1.2em ） */
h1, h2, h3, h4, h5, h6, input, button, textarea, select, p, blockquote, th, td, pre, address, li, dt, dd, del{
  font-size: 160%;
  -webkit-text-size-adjust: none;
  font-weight: 400;
}
*,::before,::after{box-sizing:border-box;outline: none;}
img {vertical-align: middle;max-width: 100%;flex-shrink: 0;height: auto;}
select { visibility: visible !important; }
a{transition:all ease 0.3s;text-decoration:none;color: var(--txt);}
a[href^="tel:"] {word-break: keep-all;}
video{max-width: 100%;height: auto;}
figure{margin: 0;}
figure:not(:last-child){margin-bottom: 20px;}
/*==========================================================================*/
/*                               Container                                  */
/*==========================================================================*/
html{background:#fff;font-size: 62.5%;}
body{-webkit-text-size-adjust:none;min-width:320px;color:var(--txt);font-family: var(--f-main)}
table {width: 100%}
h1,h2,h3,h4,h5,h6{line-height: 1.4;}
p,dd,dt,li,th,td,address{line-height: 1.8em;letter-spacing: 0;}
p{margin: 0 0 1.5em;}
p:last-child{margin-bottom: 0}

.bold{font-weight: bold;}
.left{text-align:left}
.right{text-align: right;}
.auto{margin-left: auto; margin-right: auto;}
.red{color: var(--red);}
.txt_u{text-decoration: underline;}
.f_big{font-size: 150%;}
.f_sm{font-size: 80%;}
.m0a{display: block;margin-left: auto;margin-right: auto;}
.fw3{font-weight: 300;}
:root {
  --txt: #404040;
  --mcolor: #474645;
  --scolor: #CECECE;
  --container: 113rem;

  --blue: #0F2387;
  --red: red;

  --f-main:'Noto Sans JP', sans-serif;
  --f-montserrat: "Montserrat", sans-serif;
  --f-rbt: "Roboto", sans-serif;
  --f-nsr: "Noto Serif JP", serif;
  --f-barlow: "Barlow", sans-serif;
}
#wrapper{overflow:hidden;margin:0 auto}
.inner{width: var(--container);margin:0 auto;position:relative;max-width: 100%;padding: 0 15px;}

/*==========================================================
                       H E A D E R
==========================================================*/
/* HAMBUGER BUTTON */
.hamburger{font:inherit;display:block;overflow:visible;margin:0;padding:1rem 0.8rem 0.5rem;cursor:pointer;transition-timing-function:linear;transition-duration:.15s;transition-property:opacity,filter;text-transform:none;color:inherit;border:0}
.hamburger-box{position:relative;display:inline-block;width:2.2rem;height:2.2rem}
.hamburger-inner{top:50%;display:block;margin-top:-0.2rem}
.hamburger-inner,
.hamburger-inner::after,
.hamburger-inner::before{position:absolute;width:2.2rem;height:0.2rem;transition:all ease 0.15s;background-color:#fff}
.hamburger-inner::after,
.hamburger-inner::before{display:block;content:""}
.hamburger-inner::before{top:-0.8rem}
.hamburger-inner::after{bottom:-0.8rem}
.hamburger--3dxy .hamburger-box{perspective:8rem}
.hamburger--3dxy .hamburger-inner{transition:transform .15s cubic-bezier(0.645,0.045,0.355,1),background-color 0 cubic-bezier(0.645,0.045,0.355,1) .1s}
.hamburger--3dxy .hamburger-inner::after,
.hamburger--3dxy .hamburger-inner::before{transition:transform cubic-bezier(0.645,0.045,0.355,1) .1s}
.hamburger--3dxy.is_active .hamburger-inner{transform:rotateX(180deg) rotateY(180deg);background-color:transparent!important}
.hamburger--3dxy.is_active .hamburger-inner::before{transform:translate3d(0,0.8rem,0) rotate(45deg)}
.hamburger--3dxy.is_active .hamburger-inner::after{transform:translate3d(0,-0.8rem,0) rotate(-45deg)}

header{position: relative; z-index:9;}
.h_box{width:100%;position: absolute;}
.h_logo{display: flex;align-items: center;gap: 4rem;}
.h_logo .logo_part{position: relative;}
.h_logo .logo_part::before{content: '';position: absolute;width: 1px;height: 3rem;background-color: #C5C5C5;transform: rotate(25deg);left: -2.1rem;top: calc(50% - 1.5rem);}
.h_inner{display:flex;justify-content:space-between;align-items: center;height: 100%;max-width: 192rem;}
#index .h_box.active{position: fixed;background-color: #fff;}
.h_box.active .hamburger-inner,
.h_box.active .hamburger-inner::after,
.h_box.active .hamburger-inner::before{background-color:#000}
.h_contact{width: 16rem;height: 100%;}
.h_contact a{display: flex;justify-content: center;align-items: center;font-size: 1.5rem;font-weight: 500;color: #FFF;background:var(--mcolor);height: 100%;width: 100%;text-align: center;}

/*==========================================================
                  M A I N    V I S U A L
==========================================================*/
main{position: relative;z-index: 2;}
.mv{position: relative;padding: 0;height: 100%;}
.mv_box{position: relative;z-index: 2;}
.mv_ttl .en{font-size: 120%;}
.mv_ttl img{display: inline-block;}
.mv_ttl{font-weight: 600;line-height: 1.65;font-family: var(--f-nsr);}
.mv_en{font-size: 2.6rem;font-weight: 400;font-family: var(--f-nsr);margin-bottom: 0;line-height: 1.2;position: relative;padding-left: 2.7rem;}
.mv_en::before{content: "";position: absolute;width: 2rem;height: 1px;background: #FFF;left: 0;top: 1.5rem;}
.mv_note{position: absolute;font-weight: bold;z-index: 2;margin-bottom: 0;}

.mv_bg{position:relative;overflow:hidden;opacity:0;transition:all .3s;}
.mv_bg.init{opacity:1}
.mv_bg,.mv_slider_ite{width:100%;}
.mv_slider_ite.zoomed .bg{animation-name:zoomImg;animation-duration:6s;animation-timing-function:linear;animation-fill-mode:forwards}
@keyframes zoomImg { 0%{transform:scale(1)} 100%{transform:scale(1.15)}}
@keyframes scrolltop {0%{transform:translateY(-9rem);transform-origin:center;opacity:0;transition:ease-in-out}100%{transform:translateY(0);opacity:1}}
.desc{font-size: 1.8rem;font-weight: 500;letter-spacing: 1px;}
.fw5{font-weight: 500;}
.link{text-decoration: underline;text-underline-offset: 0.2rem;}

@media screen and (min-width: 751px){
  .mv_slider_ite .bg{position:absolute;width:100%;height:100%;z-index:0;top:0;left:0;background-size:cover;background-position:center}
  .mv_box *{color: #FFF;}
  #index .h_box.active{animation: scrolltop 1s; animation-iteration-count: 1; }
  .sec02_category li:hover .ttl{background-color: #AEAEAE;color: #FFF;}

}
/*==========================================================
                M A I N    C O N T E N T
==========================================================*/
/* DEFAULT TITLE */
.ttl_h2{text-align: center;z-index: 2;position: relative;font-size: 1.8rem;font-weight: bold;color: var(--blue);letter-spacing: 0.18rem;}
.ttl_h2_en{font-size: 8rem;color: rgba(15, 35, 135, 0.1);font-family: var(--f-montserrat);text-align: center;line-height: 1.25;margin-bottom: 0;}

/* DEFAUTL NAME BUTTON */
.btn a{width: 32rem; height: 7.6rem; border-radius: 99.9rem; display: flex; justify-content: center; align-items: center; background: var(--txt);color: #fff;font-weight: 500;}
.btn.center a{margin-left: auto; margin-right: auto;}

.btn_box:not(:last-child){margin-bottom: 3rem;}
.btn_box{display: flex;flex-wrap: wrap;align-items: center;justify-content: center;gap: 2rem;}
.btn_box .btn{margin: 0;}

/*============= SEC01 ==============*/
.sec01{padding: 5.9rem 0 0;background-color: #FBFBFB;overflow: hidden;}
.sec01_list{display: flex;justify-content: center;border-top: 1px solid #C1C1C1;border-bottom: 1px solid #C1C1C1;}
.sec01_list dl{width: 40rem;padding: 4.2rem 3rem 7.1rem;position: relative;max-width: 100%;}
.sec01_list dl::before,.sec01_list dl:last-child::after{content: "";position: absolute;width: 1px;height: 500%;bottom: 0;left: 0;background-color: #C1C1C1;}
.sec01_list dl:last-child::after{left: 100%;}
.sec01_list dl dt{margin-bottom: 1.4rem;}
.sec01_list dl dt .ico{text-align: center;width: 25rem;display: flex;justify-content: center;align-items: center;margin: 0 auto 2.7rem;background-color: #FFF;border-radius: 50%;max-width: 100%;aspect-ratio: 1/1;}
.sec01_list dl dt .tt{font-size: 2rem;font-weight: bold;text-align: center;}

@media screen and (min-width: 768px) {
  .h_logo{max-width: 35%;}
  .mv_box{padding: 7.2rem 23.6rem 0;display: flex;flex-direction: column;justify-content:center;height: 100%;max-width: 192rem;margin-left: auto;margin-right: auto;width: 100%;}
  .mv_ttl img{margin-right: 8px;transform: translateY(-3px);}
  .mv_ttl{margin-bottom: 4.2rem;font-size: 5rem;}
  .mv_ttl.cus{line-height: 1.7;margin-bottom: 3.7rem;}
  .mv_ttl .lg{font-size: 5rem;}
  .mv_ttl .big{font-size: 7rem;}
  .mv_note{bottom: 2.5rem;right: 3rem;font-size: 1.8rem;}
  .ttl_h2:not(:last-child){margin-bottom:5.5rem;}
  .sec01_list{padding: 0 2rem;}
  .sec01 .ttl_h2:not(:last-child){margin-bottom:6.7rem;}
  .sec03{padding: 0 0 9.7rem;}
  .sec03 .inner{width: 123rem;}
  .sec02 .inner{width: 133rem;}
  .sec02_list {width: calc(100% + 1rem);margin-bottom: 7.7rem;margin-left: -0.5rem;}
  .sec02_list dl{margin: 0 1.5rem;}
  .sec03_table dl.no_bor{padding-top: 1.5rem;padding-bottom: 0.8rem;}
  .ft_logo{margin-bottom: 5rem;}
  .ft_cta{margin-top: -0.4rem;}
  .under .wp_detail h1{font-size: 3rem;}
  .sec01_list dl{max-width: 33%;}
}
/*============= SEC02 ==============*/
.sec02{position: relative;padding: 11.8rem 0;}
.sec02::before{content: '';position: absolute;background-color: #FBFBFB;top: 0px;left: 0;width: 100%;height: 30rem;clip-path: polygon(0 0, 100% 0, 100% 14%, 0% 100%);z-index: -1;}
.sec02_head{margin-bottom: 5.7rem;}
.project_list:not(.sec02_list){gap: 8rem 4rem;display: grid;grid-template-columns: repeat(3,1fr);}
.sec02_list dl{width: 34rem;}
.project_list dl dt{margin-bottom: 1rem;aspect-ratio: 340/218;background-color: #EDEDED;}
.project_list dl dt a{width: 100%;height: 100%;display: flex;justify-content: center;align-items: center;overflow: hidden;}
.project_list dl dt img{max-height: 100%;}
.project_list dl dd{display: flex;justify-content: space-between;}
.project_list dl dd .tt {font-size: 1.8rem;font-weight: bold;margin-bottom: 0;line-height: 1.6;text-overflow:ellipsis; overflow:hidden;display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;}
.project_list dl dd .cat {flex-shrink: 0;height: max-content;}

.sec02_category{display: grid;grid-template-columns: repeat(3,1fr);gap:4rem 2.693%;margin-bottom: 6rem;}
.sec02_category li .img{margin-bottom: 0;}
.sec02_category li .ttl{font-weight: bold;text-align: center;padding: 1.6rem 1.5rem;background-color: #EDEDED;}

.slick-next:hover{background:url(../images/ic_right.png) no-repeat center /1.6rem #E8E8E8;}
.slick-prev:hover{background:url(../images/ic_left.png) no-repeat center /1.6rem #E8E8E8;}
.slick-prev,.slick-prev:focus{left:-11rem;background:url(../images/ic_left.png) no-repeat center /1.6rem #E8E8E8;}
.slick-next,.slick-next:focus{right:-11rem;background:url(../images/ic_right.png) no-repeat center /1.6rem #E8E8E8;}
.slick-prev,.slick-next,.slick-prev:focus,.slick-next:focus{z-index:95;height:8rem;width:8rem;border-radius: 50%;}
.slick-disabled{pointer-events: none;}
.slick-prev:before,.slick-next:before{display:none}
.cat{font-size: 1.2rem;padding: 0.4rem 1.9rem;font-weight: 500;border: 1px solid #DFDFDF;letter-spacing: 1px;}

/*============= SEC03 ==============*/
.sec03_table {max-width: 88rem;margin: 0 auto 10.2rem;position: relative;z-index: 2;}
.sec03_table::after{content: '';position: absolute;width: 121rem;height: 121rem;background: url('../images/sec03_ic.png') no-repeat center /contain;top: 12rem;left: calc(50% - 60rem);z-index: -1;}
.sec03_table dl{padding: 1.5rem 3.1rem 1.6rem;display: flex;}
.sec03_table dl:not(:last-child){border-bottom: 1px solid #CECECE;}
.sec03_table dl.no_bor{border-bottom: 0;}
.sec03_table dl dt{flex-shrink: 0;min-width: 22%;font-weight: bold;}
.sec03_table dl dd{line-height: 2;}
.sec03_frame iframe{width: 100%;}


/*==========================================================
                        F O O T E R
==========================================================*/
footer{position: relative;z-index: 3;}
.ft_box{padding: 4.5rem 0 5.5rem;background: var(--txt);margin-bottom: 9.5rem;}
.ft_box .ttl_h2_en{color: rgba(255, 255, 255, 0.1);}
.ft_box .ttl_h2{color: #FFF;}
.ft_cta{display: flex;justify-content: center;align-items: center;gap: 9rem;border: 1px solid rgba(255, 255, 255, 0.5);padding: 5.5rem 7rem 5.4rem 4.8rem;width: fit-content;margin: -0.4rem auto 0 auto;}
.ft_cta li,.ft_cta li a{color: #FFF;font-size: 1.8rem;font-weight: 500;letter-spacing: 0.14rem;}
.ft_cta li.ft_cta_cnt a{font-size: 2.2rem;padding-left: 3.7rem;position: relative;letter-spacing: 0;}
.ft_cta li.ft_cta_cnt a::before{content: '';position: absolute;width: 2.8rem;height: 2.1rem;background: url(../images/ic_contact.png) no-repeat center /contain;left: 0;top: calc(50% - 0.8rem);}
address{text-align:center;padding: 2.4rem 1.5rem;font-size: 1.2rem;font-weight: bold;font-family: var(--f-rbt);}

/* BACK TO TOP */
.to_top{position:fixed;z-index:8;width:6rem;height:6rem;bottom:2rem;right:2rem;cursor:pointer;transition:all .2s;opacity:0;visibility:hidden;display: flex;justify-content: center;align-items: center;background-color: #EFEFEF;border-radius: 50%;}
.to_top.show{transform:scale(1);opacity:1;visibility:visible}

/* FIREFOX ONLY */
@-moz-document url-prefix() {}

/* Safari 10.1+ (which is the latest version of Safari at this time) */
@media not all and (min-resolution: 0.001dpcm) {}