@charset "UTF-8";

/* ===================================================================== */
/* header.home01 */
/* --------------------------------------------------------------------- */
header.home01
{
    margin-bottom:60px;
    position: relative;
}
header.home01 iframe
{
  /*天地中央配置*/
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
  /*縦横幅指定*/
    width: 177.77777778vh; /* 16:9 の幅→16 ÷ 9＝ 177.77% */
    height: 56.25vw; /* 16:9の幅 → 9 ÷ 16 = 56.25% */
    min-height: 100%;
    min-width: 100%;
}

header.home01 .swiper-container
{
    position: relative;
    width: 100%;
    height: 100vh;
    background: #000;
}

header.home01 .swiper-slide
{
    font-size: 18px;
    color:#fff;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    padding: 40px 60px;
}

header.home01 .swiper-slide img
{
    position: absolute;
    left: 0;
    top: 0;
    width: 100vw;
    height: 100vh;
    object-fit: cover;
}

header.home01 .parallax-bg
{
    position: absolute;
    left: 0;
    top: 0;
    width: 130%;
    height: 100%;
    -webkit-background-size: cover;
    background-size: cover;
    background-position: center;
}
header.home01 .swiper-slide .title
{
    font-size: 41px;
    font-weight: 300;
}
header.home01 .swiper-slide .subtitle
{
    font-size: 21px;
}
header.home01 .swiper-slide .text
{
    font-size: 14px;
    max-width: 400px;
    line-height: 1.3;
}

header.home01 #youtube-mask
{
    position: absolute;
    z-index: 3;
    top:0;
    width:100%;
    height: 100%;
}
header.home01 .diray-background
{
    position:fixed;
    z-index: 3;
    top:0;
    left:0;
    width:100vw;
    height: 100vh;
    background: url("./img/tmp.png") no-repeat 100% 100%;
    background-size:cover;
}
header.home01 .slider img,
header.home01 .slider video,
header.home01 .sliderBox iframe
{
    width: 100%;
    height: auto;
}
header.home01 .slick-slide li
{
    position: relative;
    padding-bottom: 56.25%;
        height: 0;
    overflow: hidden;
}
header.home01 .slick-slide iframe
{
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}
/* mgs-header-copy */
header.home01 .mgs-header-copy
{
    z-index: 10;
    position: absolute;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    display: -webkit-box; display: -ms-flexbox; display: flex;
    -webkit-box-pack: center;-ms-flex-pack: center;justify-content: center;
    -webkit-box-align: center;-ms-flex-align: center;align-items: center;
}

header.home01 .mgs-header-copy .title
{
    color:#fff;
    font-weight: bold;
    font-size:2.7em;
    padding-top:10px;
    text-align: center;
}
header.home01 .mgs-header-copy .text
{
    padding-top:1em;
    
}
header.home01 .mgs-header-copy .text p
{
    margin-bottom:0.8em;
    font-size:1.1em;
    
}

/*スクロールダウン全体の場所*/
header.home01 .scrolldown1
{
  position:absolute;
  left:50%;
  bottom:10px;
  height:50px;
  z-index: 10;
}

/*Scrollテキストの描写*/
header.home01 .scrolldown1 span
{
  position: absolute;
  left:-15px;
  top: -15px;
  color: #eee;
  font-size: 0.7rem;
  letter-spacing: 0.05em;
  z-index: 10;
}

/* 線の描写 */
header.home01 .scrolldown1::after
{
  content: "";
  position: absolute;
  top: 0;
  width: 1px;
  height: 30px;
  background: #eee;
  animation: pathmove 1.4s ease-in-out infinite;
  opacity:0;
  z-index: 10;
}
@keyframes pathmove{
  0%{
    height:0;
    top:0;
    opacity: 0;
  }
  30%{
    height:30px;
    opacity: 1;
  }
  100%{
    height:0;
    top:50px;
    opacity: 0;
  }
}

