@charset "UTF-8";

/*=============================================
 * body
 *=============================================*/
body {
   background-color: #fff;
   color: #000;
   font-family: "源ノ角ゴシック JP", "Noto Sans JP", "游ゴシック", YuGothic, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", Osaka, 'ＭＳ Ｐゴシック', 'MS PGothic', sans-serif;
   font-weight: 400;
   font-size: 18px;
   line-height: 32px;
   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: 24px;
   }
}

/*=============================================
 * fonts
 *=============================================*/
@font-face {
   font-family: MOBO;
   src: url("../font/MOBO/MOBO.otf");
}

.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-mobo {
   font-family: "MOBO", sans-serif;
}

/*=============================================
 * <main>
 *=============================================*/
main {
   clear: both;
   width: 100%;
   box-sizing: border-box;
   position: relative;
}

/* -- -- */
.wrap {
   width: 100%;
   max-width: 1160px;
   margin: 0 auto;
   box-sizing: border-box;
   position: relative;
}

@media screen and (max-width: 1240px) {
   .wrap {
      max-width: 960px;
   }
}

@media screen and (max-width: 991px) {
   .wrap {
      max-width: 720px;
   }
}

@media screen and (max-width: 767px) {
   .wrap {
      max-width: 100%;
      padding: 0 10px;
   }
}

a {
   transition: all 0.3s;
}

a:hover {
   opacity: 0.5;
   text-decoration: none;
}

a[href^="tel:"] {
   pointer-events: none;
   cursor: text;
}

a[href^="tel:"]:hover {
   opacity: 1;
}

@media screen and (max-width: 767px) {
   a[href^="tel:"] {
      pointer-events: auto;
      cursor: pointer;
   }
}

.pc {
   display: block;
}

.ipd {
   display: none;
}

.sp {
   display: none;
}

@media screen and (min-width: 768px) and (max-width: 991px) {
   .ipd {
      display: block;
   }
}

@media screen and (max-width: 767px) {
   .pc {
      display: none;
   }

   .sp {
      display: block;
   }
}

img {
   width: auto;
   max-width: 100%;
   height: auto;
}

/*=============================================
 * <header>
 *=============================================*/
header {
   display: flex;
   flex-wrap: wrap;
   align-items: center;
   width: 100%;
   height: 90px;
   box-sizing: border-box;
   background-color: #fff;
   padding: 0 60px;
   position: sticky;
   top: 0;
   z-index: 100;
}

header .logo {
   flex: auto;
}

header .logo a {
   display: block;
   width: 215px;
}

#navbar {
   font-weight: 700;
   font-size: 15px;
   line-height: 15px;
   letter-spacing: 0.075em;
   color: #4c4948;
}

#navbar ul {
   display: flex;
   flex-wrap: wrap;
   gap: 0;
   text-align: center;
}

#navbar ul li {
   width: 135px;
   border-left: 2px solid #4c4948;
}

#navbar ul li:last-child {
   border-right: 2px solid #4c4948;
}

#navbar ul a:hover,
#navbar ul a._on {
   color: #d4af6d;
   opacity: 1;
}

.hamburger {
   background-color: #2E3C4F;
   width: 40px;
   height: 40px;
   border-radius: 50%;
   padding: 0;
   position: relative;
}

.hamburger .hamburger-box {
   display: block;
   width: 20px;
   height: 10px;
   position: absolute;
   top: 50%;
   left: 50%;
   transform: translate(-50%, -50%);
}

.hamburger .hamburger-box span {
   width: 100%;
   height: 2px;
   background-color: #fff;
   border-radius: 100px;
   position: absolute;
   left: 0;
   transition: all 0.3s ease;
}

.hamburger .hamburger-box span:nth-child(1) {
   top: 0px;
}

.hamburger .hamburger-box span:nth-child(2) {
   top: 8px;
}

.hamburger.is-active .hamburger-box span:nth-child(1) {
   transform: translate3d(0, 4px, 0) rotate(45deg);
}

.hamburger.is-active .hamburger-box span:nth-child(2) {
   transform: translate3d(0, -4px, 0) rotate(-45deg);
}

.hamburger:hover {
   opacity: 1;
}

@media screen and (max-width: 767px) {
   header {
      height: 50px;
      padding: 0 20px;
   }

   header .logo a {
      width: 120px;
   }

   #navbar {
      width: calc(100% - 130px);
      font-size: 12px;
      padding-left: 10px;
   }

   #navbar ul {
      align-items: center;
   }

   #navbar ul li {
      width: 33.33%;
      box-sizing: border-box;
   }
}

/*=============================================
 * <footer>
 *=============================================*/
/* --- --- */
footer {
   font-weight: bold;
   font-size: 13px;
   line-height: 22px;
   letter-spacing: 0.075em;
   color: #4c4948;
   box-sizing: border-box;
   padding: 30px 60px 60px;
}

footer .box {
   display: flex;
   flex-wrap: wrap;
   align-items: center;
}

footer .logo {
   width: 100%;
   order: 3;
}

footer .logo a {
   display: block;
   width: 240px;
   margin: 0 auto;
   padding-top: 50px;
}

footer .nav {
   display: flex;
   flex-wrap: wrap;
   gap: 0;
   line-height: 13px;
   text-align: center;
   padding-left: 20px;
   order: 2;
}

footer .nav li {
   width: 105px;
   border-left: 2px solid #4c4948;
}

footer .nav li:last-child {
   border-right: 2px solid #4c4948;
}

footer .nav a:hover,
footer .nav a._on {
   color: #d4af6d;
   opacity: 1;
}

footer address {
   order: 1;
}

@media screen and (max-width: 991px) {
   footer .box {
      justify-content: center;
      gap: 20px;
      text-align: center;
   }

   footer .nav {
      width: 100%;
      justify-content: center;
      padding-left: 0;
   }
}

@media screen and (max-width: 767px) {
   footer {
      font-size: 10px;
      line-height: 20px;
      padding: 20px 20px 40px;
   }

   footer .logo {
      order: 2;
   }

   footer .logo a {
      width: 200px;
      padding-top: 5px;
   }

   footer .nav {
      gap: 0;
      order: 1;
   }

   footer .nav li {
      width: auto;
      box-sizing: border-box;
      padding: 0 10px;
   }

   footer address {
      order: 3;
   }
}

/* -- -- */