@charset "UTF-8";

/*=============================================
 * body
 *=============================================*/
body {
   background: #FFFBE6;
   color: #333;
   font-family: 'M PLUS 2', sans-serif;
   font-weight: 500;
   font-size: 16px;
   line-height: 26px;
   letter-spacing: 0;
   min-width: inherit;
   min-height: inherit;
   max-height: 100%;
   position: relative;
}

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

/*=============================================
 * 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-mplus2 {
   font-family: 'M PLUS 2', sans-serif;
}

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

/*=============================================
 * <header>
 *=============================================*/
/* -- -- */
header {
   width: 100%;
   background-color: #FFD167;
   box-sizing: border-box;
   position: sticky;
   top: 0;
   left: 0;
   z-index: 100;
}

header .wrap {
   display: flex;
   flex-wrap: wrap;
   align-items: center;
   padding: 24px 0 14px;
}

header .logo {
   display: flex;
   flex-wrap: wrap;
   align-items: flex-end;
   gap: 30px;
   flex: auto;
}

header .logo a {
   display: block;
   width: 342px;
}

header .logo span {
   display: block;
   font-size: 12px;
   line-height: 24px;
}

#navbar {
   color: #4D2604;
}

#navbar .nav {
   display: flex;
   flex-wrap: wrap;
   gap: 30px;
   font-weight: 700;
   font-size: 16px;
   line-height: 24px;
}

#navbar .nav li {
   position: relative;
}

#navbar .nav li>a,
#navbar .nav li .sub__menu-btn {
   padding-bottom: 7px;
}

body.home header,
body.page-id-2295 header,
body.page-id-2296 header,
body.page-id-2297 header {
   background-color: transparent;
   position: fixed;
}

body.home header.fixed,
body.page-id-2295 header.fixed,
body.page-id-2296 header.fixed,
body.page-id-2297 header.fixed {
   background-color: #FFD167;
}

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

@media screen and (max-width: 1200px) {
   header .logo {
      gap: 15px;
   }

   #navbar .nav {
      gap: 15px;
      font-size: 13px;
   }
}

@media screen and (max-width: 991px) {
   header .logo span {
      display: none;
   }

   #navbar .nav {
      gap: 10px;
   }
}

@media screen and (max-width: 767px) {
   header {
      background-color: #fff;
   }

   header .wrap {
      align-items: center;
      height: 66px;
      padding: 0 20px;
   }

   header .logo a {
      width: 146px;
   }

   header #navbar {
      /* background-image: linear-gradient(to bottom, #A0B725, #46BF66); */
      background-color:#4D2604 ;
      color: #fff;
      display: block;
      width: 100%;
      height: 100vh;
      box-sizing: border-box;
      overflow-y: auto;
      position: fixed;
      top: 0;
      left: 0;
      padding: 85px 20px 150px;
      opacity: 0;
      visibility: hidden;
      transition: all 0.3s linear;
   }

   header #navbar .nav {
      width: max-content;
      flex-direction: column;
      gap: 20px;
      font-size: 16px;
      margin: 0 auto;
   }

   header #navbar .sub__menu-btn {
      display: none;
   }

   header #navbar .sub__menu-main p+p {
      padding-top: 20px;
   }

   body.home header,
   body.page-id-2295 header,
   body.page-id-2296 header,
   body.page-id-2297 header {
      background-color: #fff;
      position: sticky;
   }

   body.home header.fixed,
   body.page-id-2295 header.fixed,
   body.page-id-2296 header.fixed,
   body.page-id-2297 header.fixed {
      background-color: #fff;
   }

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

@media screen and (min-width: 768px) {
   #navbar .sub__menu-btn {
      cursor: pointer;
   }

   #navbar .sub__menu-main {
      position: absolute;
      top: 100%;
      left: 50%;
      transform: translateX(-50%);
      padding-top: 20px;
      opacity: 0;
      visibility: hidden;
      transition: all 0.3s;
   }

   #navbar .sub__menu-main:before {
      content: '';
      width: 30px;
      height: 22px;
      background: url("../img/common/sub-menu-arrow.svg") no-repeat center top/cover;
      position: absolute;
      top: 0;
      left: 50%;
      transform: translateX(-50%);
   }

   #navbar .sub__menu-main .inner {
      width: max-content;
      background-color: #fff;
      border: 2px solid #077425;
      padding: 15px 20px;
   }

   #navbar .sub__menu-main p+p {
      padding-top: 8px;
   }

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

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

/* --- --- */
/*=============================================
 * <footer>
 *=============================================*/
/* --- --- */
footer {
   padding: 70px 0;
}

footer .box {
   display: flex;
   flex-wrap: wrap;
   gap: 40px 50px;
}

footer .col {
   width: 350px;
}

footer .col h2,
footer .col p,
footer .col li {
   padding-top: 10px;
}

