@charset "UTF-8";

/*=============================================
 * body
 *=============================================*/
body {
   background-color: #fff;
   color: #333;
   font-family: "游ゴシック", YuGothic, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", Osaka, 'ＭＳ Ｐゴシック', 'MS PGothic', sans-serif;
   font-weight: 500;
   font-size: 16px;
   line-height: 30px;
   letter-spacing: 0.075em;
   min-width: inherit;
   min-height: inherit;
   max-height: 100%;
   position: relative;
}

@media screen and (max-width: 767px) {
   body {
      font-size: 14px;
      line-height: 26px;
   }
}

/*=============================================
 * fonts
 *=============================================*/
.fnt-mincho {
   font-family: "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "メイリオ", Meiryo, "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
}

.fnt-meiryo {
   font-family: "メイリオ", Meiryo, "ヒラギノ角ゴシックPro", "ＭＳ ゴシック", "Hiragino Kaku Gothic Pro", Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
}

.fnt-gothic {
   font-family: "游ゴシック", YuGothic, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", Osaka, 'ＭＳ Ｐゴシック', 'MS PGothic', sans-serif;
}

.fnt-open-sans {
   font-family: 'Open Sans', sans-serif;
   font-weight: 400;
}

/*=============================================
 * <main>
 *=============================================*/
main {
   clear: both;
   width: 100%;
   box-sizing: border-box;
   position: relative;
}

/*=============================================
 * <header>
 *=============================================*/
/* -- -- */
header {
   background-color: #fff;
   box-sizing: border-box;
   padding: 30px 0;
   position: sticky;
   top: 0;
   left: 0;
   z-index: 100;
}

header .wrap {
   display: flex;
   flex-wrap: wrap;
   align-items: center;
   gap: 20px;
   width: 90%;
}

header .logo {
   flex: auto;
}

header .logo a {
   display: flex;
   align-items: center;
   width: 302px;
   height: 52px;
}

#navbar {
   display: flex;
   flex-wrap: wrap;
   align-items: center;
   gap: 2vw;
}

.navbar__nav {
   display: flex;
   flex-wrap: wrap;
   align-items: center;
   gap: 2vw;
   font-weight: 500;
   font-size: 16px;
   letter-spacing: 0.05em;
   line-height: 20px;
}

.navbar__nav>li {
   padding: 15px 0;
}

.navbar__nav>li>a,
.navbar__nav .sub__menu-btn {
   display: block;
   border-bottom: 1px solid transparent;
}

.navbar__nav>li>a:hover,
.navbar__nav .sub__menu-btn:hover {
   border-color: #EBAECC;
   color: #EBAECC;
   opacity: 1;
}

.navbar__nav .sub__menu-btn i {
   display: none;
}

.navbar__btn {
   width: 180px;
}

.navbar__btn a {
   display: block;
   border-radius: 5px;
   background-color: #EBAECC;
   color: #fff;
   font-weight: bold;
   letter-spacing: 0.05em;
   line-height: 20px;
   text-align: center;
   padding: 15px 0;
}

.navbar__btn a:hover {
   background-color: #333;
   opacity: 1;
}

@media screen and (max-width: 1400px) {
   header .logo {
      width: calc(100% - 910px);
   }

   header .logo a {
      width: 100%;
      max-width: 302px;
   }
}

@media screen and (max-width: 1200px) {
   .navbar__nav {
      gap: 1.5vw;
      font-size: 14px;
   }

   .navbar__btn {
      width: 140px;
   }
}

@media screen and (max-width: 991px) {
   header {
      padding: 9px 0;
   }

   header .logo a {
      max-width: 200px;
   }

   .hamburger {
      display: block;
   }

   #navbar {
      display: block;
      width: 100%;
      height: 100vh;
      background-color: #fff;
      box-sizing: border-box;
      position: fixed;
      top: 0;
      left: 0;
      transition: all 0.5s ease-in-out;
      z-index: -1;
      opacity: 0;
      visibility: hidden;
      overflow: auto;
      padding: 130px 20px;
   }

   .navbar__nav {
      flex-direction: column;
      align-items: flex-start;
      gap: 30px;
      width: 180px;
      font-size: 16px;
      margin: 0 auto;
   }

   .navbar__nav>li {
      width: 100%;
      padding: 0;
   }

   .navbar__nav>li>a,
   .navbar__nav .sub__menu-btn {
      border-bottom: 0;
   }

   .navbar__nav>li>a:hover,
   .navbar__nav .sub__menu-btn:hover {
      color: #333;
      opacity: 1;
   }

   .navbar__nav .sub__menu-btn {
      position: relative;
   }

   .navbar__nav .sub__menu-btn i {
      display: block;
      position: absolute;
      top: 50%;
      right: 0;
      transform: translateY(-50%);
      transition: all 0.3s;
   }

   .navbar__nav .sub__menu-btn.active i {
      transform: translateY(-50%) rotate(45deg);
   }

   .navbar__nav .sub__menu-main {
      display: none;
   }

   .navbar__nav .sub__menu-main li {
      padding-top: 15px;
   }

   .navbar__nav .sub__menu-main a {
      display: inline-block;
      border-bottom: 1px solid transparent;
      padding-left: 10px;
      position: relative;
   }

   .navbar__nav .sub__menu-main a:before {
      content: '-';
      position: absolute;
      top: 0;
      left: 0;
   }

   .navbar__nav .sub__menu-main a:hover {
      border-color: #fff;
      opacity: 1;
   }

   .navbar__btn {
      width: 180px;
      margin: 0 auto;
      padding-top: 30px;
   }

   .navOpen header:before {
      content: '';
      width: 100%;
      height: 100%;
      background-color: #fff;
      position: absolute;
      top: 0;
      left: 0;
   }

   .navOpen #navbar {
      opacity: 1;
      visibility: visible;
   }
}

