@charset "UTF-8";

/*=============================================
 * body
 *=============================================*/
body {
   background-color: #fff;
   color: #333;
   font-family: 'Shippori Mincho', serif;
   font-weight: 400;
   font-size: 15px;
   line-height: 30px;
   letter-spacing: 0em;
   min-width: inherit;
   min-height: inherit;
   max-height: 100%;
   position: relative;
}

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

/*=============================================
 * 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-notosanjp {
   font-family: 'Noto Sans JP', sans-serif;
}

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

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

/* -- -- */
.wrap {
   width: 100%;
   max-width: 980px;
   margin: 0 auto;
   box-sizing: border-box;
   position: relative;
}

@media screen and (max-width: 1400px) {
   .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 20px;
   }
}

code {
   border: 0 !important;
}

a {
   transition: all 0.3s;
}

a:hover {
   opacity: 0.6;
   text-decoration: none;
}

a[href^="tel:"] {
   pointer-events: none;
   cursor: text;
}

@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;
   }
}

/*=============================================
 * <header>
 *=============================================*/
/* -- -- */
header {
   width: 100%;
   box-sizing: border-box;
   padding: 30px 70px;
   position: fixed;
   top: 0;
   left: 0;
   z-index: 100;
   transition: all 0.3s;
}

header .wrap {
   display: flex;
   flex-wrap: wrap;
   align-items: center;
   max-width: 100%;
   background-color: #fff;
   box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16);
   padding: 0 30px;
}

header.fixed {
   padding: 20px 20px;
}

header .logo {
   flex: 1 0 0;
   position: relative;
}

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

#navbar {
   font-weight: 500;
   font-size: 15px;
   letter-spacing: 0em;
   line-height: 20px;
}

#navbar .navbar__inner {
   display: flex;
   flex-wrap: wrap;
   align-items: center;
}

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

.navbar__nav li {
   position: relative;
}

.navbar__nav li+li {
   margin-left: 35px;
}

.navbar__nav li a,
.navbar__nav li .sub__menu-btn {
   display: inline-block;
   cursor: pointer;
   padding: 16px 0 12px;
   position: relative;
}

.navbar__nav li a:before,
.navbar__nav li .sub__menu-btn:before {
   content: '';
   height: 0;
   border-top: 2px solid #6FE7FF;
   position: absolute;
   right: 100%;
   bottom: 0;
   left: 0;
   -webkit-transition-property: right;
   transition-property: right;
   -webkit-transition-duration: 0.3s;
   transition-duration: 0.3s;
   -webkit-transition-timing-function: ease-out;
   transition-timing-function: ease-out;
}

.navbar__nav li a:hover,
.navbar__nav li a.on,
.navbar__nav li .sub__menu-btn:hover,
.navbar__nav li .sub__menu-btn.on {
   opacity: 1;
}

.navbar__nav li a:hover:before,
.navbar__nav li a.on:before,
.navbar__nav li .sub__menu-btn:hover:before,
.navbar__nav li .sub__menu-btn.on:before {
   right: 0;
}

.navbar__nav li img {
   display: block;
   margin: 0 auto 2px;
}

.navbar__nav .sub__menu-btn {
   padding-right: 15px !important;
}

.navbar__nav .sub__menu-btn:after {
   content: '';
   width: 0;
   height: 0;
   border: 4px solid transparent;
   border-top: 5px solid #333;
   border-bottom: 0;
   position: absolute;
   bottom: 19px;
   right: 0;
   transition: all 0.3s;
}

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

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

.navbar__nav .sub__menu-main a {
   padding: 0 0 5px;
}

.navbar__nav .sub__menu-main a:before {
   border-color: #fff;
}

.navbar__nav .sub__menu:hover .sub__menu-btn:before {
   right: 0 !important;
}

.navbar__nav .sub__menu:hover .sub__menu-btn:after {
   transform: rotate(-180deg);
}

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

.header__bnr {
   padding: 32px 0 12px 50px;
   position: relative;
}

.header__bnr a {
   display: inline-block;
   background: linear-gradient(172deg,rgba(165, 215, 254, 1) 0%, rgba(127, 248, 254, 1) 100%);
   color: #fff;
   font-weight: 500;
   font-size: 15px;
   letter-spacing: 0.1em;
   line-height: 20px;
   padding: 9px 22px 13px 14px;
   position: relative;
}

.header__bnr a:before {
   content: '';
   display: inline-block;
   vertical-align: baseline;
   width: 20px;
   height: 20px;
   background: url("../img/common/icon_tel.svg") no-repeat center top/cover;
   margin-right: 5px;
   position: relative;
   top: 2px;
}

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