footer .logo {
   width: 230px;
}

footer .txt {
   font-size: 12px;
   line-height: 24px;
}

footer .tel {
   width: max-content;
   max-width: 100%;
}

footer .tel a {
   display: flex;
   align-items: center;
   gap: 4px;
   font-weight: 600;
   font-size: 20px;
   line-height: 30px;
}

footer .tel a img {
   width: 30px;
}

footer .tel span {
   display: block;
   text-align: justify;
   font-size: 13px;
   line-height: 20px;
   padding-top: 2px;
}

footer .col .button {
   padding-top: 20px;
}

footer .gmap {
   width: calc(100% - 400px);
   height: 500px;
   border: 6px solid #B4CB3C;
   border-radius: 20px;
   box-sizing: border-box;
}

footer .gmap>* {
   display: block;
   width: 100%;
   height: 100%;
   border-radius: inherit;
}

footer nav {
   display: flex;
   flex-wrap: wrap;
   justify-content: center;
   gap: 0 70px;
   font-weight: 700;
   font-size: 16px;
   line-height: 24px;
   padding-top: 45px;
}

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

footer address {
   font-size: 15px;
   line-height: 24px;
   padding-top: 50px;
}

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

   footer .col {
      width: 100%;
      font-size: 16px;
      line-height: 26px;
   }

   footer h2.h-20 {
      font-size: 20px;
   }

   footer .logo {
      margin: 0 auto;
   }

   footer .tel {
      margin: 0 auto;
   }

   footer .gmap {
      width: 100%;
      height: 142vw;
   }

   footer nav {
      display: none;
   }

   footer address {
      font-size: 13px;
      padding-top: 30px;
   }

   .sp_ft-btn {
      width: 100%;
      text-align: center;
      background-color: #004DA0;
      position: fixed;
      bottom: 0;
      left: 0;
      z-index: 9;
      opacity: 0;
      visibility: hidden;
      transition: all 0.3s;
   }

   .sp_ft-btn.visible {
      opacity: 1;
      visibility: visible;
   }

   .sp_ft-btn img {
      width: auto;
      max-width: inherit;
      height: 60px;
   }
}

.ft-fixed-bnr {
   background-color: #FFD167;
   position: sticky;
   bottom: 0;
   left: 0;
   opacity: 0;
   visibility: hidden;
   transition: all 0.3s;
   z-index: 101;
}

.ft-fixed-bnr.visible {
   opacity: 1;
   visibility: visible;
}

.ft-fixed-bnr ul {
   display: flex;
   justify-content: center;
   align-items: center;
   gap: 10px;
   max-width: 960px;
   padding: 16px 150px 16px 0;
}

.ft-fixed-bnr ul li:not(:last-child) {
   width: 267px;
}

.ft-fixed-bnr ul li:not(:last-child) a {
   display: block;
   color: #fff;
   border-radius: 8px;
   font-weight: 600;
   font-size: 24px;
   line-height: 24px;
   text-align: center;
   padding: 10px 10px 10px 60px;
   position: relative;
}

.ft-fixed-bnr ul li:not(:last-child) img {
   width: 40px;
   position: absolute;
   top: 13px;
   left: 10px;
}

.ft-fixed-bnr ul li:not(:last-child) span {
   display: block;
   font-size: 12px;
}

.ft-fixed-bnr ul li:nth-child(1) a {
   background-color: #077425;
}

.ft-fixed-bnr ul li:nth-child(2) a {
   background-color: #E57200;
}

.ft-fixed-bnr ul li:nth-child(3) a {
   background-color: #E81C1C;
   font-size: 21px;
}

.ft-fixed-bnr ul li:last-child {
   width: 120px;
   position: absolute;
   bottom: 0;
   right: 0;
}

@media screen and (max-width: 991px) {
   .ft-fixed-bnr ul {
      padding: 5px;
   }

   .ft-fixed-bnr ul li:not(:last-child) a {
      padding-left: 45px;
   }

   .ft-fixed-bnr ul li:not(:last-child) img {
      left: 5px;
   }

   .ft-fixed-bnr ul li:last-child {
      display: none;
   }
}

@media screen and (max-width: 767px) {
   .ft-fixed-bnr ul {
      gap: 0;
      padding: 0;
   }

   .ft-fixed-bnr ul li:not(:last-child) a {
      font-size: 15px;
      border-radius: 0;
      padding: 10px 0;
   }

   .ft-fixed-bnr ul li:not(:last-child) span {
      font-size: 8px;
      line-height: 14px;
   }

   .ft-fixed-bnr ul li:not(:last-child) img {
      display: none;
   }

   .ft-fixed-bnr ul li:nth-child(3) a {
      font-size: 13px;
   }

   .navOpen .ft-fixed-bnr {
      opacity: 1;
      visibility: visible;
   }
}