@charset "UTF-8";
@-ms-viewport {
  width: device-width; }

/*--------------------------------------------------------------------------
CSS　LOUIS GARNEAU　2025 / テンプレート～(style.css)ver.1_base 2023.8.30
--------------------------------------------------------------------------*/
/*■■■■■■ 基本設定 ■■■■■■■*/
/*■■■■■■ loading ■■■■■■■*/
#loading {
  width: 100vw;
  height: 100vh;
  -webkit-transition: all 1s;
  -o-transition: all 1s;
  transition: all 1s;
  background-color: #fff;
  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;
  position: fixed;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-flow: column;
  flex-flow: column;
  top: 0;
  left: 0;
  z-index: 9999; }
  #loading img {
    margin: auto; }

.loaded {
  opacity: 0;
  visibility: hidden; }

.loading-box {
  margin: auto;
  width: 200px;
  text-align: center; }

.flashing {
  font-size: 1.5rem;
  color: #565656; }

.animation-box {
  width: 400px;
  height: 4px;
  background: #df320d;
  -webkit-animation-name: loadbar-animation;
  animation-name: loadbar-animation;
  -webkit-animation-duration: 1.5s;
  animation-duration: 1.5s;
  -webkit-animation-iteration-count: infinite;
  animation-iteration-count: infinite; }

@-webkit-keyframes loadbar-animation {
  from {
    width: 0; }
  to {
    width: 200px; } }

@keyframes loadbar-animation {
  from {
    width: 0; }
  to {
    width: 200px; } }

/*■■■■■■ fadein ■■■■■■■*/
.fade-in {
  opacity: 0;
  -webkit-transition-duration: 1000ms;
  -o-transition-duration: 1000ms;
  transition-duration: 1000ms; }

.fade-in-up {
  -webkit-transform: translate(0, 60px);
  -ms-transform: translate(0, 60px);
  transform: translate(0, 60px); }

.fade-in-down {
  -webkit-transform: translate(0, -60px);
  -ms-transform: translate(0, -60px);
  transform: translate(0, -60px); }

.fade-in-left {
  -webkit-transform: translate(-60px, 0);
  -ms-transform: translate(-60px, 0);
  transform: translate(-60px, 0); }

.fade-in-right {
  -webkit-transform: translate(60px, 0);
  -ms-transform: translate(60px, 0);
  transform: translate(60px, 0); }

.scroll-in {
  opacity: 1;
  -webkit-transform: translate(0, 0);
  -ms-transform: translate(0, 0);
  transform: translate(0, 0); }

/*■■■■■■ 主要タグ設定 ■■■■■■■*/
a:link {
  color: #003e80;
  -webkit-transition: 0.2s;
  -o-transition: 0.2s;
  transition: 0.2s; }

a:visited {
  color: #1d51d7;
  -webkit-transition: 0.2s;
  -o-transition: 0.2s;
  transition: 0.2s; }

a:hover, a:active {
  color: #df320d;
  -webkit-transition: 0.2s;
  -o-transition: 0.2s;
  transition: 0.2s; }

/*■■■■■■ 汎用設定 ■■■■■■■*/
.bg-main {
  background-color: #d1d8e5; }

.bg-sub {
  background-color: #df320d; }

/*■■■■■■ HEADER ■■■■■■■*/
header {
  margin: 0;
  padding: 24px 0;
  background: rgba(250, 250, 250, 0.8);
  border-bottom: 1px solid #707070;
  position: absolute;
  width: 100%;
  z-index: 1000; }

.header-logo-box {
  padding: 0 10px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  /*上下のセンター*/
  -webkit-box-pack: start;
  -ms-flex-pack: start;
  justify-content: start;
  /*左右のセンター*/ }
  .header-logo-box img {
    width: 290px; }

/*■■■■■■ メインナビゲーション ■■■■■■■*/
.menu-logo-box {
  margin: 31px 0;
  padding: 0 80px 0 20px;
  display: block;
  wodth: 100%;
  height: 30px; }

.nav_list {
  margin: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  /*上下のセンター*/
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  /**/ }
  .nav_list li {
    margin: 0 16px 10px;
    padding: 0 16px;
    width: 100%;
    position: relative; }
    .nav_list li a {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      padding: 8px 20px 10px;
      border-radius: 1px;
      font-size: 1.8rem;
      font-weight: 600;
      border: 1px solid #BBB; }
      .nav_list li a small {
        padding-left: 10px;
        border-left: 1px solid #707070;
        position: absolute;
        top: 16px;
        left: 135px;
        font-size: 1.0rem;
        font-weight: 500; }
    .nav_list li a:link, .nav_list li a:visited {
      background-color: #EFEFEF;
      color: #222; }
    .nav_list li a:hover, .nav_list li a:active {
      background-color: #CDCDCD;
      color: #222; }
  .nav_list li:after {
    content: "";
    display: block;
    position: absolute;
    width: 0;
    height: 0;
    right: 20px;
    top: 16px;
    border-style: solid;
    border-width: 6px 10px;
    border-color: transparent transparent transparent #df320d;
    z-index: 5; }

/*メインメニュー　バナー*/
.menu-bn-block {
  margin: 0 16px 10px;
  background-color: #333; }
  .menu-bn-block img {
    border: 1px solid #707070; }
  .menu-bn-block img:hover {
    opacity: 0.8;
    -webkit-transition: all .3s ease-out;
    -moz-transition: all .3s ease-out;
    -ms-transition: all .3s ease-out;
    -o-transition: all .3s ease-out;
    transition: all .3s ease-out; }

/*メインメニュー　SNS アイコン*/
.menu-sns-block {
  margin-top: 10px;
  margin-bottom: 10px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center; }
  .menu-sns-block .ico-box {
    margin: 0 4px;
    background-color: #262626;
    width: 42px;
    height: 42px;
    border-radius: 23px;
    line-height: 0;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    position: relative; }
  .menu-sns-block .ico-box:link,
  .menu-sns-block .ico-box:visited {
    background-color: #262626; }
  .menu-sns-block .ico-box:hover,
  .menu-sns-block .ico-box:active {
    background-color: #003e80; }
  .menu-sns-block .ico-insta:before {
    margin: auto;
    content: "";
    display: block;
    width: 24px;
    height: 24px;
    background: url("../images/common/logo-instagram.svg") center center no-repeat;
    background-size: cover; }
  .menu-sns-block .ico-fb:before {
    margin: auto;
    content: "";
    display: block;
    width: 24px;
    height: 24px;
    background: url("../images/common/logo-facebook.svg") center center no-repeat;
    background-size: cover; }

/*ハンバーガーメニュー*/
.nav {
  position: fixed;
  right: -320px;
  /* 下から出てくる */
  top: 0;
  width: 300px;
  /* スマホに収まるサイズ */
  height: 100vh;
  padding-top: 0;
  background-color: #fff;
  -webkit-transition: all .3s;
  -o-transition: all .3s;
  transition: all .3s;
  z-index: 200;
  overflow-y: auto;
  /* メニューが多くなったらスクロールできるように */
  background: -webkit-gradient(linear, left bottom, left top, from(#efefef), to(white));
  background: -webkit-linear-gradient(bottom, #efefef, white);
  background: -o-linear-gradient(bottom, #efefef, white);
  background: linear-gradient(0deg, #efefef, white); }

.hamburger {
  padding: 0;
  margin: 0;
  position: fixed;
  right: 20px;
  top: 16px;
  width: 50px;
  /* クリックしやすい幅 */
  height: 50px;
  /* クリックしやすい高さ */
  border-radius: 5px;
  cursor: pointer;
  z-index: 300;
  background: rgba(0, 0, 0, 0.7);
  border: 0;
  font-size: 0.9rem;
  text-align: center; }

.nav_list {
  margin: 0;
  padding: 0;
  list-style: none; }

.nav_item {
  text-align: center;
  padding: 0 14px; }

.nav_item a {
  display: block;
  padding: 8px 0;
  border-bottom: 1px solid #eee;
  text-decoration: none;
  color: #333; }

.nav_item a:hover {
  background-color: #eee; }

.hamburger_border {
  position: absolute;
  left: 7px;
  width: 36px;
  height: 3px;
  border-radius: 1.5px;
  background-color: #FFF;
  -webkit-transition: all .3s;
  -o-transition: all .3s;
  transition: all .3s; }

.hamburger_border_top {
  top: 14px; }

.hamburger_border_center {
  top: 24px; }

.hamburger_border_bottom {
  top: 34px; }

.black_bg {
  position: fixed;
  left: 0;
  top: 0;
  width: 100vw;
  height: 100vh;
  z-index: 100;
  background-color: #333;
  opacity: 0;
  visibility: hidden;
  -webkit-transition: all .3s;
  -o-transition: all .3s;
  transition: all .3s;
  cursor: pointer; }

/* 表示された時用のCSS */
.nav-open .nav {
  right: 0; }

.nav-open .black_bg {
  opacity: .8;
  visibility: visible; }

.nav-open .hamburger_border_top {
  -webkit-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg);
  top: 24px; }

.nav-open .hamburger_border_center {
  width: 0;
  left: 50%; }

.nav-open .hamburger_border_bottom {
  -webkit-transform: rotate(-45deg);
  -ms-transform: rotate(-45deg);
  transform: rotate(-45deg);
  top: 24px; }

/*■■■■■■ FOOTER ■■■■■■■*/
footer {
  line-height: 0;
  font-size: 0;
  /*COPYRIGHT*/ }
  footer .foot-menu-block {
    margin: 30px 0 0;
    padding: 20px 0;
    display: block;
    width: 100%;
    text-align: center;
    border-style: solid;
    border-color: #070707;
    border-width: 1px 0 1px 0; }
    footer .foot-menu-block .footer-menu {
      margin: 0 auto;
      padding: 0;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-align: center;
      -ms-flex-align: center;
      align-items: center;
      -webkit-box-pack: center;
      -ms-flex-pack: center;
      justify-content: center;
      /*SNS アイコン*/
      /*ユーザー登録ボタン*/ }
      footer .foot-menu-block .footer-menu li {
        padding: 0 10px;
        display: inline; }
        footer .foot-menu-block .footer-menu li .footer-logo-box img {
          width: 180px; }
        footer .foot-menu-block .footer-menu li .part-line {
          display: block;
          width: 1px;
          height: 32px;
          border-left: 1px solid #707070; }
      footer .foot-menu-block .footer-menu .foot-sns-block {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
        -ms-flex-align: center;
        align-items: center;
        -webkit-box-pack: center;
        -ms-flex-pack: center;
        justify-content: center; }
        footer .foot-menu-block .footer-menu .foot-sns-block .ico-box {
          margin: 0 4px;
          background-color: #262626;
          width: 42px;
          height: 42px;
          border-radius: 23px;
          line-height: 0;
          display: -webkit-box;
          display: -ms-flexbox;
          display: flex;
          position: relative; }
        footer .foot-menu-block .footer-menu .foot-sns-block .ico-box:link,
        footer .foot-menu-block .footer-menu .foot-sns-block .ico-box:visited {
          background-color: #262626; }
        footer .foot-menu-block .footer-menu .foot-sns-block .ico-box:hover,
        footer .foot-menu-block .footer-menu .foot-sns-block .ico-box:active {
          background-color: #003e80; }
        footer .foot-menu-block .footer-menu .foot-sns-block .ico-insta:before {
          margin: auto;
          content: "";
          display: block;
          width: 24px;
          height: 24px;
          background: url("../images/common/logo-instagram.svg") center center no-repeat;
          background-size: cover; }
        footer .foot-menu-block .footer-menu .foot-sns-block .ico-fb:before {
          margin: auto;
          content: "";
          display: block;
          width: 24px;
          height: 24px;
          background: url("../images/common/logo-facebook.svg") center center no-repeat;
          background-size: cover; }
      footer .foot-menu-block .footer-menu .btn-user {
        margin: 0 auto;
        padding: 10px 20px;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        height: 36px;
        border: 1px solid #262626;
        border-radius: 18px;
        -webkit-box-align: center;
        -ms-flex-align: center;
        align-items: center;
        -webkit-box-pack: center;
        -ms-flex-pack: center;
        justify-content: center;
        font-size: 1.4rem; }
      footer .foot-menu-block .footer-menu .btn-user:link,
      footer .foot-menu-block .footer-menu .btn-user:visited {
        background-color: #FFF;
        color: #262626; }
      footer .foot-menu-block .footer-menu .btn-user:hover,
      footer .foot-menu-block .footer-menu .btn-user:active {
        background-color: #003e80;
        color: #FFFFFF; }
  footer .copyright-box {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    height: 60px;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: start;
    -ms-flex-pack: start;
    justify-content: flex-start;
    font-size: 1.2rem; }
  footer .company-box {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    height: 60px;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: end;
    -ms-flex-pack: end;
    justify-content: flex-end;
    font-size: 1.2rem; }
    footer .company-box img {
      margin: 0 0 0 10px;
      width: 150px; }

/*■■■■■■■■■■■■■*/
/*■■■■■■■■■■■■■*/
/*■■■■■■■ トップに戻るボタン ■■■■■■*/
.pagetop {
  cursor: pointer;
  position: fixed;
  right: 20px;
  bottom: 74px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  width: 60px;
  height: 60px;
  border-radius: 30px;
  z-index: 1;
  -webkit-transition: .3s;
  -o-transition: .3s;
  transition: .3s;
  background: rgba(0, 0, 0, 0.8);
  caret-color: transparent;
  /*   デフォルトは非表示 */
  opacity: 0; }

.pagetop:hover {
  background-color: #003e80; }

.pagetop:after {
  margin-top: 5px;
  content: "";
  display: block;
  width: 16px;
  height: 16px;
  border-width: 6px  0 0 6px;
  border-color: #FFF;
  border-style: solid;
  position: absolute;
  -webkit-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg); }

/*===============================
■■　スマホ用　■■
===============================*/
/*------------(XXS/iphone5/SE)------------*/
@media (min-width: 320px) and (max-width: 374px) {
  /*header*/
  header {
    position: static; }
  .header-logo-box {
    -webkit-box-pack: start;
    -ms-flex-pack: start;
    justify-content: flex-start; }
    .header-logo-box img {
      margin-left: 6px;
      width: 200px;
      height: auto; }
  /*メインナビゲーション(XS)*/
  .menu-logo-box {
    margin: 25px 0; }
  /*ハンバーガーメニュー(XS)*/
  .hamburger {
    padding: 0;
    margin: 0;
    position: fixed;
    right: 6px;
    top: 10px;
    width: 50px;
    /* クリックしやすい幅 */
    height: 50px;
    /* クリックしやすい高さ */
    border-radius: 5px;
    cursor: pointer;
    z-index: 300;
    background: rgba(0, 0, 0, 0.7);
    border: 0;
    font-size: 0.9rem;
    text-align: center; }
  /*フッター(XS)*/
  footer {
    /*COPYRIGHT*/ }
    footer .foot-menu-block {
      margin: 30px 0 0;
      padding: 20px 0; }
      footer .foot-menu-block .footer-menu {
        margin: 0 auto;
        padding: 0;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
        -ms-flex-direction: column;
        flex-direction: column; }
        footer .foot-menu-block .footer-menu li {
          padding: 5px 0;
          display: inline; }
          footer .foot-menu-block .footer-menu li .footer-logo-box img {
            width: 180px; }
          footer .foot-menu-block .footer-menu li .part-line {
            display: none;
            width: 1px;
            height: 32px;
            border-left: 1px solid #707070; }
    footer .copyright-box {
      padding: 10px 0 0 0;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      height: 40px;
      -webkit-box-align: center;
      -ms-flex-align: center;
      align-items: center;
      -webkit-box-pack: center;
      -ms-flex-pack: center;
      justify-content: center;
      font-size: 1rem; }
    footer .company-box {
      padding: 0 0 10px 0;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      height: 40px;
      -webkit-box-align: center;
      -ms-flex-align: center;
      align-items: center;
      -webkit-box-pack: center;
      -ms-flex-pack: center;
      justify-content: center;
      font-size: 1rem; }
      footer .company-box img {
        margin: 0 0 0 10px;
        width: 130px; }
  /*ページトップへ戻るボタン*/
  .pagetop {
    bottom: 100px;
    width: 40px;
    height: 40px; } }

/*XXS*/
/*------------(XS)------------*/
@media (min-width: 375px) and (max-width: 566px) {
  /*header*/
  header {
    position: static; }
  .header-logo-box {
    -webkit-box-pack: start;
    -ms-flex-pack: start;
    justify-content: flex-start; }
    .header-logo-box img {
      width: 220px;
      height: auto; }
  /*メインナビゲーション(XS)*/
  .menu-logo-box {
    margin: 25px 0; }
  /*ハンバーガーメニュー(XS)*/
  .hamburger {
    right: 20px;
    top: 10px; }
  /*フッター(XS)*/
  footer {
    /*COPYRIGHT*/ }
    footer .foot-menu-block {
      margin: 30px 0 0;
      padding: 20px 0; }
      footer .foot-menu-block .footer-menu {
        margin: 0 auto;
        padding: 0;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
        -ms-flex-direction: column;
        flex-direction: column; }
        footer .foot-menu-block .footer-menu li {
          padding: 5px 0;
          display: inline; }
          footer .foot-menu-block .footer-menu li .footer-logo-box img {
            width: 180px; }
          footer .foot-menu-block .footer-menu li .part-line {
            display: none;
            width: 1px;
            height: 32px;
            border-left: 1px solid #707070; }
    footer .copyright-box {
      padding: 10px 0 0 0;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      height: 40px;
      -webkit-box-align: center;
      -ms-flex-align: center;
      align-items: center;
      -webkit-box-pack: center;
      -ms-flex-pack: center;
      justify-content: center;
      font-size: 1rem; }
    footer .company-box {
      padding: 0 0 10px 0;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      height: 40px;
      -webkit-box-align: center;
      -ms-flex-align: center;
      align-items: center;
      -webkit-box-pack: center;
      -ms-flex-pack: center;
      justify-content: center;
      font-size: 1rem; }
      footer .company-box img {
        margin: 0 0 0 10px;
        width: 150px; }
  /*ページトップへ戻るボタン*/
  .pagetop {
    bottom: 100px; } }

/*xs*/
/*------------(SM)------------*/
@media (min-width: 567px) and (max-width: 767px) {
  /*フッター(SM)*/
  footer {
    /*COPYRIGHT*/ }
    footer .foot-menu-block {
      margin: 30px 0 0;
      padding: 20px 0; }
      footer .foot-menu-block .footer-menu {
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
        -ms-flex-direction: column;
        flex-direction: column; }
        footer .foot-menu-block .footer-menu li {
          padding: 5px 0; }
          footer .foot-menu-block .footer-menu li .footer-logo-box img {
            width: 200px; }
          footer .foot-menu-block .footer-menu li .part-line {
            display: none;
            width: 1px;
            height: 32px;
            border-left: 1px solid #707070; }
    footer .copyright-box {
      padding: 10px 0 0 0;
      height: 50px;
      -webkit-box-pack: center;
      -ms-flex-pack: center;
      justify-content: center;
      font-size: 1.2rem; }
    footer .company-box {
      padding: 0 0 10px 0;
      height: 50px;
      -webkit-box-pack: center;
      -ms-flex-pack: center;
      justify-content: center;
      font-size: 1.2rem; }
  /*ページトップへ戻るボタン*/
  .pagetop {
    bottom: 20px; } }

/*SM*/
/*------------(MD)------------*/
@media (min-width: 768px) and (max-width: 1023px) {
  /*フッター(SM)*/
  footer {
    /*COPYRIGHT*/ }
    footer .copyright-box {
      padding: 20px 0 0 0;
      height: 60px;
      -webkit-box-pack: center;
      -ms-flex-pack: center;
      justify-content: center;
      font-size: 1.2rem; }
    footer .company-box {
      padding: 0 0 20px 0;
      height: 60px;
      -webkit-box-pack: center;
      -ms-flex-pack: center;
      justify-content: center;
      font-size: 1.2rem; }
  /*ページトップへ戻るボタン*/
  .pagetop {
    bottom: 30px; } }

/*//MD*/
/*------------(LG)------------*/
/*//LG*/
/*------------(XL)------------*/
/*//XL*/