.hamburger {
   display: none;
   width: 40px;
   height: 20px;
   padding: 0;
   z-index: 2;
}

.hamburger:hover {
   opacity: 1;
}

.hamburger .hamburger-box {
   display: block;
   width: 100%;
   height: 100%;
}

.hamburger .hamburger-inner,
.hamburger .hamburger-inner:after,
.hamburger .hamburger-inner:before {
   width: 100%;
   height: 2px;
   background-color: #333;
   border-radius: 0;
}

.hamburger .hamburger-inner:before {
   top: 9px;
}

.hamburger .hamburger-inner:after {
   top: 18px;
}

.hamburger--slider.is-active .hamburger-inner {
   transform: translate3d(0, 10px, 0) rotate(45deg);
}

.hamburger--slider.is-active .hamburger-inner:after {
   transform: translate3d(0, -18px, 0) rotate(-90deg);
}

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

@media screen and (max-width: 1500px) {
   .navbar__nav li+li {
      margin-left: 20px;
   }

   .header__bnr {
      padding-left: 20px;
   }
}

@media screen and (max-width: 1350px) {
   header {
      padding: 30px 30px;
   }

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

@media screen and (max-width: 1200px) {
   header {
      padding: 20px 20px;
   }

   header .wrap {
      padding: 16px 20px;
   }

   .hamburger {
      display: block;
   }

   #navbar {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 100%;
      height: 100vh;
      background-color: #F8F6F2;
      overflow: auto;
      box-sizing: border-box;
      text-align: center;
      padding: 100px 20px;
      position: fixed;
      top: 0;
      left: 0;
      z-index: -1;
      opacity: 0;
      visibility: hidden;
      transition: all 0.5s ease-in-out;
   }

   #navbar .navbar__inner {
      display: inline-block;
      text-align: left;
   }

   .navbar__nav {
      display: block;
   }

   .navbar__nav li+li {
      margin-left: 0;
      padding-top: 30px;
   }

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

   .navbar__nav li a {
      padding: 0px 0 0 20px;
   }

   .navbar__nav li a:before {
      display: none;
   }

   .navbar__nav li a:after {
      content: "\f35a";
      font-family: "Font Awesome 6 Free";
      font-weight: 400;
      -moz-osx-font-smoothing: grayscale;
      -webkit-font-smoothing: antialiased;
      display: var(--fa-display, inline-block);
      font-style: normal;
      font-variant: normal;
      line-height: 1;
      text-rendering: auto;
      position: absolute;
      top: 3px;
      left: 0;
   }

   .navbar__nav li img {
      display: none;
   }

   .navbar__nav .sub__menu-main {
      width: inherit;
      background-color: transparent;
      color: #333;
      text-align: left;
      position: static;
      transform: translateX(0);
      padding: 0;
   }

   .navbar__nav .sub__menu-main p+p {
      padding: 30px 0 0;
   }

   .navbar__nav .sub__menu-main a {
      padding: 0 0 0 20px;
   }

   .header__bnr {
      padding: 30px 0 0;
   }

   .header__bnr a {
      display: block;
   }

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

@media screen and (max-width: 767px) {
   header {
      padding: 10px 10px;
   }

   header.fixed {
      padding: 10px 10px;
   }

   header .wrap {
      height: 70px;
      padding: 5px 10px;
   }

   header .logo a {
      width: 165px;
   }

   #navbar {
      font-size: 14px;
   }

   .header__bnr {
      display: none;
   }
}

/*=============================================
 * <section>
 *=============================================*/
/*=============================================
 * <footer>
 *=============================================*/
/* --- --- */
#section__cta {
   text-align: center;
   font-size: 16px;
   line-height: 28px;
   padding: 80px 20px 60px;
}

#section__cta h2 {
   border-bottom: 1px solid #707070;
   padding-bottom: 20px;
}

#section__cta h2 small {
   display: block;
   background-color: transparent;
   font-size: 15px;
   letter-spacing: 0;
   padding: 0 0 6px;
}

#section__cta .txt {
   padding-top: 30px;
}

#section__cta ul {
   display: flex;
   flex-wrap: wrap;
   justify-content: center;
   align-items: center;
   padding-top: 30px;
}

#section__cta ul li+li {
   margin-left: 20px;
}

#section__cta ul li img {
   width: 36px;
}

#section__cta ul .tel img {
   vertical-align: bottom;
   margin-right: 10px;
}

