@charset "UTF-8";

body::after {
  content: '';
  display: block;
  background-color: rgba(0, 0, 0, 0.2);
  position: fixed;
  inset: 0;
  visibility: hidden;
  opacity: 0;
  transition: 0.5s;
  z-index: 990;
}

body.active::after {
  opacity: 1;
  visibility: visible;
}

.no-scroll {
  overflow: hidden;
  height: 100vh;
}

/* BUTTON
=================================== */
.roundBtn {
  display: inline-block;
  text-decoration: none;
  font-weight: 500;
  border: solid 1.5px #222;
  border-radius: 100px;
  color: #222;
  padding: 1.0rem 2.5rem;
  transition: 0.3s;
}

.roundBtn--white {
  background-color: #fff;
}

.roundBtn--white:hover {
  background-color: #222;
  color: #fff;
}

.circle_btn {
  color: #222;
  text-decoration: none;
  transition: 0.2s;
  display: flex;
  align-items: center;
  gap: 0.5em;
  line-height: 1;
}

.circle_btn::after {
  content: '\e5c8';
  font-family: 'Material Symbols Rounded';
  font-weight: 400;
  font-size: 0.8em;
  background-color: #222;
  color: #fff;
  width: 1.5em;
  height: 1.5em;
  display: flex;
  place-items: center;
  justify-content: center;
  border-radius: 50%;
  letter-spacing: 0;
  transition: 0.2s;
}

.circle_btn:hover {
  opacity: 0.7;
}

.circle_btn:hover::after {
  translate: 0.2em 0;
}

.blank-link-popup {
  position: fixed;
  padding: 4px 8px;
  background: rgba(0, 0, 0, 0.7);
  color: #fff;
  font-size: 11px;
  border-radius: 4px;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.15s ease;
  z-index: 9999;
  white-space: nowrap;
  letter-spacing: 0;
}


/* ANCHOR LINK BUTTON
=================================== */
.anchor_link_container {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1.0rem;
  width: fit-content;
  margin: 5.0rem auto 4.0rem;

  a {
    padding: 0.2em 2.2em 0.2em 1.5em;
    color: #222;
    /* font-size: 1.4rem; */
    text-decoration: none;
    text-align: center;
    border: solid 2px #FDE029;
    border-radius: 100px;
    position: relative;
    transition: 0.2s;
    min-width: 8.0rem;
  }

  a::after {
    content: '\e313';
    font-family: 'Material Symbols Rounded';
    font-size: 1.5em;
    position: absolute;
    right: 0.3em;
    top: 50%;
    translate: 0 -50%;
  }

  a:hover {
    background-color: #FDE029;
    color: #222 !important;
  }
}

/* HEADER
=================================== */
.header {
  width: 100%;
  list-style-type: none;
  background-color: #fff;
}

.header_inner {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
}

.header_logo {
  order: 0;
  margin: 0;

  a {
    display: inline-block;
    transition: 0.3s;

    img {
      width: 220px;
    }
  }

  a:hover {
    opacity: 0.8;
  }
}

.gnav {
  order: 2;
  width: 100%;

  .gnav_list {
    display: flex;
    justify-content: space-between;
    margin: 0;
  }

  .gnav_item {
    width: 100%;
    text-align: center;

    a {
      display: block;
      padding: 1.0rem 0 1.2rem;
      font-size: clamp(1.3rem, 1.3vw, 1.5rem);
      text-decoration: none;
      color: #222;
      font-weight: 600;
      white-space: nowrap;
      position: relative;
      overflow-x: hidden;
    }

    a::after {
      content: '';
      position: absolute;
      left: 50%;
      bottom: 0;
      height: 7px;
      width: 100%;
      background-color: #FDE029;
      transform: translateX(-50%) scaleX(0);
      transform-origin: center;
      border-radius: 999px 999px 0 0;
      transition: none;
      /* transition:
        transform 0.2s ease, width 0.2s ease, height 0.3s ease; */
    }

    /* hover：中央から左右へ帯が伸びる */
    a:hover::after {
      height: 7px;
      transform: translateX(-50%) scaleX(1);
      border-radius: 0;
    }

    /* active 初期状態（半円） */
    &.active a::after {
      width: 14px;
      transform: translateX(-50%) scaleX(1);
    }

    /* active ＋ hover で帯に変形 */
    &.active a:hover::after {
      width: 100%;
      transform: translateX(-50%) scaleX(1);
      border-radius: 0;
    }
  }
}