header.home01 .mgs-pagetitle
{
    width:100%;
    padding:7em 0 0 0;
}
header.home01 .mgs-pagetitle .pagetitle
{
    width:50%;
    margin: 0 auto 3em auto;
    text-align: center;
}
header.home01 .mgs-pagetitle .pagetitle .subtitle
{
    color:#ddd;
    font-size:0.9em;
}
header.home01 .mgs-pagetitle .pagetitle h2
{
    color:#fff;
    font-size:47px;
    font-weight: bold;
}

header.home01 .mgs-pagetitle .copy_img
{
    width: 450px;
    margin: 0 auto;
}

header.home01 .mgs-pagetitle .copy_img img
{
    width: 100%;
    height:auto;
}

header.home01 .mgs-pagetitle .pagetitle .text
{
    padding-top:1.5em;
    color:#fff;
    text-align: center;
}

header.home01 .mgs-pagetitle .count_box
{

    display: -webkit-box; display: -ms-flexbox; display: flex;
    -webkit-box-pack: center;-ms-flex-pack: center;justify-content: center;
    width: 100%;
}
header.home01 .mgs-pagetitle .count_box .data01,
header.home01 .mgs-pagetitle .count_box .data02
{
    margin:0 20px;
    width: 450px;
    background:rgba(255,255,255,0.2);
    padding: 30px;
    text-align: center;
}

header.home01 .mgs-pagetitle .count_box .block01
{
    font-size:1.3em;
    color:#fff;
    background:rgba(255,255,255,0.15);
    padding:10px 30px;
    margin-bottom: 3em;
}
header.home01 .mgs-pagetitle .count_box .count
{
    line-height: 0;
    font-size:5em;
    font-weight:bold;
    color:#fff;
}
header.home01 .mgs-pagetitle .count_box .block02
{
    text-align:right;
    font-size:1.3em;
    color:#fff;
}


/* ===================================================================== */
/* header.page02 */
/* --------------------------------------------------------------------- */
header iframe
{
  /*天地中央配置*/
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
  /*縦横幅指定*/
    width: 177.77777778vh; /* 16:9 の幅→16 ÷ 9＝ 177.77% */
    height: 56.25vw; /* 16:9の幅 → 9 ÷ 16 = 56.25% */
    min-height: 100%;
    min-width: 100%;
}

header .swiper-container
{
    position: relative;
    width: 100%;
    height: 100vh;
    background: #000;
}

header .swiper-slide
{
    font-size: 18px;
    color:#fff;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    padding: 40px 60px;
}

header .swiper-slide img
{
    position: absolute;
    left: 0;
    top: 0;
    width: 100vw;
    height: 100vh;
    object-fit: cover;
}

header .parallax-bg
{
    position: absolute;
    left: 0;
    top: 0;
    width: 130%;
    height: 100%;
    -webkit-background-size: cover;
    background-size: cover;
    background-position: center;
}
header .swiper-slide .title
{
    font-size: 41px;
    font-weight: 300;
}
header .swiper-slide .subtitle
{
    font-size: 21px;
}
header .swiper-slide .text
{
    font-size: 14px;
    max-width: 400px;
    line-height: 1.3;
}

header #youtube-mask
{
    position: absolute;
    z-index: 3;
    top:0;
    width:100%;
    height: 100%;
}
header .diray-background
{
    position:fixed;
    z-index: 3;
    top:0;
    left:0;
    width:100vw;
    height: 100vh;
    background: url("./img/tmp.png") no-repeat 100% 100%;
    background-size:cover;
}
header .slider img,
header .slider video,
header .sliderBox iframe
{
    width: 100%;
    height: auto;
}
header .slick-slide li
{
    position: relative;
    padding-bottom: 56.25%;
        height: 0;
    overflow: hidden;
}
header .slick-slide iframe
{
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}
/* mgs-header-copy */
header .mgs-header-copy
{
    z-index: 10;
    position: absolute;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    display: -webkit-box; display: -ms-flexbox; display: flex;
    -webkit-box-pack: center;-ms-flex-pack: center;justify-content: center;
    -webkit-box-align: center;-ms-flex-align: center;align-items: center;
}

