@charset "UTF-8";
/*  common
================================================ */
/*  02_base
================================================ */
html { overflow: auto; }

body { min-width: 320px; font-family: "Noto Sans JP", "ヒラギノ角ゴ ProN W3", Meiryo, sans-serif; color: #333; font-size: 1.3rem; line-height: 1.75; letter-spacing: .14em; overflow: hidden; -webkit-text-size-adjust: 100%; }

@media all and (min-width: 600px) { body { min-width: 1130px; font-size: 1.5rem; } }

body.sg { height: auto; }

a { color: inherit; text-decoration: underline; }

@media all and (min-width: 600px) { a:hover { text-decoration: none; } }

.alpha { display: block; text-decoration: none; }

@media all and (min-width: 600px) { .alpha { -webkit-transition: all 0.3s ease; transition: all 0.3s ease; }
  .alpha:hover { opacity: .7; } }

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

em, strong, span { font-weight: inherit; }

/* pc <--> sp
-------------------------------------- */
#mediaQuery { display: none; font-family: 'sp'; }

@media all and (min-width: 600px) { #mediaQuery { font-family: 'pc'; } }

@media all and (max-width: 599px) { .viewPc { display: none !important; } }

@media all and (min-width: 600px) { .viewSp { display: none !important; } }

/* clearfix
-------------------------------------- */
.cf:after { content: ''; display: block; clear: both; }

/* layout
-------------------------------------- */
#wrapper { position: relative; }

/* font
------------------------------------- */
.fontCaveat { font-family: 'Caveat', cursive; }

.fontSerif { font-family: "Noto Serif JP", "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif; }

/* #breadcrumb
================================================ */
#breadcrumb .list { padding: 8px 10px 25px; }

#breadcrumb .list .item { display: inline-block; }

#breadcrumb .list .item + .item { padding-left: 5px; }

#breadcrumb .list .item + .item:before { content: ">"; margin-right: 4px; }

/* #gFooter
================================================ */
#gFooter { padding: 8px 0 15px; background: #648fc8; text-align: center; }

#gFooter .cr small { font-size: 1.1rem; color: #fff; }

@media all and (min-width: 600px) { #gFooter { padding: 17px 0 27px; }
  #gFooter .cr small { font-size: 1.3rem; } }

/* #pagetop
================================================ */
#pagetop a { display: block; height: 45px; background: #f7f7f7 url(../img/common/bg_pagetop01.png) no-repeat center; background-size: 30px auto; color: #fff; text-align: center; text-decoration: none; }

@media all and (min-width: 600px) { #pagetop { position: absolute; right: 30px; bottom: 45px; -webkit-transition: opacity 0.3s ease; transition: opacity 0.3s ease; }
  #pagetop a { display: block; width: 50px; height: 50px; padding: 12px 0 0; background-color: #fff; background-size: 18px auto; border-radius: 25px; box-sizing: border-box; box-shadow: 0px 0px 30px 0px rgba(15, 28, 44, 0.1); } }

/* #gHeader
================================================ */
#gHeader { position: fixed; top: 0; left: 0; width: 100%; min-width: 320px; z-index: 2000; background: transparent; -webkit-transition: all 0.3s ease; transition: all 0.3s ease; }

#gHeader.sticky { background: #fff; box-shadow: 0px 3px 10px 0px rgba(0, 0, 0, 0.1); }

@media all and (max-width: 599px) { #gHeader.is_open { background: #fff; box-shadow: 0px 3px 10px 0px rgba(0, 0, 0, 0.1); } }

@media all and (min-width: 600px) { #gHeader { position: absolute; width: 100%; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-align: center; -ms-flex-align: center; align-items: center; -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; min-width: 1130px; -webkit-transform: translateY(0); -ms-transform: translateY(0); transform: translateY(0); }
  #gHeader.outView { -webkit-transform: translateY(-100%); -ms-transform: translateY(-100%); transform: translateY(-100%); }
  #gHeader.inView { position: fixed; -webkit-transform: translateY(0); -ms-transform: translateY(0); transform: translateY(0); }
  #gHeader.sticky { box-shadow: 0px 6px 20px 0px rgba(0, 0, 0, 0.1); }
  #gHeader.sticky #gNav .list .item a { color: #555; } }

/* #hdInfo
-------------------------------------- */
#hdInfo { position: relative; z-index: 3; height: 50px; }

#hdInfo .logo { float: left; width: 204px; padding: 14px 0 0 10px; }

#hdInfo .btnRecruit { position: absolute; top: 0; right: 50px; }

#hdInfo .btnRecruit a { position: relative; display: block; width: 55px; height: 50px; background: linear-gradient(135deg, #2a5fa4, #1385b4); padding-top: 30px; text-align: center; color: #fff; text-decoration: none; font-size: 1rem; font-weight: bold; line-height: 1.2; letter-spacing: .06em; box-sizing: border-box; }

#hdInfo .btnRecruit a:before { content: ""; position: absolute; top: 9px; left: 50%; width: 23px; height: 17px; background: url(../img/common/ico_mail01.png) no-repeat center/contain; -webkit-transform: translate(-50%, 0); -ms-transform: translate(-50%, 0); transform: translate(-50%, 0); }

#hdInfo .btnGnav { position: absolute; top: 0; right: 0; width: 50px; height: 50px; background: #648fc8; cursor: pointer; }

#hdInfo .btnGnav .line { position: absolute; left: 12px; width: 26px; height: 2px; content: ''; background: #fff; -webkit-transition: all 0.3s ease; transition: all 0.3s ease; }

#hdInfo .btnGnav .line:nth-child(1) { top: 11px; }

#hdInfo .btnGnav .line:nth-child(2) { top: 17px; }

#hdInfo .btnGnav .line:nth-child(3) { top: 23px; }

#hdInfo .btnGnav.is_open .line { top: 24px; left: 17px; width: 15px; }

#hdInfo .btnGnav.is_open .line:nth-child(1) { -webkit-transform: rotate(-45deg); -ms-transform: rotate(-45deg); transform: rotate(-45deg); }

#hdInfo .btnGnav.is_open .line:nth-child(2) { opacity: 0; }

#hdInfo .btnGnav.is_open .line:nth-child(3) { -webkit-transform: rotate(45deg); -ms-transform: rotate(45deg); transform: rotate(45deg); }

#hdInfo .btnGnav.is_open .chara { visibility: hidden; opacity: 0; }

#hdInfo .btnGnav .chara { position: absolute; left: 0; bottom: 10px; width: 100%; color: #fff; font-size: 1rem; font-weight: bold; line-height: 1.2; letter-spacing: 0; text-align: center; -webkit-transition: all 0.3s ease; transition: all 0.3s ease; }

@media all and (min-width: 600px) { #hdInfo { position: static; height: 90px; }
  #hdInfo .logo { width: 290px; padding: 25px 0 0 20px; }
  #hdInfo .logo a { -webkit-transition: all 0.3s ease; transition: all 0.3s ease; }
  #hdInfo .logo a:hover { opacity: .7; }
  #hdInfo .btnRecruit { position: absolute; top: 0; right: 0; }
  #hdInfo .btnRecruit a { width: 124px; height: 90px; padding-top: 53px; font-size: 1.4rem; -webkit-transition: all 0.3s ease; transition: all 0.3s ease; }
  #hdInfo .btnRecruit a:before { top: 22px; width: 30px; height: 22px; }
  #hdInfo .btnRecruit a:hover { opacity: .7; } }

/* #gNav
================================================ */
#gNav { position: fixed; top: 50px; right: 0; z-index: 2; width: 230px; height: 100%; padding: 40px 20px; background: #fff; box-sizing: border-box; -webkit-overflow-scrolling: touch; -webkit-transform: translateX(100%); -ms-transform: translateX(100%); transform: translateX(100%); -webkit-transition: all 0.3s ease; transition: all 0.3s ease; }

@media all and (max-width: 599px) { #gNav { overflow-y: scroll; }
  #gNav.is_open { -webkit-transform: translateX(0); -ms-transform: translateX(0); transform: translateX(0); }
  #gNav .list .item { padding-bottom: 26px; }
  #gNav .list .item a { position: relative; display: block; padding-left: 25px; letter-spacing: .06em; text-decoration: none; line-height: 1; }
  #gNav .list .item a:before { content: ""; position: absolute; top: 50%; left: 0; width: 15px; height: 1px; background: #648fc8; -webkit-transform: translate(0, -50%); -ms-transform: translate(0, -50%); transform: translate(0, -50%); } }

@media all and (min-width: 600px) { #gNav { position: static; display: block; width: 625px; min-width: auto; padding: 0 130px 0 0; -webkit-transform: translateX(0); -ms-transform: translateX(0); transform: translateX(0); background: transparent; box-sizing: content-box; white-space: nowrap; }
  #gNav .list { letter-spacing: -.5em; }
  #gNav .list .item { display: inline-block; letter-spacing: 0; padding-right: 25px; }
  #gNav .list .item a { position: relative; padding-bottom: 5px; display: inline-block; color: #fff; text-decoration: none; }
  #gNav .list .item a:before { content: ""; position: absolute; left: 0; bottom: 0; width: 100%; height: 2px; background: #fff; -webkit-transition: all 0.3s ease; transition: all 0.3s ease; -webkit-transform: scaleX(0); -ms-transform: scaleX(0); transform: scaleX(0); }
  #gNav .list .item a:hover:before { -webkit-transform: scaleX(1); -ms-transform: scaleX(1); transform: scaleX(1); } }

/* #overlay
================================================ */
#overlay { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.25); z-index: 1000; }

@media all and (min-width: 600px) { #overlay { display: none !important; } }

/* #mainVisual HOME
================================================ */
#mainVisual { position: relative; width: 100%; height: 100vh; }

#mainVisual .mvImg { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }

#mainVisual .mvImg .item img { width: auto; height: 100vh; }

#mainVisual .inner { position: relative; padding: 60% 0 0 0; }

#mainVisual .inner .txt01 { width: 235px; margin: 20px auto 0; }

#mainVisual .inner .txt02 { width: 238px; margin: 0 auto; }

#mainVisual .inner .txt03 { color: #fff; text-align: center; line-height: 2; font-weight: 500; margin: 0 auto 15px; }

#mainVisual .inner .txt03 .underline { position: relative; display: inline-block; border-bottom: 1px solid #fff; font-size: 1.3rem; }

#mainVisual .scroll { position: absolute; bottom: 0; left: 50%; z-index: 1; -webkit-transform: translateX(-50%); -ms-transform: translateX(-50%); transform: translateX(-50%); text-align: center; font-size: 1rem; line-height: 1; }

#mainVisual .scroll a { display: block; padding-bottom: 45px; text-decoration: none; color: #fff; }

#mainVisual .scroll a:before { position: absolute; left: 50%; bottom: 0; content: ""; display: block; width: 1px; height: 35px; background: rgba(255, 255, 255, 0.5); }

#mainVisual .scroll a:after { position: absolute; bottom: 25px; left: 50%; content: ""; display: block; width: 1px; height: 10px; background: #fff; }

@media all and (min-width: 600px) { #mainVisual { 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; min-height: 680px; }
  #mainVisual .mvImg { min-height: 680px; }
  #mainVisual .mvImg .slick-list, #mainVisual .mvImg .slick-track { height: 100%; }
  #mainVisual .mvImg .item img { width: 100%; height: 100%; object-fit: cover; object-position: center; font-family: 'object-fit: cover;'; }
  #mainVisual .inner { padding: 0; }
  #mainVisual .inner .txt01 { min-width: 256px; width: 13.5vw; margin-bottom: 20px; }
  #mainVisual .inner .txt01 .txtWrap { width: 256px; }
  #mainVisual .inner .txt02 { max-width: 725px; min-width: 580px; width: 41vw; margin-bottom: 30px; }
  #mainVisual .inner .txt02 .txtWrap { max-width: 786px; min-width: 580px; width: 41vw; }
  #mainVisual .inner .txt03 { max-width: 750px; margin-bottom: 30px; }
  #mainVisual .inner .txt03 .underline { font-size: 1.56vw; font-style: italic; } }

@media all and (-ms-high-contrast: none) { #mainVisual .mvImg .item img { width: inherit; height: 100%; }
  #mainVisual .inner { margin: 0; } }

/* #sidebar
================================================ */
/* .secSidebar
-------------------------------------- */
.secSidebar { margin-bottom: 20px; padding: 0 15px; }

@media all and (min-width: 600px) { .secSidebar { margin-bottom: 25px; padding: 0; } }

/*  js
================================================ */
.js-loding { display: none; }

@media all and (min-width: 600px) { .js-loding { position: fixed; top: 0; bottom: 0; right: 0; left: 0; display: block; width: 100%; height: 100%; z-index: 3000; }
  .js-loding-bg { position: absolute; top: 0; bottom: 0; left: 0; width: 100%; height: 100%; background: url("../img/common/bg_pattern02.png") repeat center/10px; }
  .js-loding-text { position: absolute; top: 50%; left: 50%; -webkit-transform: translate(-50%, -50%); -ms-transform: translate(-50%, -50%); transform: translate(-50%, -50%); display: block; width: 0; overflow: hidden; z-index: 3001; width: 572px; }
  .js-loding-text-layer { display: block; width: 0; overflow: hidden; }
  .js-loding-text-layer-in { display: block; max-width: 572px; width: 572px; } }

@media all and (min-width: 600px) { .js-paper-effect { position: relative; }
  .js-paper-effect .js-paper-effect-bg { position: absolute; z-index: 1; top: 0; bottom: 0; left: 0; width: 0; background: #2A5FA4; }
  .js-paper-effect .js-paper-effect-img { -webkit-transition: all 0.3s ease; transition: all 0.3s ease; opacity: 0; } }

@media all and (min-width: 600px) { .js-anime-elem[data-anime="fadein"] { opacity: 0; -webkit-transform: translateY(30px); -ms-transform: translateY(30px); transform: translateY(30px); -webkit-transition: all 1s ease; transition: all 1s ease; }
  .js-anime-elem[data-anime="fadein"].is_animated { opacity: 1; -webkit-transform: translateY(0); -ms-transform: translateY(0); transform: translateY(0); } }

@media all and (min-width: 600px) { .js-text-effect-layer { display: block; width: 0; overflow: hidden; }
  .js-text-effect-layer-in { display: block; } }