.is-ready {
  .gnav_item a::after {
    transition:
      transform 0.22s ease,
      width 0.22s ease;
  }
}

.subNav {
  padding-right: 2.0rem;
  order: 1;

  .subNav_list {
    display: flex;
    align-items: center;
    gap: 2.0rem;
    margin: 20px auto 10px;

    a {
      display: flex;
      align-items: center;
      gap: 0.5em;
      text-decoration: none;
      color: #222;
      font-size: clamp(1.1rem, 1.2vw, 1.3rem);
      padding-block: 0.5em;
    }

    a:hover {
      opacity: 0.7;
    }

    img {
      width: clamp(1.4rem, 1.2vw, 1.5rem);
    }

    .youtube-icon {
      width: clamp(2.2rem, 1.3vw, 4.0rem);
    }

    .facebook-icon {
      width: clamp(2.0rem, 1.2vw, 3.5rem);
    }
  }
}

.sp-header {
  display: none;
}


/* Google SEARCH
=================================== */
/** 外枠に色を付けて角丸にする */
.gsc-control-searchbox-only {
  margin: 0px !important;
  padding: 0px !important;
  border-radius: 100px;
  -webkit-border-radius: 100px;
  -moz-border-radius: 100px;
  background-color: #F5F5F5 !important;
  height: 42px !important;
  width: 240px !important;
  position: relative;
}

.gsc-control-cse {
  margin: 0px !important;
  padding: 0px !important;
  border-radius: 100px;
  -webkit-border-radius: 100px;
  -moz-border-radius: 100px;
  background-color: #F5F5F5 !important;
  height: 42px !important;
  width: 240px !important;
  position: relative;
}

.gsc-input {
  background-color: transparent !important;
  position: absolute;
  inset: 0 0 auto;
  margin-block: auto !important;
  margin-left: 1.0rem;
  translate: 0 14%;
  font-family: 'Noto Sans JP', sans-serif !important;
}

/** キーワード入力部分のボーダーを消し、角丸にする */
.gsc-input-box {
  border: none !important;
  border-radius: 100px !important;
  -webkit-border-radius: 100px !important;
  -moz-border-radius: 100px !important;
  background-color: transparent !important;
  font-size: 16px !important;
}

.gsc-input-box input {
  font-size: 16px !important;
  max-width: 142px !important;
}


/** キーワード入力部分の左側に余白を入れる */
.gsib_a {
  padding-left: 15px !important;
  font-size: 16px !important;
  position: relative;
  height: 42px !important;
  background-image: none !important;
  font-family: 'Noto Sans JP', sans-serif !important;
}

.gsib_b {
  height: 0 !important;
  width: 0 !important;
  position: absolute;
  right: 82px;
  top: 4px;
  translate: 0 -20%;
  margin-block: auto;
}

#gs_st50 {
  position: absolute;
  top: 0;
}

/** 検索ボタン */
.gsc-search-button.gsc-search-button {
  display: block !important;


}

.gsc-search-button-v2 {
  margin: 0px !important;
  height: 42px !important;
  width: 42px !important;
  padding: 0 !important;
  background-color: #FDE029 !important;
  color: #4990c8 !important;
  border: none !important;
  border-radius: 50% !important;
  cursor: pointer;
  position: absolute !important;
  top: 0;
  right: 0;
  transition: 0.3s;
}

.gsc-search-button-v2:hover {
  filter: brightness(1.06) !important;
}

/** 検索ボタンのアイコン変更 */
.gsc-search-button-v2 svg {
  display: none;
}

.gsc-search-button-v2::after {
  content: url(/assets/img/common/icon_search.svg);
}