header .mgs-header-copy .title
{
    color:#fff;
    font-weight: bold;
    font-size:2.7em;
    padding-top:10px;
    text-align: center;
}
header .mgs-header-copy .text
{
    padding-top:1em;
    
}
header .mgs-header-copy .text p
{
    margin-bottom:0.8em;
    font-size:1.1em;
    
}

/*スクロールダウン全体の場所*/
header .scrolldown1
{
  position:absolute;
  left:50%;
  bottom:10px;
  height:50px;
  z-index: 10;
}

/*Scrollテキストの描写*/
header .scrolldown1 span
{
  position: absolute;
  left:-15px;
  top: -15px;
  color: #eee;
  font-size: 0.7rem;
  letter-spacing: 0.05em;
  z-index: 10;
}

/* 線の描写 */
header .scrolldown1::after
{
  content: "";
  position: absolute;
  top: 0;
  width: 1px;
  height: 30px;
  background: #eee;
  animation: pathmove 1.4s ease-in-out infinite;
  opacity:0;
  z-index: 10;
}
@keyframes pathmove{
  0%{
    height:0;
    top:0;
    opacity: 0;
  }
  30%{
    height:30px;
    opacity: 1;
  }
  100%{
    height:0;
    top:50px;
    opacity: 0;
  }
}

/* mgs-area-global */
header .mgs-area-global
{
    z-index: 10;
    width: 100%;
    top: -86px;
    left:0em;
    display: -webkit-box; display: -ms-flexbox; display: flex;
    -webkit-box-pack: justify;-ms-flex-pack: justify;justify-content: space-between;
    -webkit-box-align: center;-ms-flex-align: center;align-items: center;
}

