@charset "UTF-8";

/*=============================================
 * body
 *=============================================*/
body {
   background-color: #fff;
   color: #000;
   font-family: 'Noto Sans JP', sans-serif;
   font-weight: 500;
   font-size: 16px;
   line-height: 35px;
   letter-spacing: 0;
   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-rounded1c {
   font-family: 'M PLUS Rounded 1c', sans-serif;
   font-weight: 800;
}

.fnt-montserrat {
   font-family: 'Montserrat', sans-serif;
}

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

/*=============================================
 * <header>
 *=============================================*/
/* -- -- */
header {
   background-image: linear-gradient(to right, #F39B53, #FC7100);
   color: #fff;
   box-sizing: border-box;
   font-weight: 500;
   font-size: 16px;
   line-height: 24px;
   border: 1px solid #fff;
   padding: 0;
   position: sticky;
   top: 0;
   left: 0;
   z-index: 100;
}

header .wrap {
   display: flex;
   flex-wrap: wrap;
   align-items: center;
   height: 73px;
}

header .logo {
   flex: auto;
}

header .logo a {
   display: block;
   width: 210px;
   height: 60px;
}

header .logo img {
	max-height: 100%;
}

#navbar {
   display: flex;
   flex-wrap: wrap;
   align-items: center;
   gap: 20px;
}

#navbar .nav {
   display: flex;
   flex-wrap: wrap;
   gap: 20px;
}

#navbar .tel {
   align-items: center;
   gap: 7px;
   position: relative;
}

#navbar .tel dt {
   width: 40px;
   height: 40px;
   background-color: #fff;
   color: #F9801E;
   font-weight: 700;
   letter-spacing: 0.05em;
   line-height: 40px;
   text-align: center;
}

#navbar .tel dd a {
   line-height: 26px;
}

#navbar .tel dd small {
   display: block;
   font-weight: 500;
   font-size: 13px;
   line-height: 13px;
}

#navbar .h-sns {
   display: flex;
   flex-wrap: wrap;
   align-items: center;
   justify-content: center;
   gap: 20px;
   position: fixed;
   top: 20px;
   right: 50px;
}

#navbar .h-sns li {
   width: 34px;
}

@media screen and (max-width: 1540px) {
   #navbar {
      gap: 10px;
   }

   #navbar .h-sns {
      position: static;
   }
}

@media screen and (max-width: 1440px) {
   #navbar .nav {
      gap: 10px;
   }
}

@media screen and (max-width: 1200px) {
   header {
      font-size: 12px;
   }

   header .logo a {
      width: 150px;
   }
}

@media screen and (max-width: 991px) {
   header {
      background: transparent;
      font-size: 16px;
   }

   header:before {
      content: '';
      width: 100%;
      height: 100%;
      background-image: linear-gradient(to right, #F39B53, #FC7100);
      position: absolute;
      top: 0;
      left: 0;
   }

   header .logo a {
      width: 215px;
   }

   .hamburger {
      display: block;
   }

   #navbar {
      align-items: flex-start;
      gap: 40px 20px;
      width: 100%;
      height: 100vh;
      background-image: linear-gradient(to right, #F39B53, #FC7100);
      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: 120px 20px 150px;
   }

   #navbar .nav {
      display: block;
      width: 100%;
      font-size: 26px;
      line-height: 50px;
   }

   #navbar .tel {
      color: #fff;
   }

   #navbar .tel dd a {
      font-size: 26px;
   }

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

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

/* --- --- */
/*=============================================
 * <footer>
 *=============================================*/
footer {
   text-align: center;
}

footer .wrap {
   padding-top: 85px;
   padding-bottom: 45px;
}

footer .logo a {
   display: inline-block;
   width: 204px;
}

footer .tel {
   padding-top: 25px;
}

footer .tel a {
   display: flex;
   flex-wrap: wrap;
   align-items: center;
   justify-content: center;
   gap: 6px;
}

footer .tel small {
   width: 28px;
   text-align: center;
   border-top: 1px solid #FC7100;
   border-bottom: 1px solid #FC7100;
   font-size: 16px;
   line-height: 22px;
   padding-bottom: 2px;
}

footer .f-sns {
   display: flex;
   flex-wrap: wrap;
   align-items: center;
   justify-content: center;
   gap: 20px;
   padding-top: 25px;
}

footer .f-sns li {
   width: 34px;
}

footer address {
   background-color: #FC7100;
   color: #fff;
   line-height: 20px;
   padding: 15px 0;
}

@media screen and (max-width: 767px) {
   footer .wrap {
      padding-top: 45px;
   }

   footer .logo a {
      width: 120px;
   }

   #pagetop {
      width: 45px;
      position: fixed;
      bottom: 15px;
      right: 15px;
      z-index: 9;
   }
}