/* 検索結果出力部分 */
.pages_inner {
  .gsc-control-cse {
    width: 100% !important;
    height: auto !important;
    border-radius: initial !important;
    background: transparent !important;
    font-family: 'Noto Sans JP', sans-serif;
  }

  .gsc-above-wrapper-area {
    max-width: 100%;
  }

  .gsc-above-wrapper-area-container {

    th,
    td {
      border: none !important;
    }

    .gsc-result-info {
      padding: 0 !important;
    }

    .gsc-orderby-label {
      font-family: 'Noto Sans JP', sans-serif;
      font-weight: 400;
    }
  }

  .gsc-wrapper {
    max-width: 100% !important;
  }
}




/* CONTACT
=================================== */
.contactBlock {
  margin-top: 8.0rem;
  background-color: #C7EAD1;
  padding: 5.0rem 2.0rem;
}


.contactBlock_inner {
  max-width: 1000px;
  margin: 0 auto;
  display: flex;
  gap: 10.0rem;
  justify-content: center;
  align-items: center;
}

.contactBlock_inner dt {
  font-size: 1.8rem;
}

.contactHeading {
  line-height: 1.3;
}

.contackBlock_tel {
  font-size: 2.8rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  gap: 5px;
  margin: 0;
}

.contackBlock_tel::before {
  content: '';
  display: inline-block;
  width: 2.8rem;
  height: auto;
  aspect-ratio: 1/1;
  background-image: url(/assets/img/common/tel.svg);
  background-position: center;
  background-size: contain;
  background-repeat: no-repeat;
}

.contactBlock_other {
  a {
    text-decoration: none;
    color: #222;
    font-weight: 500;
    display: flex;
    align-items: center;
    gap: 1.5rem;
    transition: 0.3s;
    width: fit-content;
  }

  a::after {
    content: '\e5c8';
    font-family: 'Material Symbols Rounded';
    font-size: 1.8rem;
    color: #fff;
    display: grid;
    place-items: center;
    background-color: #222;
    width: 3.2rem;
    height: auto;
    aspect-ratio: 1/1;
    border-radius: 50%;
    transition: 0.3s
  }

  a:hover {
    opacity: 0.7;
  }

  a:hover::after {
    translate: 4px 0;
  }
}

.roundBtn_mail {
  font-size: 2.0rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1.0rem;
  padding: 2.0rem 3.0rem;
}

.roundBtn_mail::before {
  content: '';
  display: inline-block;
  width: 3.5rem;
  height: 3.5rem;
  background-image: url(/assets/img/common/icon_contact.svg);
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  transition: 0.3s;
}

.roundBtn_mail:hover::before {
  filter: brightness(0) invert(1);
}

.roundBtn_pc {
  font-size: 2.0rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1.0rem;
  padding: 2.0rem 3.0rem;
}

.roundBtn_pc::before {
  content: '';
  display: inline-block;
  width: 3.8rem;
  height: 3.5rem;
  background-image: url(/assets/img/common/icon_pc.svg);
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  transition: 0.3s;
}

.roundBtn_pc:hover::before {
  filter: brightness(0) invert(1);
}


/* SCROLL TOP BUTTON
=================================== */
main {
  position: relative;
}

.scroll-top {
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: #208E66;
  width: 6.0rem;
  height: 6.0rem;
  padding: 2.0rem;
  border-radius: 50%;
  position: sticky;
  bottom: 2.0rem;
  right: min(2vw, 15.0rem);
  margin-left: auto;
  margin-top: -4.0rem;
  transition: 0.3s;
  opacity: 0;
  visibility: hidden;

  img {
    width: 90%;
  }
}

.scroll-top.visible {
  opacity: 1;
  visibility: visible;
}

.scroll-top:hover {
  filter: brightness(1.25);
  /* background-color: #74C48C; */
  translate: 0 -5px;
}

/* FOOTER
=================================== */
.footer {
  margin-top: -2.0rem;
}

.footer_inner {
  max-width: 1400px;
  margin: 0 auto;
  padding: 5.0rem 2.0rem;
}