header .mgs-area-global.fixed
{
    position: fixed;
    background:#333;
    top: 0em;
    left: 0em;
    color:#fff;
}
header .mgs-area-global.fixed+.fix-data
{
    height:86px;
} 
header .mgs-area-global.fixed .mgs_menu ul.menu_base > li > a,
header .mgs-area-global.fixed .mgs_menu ul.menu_base > li li > a
{color:#fff;}

header .mgs-area-global .mgs_logo
{
    display: -webkit-box; display: -ms-flexbox; display: flex;
    -webkit-box-align: center;-ms-flex-align: center;align-items: center;
    padding:1em 0 1em 2em;
    width: 100%;
    z-index: 100;
}
header .mgs_logo h1
{
    font-weight:bold;
    font-size:2em;
}
header .mgs_logo h1 a
{
    display:block;
    color:#333;
    background:url(./img/logo.png) no-repeat;
    background-size: contain;
    width:120px;
    height: 35px;
}
header .fixed .mgs_logo h1 a
{
    background:url(./img/logo2.png) no-repeat;
    background-size: contain;
    width:120px;
    height: 35px;
}

header .mgs_logo h1 a strong{display: none;}

header .mgs_logo .copy
{
    padding-left:1em;
    color:#333;
}

header .mgs_menu
{
    width: 100%;
    padding:0em 6em 0 0;
}

header .mgs_menu ul.menu_base
{
    width: 100%;
    display: -webkit-box; display: -ms-flexbox; display: flex;
    -webkit-box-pack: end;-ms-flex-pack: end;justify-content: flex-end;
}
header .mgs_menu ul.menu_base li{position: relative;text-align: left;}

header .mgs_menu ul.menu_base > li:not(:first-child)
{
    margin-left: 10px;
}
header .mgs_menu ul.menu_base > li > a,
header .mgs_menu ul.menu_base > li li > a
{
    color: #333;
    font-weight: bold;
    font-size:1.3em;
    white-space: nowrap;
    display: block;
    padding:2em 2em 1.5em 2em;
    text-decoration: none;
    transition: all .3s;
    border-bottom:0.5em solid rgba(0,0,0,0);
}
header .mgs_menu ul.menu_base > li li > a
{
    padding:1.5em;
}

header .mgs_menu ul.menu_base > li > a:hover
{
    border-bottom:0.5em solid #2a5caa;
}
header .mgs_menu ul.menu_base > li.menu-item-has-children::before
{
    content: '';
    position: absolute;
    left: 10px;
    top: 39px;
    width: 4px;
    height: 4px;
    border-top:2px solid #ddd;
    border-right:2px solid #ddd;
    transform:rotate(135deg);
}

/*2階層目の位置*/
header .mgs_menu ul.menu_base ul
{
    position: absolute;
    left:0;
    top: 88px;
    background: #262828;
    width:200px;
    word-break: keep-all;
    visibility: hidden;
    opacity: 0;
    transition: all .3s;
}
header .mgs_menu ul.menu_base ul li a
{
    font-size:0.9em;
    font-weight: normal;
    color: #fff;
    border-bottom:1px solid #222;
    border-top:1px solid #333;
}

/*3階層目の位置*/
header .mgs_menu ul.menu_base ul ul
{
    top:0;
    left:200px;
    background:#2a5caa;
    position: absolute;
}

header .mgs_menu ul.menu_base ul li a
{
    font-size:1.0em;
    white-space:inherit;
}

  
header .mgs_menu ul.menu_base ul li a:hover,
header .mgs_menu ul.menu_base ul li a:active
{
    background:#555;
}

header .mgs_menu ul.menu_base ul > li.menu-item-has-children::before
{
    content: '';
    position: absolute;
    left: 10px;
    top: 30px;
    width: 4px;
    height: 4px;
    border-top:2px solid #fff;
    border-right:2px solid #fff;
    transform:rotate(45deg);
}

/*hoverしたら表示*/
header .mgs_menu ul.menu_base li.menu-item-has-children:hover > ul,
header .mgs_menu ul.menu_base li.menu-item-has-children ul li:hover > ul,
header .mgs_menu ul.menu_base li.menu-item-has-children:active > ul,
header .mgs_menu ul.menu_base li.menu-item-has-children ul li:active > ul
{
  visibility: visible;
  opacity: 1;
}

header .mgs-pagetitle
{
    width:100%;
    padding: 13.8em 0;
}
header .mgs-pagetitle .pagetitle
{
    width:50%;
    margin: 0 auto;
    text-align: center;
}
header .mgs-pagetitle .pagetitle .subtitle
{
    color:#ddd;
    font-size:0.9em;
}
header .mgs-pagetitle .pagetitle h2
{
    color:#fff;
    font-size:45px;
}
header .mgs-pagetitle .pagetitle .text
{
    padding-top:1.5em;
    color:#fff;
    text-align: center;
}

.home header .mgs_menu ul.menu_base > li:nth-child(1) > a,
.page-id-447 header .mgs_menu ul.menu_base > li.page-item-447 > a,
.page-id-804 header .mgs_menu ul.menu_base > li.page-item-804 > a,
.page-id-837 header .mgs_menu ul.menu_base > li.page-item-837 > a,
.page-id-589 header .mgs_menu ul.menu_base > li.page-item-589 > a
{
    border-bottom:0.5em solid #2a5caa;
}


/* ===================================================================== */
/* ハンバーガーメニュー */
/* --------------------------------------------------------------------- */
header .openbtn1
{
  position:absolute;
    z-index: 9999;/*ボタンを最前面に*/
    top: 5px;
    right: 22px;

  cursor: pointer;
    width: 50px;
    height:50px;
    display: none;
}

header.page02 .openbtn1
{
    top: 8px;
}

/*×に変化*/  
header .openbtn1 span
{
  display: inline-block;
  transition: all .4s;
  position: absolute;
  left: 14px;
  height: 3px;
  border-radius: 2px;
  background-color: #666;
  width: 45%;
}

header .openbtn1 span:nth-of-type(1) 
{
top:15px; 
}

header .openbtn1 span:nth-of-type(2)
{
  top:23px;
}

header .openbtn1 span:nth-of-type(3)
{
  top:31px;
}

header .openbtn1.active span:nth-of-type(1)
{
    top: 18px;
    left: 18px;
    transform: translateY(6px) rotate(-45deg);
    width: 30%;
}

header .openbtn1.active span:nth-of-type(2)
{
  opacity: 0;
}

header .openbtn1.active span:nth-of-type(3)
{
    top: 30px;
    left: 18px;
    transform: translateY(-6px) rotate(45deg);
    width: 30%;
}


/* ===================================================================== */
/* ポップアップナビゲーション */
/* --------------------------------------------------------------------- */
#g-nav.panelactive ul.sub-menu
{
    display: none;
}

#g-nav
{
    position:fixed;
    z-index: -1;
    display: none;
    /*ナビの位置と形状*/
    top:0;
    width:100%;
    height: 100vh;/*ナビの高さ*/
    background:rgba(51, 51, 51, 0.95);
    /*動き*/
    transition: all 0.3s;
}

/*アクティブクラスがついたら透過なしにして最前面へ*/
  #g-nav.panelactive
  {
      display: block;
      z-index:999;
  }

/*ナビゲーションの縦スクロール*/
  #g-nav.panelactive #g-nav-list
  {
      /*ナビの数が増えた場合縦スクロール*/
      display: flex;
      -webkit-box-pack: center;-ms-flex-pack: center;justify-content: center;
      -webkit-box-align: center;-ms-flex-align: center;align-items: center;
      position: fixed;
      z-index: 999; 
      width: 100%;
      height: 100vh;/*表示する高さ*/
      overflow: auto;
      -webkit-overflow-scrolling: touch;
  }

/*ナビゲーション*/
  #g-nav ul.menu_base
  {
      display: none;
      /*ナビゲーション天地中央揃え*/
      z-index: 999;
      border-top: 1px solid #eee;
  }

  #g-nav.panelactive ul 
  {
      display: block;
  }
  #g-nav.panelactive ul a
  {
    text-align: left;
    color: #fff;
    display: block;
    padding: 15px 60px 15px 15px;
    border-left: 1px solid #eee;
    border-right: 1px solid #eee;
    border-bottom: 1px solid #eee;
}

/*リストのレイアウト設定*/

  #g-nav li
  {
    list-style: none;
    text-align: center; 
  }

  #g-nav li a
  {
    color: #fff;
    text-decoration: none;
    padding:10px;
    display: block;
    text-transform: uppercase;
    letter-spacing: 0.1em;
  }

  .g-nav .menu_base > .menu-item-has-children{position: relative;}
  .g-nav .menu_base > .menu-item-has-children::after
  {
      cursor: pointer;
      position: absolute;
      font-size: 13px;
      top: -0px;
      right: 0px;
      content: '\f107';
      font-family: "Font Awesome 5 Free";
      font-weight: 900;
      color: #fff;
      border-left: 1px solid #fff;
      padding: 15px;
  }
  .g-nav .menu_base > .menu-item-has-children.close::after
  {
    content: '\f106';
  }
  
  .g-nav .menu_base > .menu-item-has-children > ul > li
  {
      background:#ddd;
      color:#333;
  }
  #g-nav.panelactive .menu_base > .menu-item-has-children > ul > li > a{color:#333;}
  #g-nav.panelactive .menu_base > .menu-item-has-children > ul > li.menu-item-has-children > ul > li{background:#ccc;}
  #g-nav.panelactive .menu_base > .menu-item-has-children > ul > li.menu-item-has-children > ul > li > a{color:#333;}
