@charset "UTF-8";
/*============================================================= 02_base =============================================================*/
/*!  02_base
================================================ */
html { overflow: auto; }

body { color: #333; min-width: 320px; font-family: 'Noto Sans JP', "メイリオ", "Meiryo", "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro","ＭＳ Ｐゴシック", "MS PGothic", sans-serif; font-weight: 500; font-size: 1.4rem; line-height: 1.85; position: relative; }

@media screen and (min-width: 600px) { body { font-size: 1.6rem; min-width: 1170px; } }

* { box-sizing: border-box; }

.cf:after { content: ''; display: block; clear: both; }

.oswald { font-family: 'Oswald', sans-serif; }

@media screen and (min-width: 600px) { .alpha { -webkit-transition: all .2s linear; transition: all .2s linear; }
  .alpha:hover { opacity: .7; } }

a { color: inherit; text-decoration: none; }

span { font-weight: inherit; }

img { width: auto; max-width: 100%; height: auto; line-height: 1; vertical-align: bottom; }

.imgFitBox { overflow: hidden; }

.imgFitBox img { width: 100%; height: 100%; object-fit: cover; font-family: 'object-fit: cover; object-position: center;'; }

.imgFitBox.contain { /* fit = contain */ }

.imgFitBox.contain img { object-fit: contain; font-family: 'object-fit: contain; object-position: center;'; }

/* Switch
=========================================== */
.viewPc { display: none !important; }

@media screen and (min-width: 600px) { .viewPc { display: block !important; }
  .viewSp { display: none !important; } }

/* layout
-------------------------------------------------*/
@media screen and (min-width: 600px) { #wrapper { min-width: 1170px; margin: 0 auto; } }

.wrapperInner { padding-left: 15px; padding-right: 15px; margin: 0 auto; }

@media screen and (min-width: 600px) { .wrapperInner { max-width: 1170px; padding-left: 0; padding-right: 0; } }

@-webkit-keyframes fadeIn { from { opacity: 0; }
  to { opacity: 1; } }

@keyframes fadeIn { from { opacity: 0; }
  to { opacity: 1; } }

.fadeIn.is_show { -webkit-animation-name: fadeIn; animation-name: fadeIn; }

@-webkit-keyframes fadeInUp { from { opacity: 0;
    -webkit-transform: translate3d(0, 100%, 0);
            transform: translate3d(0, 100%, 0); }
  to { opacity: 1;
    -webkit-transform: none;
            transform: none; } }

@keyframes fadeInUp { from { opacity: 0;
    -webkit-transform: translate3d(0, 100%, 0);
            transform: translate3d(0, 100%, 0); }
  to { opacity: 1;
    -webkit-transform: none;
    transform: none; } }

.fadeInUp.is_show { -webkit-animation-name: fadeInUp; animation-name: fadeInUp; }

.js-anim-elm.is_hide { opacity: 0; }

/*============================================================= 03_layout =============================================================*/
/*!  #gHeader
================================================ */
/* load初期値 */
#gHeader { opacity: 0; }

#gHeader .hdInfo .pageTit, #gHeader .hdInfo .txt01, #gHeader .hdInfo .date, #gHeader .hdInfo .txt04 { opacity: 0; bottom: -100px; position: relative; }

#gHeader { background: url(../img/bg_header.png) no-repeat center; background-size: cover; width: 100%; height: 100vh; min-height: 470px; position: relative; }

#gHeader .hdInfo { color: #fff; display: table; position: absolute; top: 0; bottom: 0; left: 0; right: 0; margin: auto; padding: 0 25px; width: 100%; text-align: center; }

#gHeader .hdInfo .pageTit { width: 100%; margin: 130px auto 160px; }

#gHeader .hdInfo .txt01 { font-size: 1.3rem; line-height: 1.3; letter-spacing: 2px; margin-bottom: 12px; }

#gHeader .hdInfo .date { position: absolute; top: 56%; left: 0; width: 151px; height: 213px; }

#gHeader .hdInfo .txt04 { margin-top: 50px; font-size: 1.2rem; line-height: 2; color: #333; }

#gHeader .accessBtn { position: absolute; top: 0; right: 0; }

#gHeader .accessBtn .btn { display: block; font-size: 1.3rem; letter-spacing: 3px; padding: 11px 0; max-width: 160px; background: url(../img/bg_red.png); text-align: center; }

#gHeader .accessBtn a { color: #fff; }

#gHeader .side-menu01 { position: fixed; top: 10px; right: 0; z-index: 10; }

#gHeader .side-menu01 li a { color: #fff; padding: 10px 16px; background: url(../img/bg_darkgreen.png); border: 2px solid #4b882c; }

#gHeader .scrollbar { position: absolute; width: 1px; height: 35px; background: #fff; left: 0; right: 0; bottom: -17px; margin: auto; -webkit-animation: move01 2s infinite; animation: move01 2s infinite; z-index: 100; }

@-webkit-keyframes move01 { 0% { bottom: 0;
    opacity: 0; }
  30% { opacity: 1; }
  70% { bottom: -20px; }
  100% { opacity: 0; } }

@keyframes move01 { 0% { bottom: 0;
    opacity: 0; }
  30% { opacity: 1; }
  70% { bottom: -20px; }
  100% { opacity: 0; } }

@media screen and (min-width: 600px) { #gHeader { min-height: 830px; 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; }
  #gHeader .hdInfo { padding: 0; position: static; }
  #gHeader .hdInfo .pageTit { width: auto; margin: 0 auto auto; }
  #gHeader .hdInfo .txt01 { font-size: 2.7rem; margin-bottom: 37px; }
  #gHeader .hdInfo .date { position: absolute; bottom: 50px; left: 15%; width: 504px; height: 286px; }
  #gHeader .hdInfo .txt04 { font-size: 1.8rem; line-height: 2.2; }
  #gHeader .side-menu { position: fixed; bottom: 160px; right: 0; z-index: 10; }
  #gHeader .side-menu li a { color: #fff; height: 180px; background: url(../img/bg_darkgreen.png); border: 1px solid #4b882c; letter-spacing: 2px; text-align: center; font-size: 1.5rem; padding: 10px 16px; -webkit-writing-mode: vertical-rl; -ms-writing-mode: tb-rl; -ms-writing-mode: vertical-rl; -webkit-transition: all 0.2s linear; transition: all 0.2s linear; }
  #gHeader .side-menu li a.active, #gHeader .side-menu li a:hover { letter-spacing: 5px; }
  #gHeader .scrollbar { height: 70px; }
  @-webkit-keyframes move01 { 0% { bottom: 0;
      opacity: 0; }
    30% { opacity: 1; }
    70% { bottom: -60px; }
    100% { opacity: 0; } }
  @keyframes move01 { 0% { bottom: 0;
      opacity: 0; }
    30% { opacity: 1; }
    70% { bottom: -60px; }
    100% { opacity: 0; } } }

@media screen and (min-width: 600px) and (max-width: 1500px) { #gHeader .hdInfo .pageTit { width: 500px; }
  #gHeader .hdInfo .date { left: 5%; width: 450px; }
  #gHeader .hdInfo .date .txt02 { line-height: 1.5; } }

/*!  #gFooter
================================================ */
#gFooter { background: url(../img/bg_gray01.png); }

#gFooter .pagetop { width: 100%; text-align: center; border-top: 4px solid #000; z-index: 9999; }

@media screen and (max-width: 599px) { #gFooter .pagetop { position: static !important; } }

#gFooter .pagetop a { display: block; padding: 7px 0 18px; background: #f0f0f1; }

#gFooter .pagetop a img { width: 27px; }

#gFooter .footerLogo { width: 217px; margin: 30px auto; }

#gFooter .addressWrap { margin-bottom: 10px; }

#gFooter .address { padding: 16px 0; margin: 0 40px; text-align: center; }

#gFooter .address + .address { border-top: 1px solid #dcdddd; }

#gFooter .address .name { font-weight: bold; margin-bottom: 3px; }

#gFooter .address .txt { font-size: 1.5rem; }

#gFooter .address .tel, #gFooter .address .fax { font-size: 1.5rem; }

#gFooter .address .tel { margin: 10px auto; border: 1px solid #000; }

#gFooter .address .tel a { padding: 12px 0; display: block; }

#gFooter .copyright { text-align: center; color: #808080; font-size: 1.2rem; padding: 20px 0; background: url(../img/bg_black02.png); }

@media screen and (min-width: 600px) { #gFooter { padding-top: 65px; }
  #gFooter .pagetop { position: fixed; right: 30px; bottom: 70px; width: auto; border: none; }
  #gFooter .pagetop a { padding: 0; background: none; }
  #gFooter .pagetop a img { width: 53px; }
  #gFooter .footerLogo { width: 327px; margin: 0 auto 65px; }
  #gFooter .addressWrap { display: table; margin: 0 auto 70px; }
  #gFooter .address { margin: 0; padding: 0 35px 0 0; display: table; text-align: left; float: left; }
  #gFooter .address + .address { padding-left: 35px; border-top: none; border-left: 1px solid #dcdcdd; }
  #gFooter .address .name { margin-bottom: 0; }
  #gFooter .address .txt { font-size: 1.7rem; }
  #gFooter .address .tel, #gFooter .address .fax { display: inline-block; }
  #gFooter .address .tel { margin: 0 10px 0 0; border: none; }
  #gFooter .address .tel a { padding: 0; pointer-events: none; }
  #gFooter .copyright { padding: 28px 0; font-size: 1.6rem; } }