.footer_wrap1 {
  display: flex;
  justify-content: space-between;
  gap: 4.0rem;
}

.footer_logo {
  width: 25.0rem;
  margin-bottom: 2.0rem;

  a {
    transition: 0.3s;
  }

  a:hover {
    opacity: 0.8;
  }
}

.footer_navList {
  padding-left: 0;
}

.footer_navItem {
  list-style-type: none;
  margin-block: 1.0rem;

  a {
    font-size: 1.5rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1.5rem;
    color: #222;
    text-decoration: none;
    transition: 0.3s;
  }

  a::after {
    line-height: 1;
    font-size: 1.8rem;
    color: #222;
    background-color: #FDE029;
    width: 2.7rem;
    height: 2.7rem;
  }

  a:hover {
    opacity: 0.7;
  }
}

.footer_address {
  dt {
    font-weight: 700;
  }

  dd {
    margin: 0;
  }

  a {
    width: fit-content;
  }
}

.footer_address--main {
  dt {
    font-size: 2.0rem;
  }
}

.footer_address--sub {
  display: flex;
  gap: 5.0rem;

  dd {
    font-size: 1.4rem;
  }
}

.copyright {
  background-color: #208E66;

  small {
    max-width: 1240px;
    margin: 0 auto;
    padding-block: 0.8rem;
    display: block;
    text-align: center;
    font-weight: 400;
    color: #fff;
  }
}



/* トップページとお問い合わせの見出し
=================================== */
h2.topPageHeading {
  font-size: 4.0rem;
  margin: 0;
  letter-spacing: 4px;
}

.subTitle {
  font-family: 'Montserrat', 'Noto Sans JP', sans-serif;
  text-transform: uppercase;
  font-size: 1.8rem;
  font-weight: 700;
  display: block;
  letter-spacing: 2px;
  color: #FDE029;

  span.lowercase {
    text-transform: lowercase;
  }
}

.subTitle--green {
  color: #74C48C;
}