#section__cta .time {
   padding-top: 10px;
}

@media screen and (max-width: 767px) {
   #section__cta {
      font-size: 14px;
      line-height: 28px;
      padding: 50px 20px 30px;
   }

   #section__cta h2 {
      font-size: 24px;
   }

   #section__cta h2 small {
      font-size: 15px;
   }

   #section__cta ul {
      padding-top: 30px;
   }

   #section__cta ul .tel span {
      display: none;
   }

   #section__cta .time {
      padding-top: 10px;
   }
}

/* --- --- */
#pagetop {
   background: linear-gradient(172deg,rgba(165, 215, 254, 1) 0%, rgba(127, 248, 254, 1) 100%);
   text-align: center;
   padding: 30px 0;
   position: static;
   opacity: 1;
   visibility: visible;
   cursor: pointer;
}

#pagetop img {
   width: 66px;
}

#pagetop:hover {
   opacity: .7;
}

#pagetop:hover img {
   opacity: 1;
}

@media screen and (max-width: 767px) {
   #pagetop {
      padding: 15px 0;
   }
}

/* --- --- */
footer {
   background: url("/wp-content/uploads/2025/06/グループ-23265.png") no-repeat center/cover;
   padding: 120px 20px 10px;
}

footer .wrap {
   display: flex;
   flex-wrap: wrap;
   align-items: flex-start;
   justify-content: space-between;
   max-width: 1000px;
}

footer .col {
   padding-left: 20px;
}

footer .txt {
   font-size: 15px;
   line-height: 24px;
   padding-top: 20px;
}

footer .txt h3 {
   letter-spacing: 0.12em;
   line-height: 29px;
	color:#fff;
}

footer .txt p {
   padding-top: 10px;
	color:#fff;
}

footer .txt .icon {
   width: 24px;
}

footer nav {
   display: flex;
   flex-wrap: wrap;
   font-size: 14px;
   line-height: 20px;
   width: 460px;
}

footer nav a {
   display: block;
   width: 215px;
   margin-left: 20px;
   margin-bottom: 20px;
	color:#fff;
}

footer nav a:nth-child(2n + 1) {
   margin-left: 0;
}

footer nav a i {
   display: inline-block;
   vertical-align: baseline;
   margin-right: 5px;
}

footer address {
   width: 100%;
   font-size: 14px;
   line-height: 24px;
   padding-top: 70px;
	color:#fff;
}

@media screen and (max-width: 991px) {
   footer .col {
      padding-left: 0;
   }

   footer nav {
      width: 58%;
   }

   footer nav a {
      width: 49%;
      margin-left: 2%;
   }

   footer nav a:nth-child(2n + 1) {
      margin-left: 0;
   }
}

@media screen and (max-width: 767px) {
   footer {
      background-image: url("/wp-content/uploads/2025/06/グループ-23265.png");
      padding: 40px 0 80px;
   }

   footer .wrap {
      display: block;
      text-align: center;
   }

   footer .col {
      display: inline-block;
      text-align: left;
   }

   footer .txt h3 {
      font-size: 20px;
	   color:#fff;
   }

   footer nav {
      display: none;
   }

   footer address {
      font-size: 14px;
      line-height: 24px;
      padding-top: 80px;
	   color:#fff;
   }
}

.ft_bnr_fixed {
   display: none;
}

@media screen and (max-width: 767px) {
   .ft_bnr_fixed {
      display: block;
      width: 100%;
      text-align: center;
      padding: 0;
      position: fixed;
      bottom: 0;
      left: 0;
      opacity: 0;
      visibility: hidden;
      transition: all 0.3s;
      z-index: 90;
   }

   .ft_bnr_fixed.visible {
      opacity: 1;
      visibility: visible;
   }

   .ft_bnr_fixed {
      text-align: center;
   }

   .ft_bnr_fixed a {
      display: block;
      background-color: #333;
      color: #fff;
      font-weight: 500;
      font-size: 15px;
      letter-spacing: 0.1em;
      line-height: 20px;
      padding: 9px 22px 13px 14px;
      position: relative;
   }

   .ft_bnr_fixed a:before {
      content: '';
      display: inline-block;
      vertical-align: baseline;
      width: 20px;
      height: 20px;
      background: url("../img/common/icon_tel.svg") no-repeat center top/cover;
      margin-right: 5px;
      position: relative;
      top: 2px;
   }

   .ft_bnr_fixed a:hover {
      background-color: #6FE7FF;
      opacity: 1;
   }
	
}