@media screen and (max-width: 767px) {
   header .logo a {
      height: 51px;
   }

   #navbar {
      padding: 100px 20px 150px;
   }
}

@media screen and (min-width: 992px) {
   .navbar__nav .sub__menu {
      position: relative;
   }

   .navbar__nav .sub__menu-btn {
      cursor: pointer;
   }

   .navbar__nav .sub__menu-main {
      width: max-content;
      background-color: #EBAECC;
      color: #fff;
      padding: 20px;
      position: absolute;
      top: 100%;
      left: 50%;
      transform: translateX(-50%);
      opacity: 0;
      visibility: hidden;
      transition: all 0.3s;
   }

   .navbar__nav .sub__menu-main:before {
      content: '';
      width: 0;
      height: 0;
      border-width: 0 6px 10px 6px;
      border-style: solid;
      border-color: transparent transparent #EBAECC transparent;
      position: absolute;
      bottom: 100%;
      left: 50%;
      transform: translateX(-50%);
   }

   .navbar__nav .sub__menu-main li+li {
      padding-top: 10px;
   }

   .navbar__nav .sub__menu-main a {
      display: inline-block;
      border-bottom: 1px solid transparent;
      padding-left: 10px;
      position: relative;
   }

   .navbar__nav .sub__menu-main a:before {
      content: '-';
      position: absolute;
      top: 0;
      left: 0;
   }

   .navbar__nav .sub__menu-main a:hover {
      border-color: #fff;
      opacity: 1;
   }

   .navbar__nav .sub__menu:hover .sub__menu-main {
      opacity: 1;
      visibility: visible;
   }
}

/*=============================================
 * <section>
 *=============================================*/
/* --- --- */
section {
   width: auto;
   box-sizing: border-box;
   margin: 0;
}

/* --- --- */
/*=============================================
 * <footer>
 *=============================================*/
footer {
   letter-spacing: 0.05em;
   border-top: 10px solid #EBAECC;
   padding: 80px 0 100px;
   position: relative;
}

footer .wrap {
   display: flex;
   flex-wrap: wrap;
}

footer .col {
   flex: auto;
}

footer .logo {
   width: 302px;
   padding-bottom: 30px;
}

footer nav {
   display: flex;
   flex-wrap: wrap;
   gap: 30px 6vw;
   line-height: 20px;
}

footer nav a {
   display: inline-block;
   border-bottom: 1px solid transparent;
   position: relative;
}

footer nav a:hover {
   border-bottom-color: #333;
   opacity: 1;
}

footer nav ul li+li {
   padding-top: 30px;
}

footer nav .sub {
   padding-top: 30px;
}

footer nav .sub a {
   padding-left: 10px;
}

footer nav .sub a:before {
   content: '-';
   position: absolute;
   top: 0;
   left: 0;
}

footer address {
   width: 100%;
   text-align: left;
   padding-top: 40px;
}

@media screen and (max-width: 1200px) {
   footer nav {
      gap: 30px 3vw;
      font-size: 14px;
   }
}

@media screen and (max-width: 991px) {
   footer nav {
      gap: 30px 6vw;
      font-size: 16px;
      padding-top: 30px;
   }
}

@media screen and (max-width: 767px) {
   footer {
      padding: 50px 0;
   }

   footer .logo {
      width: 250px;
   }

   footer nav {
      display: none;
   }

   footer address {
      font-size: 12px;
   }
}

.fixed-banner {
   width: 144px;
   overflow: hidden;
   position: fixed;
   bottom: 15px;
   right: 0;
   z-index: 9;
}

.fixed-banner li+li {
   padding-top: 15px;
}

.fixed-banner li a {
   display: block;
   width: 100%;
   margin-left: 20px;
}

.fixed-banner li a:hover {
   margin-left: 0px;
}

@media screen and (max-width: 1300px) {
   .fixed-banner {
      width: 80px;
      right: 15px;
   }

   .fixed-banner li a {
      margin-left: 0;
   }
}

@media screen and (max-width: 480px) {
   .fixed-banner {
      width: 70px;
      right: 5px;
      bottom: 30px;
   }

   .fixed-banner li+li {
      padding-top: 5px;
   }

   .fixed-banner li a {
      margin-left: 0;
   }
}