@media (max-width: 819px) {

  /* ANCHOR LINK BUTTON
=================================== */
  .anchor_link_container {
    grid-template-columns: repeat(2, 1fr);
    gap: 1.5rem 0.8rem;

    a {
      padding: 0.3em 2.2em 0.3em 1.5em;
      font-size: 1.45rem;
      letter-spacing: 0;
      white-space: nowrap;
    }

    a:hover {
      background-color: #FDE029;
    }
  }


  /* HEADER
=================================== */
  .header {
    position: fixed;
    inset: 0 0 0 auto;
    max-width: 450px;
    z-index: 999;
    width: 100%;
    list-style-type: none;
    background-color: #fff;
    translate: 100% 0;
    visibility: hidden;
    transition: 0.4s;
    overflow-y: auto;
  }

  .header.active {
    translate: 0 0;
    opacity: 1;
    visibility: visible;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
  }

  .header_inner {
    width: 100%;
    max-width: 400px;
    margin: 0 auto;
    flex-direction: column;
    flex-wrap: nowrap;
    justify-content: space-between;
    align-items: center;
  }

  .header_logo {
    order: 0;
    padding: 2.0rem 1.0rem 2.5rem;
  }

  .gnav {
    order: 1;

    .gnav_list {
      flex-direction: column;
      padding-inline: 2.0rem;
    }

    .gnav_item {
      text-align: justify;

      a {
        padding: 0.6rem 1.8rem;
        font-size: 1.5rem;
        border-bottom: dotted 2px #ccc;
        display: flex;
        justify-content: space-between;
        align-items: center;
      }

      a:hover {
        opacity: 0.6;
      }
    }

    .gnav_item:first-child a {
      border-top: dotted 2px #ccc;
    }

    .gnav_item a::before {
      font-family: 'Material Symbols Rounded';
      font-size: 2.0rem;
      font-weight: 400;
      content: '\e5c8';
      order: 1;
    }

    .gnav_item a::after {
      display: none;
    }
  }

  .subNav {
    padding-right: 0;
    order: 2;

    .subNav_list {
      flex-wrap: wrap;
      width: 265px;
      justify-content: center;
      gap: 1.4rem 4.0rem;

      a {
        font-size: 1.5rem;
        padding: 0;
      }

      a:hover {
        opacity: 0.8;
      }

      img {
        width: 1.6rem;
      }

      .youtube-icon {
        width: 4.0rem;
      }

      .facebook-icon {
        width: 3.5rem;
      }

      li:last-of-type {
        order: -1;
      }
    }
  }


  .sp-header {
    background-color: #fff;
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 56px;

    .header_logo {
      padding: 0;

      img {
        width: auto;
        height: 55px;
      }
    }
  }

  .menu-btn {
    position: fixed;
    top: 0;
    right: 0;
    z-index: 999;
    width: 56px;
    height: 56px;
    padding: 14px;
    background-color: #FDE029;
    border: none;
    border-radius: 0 0 0 12px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 7px;

    .bar::after {
      content: '';
      display: block;
      height: 2px;
      background-color: #222;
      border-radius: 10px;
      transition: 0.35s;
    }

    .bar-top::after {
      width: 28px;
    }

    .bar-center::after {
      width: 17px;
    }

    .bar-bottom::after {
      width: 22px;
    }
  }

  .menu-btn.active {
    overflow-x: hidden;

    .bar-top::after {
      width: 22px;
      rotate: calc(180deg + 45deg);
      translate: 4px 9px;
    }

    .bar-center::after {
      opacity: 0;
      scale: 0 1;
      transform-origin: right;
    }

    .bar-bottom::after {
      width: 22px;
      rotate: calc(-180deg - 45deg);
      translate: 4px -9px;
    }
  }


  /* Google SEARCH
=================================== */
  .gsc-webResult {
    padding: 10px 0 20px !important;
  }

  .gsc-option-menu {
    right: 0 !important;
    left: auto !important;
  }

  /* CONTACT
=================================== */
  .contactBlock {
    margin-top: 5.0rem;
    background-color: #C7EAD1;
    padding: 5.0rem 2.0rem;

    .heading_container {
      text-align: center;

      h2 {
        font-size: 3.0rem;
      }

      .subTitle {
        font-size: 1.4rem;
      }
    }


    dl {
      margin-top: 3.0rem;
    }
  }


  .contactBlock_inner {
    max-width: 650px;
    flex-direction: column;
    gap: 3.0rem;
  }


  /* SCROLL TOP BUTTON
=================================== */
  .scroll-top {
    width: 5.5rem;
    height: 5.5rem;
    padding: 1.8rem;
    right: 1.6rem;
    bottom: 1.6rem;

    img {
      width: 80%;
    }
  }

  .scroll-top:hover {
    background-color: #208E66;
  }


  /* FOOTER
=================================== */
  .footer_inner {
    max-width: 650px;
    padding: 5.0rem 1.5rem 2.0rem;
  }

  .footer_wrap1 {
    flex-direction: column;
    gap: 0;
  }

  .footer_logo {
    display: flex;
    justify-content: center;
    width: 100%;
    margin-bottom: 4.0rem;
  }

  .footer_navList {
    display: flex;
    flex-wrap: wrap;
  }

  .footer_navItem {
    a {
      font-size: 1.3rem;
      letter-spacing: 0;
      justify-content: space-between;
      max-width: 18.0rem;
    }
  }

  .footer_navItem:nth-child(odd) {
    width: 50%;
    margin-block: 1.0rem;
    margin-right: 2.5rem;
  }

  .footer_navItem:nth-child(even) {
    width: 39%;
    margin-bottom: 0;
  }

  .footer_address--main {
    dt {
      font-size: 1.8rem;
    }

    dd {
      font-size: 1.5rem;
    }
  }

  .footer_address--sub {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;

    dt {
      font-size: 1.4rem;
    }

    dd {
      font-size: 1.3rem;
    }
  }

  /* トップページとお問い合わせの見出し
=================================== */
  h2.topPageHeading {
    font-size: 2.8rem;
    letter-spacing: 0.1em;
  }

  .subTitle {
    font-size: 1.2rem;
    letter-spacing: 0.1em;
  }
}