:root {
  --color1: #4fb22f;
  --color2: #e4eeb6;
  --border: 2px solid #fff;
  --trans: all 0.3s;
  --bg-color: rgba(228, 240, 200, 0.8);
  --shadow: 0px 3px 6px 0px rgba(0, 0, 0, 0.06);
}

/* ----------------------------

共通項目

------------------------------*/

html {
  scroll-behavior: smooth;
  overflow-y: scroll;
  scrollbar-gutter: stable;
}

body {
  font-family: "Zen Kaku Gothic New";
  color: #2a2a2a;
  min-height: 100vh;
  overflow-x: hidden;
  line-height: 1.5;
  background-image: url(../img/rep-background.jpg);
  background-attachment: fixed;
}

section {
  padding: 160px 0;
  @media (max-width: 960px) {
    padding: 80px 0;
  }
}
@media (max-width: 960px) {
  section.under {
    padding: 60px 0 60px;
  }
}

a {
  width: fit-content;
}

/* margin */
.mb160 {
  margin-bottom: 160px;
}
.mb120 {
  margin-bottom: 120px;
}
.mb100 {
  margin-bottom: 100px;
}
.mb80 {
  margin-bottom: 80px;
}
.mb60 {
  margin-bottom: 60px;
}
.mb40 {
  margin-bottom: 40px;
}
.mb30 {
  margin-bottom: 30px;
}
.mb20 {
  margin-bottom: 20px;
}
.mb10 {
  margin-bottom: 10px;
}
@media (max-width: 960px) {
  .mb160 {
    margin-bottom: 80px;
  }
  .mb120 {
    margin-bottom: 60px;
  }
  .mb100 {
    margin-bottom: 50px;
  }
  .mb80 {
    margin-bottom: 40px;
  }
  .mb60 {
    margin-bottom: 30px;
  }
  .mb40 {
    margin-bottom: 20px;
  }
  .mb30 {
    margin-bottom: 15px;
  }
  .mb20 {
    margin-bottom: 10px;
  }
  .mb10 {
    margin-bottom: 5px;
  }
}

.tc-g {
  color: #297b50;
}

.gradation-text-color {
  font-size: 24px;
  background: linear-gradient(to bottom, #4fb22f, #297b50);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  color: transparent;
  font-family: "Lexend", sans-serif;
  font-weight: 700;
  @media (max-width: 768px) {
    font-size: 14px;
  }
}

.f-jp-r {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 400;
}
.f-jp-m {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 500;
}
.f-jp-b {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 700;
}
.f-en-m {
  font-family: "Lexend", sans-serif;
  font-weight: 500;
}
.f-en-b {
  font-family: "Lexend", sans-serif;
  font-weight: 700;
}

.marker {
  background-color: #d3ec8f;
  border-radius: 2px;
}

.title-wrap {
  text-align: center;
  .sub-title {
    font-size: clamp(2.0625rem, 1.3984rem + 2.125vw, 3.125rem);
    display: block;
    font-family: "Lexend", sans-serif;
    font-weight: 700;
  }
  .sec-title {
    font-size: 18px;
    margin-bottom: 0;
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: 500;
    
  }
  @media (max-width: 768px) {
    .sub-title {
      font-size: 33px;
    }
    .sec-title {
      font-size: 16px;
    }
  }
}

.sec-logo {
  display: flex;
  align-items: center;
  gap: 20px;
}

.t-center {
  text-align: center;
}

.desc {
  font-size: clamp(0.875rem, 0.694rem + 0.3766vw, 1rem);
  line-height: 2;
}

.inner1 {
  max-width: 1200px;
  width: calc(100% - 10.26vw);
  margin: 0 auto;
  /* @media (max-width: 1300px) {
    width: calc(100% - 100px);
  }
  @media (max-width: 768px) {
    
  } */
}
.inner1.il {
  width: calc(100% - 40px);
}

.inner2 {
  width: calc(100% - 100px);
  margin: 0 auto;
  max-width: 1450px;
  @media (max-width: 768px) {
    width: calc(100% - 20px);
  }
}

.line-top {
  width: 100vw;
  margin-bottom: -1px;
  img {
    width: 100%;
  }
}
.line-bottom {
  width: 100vw;
  margin-top: -1px;
  img {
    width: 100%;
  }
}

/* ----------------------------

ボタン

------------------------------*/

.btn {
  display: flex;
  justify-content: center;
  gap: 15px;
  background-color: #17390b;
  border: 0;
  padding: 28px 90px;
  max-width: auto;
  width: auto;
  border-radius: 100px;
  transition: var(--trans);
  .img {
    width: 29px;
    img {
      width: 100%;
    }
  }
  span {
    width: 100%;
    display: block;
    font-size: 20px;
    color: #fff;
    flex: 1;
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: 500;
  }
}
.btn.il {
  background-color: #06c755;
  transition: var(--trans);
}
.btn:hover {
  background-color: #112709;
  box-shadow: var(--shadow);
  scale: 1.03;
  span {
    color: #fff;
  }
}
.btn.il:hover {
  background-color: #0bd35e;
  box-shadow: var(--shadow);
}

.btn-sepa {
  display: flex;
  gap: 8px;
  transition: var(--trans);
  width: 224px;
  height: 56px;

  .l-cont {
    background-color: var(--color1);
    border-radius: 100px 0 0 100px;
    display: grid;
    place-items: center;
    width: 162px;

    span {
      font-size: 15px;
      color: #fff;
      font-family: "Zen Kaku Gothic New", sans-serif;
      font-weight: 500;
    }
  }
  .r-cont {
    background-color: #96c90f;
    width: 54px;
    display: grid;
    place-items: center;
    border-radius: 0 100px 100px 0;
    transition: var(--trans);
    img {
      width: 14px;
    }
  }
}
.btn-sepa:hover {
  scale: 1.03;
  .r-cont {
    background-color: var(--color1);
  }
}
.to-archive {
  width: 224px;
  height: 56px;
  font-size: 14px;
  display: grid;
  place-items: center;
  color: #fff;
  border-radius: 100px;
  font-weight: 700;
  transition: var(--trans);
  background-color: var(--color1);
  margin: 40px auto;
  @media (max-width: 768px) {
    margin: 20px auto 0;
  }
}
.to-archive:hover {
  background-color: #96c90f;
  scale: 1.02;
}

.btn-center {
  margin-left: auto;
  margin-right: auto;
}

.flex {
  display: flex;
}
.flex-sb {
  display: flex;
  justify-content: space-between;
  align-items: start;
}
.flex-center {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

/* モバイル改行 */

.sp {
  display: none;
}

@media (max-width: 768px) {
  .sp {
    display: block;
  }
}

.pc {
  display: block;
}

@media (max-width: 768px) {
  .pc {
    display: none;
  }
}

/* ----------------------------

ヘッダー

------------------------------*/

.bg-logo {
  position: fixed;
  top: 50%;
  right: 5%;
  translate: 0 -50%;
  z-index: -1;
}

header {
  position: fixed;
  top: 15px;
  width: 100vw;
  z-index: 800;

  @media (max-width: 960px) {
    top: 0;
  }

  .header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 30px;
    height: 80px;
    width: calc(100vw - 40px);
    max-width: 1650px;
    margin: 0 auto;
    @media (max-width: 960px) {
      height: 75px;
      border-radius: 0 0 50px 50px;
      width: 100%;
    }
    .logo {
      height: clamp(2.25rem, 0.45rem + 3vw, 3.375rem);
      img {
        height: 100%;
      }
      @media (max-width: 960px) {
        height: 35px;
        margin-left: 20px;
      }
    }
    .spacer {
      flex: 1;
    }
    .nav-wrap {
      background-color: #fff;
      height: 100%;
      border-radius: 1000px;
      display: flex;
      align-items: center;
      gap: 20px;
      padding: 12px 12px 12px 40px;
      box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.03);

      @media (max-width: 960px) {
        display: contents;
      }

      nav {
        ul.flex {
          li {
            transition: var(--trans);
            a {
              font-size: 15px;
              padding: 30px 10px;
              font-family: "Zen Kaku Gothic New", sans-serif;
              font-weight: 500;
            }
          }
          li:last-child {
            a {
              padding-right: 0;
            }
          }
          li:hover {
            color: var(--color1);
          }
          .nav-il {
            position: relative;
            transition: all 0.3s;
            span {
              font-size: 15px;
              padding: 30px 10px;
              font-family: "Zen Kaku Gothic New", sans-serif;
              font-weight: 500;
            }
            .under-nav {
              visibility: hidden;
              position: absolute;
              left: 50%;
              top: 70px;
              translate: -50%;
              background-color: #297b50;
              transition: all 0.4s;
              border-radius: 20px;
              opacity: 0;
              display: flex;
              flex-direction: column;
              gap: 6px;
              padding: 20px 30px;
              li {
                width: fit-content;
                a {
                  color: #fff;
                  text-wrap: nowrap;
                  padding: 0 0 0 21px;
                  position: relative;
                }
                a::before {
                  content: "";
                  width: 6px;
                  height: 1.5px;
                  background-color: #96c90f;
                  position: absolute;
                  border-radius: 100px;
                  top: 48%;
                  left: 0;
                }
              }
              li:hover {
                scale: 1.05;
              }
            }
          }
          li.nav-il:hover .under-nav {
            visibility: visible;
            opacity: 1;
          }
        }
        @media (max-width: 1500px) {
          display: none;
        }
      }
      .contact-area {
        display: flex;
        flex-direction: column;
        align-items: center;

        .tel {
          display: flex;
          align-items: center;
          gap: 4px;
          transition: var(--trans);

          span {
            font-size: 28px;
            color: #297b50;
            letter-spacing: -0.56px;
          }
          .img {
            width: 22px;
            translate: 0 1px;
            img {
              width: 100%;
            }
          }
        }

        .tel:hover {
          opacity: 0.7;
        }

        .t-xs {
          font-size: 12px;
          color: #2a2a2a;
        }
        @media (max-width: 960px) {
          display: none;
        }
      }
    }

    .h-contact-btn {
      display: block;
      height: 100%;
      background-color: var(--color1);
      padding: 16px 25px;
      display: grid;
      place-items: center;
      border-radius: 100px;
      transition: var(--trans);
      span {
        font-size: 15px;
        color: #fff;
      }
      @media (max-width: 1500px) {
        display: none;
      }
    }
    .h-contact-btn:hover {
      background-color: rgb(150, 201, 15);
      scale: 1.03;
    }
  }
}
#header-top {
  transform: translateY(-100%);
  opacity: 0;
  transition: 1.6s cubic-bezier(0.1, 1, 0.6, 1);
}
#header-top.header-animate {
  transform: translateY(0);
  opacity: 1;
}

#hamburger-menu-btn {
  margin-right: 10px;
  display: none;
  cursor: pointer;
  z-index: 900;
  @media (max-width: 1500px) {
    display: block;
  }

  .box {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 5px;
    height: 45px;
    width: 45px;
    border-radius: 999px;
    position: relative;
    z-index: 999;
    background-color: var(--color1);

    span {
      display: block;
      height: 1.5px;
      width: 20px;
      background: #fff;
      transition: 0.2s all ease-in-out;
    }
  }
}

#hamburger-menu-btn.active {
  z-index: 999;
  .box {
    background-color: #fff;
  }
  span:nth-child(1) {
    transform: rotate(30deg);
    translate: 0 3.25px;
    background-color: var(--color1);
  }
  span:nth-child(2) {
    display: none;
  }
  span:nth-child(3) {
    transform: rotate(-30deg);
    translate: 0 -3.25px;
    background-color: var(--color1);
  }
}

/* spメニュー */

#sp-header {
  width: 100vw;
  height: 100vh;
  position: fixed;
  top: -15px;
  opacity: 0;
  visibility: hidden;
  transition: var(--trans);
  background-color: rgba(239, 246, 237, 0.4);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  @media (max-width: 960px) {
    top: 0;
  }

  .wrapper {
    overflow-y: scroll;
    position: fixed;
    right: 100%;
    top: 0;
    position: absolute;
    width: 274px;
    min-height: 100vh;
    background-color: #fff;
    padding: 55px 30px;
    margin: 0 0 0 auto;
    border-radius: 40px 0 0 40px;
  }

  nav {
    .sp-menu {
      display: flex;
      flex-direction: column;
      justify-content: center;

      li {
        border-bottom: 1px #c8d1b3 solid;
        text-align: left;
        transition: var(--trans);
        a {
          width: 100%;
          display: inline-block;
          padding: 15px 0;
          font-size: 15px;
          font-weight: 500;
        }
        a:hover {
          opacity: 0.6;
        }
      }
      li:last-child {
        border-bottom: 0;
        margin-bottom: 30px;
        a {
          padding-bottom: 0;
        }
      }
      .nav-il-sp {
        padding: 15px 0;
        span {
          font-weight: 500;
          color: #96c90f;
          font-size: 15px;
          display: inline-block;
          margin-bottom: 10px;
        }
        .under-nav-sp {
          display: flex;
          flex-direction: column;
          gap: 6px;
          li {
            border-bottom: 0;
            a {
              padding: 0;
              padding-left: 21px;
              position: relative;
            }
            a::before {
              content: "";
              width: 6px;
              height: 1.5px;
              background-color: #96c90f;
              border-radius: 111px;
              position: absolute;
              top: 50%;
              left: 0;
            }
          }
          li:last-child {
            margin-bottom: 0;
          }
        }
      }
    }
  }
  .contact-area {
    .tel {
      display: flex;
      align-items: center;
      gap: 4px;
      .img {
        width: 24px;
        translate: 0 2px;
      }
      span {
        font-size: 28px;
        line-height: 1;
        text-wrap: nowrap;
        color: #297b50;
        letter-spacing: -0.56px;
      }
    }
    .t-xs {
      font-size: 12px;
      display: inline-block;
      margin-bottom: 20px;
    }
  }
  .h-contact-btn {
    display: block;
    height: 100%;
    background-color: var(--color1);
    padding: 16px 25px;
    display: grid;
    place-items: center;
    border-radius: 100px;
    transition: var(--trans);
    border: 2px var(--color1) solid;
    width: 100%;
    margin-bottom: 60px;
    span {
      font-size: 15px;
      color: #fff;
    }
  }
  .h-contact-btn:hover {
    background-color: #fff;

    span {
      color: var(--color1);
    }
  }
}

#sp-header.active {
  opacity: 1;
  z-index: +2;
  visibility: visible;
  .wrapper {
    right: 0;
  }
}

/* ----------------------------

トップページ-メインビジュアル

------------------------------*/

.mv {
  margin-top: 100px;
  position: relative;
  margin-bottom: 40px;

  .text-area {
    .sec-title {
      display: flex;
      flex-direction: column;
      gap: 32px;
    }
    .bg-wrap {
      overflow: hidden;
      opacity: 0;
      .inn {
        opacity: 0;

        transform: matrix(1, 0.15, -0.15, 0.9, 0, 100);
        transition: 1.6s cubic-bezier(0, 1, 0.6, 1);
      }
      .inn2 {
        opacity: 0;

        transform: matrix(1, 0, 0, 1, 0, 100);
        transition: 1.6s cubic-bezier(0.22, 1, 0.36, 1);
      }
    }
  }
  .text-area {
    .bg-wrap.is-animated {
      opacity: 1;
      .inn,
      .inn2 {
        opacity: 1;
        transform: matrix(1, 0, 0, 1, 0, 0);
      }
    }
  }

  @media (max-width: 768px) {
    margin-top: 60px;
    margin-bottom: 0px;
    padding-left: 10px;
    padding-right: 10px;

    .text-area {
      .sec-title {
        display: flex;
        flex-direction: column;
        gap: 15px;
      }
      .bg-wrap {
        overflow: hidden;
        opacity: 0;
        .inn {
          opacity: 0;

          transform: matrix(1, 0.15, -0.15, 0.9, 0, 100);
          transition: 1.6s cubic-bezier(0, 1, 0.6, 1);
        }
        .inn2 {
          opacity: 0;

          transform: matrix(1, 0, 0, 1, 0, 100);
          transition: 1.6s cubic-bezier(0.22, 1, 0.36, 1);
        }
      }
    }
    .text-area {
      .bg-wrap.is-animated {
        opacity: 1;
        .inn,
        .inn2 {
          opacity: 1;
          transform: matrix(1, 0, 0, 1, 0, 0);
        }
      }
    }
  }
}

.mv-slider {
  overflow: hidden;
  width: 100%;
  .swiper {
    width: 100%;
    .swiper-wrapper {
      transition-timing-function: linear !important;
      .swiper-slide {
        width: clamp(14.4375rem, 7.7807rem + 24.8853vw, 28rem);
        height: clamp(10.3125rem, 5.5269rem + 17.8899vw, 20.0625rem);

        img {
          width: 100%;
          height: 100%;
          object-fit: cover;
          border-radius: 20px;
        }
      }
    }
  }
}

.about {
  h2 {
    font-size: clamp(1.5rem, -0.6654rem + 4.5113vw, 3rem);
    line-height: 1.5;
  }
}
@media (max-width: 960px) {
  .about {
    padding: 80px 0;
    .inner2 {
      width: calc(100vw - 40px);
    }
    .btn-area {
      flex-direction: column;
      align-items: start;
      gap: 20px;
    }
  }
}

.bg1 {
  background-color: rgba(239, 246, 237, 0.4);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  width: 100vw;
  border-radius: 80px 80px 0 0;
  @media (max-width: 768px) {
    border-radius: 40px 40px 0 0;
  }
}
.features {
  .contents {
    align-items: center;
    gap: clamp(2.5rem, -1.1205rem + 7.533vw, 5rem);
    .img-area {
      max-width: 520px;
      width: 50%;
      img {
        width: 100%;
        border-radius: 20px;
      }
    }
    .text-area {
      width: 50%;
      h3 {
        font-size: clamp(1.5rem, 0.4138rem + 2.2599vw, 2.25rem);
        line-height: 1.7;
      }
    }
  }
  .btn-center {
    margin-bottom: 0;
  }

  @media (max-width: 768px) {
    padding: 80px 0;
    .contents {
      flex-direction: column;
      margin-left: auto;
      margin-right: auto;
      gap: 20px;
      max-width: 500px;
      .img-area {
        order: 1;
        padding: 0 10px;
        width: 100%;
        .img {
          width: 100%;
          height: clamp(11.25rem, 3.5119rem + 31.746vw, 18.75rem);
          img {
            object-fit: cover;
            height: 100%;
          }
        }
      }
      .text-area {
        width: 100%;
        order: 2;
        h3 {
          font-size: 20px;
        }
      }
    }
  }
}

.works {
  padding-top: 0;

  .bg-box {
    background-color: rgba(228, 240, 200, 0.8);
    border-radius: 80px;
    padding: clamp(5rem, -2.2411rem + 15.0659vw, 10rem) 0;
    ul.grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr); /* 3列 */
      grid-auto-rows: auto;
      gap: 30px;
      padding: 0;

      li {
        width: 100%;
        transition: var(--trans);
        .flex {
          flex-direction: column;
          width: 100%;
          .img {
            width: 100%;
            img {
              width: 100%;
            }
          }
          h3.title {
            height: 100%;
            flex: 1;
          }
          .tag-item {
            display: flex;
            justify-content: start;
            gap: 4px 10px;
            align-items: center;
            font-size: 12px;
            flex-wrap: wrap;

            .flex {
              width: fit-content;
              display: flex;
              flex-direction: row;
              align-items: center;
              gap: 4px;
              flex-wrap: nowrap;
            }
            .icon {
              width: 10px;
            }
            span {
              color: #7b7c7a;
              text-wrap: nowrap;
            }
          }
        }
      }
      li:hover {
        scale: 1.02;
      }
    }
  }

  @media (max-width: 768px) {
    padding-bottom: 80px;
    .bg-box {
      border-radius: 40px;
      padding: 80px 0;
      ul.grid {
        grid-template-columns: repeat(2, 1fr); /* 1列 */
        gap: 30px 10px;

        li {
          width: 100%;
          .flex {
            .title {
              font-size: 14px;
            }
            .tag-area {
              gap: 4px;
              img {
                width: 14px;
              }
              span {
                font-size: 10px;
              }
            }
          }
        }
        li:hover {
          scale: 1.02;
        }
      }
    }
  }
}

.under-bg {
  border-radius: 80px 80px 0 0;
  background-color: var(--bg-color);
  @media (max-width: 768px) {
    border-radius: 40px 40px 0 0;
  }
}

.plan {
  background-image: url(../img/rep-background.jpg);
  width: 100vw;
  border-radius: 80px 80px 0 0;
  position: relative;
  @media (max-width: 768px) {
    border-radius: 40px 40px 0 0;
  }
}
.plan::before {
  content: "";
  width: 100%;
  height: 300px;
  background-image: url(../img/rep-background.jpg);
  display: block;
  position: absolute;
  bottom: -290px;
}

.plan,
.service.under,
#plan_op {
  h3 {
    font-size: clamp(1.5rem, 0.4138rem + 2.2599vw, 2.25rem);
    @media (max-width: 768px) {
      font-size: 20px;
    }
  }
  .plan-note {
    font-size: 14px;
    @media (max-width: 768px) {
      font-size: 12px;
    }
  }

  .course {
    gap: 40px;
    @media (max-width: 768px) {
      gap: 20px;
      flex-direction: column;
    }
  }
  .table-wrap {
    overflow-x: auto;

    table {
      table-layout: fixed;
      border-collapse: separate;
      border-spacing: 3px;
      width: 100%;

      th,
      td {
        text-align: center;
        font-family: "Zen Kaku Gothic New", sans-serif;
        font-weight: 500;
      }
      th {
        /* border-radius: 20px 0 0 20px; */
        font-size: clamp(0.875rem, 0.7969rem + 0.25vw, 1rem);
        background-color: rgba(228, 240, 200, 1);
        text-align: left;
        padding: 40px 20px;
        width: clamp(130px, 10vw, 280px);
        text-wrap: wrap;
        position: sticky;
        left: -1px;
        overflow: hidden;
        z-index: 2;
        @media (max-width:768px) {
padding: 20px;          
        }
      }

      th::after {
        content: "";
        position: absolute;
        top: 0;
        left: 0;
        background-color: #e3eadc;
        width: 102%;
        height: 100%;
        border-radius: 20px 0 0 20px;
        z-index: -1;
      }

      td {
        padding: 40px 0;
        background-color: #fff;
        font-size: clamp(0.875rem, 0.7969rem + 0.25vw, 1rem);
        width: clamp(9.375rem, 3.5156rem + 18.75vw, 18.75rem);
        @media (max-width:768px) {
          padding: 20px 0;          
                  }
      }
      .price {
        td {
          color: #297b50;
          font-size: clamp(1.875rem, 1.0938rem + 2.5vw, 3.125rem);
          font-family: "Lexend", sans-serif;
          font-weight: 700;
          position: relative;
          span {
            font-size: clamp(0.875rem, 0.4453rem + 1.375vw, 1.5625rem);
          }
        }
        td.il::after {
          content: "※お見積もり必須";
          top: 70%;
          left: 50%;
          position: absolute;
          font-size: 12px;
          color: #297b50;
          translate: -50%;
          text-wrap: nowrap;
          font-family: "Zen Kaku Gothic New", sans-serif;
        }
      }
      .plan-top {
        border-radius: 20px 20px 0 0;
        padding: 27px 0;
        color: #fff;
        font-family: "Zen Kaku Gothic New", sans-serif;
        font-weight: 900;
        text-align: center;
      }
      .none {
        background-color: rgba(228, 240, 200, 1);
      }
      .lite {
        background-color: #4fb22f;
      }
      .stand {
        background-color: #297b50;
      }
      .ec {
        background-color: #17390b;
      }

      @media (max-width: 768px) {
        .plan-top {
          border-radius: 20px 20px 0 0;
          padding: 4vw;
          color: #fff;
          font-family: "Zen Kaku Gothic New", sans-serif;
          font-weight: 900;
          text-align: center;
        }
        .lite {
          background-color: #4fb22f;
        }
        .stand {
          background-color: #297b50;
        }
        .ec {
          background-color: #17390b;
        }
      }
    }
  }

  .table-wrap::-webkit-scrollbar {
    display: none;
  }
  .course-box {
    flex: 1;
    border-radius: 20px;
    background-color: #fff;
    overflow: hidden;
    .title-area {
      padding: 15px;
      background-color: #96c90f;
      text-align: center;
      span {
        color: #fff;
        font-size: 16px;
      }
      h4 {
        color: #fff;
        font-size: 26px;
      }
    }
    .title-area.il {
      background-color: #49aa7e;
    }
    .desc-area {
      padding: 40px;
      ul {
        li {
          font-size: 16px;
          font-family: "Zen Kaku Gothic New", sans-serif;
          font-weight: 500;
          color: #474645;
        }
      }
    }

    @media (max-width: 768px) {
      .title-area {
        span {
          font-size: 14px;
        }
        h4 {
          font-size: 18px;
        }
      }
      .desc-area {
        padding: 20px;
        ul {
          li {
            font-size: 14px;
          }
        }
      }
      .note {
        font-size: 14px;
      }
    }
  }
  .plan-desc {
    font-weight: 500;
    font-size: 20px;
    @media (max-width: 768px) {
      text-align: left;
      font-size: 16px;
    }
  }
}
.line-top {
  position: relative;
  z-index: 2;
}

.plan {
  .table-wrap {
    table {
      th {
        background-image: url(../img/rep-background.jpg);
      }
    }
  }
}
.cta,
#worries_op,
#reason_op,
#voice_op,
#plan_op,
.cta-under {
  .title-wrap {
    span {
      display: block;
      padding: 8px 20px;
      background-color: #96c90f;
      color: #fff;
      position: relative;
      width: fit-content;
      margin: 0 auto;
      border-radius: 20px;
      font-size: clamp(0.875rem, -0.2077rem + 2.2556vw, 1.625rem);
      margin-bottom: 12px;
    }
    span::after {
      content: "";
      position: absolute;
      bottom: 0;
      left: 50%;
      translate: -50%;
    }
    h2 {
      font-size: clamp(1.5rem, -0.6654rem + 4.5113vw, 3rem);
    }
    @media (max-width: 768px) {
      span {
        margin-bottom: 16px;
      }
    }
  }
  .contents {
    gap: 15px;
    @media (max-width: 960px) {
      flex-direction: column;
      align-items: center;
    }
    .box {
      background-color: #fff;
      border-radius: 20px;
      padding: 4.17%;
      flex: 1;
      display: flex;
      align-items: center;
      flex-direction: column;
      @media (max-width: 960px) {
        width: 100%;
        padding: clamp(1.875rem, -0.8404rem + 5.6497vw, 3.75rem);
      }
      h3 {
        font-size: clamp(1.25rem, 0.1869rem + 1.7699vw, 1.625rem);
        text-wrap: nowrap;
      }
      .img {
        height: clamp(10rem, 0.9487rem + 18.8324vw, 16.25rem);
        img {
          height: 100%;
          object-fit: contain;
        }
      }
      ul {
        width: 100%;
        li {
          padding-left: 23px;
          position: relative;
          overflow-wrap: break-word;
        }
        li::before {
          content: "";
          background-color: #4fb22f;
          width: 8px;
          aspect-ratio: 1 / 1;
          border-radius: 50%;
          position: absolute;
          top: 10px;
          left: 0;
          @media (max-width: 768px) {
            top: 6px;
          }
        }
      }
    }
    @media (max-width: 960px) {
      gap: 20px;
      flex-direction: column;
    }
    @media (max-width: 768px) {
      .box {
        padding: 30px;
        h3 {
          font-size: 18px;
        }
        .img {
          max-height: auto;
          height: 160px;
          img {
            height: 100%;
            object-fit: contain;
          }
        }
        ul {
          max-width: 400px;
          width: 100%;
          li {
            padding-left: 18px;
            font-size: 14px;
          }
        }
      }
    }
  }
  .cta-title {
    font-size: 36px;
    line-height: 1.7;
  }

  @media (max-width: 768px) {
    .cta-title {
      font-size: 20px;
      text-align: left;
    }
    .t-center {
      text-align: left;
    }
  }
}
.cta {
  background-color: #e7f2d1;
  position: relative;
  z-index: 2;
  .contents {
    .box {
      width: 33%;
    }
  }

  @media (max-width: 768px) {
    padding: 60px 0;
  }
  @media (max-width: 960px) {
    .desc.mb60 {
      margin-bottom: 60px;
    }
  }
  h2 {
    line-height: 1.7;
  }
}

.slider2 {
  margin-top: -60px;
  width: 100%;
  overflow: hidden;
  position: relative;
  z-index: 20;
  .swiper {
    width: 100%;
    .swiper-wrapper {
      transition-timing-function: linear !important;
      .swiper-slide {
        width: clamp(13.5rem, 8.469rem + 18.8073vw, 23.75rem);
        padding-bottom: 60px;
        padding-top: 0;
        img {
          width: 100%;
          object-fit:cover ;
        }
      }
      .swiper-slide.il {
        padding-top: 60px;
        padding-bottom: 0;
      }
    }
  }
}

.section-wrapper {
  background-color: #f9faf8;
  position: relative;
  padding: 160px 0;
  @media (max-width: 768px) {
    padding: 80px 0;
  }
  .inner1 {
    display: flex;
    gap: 40px;
    .news,
    .blog {
      padding: 0;
      flex: 1;
      .post-box {
        display: flex;
        flex-direction: column;
        margin-bottom: var(--80-40);
        background-color: #fff;
        border-radius: 20px;
        padding: clamp(1.875rem, -0.8404rem + 5.6497vw, 3.75rem);
        li {
          transition: var(--trans);
          border-bottom: 1px #ddd solid;
          .flex {
            width: 100%;
            display: flex;
            gap: clamp(1.875rem, -0.8404rem + 5.6497vw, 3.75rem);
            padding: 15px 0;

            h3.title {
              font-size: var(--16-14);
            }
            .date {
              font-size: 14px;
            }
          }
        }
        li:hover {
          scale: 1.02;
          color: var(--color1);
        }

        li:last-child {
          border-bottom: 0;
          margin-bottom: 40px;
        }
        .btn-under-line {
          border-bottom: 1px var(--color1) solid;
          color: var(--color1);
          display: block;
          margin-right: 0;
          margin-left: auto;
          padding-bottom: 5px;
          font-family: "Zen Kaku Gothic New", sans-serif;
          font-weight: 500;
          transition: var(--trans);
        }
        .btn-under-line:hover {
          opacity: 0.7;
        }
      }
      .btn {
        margin: 0 0 0 auto;
      }
    }
  }
  @media (max-width: 768px) {
    .inner1 {
      flex-direction: column;
      .news,
      .blog {
        padding: 0;
        flex: 1;
        .post-box {
          padding: 30px;
          li {
            .flex {
              align-items: start;
              gap: 30px;
              h3.title {
                font-size: 14px;
              }
              .date {
                font-size: 14px;
              }
            }
          }
          li:last-child {
            margin-bottom: 20px;
          }
          .btn-under-line {
            font-size: 12px;
          }
        }
      }
    }
  }
}
.section-wrapper::before {
  content: "";
  position: absolute;
  top: -400px;
  left: 0;
  width: 100vw;
  height: 800px;
  background-color: #f9faf8;
  z-index: -1;
}

.service {
  ul.service-list {
    max-width: 954px;
    display: grid;
    grid-template-columns: repeat(3, 1fr); /* 3列 */
    grid-auto-rows: auto;
    gap: 30px;
    flex-wrap: wrap;
    margin-left: auto;
    margin-right: auto;
    li {
      background-color: #fff;
      border-radius: 30px;
      padding: 30px;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 38px;
      aspect-ratio: 1/1;
      .img {
        width: 60%;
        display: flex;
        justify-content: center;
        align-items: center;
      }
      h3 {
        font-size: clamp(0.875rem, 0.7188rem + 0.5vw, 1.125rem);
        font-family: "Zen Kaku Gothic New", sans-serif;
        font-weight: 700;
      }
    }
  }
  @media (max-width: 768px) {
    .t-center {
      text-align: left;
    }
    ul.service-list {
      gap: 10px;
      grid-template-columns: repeat(2, 1fr); /* 3列 */
      li {
        padding: 15px;
        gap: 15px;
        aspect-ratio: 1 / 1;
        .img {
          width: 50%;
        }
      }
    }
  }
}
.reserve {
  background: linear-gradient(to bottom, #4fb22f, #297b50);
  text-align: center;
  position: relative;
  border-radius: 80px 80px 0 0;
  padding: 120px 0;

  .contents {
    display: flex;
    flex-direction: column;
    align-items: center;
  }
  .sec-title {
    color: #fff;
    font-size: clamp(1.25rem, 0.625rem + 2vw, 2.25rem);
  }

  .tel {
    display: flex;
    align-items: center;
    gap: 5px;
    transition: var(--trans);
    .img {
      width: 52px;
      img {
        width: 100%;
        translate: 0 3px;
      }
    }
    span {
      color: #fff;
      font-size: 58px;
    }
  }
  .tel:hover {
    opacity: 0.7;
  }
  .btn-center {
    margin-top: 0;
    margin-bottom: 4px;
  }
  .desc {
    font-size: 16px;
    color: #fff;
    display: block;
    text-align: center;
    margin-bottom: 40px;
  }
  .btn-area {
    display: flex;
    align-items: center;
    gap: 40px;
  }
  @media (max-width: 768px) {
    border-radius: 40px 40px 0 0;
    padding: 60px 0;
    .sec-title {
      font-size: 20px;
    }

    .tel {
      .img {
        width: 32px;
      }
      span {
        font-size: 34px;
      }
    }
    .desc {
      font-size: 14px;
      margin-bottom: 20px;
    }
    .btn-area {
      gap: 10px;
      flex-direction: column;
      .btn {
        width: 242px;
        padding: 17px 40px;
        align-items: center;
        justify-content: center;
        .img {
          width: 18px;
        }
        span {
          font-size: 18px;
        }
      }
    }
  }
}

footer {
  .footer {
    position: relative;
    padding: 80px 0 35px 0;
    background-color: #f9faf8;
    .to-top-btn {
      position: absolute;
      top: -39px;
      right: 50px;
      width: 78px;
    }
    .flex {
      justify-content: space-between;
      gap: 40px;
      padding-bottom: 80px;
      .l-cont {
        width: 50%;
        .logo {
          margin-bottom: 40px;
          height: 54px;
          img {
            height: 100%;
          }
        }
      }
      .r-cont {
        text-align: end;
        .info {
          font-size: 16px;
          line-height: 2;
        }
        .tel {
          transition: var(--trans);
        }
        .tel:hover {
          opacity: 0.7;
        }
      }
    }
    small {
      color: #3d3d3d;
      font-size: 12px;
      display: block;
      width: fit-content;
      margin: 0 auto;
    }
  }

  @media (max-width: 960px) {
    .footer {
      padding: 40px 0;
      .to-top-btn {
        position: absolute;
        top: -30px;
        right: 20px;
        width: 60px;
      }
      .flex {
        gap: 20px;
        padding-bottom: 40px;
        flex-direction: column;
        .l-cont {
          width: 100%;
          margin-bottom: 0;
          .logo {
            margin: 0px;
            height: 35px;
            img {
              object-fit: contain;
            }
          }
        }
        .r-cont {
          text-align: start;
          .info {
            font-size: 14px;
          }
        }
      }
      small {
        font-size: 10px;
      }
    }
  }
}

/* ----------------------------

下層ページ

------------------------------*/

.under-mv {
  position: relative;
  margin-top: 95px;
  padding: 120px 0;
  .flex {
    justify-content: space-between;
    align-items: center;
    .l-cont {
      width: 50%;
      .sub-title-area {
        display: flex;
        gap: clamp(0.625rem, -0.2801rem + 1.8832vw, 1.25rem);
        align-items: center;
        .logo {
          width: clamp(0.8125rem, 0.1789rem + 1.3183vw, 1.25rem);
          img {
            width: 100%;
          }
        }
        .sub-title {
          background: linear-gradient(to bottom, #4fb22f, #297b50);
          -webkit-background-clip: text;
          -webkit-text-fill-color: transparent;

          background-clip: text;
          color: transparent;
          font-size: 24px;
        }
      }
      .sec-title {
        font-size: clamp(1.875rem, 0.2458rem + 3.3898vw, 3rem);
        line-height: 1.5;
      }
    }
    .r-cont {
      width: 50%;
      p {
        padding-left: 80px;
        line-height: 2;
        font-size: 16px;
        @media (max-width: 960px) {
          padding-left: 0;
        }
      }
      .page-nav {
        width: fit-content;
        margin-left: auto;
        nav {
          ul {
            padding: 20px 30px;
            border-radius: 20px;
            display: flex;
            flex-direction: column;
            gap: 6px;
            background-color: #fff;
            li {
              width: fit-content;
              a {
                font-size: clamp(0.75rem, 0.3879rem + 0.7533vw, 1rem);
                text-wrap: nowrap;
                padding: 0 0 0 21px;
                position: relative;
                transition: var(--trans);
                display: block;
              }
              a::before {
                content: "";
                width: 6px;
                height: 1.5px;
                background-color: #96c90f;
                position: absolute;
                border-radius: 100px;
                top: 48%;
                left: 0;
              }
              a.active {
                color: #96c90f;
                scale: 1.03;
                translate: -3px;
                transition: all 0.3s ease;
              }
            }
            li:hover a {
              color: #96c90f;
              translate: -3px;
              scale: 1.03;
            }
          }
        }
      }
    }
  }
}

@media (max-width: 768px) {
  .under-mv {
    margin-top: 0px;
    padding-bottom: 60px;
    .flex {
      flex-direction: column;
      align-items: start;
      gap: 20px;
      .l-cont {
        width: 100%;
        .sub-title-area {
          .sub-title {
            font-size: 14px;
          }
        }
        .sec-title {
          font-size: clamp(1.5rem, 1.0924rem + 1.6304vw, 1.875rem);
        }
      }
      .r-cont {
        width: 100%;
        p {
          font-size: 14px;
        }
        .page-nav {
          nav {
            ul {
              padding: 15px 20px;
              gap: 5px;
              li {
                a {
                  padding: 0 0 0 8px;
                }
                a::before {
                  width: 3px;
                }
              }
            }
          }
        }
      }
    }
  }
  .flex.il {
    flex-direction: row;
  }
}

.features.under {
  margin-bottom: -80px;
  .note {
    font-size: 16px;
    line-height: 2;
    color: #7b7c7a;
    @media (max-width: 768px) {
      font-size: 14px;
    }
  }
  .btn-area {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 40px;
  }
  @media (max-width: 768px) {
    margin-bottom: -40px;
    padding-bottom: 120px;
    .btn-area {
      flex-direction: column;
      gap: 20px;
    }
  }
}

.service.under {
  background-image: none;
  padding-bottom: 240px;
  margin-bottom: -80px;
  .contents-wrapper {
    padding-bottom: 160px;
    padding-top: 160px;
    border-bottom: 1px solid #4fb22f;
  }
  .contents-wrapper:first-child {
    padding-top: 0px;
  }
  .contents-wrapper:last-child {
    border-bottom: 0;
    padding-bottom: 0px;
  }

  .contents.flex {
    align-items: center;

    .img-area {
      width: 50%;
      padding-right: clamp(2.5rem, -1.1205rem + 7.533vw, 5rem);
      img {
        border-radius: 20px;
      }
    }
    .text-area {
      width: 50%;
    }
  }
  .btn-center {
    margin-bottom: 0;
  }
  .btn-center.il {
    margin: 0 auto 0 0;
  }
  table {
    th {
      background-color: #f4f9ea;
    }
  }
  .mitsumori {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 27px 40px;
    border-radius: 20px;
    background-color: #fff;
  }
  .note {
    font-size: 16px;
    line-height: 2;
    color: #7b7c7a;
    @media (max-width: 768px) {
      font-size: 14px;
    }
  }
  .tag-area {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    .tag {
      background-color: #fff;
      padding: 10px 15px;
      border-radius: 20px;
      font-family: "Zen Kaku Gothic New", sans-serif;
      font-weight: 500;
      text-wrap: nowrap;
    }
  }
  @media (max-width: 768px) {
    padding-bottom: 120px;
    margin-bottom: -40px;
    .contents-wrapper {
      padding-bottom: 80px;
      padding-top: 80px;
      max-width: 600px;
      margin-left: auto;
      margin-right: auto;
    }
    .contents-wrapper:last-child {
      padding-bottom: 40px;
    }

    .contents.flex {
      align-items: center;
      flex-direction: column;
      gap: 30px;

      .img-area {
        width: 100%;
        padding-right: 0px;
      }
      .text-area {
        width: 100%;
      }
    }

    .mitsumori {
      padding: 14px 20px;
      span {
        font-size: 14px;
      }
    }

    .tag-area {
      gap: 5px;
      .tag {
        padding: 6px 10px;
        font-size: 14px;
      }
    }
  }
}

.company.under {
  padding-bottom: 240px;
  margin-bottom: -80px;
  .l-cont {
    width: 50%;
    .sec-title {
      font-size: clamp(1.5rem, 0.4138rem + 2.2599vw, 2.25rem);
      line-height: 1.7;
    }
    .owner {
      text-align: end;
      line-height: 2;
      .name {
        display: inline-block;
        padding-left: 10px;
      }
    }
  }
  .r-cont {
    width: 50%;
    padding-left: clamp(2.5rem, -1.1205rem + 7.533vw, 5rem);
    .img {
      width: 100%;
      img {
        width: 100%;
        border-radius: 20px;
      }
    }
  }
  .prof-wrap {
    display: flex;
    gap: 60px;

    ul {
      flex: 1;
      li {
        border-bottom: #c8d1b3 1px solid;
        padding: 30px 0;
        .title {
          width: 180px;
          h4 {
            font-size: 16px;
          }
        }
        .desc {
          flex: 1;
          p {
            font-size: 16px;
          }
        }
      }
      li:first-child {
        padding-top: 0;
      }
    }
  }
  @media (max-width: 768px) {
    padding-bottom: 120px;
    margin-bottom: -40px;
    .flex {
      flex-direction: column;
      max-width: 600px;
      margin-left: auto;
      margin-right: auto;
      gap: 30px;
    }
    .l-cont {
      width: 100%;
      .owner {
        font-size: 14px;
      }
    }
    .r-cont {
      width: 100%;
      padding-left: 0px;
    }
    .prof-wrap {
      flex-direction: column;
      gap: 15px;
      ul {
        li {
          padding: 15px 0;
          gap: 10px;
          .title {
            width: 180px;
            h4 {
              font-size: 14px;
            }
          }
          .desc {
            p {
              font-size: 14px;
            }
          }
        }
      }
    }
  }
}

.operation.under {
  .message {
    font-size: clamp(1.5rem, 0.4138rem + 2.2599vw, 2.25rem);
    text-align: center;
  }
  .flex {
    gap: 80px;
    align-items: center;
    .l-cont {
      width: 50%;
      .bg-g {
        background-color: #297b50;
        color: #fff;
        padding: 10px 20px;
        border-radius: 100px;
        width: fit-content;
        font-size: 18px;
      }
      h3 {
        line-height: 1.5;
        font-size: clamp(2.25rem, 1.1638rem + 2.2599vw, 3rem);
        .flex {
          gap: 0;
        }
        .t-s {
          font-size: clamp(1.125rem, 0.4009rem + 1.5066vw, 1.625rem);
        }
      }
    }
    .r-cont {
      width: 50%;
    }
  }

  @media (max-width: 768px) {
    .message {
      max-width: 500px;
      margin-left: auto;
      margin-right: auto;
      font-size: 18px;
    }
    .flex {
      flex-direction: column;
      align-items: center;
      gap: 30px;
      .l-cont {
        display: flex;
        align-items: center;
        flex-direction: column;
        width: 100%;
        max-width: 600px;
        .bg-g {
          padding: 5px 10px;
          font-size: 14px;
        }
        .point-area {
          padding: 0 20px;
        }
        h3 {
          line-height: 1.5;
          font-size: 30px;
          .flex {
            flex-direction: row;
          }
        }
      }
      .r-cont {
        width: 100%;
        max-width: 500px;
        margin-left: auto;
        margin-right: auto;
        padding: 0 20px;
      }
    }
  }
}
#worries_op,
#reason_op,
#voice_op,
#plan_op,
.cta-under,
.cta {
  .title-wrap {
    span {
      position: relative;
    }
    span::after {
      content: "";
      background-image: url(../img/triangle.svg);
      background-size: contain;
      background-repeat: no-repeat;
      width: 14px;
      height: 12px;
      position: absolute;
      bottom: -11px;
      left: 50%;
      translate: -50%;
    }
    .sec-title {
      font-size: clamp(1.875rem, 0.2458rem + 3.3898vw, 3rem);
    }
  }

  h4 {
    font-size: clamp(1.125rem, 0.4009rem + 1.5066vw, 1.625rem);
  }
}
#worries_op {
  background-color: #f5f9eb;
  .contents {
    .box {
      flex: auto;
      width: 33%;
      @media (max-width: 960px) {
        flex: 1;
        width: 100%;
      }
      h4 {
        text-wrap: nowrap;
      }
    }
  }
}
#reason_op {
  padding-bottom: 0;

  @media (max-width: 1300px) {
    .inner2 {
      width: calc(100vw - 40px);
    }
    .inner1 {
      width: 100%;
    }
  }
  .contents {
    flex-direction: column;
    gap: clamp(1.25rem, -0.5603rem + 3.7665vw, 2.5rem);
  }
  .box {
    display: block;

    .flex {
    }
    .text-area {
      flex: 2;
    }
    .img-area {
      flex: 1;
      padding-left: 5%;
      display: flex;
      align-items: center;
      justify-content: center;
    }
  }
  @media (max-width: 768px) {
    .contents {
      align-items: center;
    }

    .flex {
      flex-direction: column;
      align-items: center;
      gap: 20px;
    }
    .img-area {
      max-width: 300px;
      padding-left: 0;
      img {
        width: 100%;
        display: block;
        margin: 0 auto;
      }
    }
    .text-area {
      max-width: 400px;
      order: 2;
    }
  }
}
.cta-under {
  padding-top: 0;
  padding-bottom: 220px;
  text-align: center;
  h3 {
    font-size: 36px;
    line-height: 1.7;
  }
  .cta-box {
    background-color: #f5f9eb;
    border-radius: 20px;
    padding: clamp(1.875rem, -0.8404rem + 5.6497vw, 3.75rem);
    .tel {
      margin: 0 auto;
      display: flex;
      align-items: center;
      gap: 15px;
      span {
        font-size: clamp(2.125rem, -0.0473rem + 4.5198vw, 3.625rem);
        color: #297b50;
      }
    }
    .desc {
      font-size: 16px;
    }
    .btn-area {
      display: flex;
      justify-content: center;
      align-items: center;
      gap: 40px;
    }
  }
  @media (max-width: 768px) {
    padding-bottom: 110px;
    h3,
    p.mb60 {
      text-align: left;
    }
    h3{
      font-size: 20px;
    }
    .cta-box {
      .tel {
        gap: 5px;
        .img {
          width: 30px;
          img {
            translate: 0 2px;
          }
        }
      }
      .desc {
        font-size: 16px;
      }
      .btn-area {
        flex-direction: column;
        gap: 10px;
        .btn {
          gap: 10px;
          width: 242px;
          padding: 17px 40px;
          align-items: center;

          span {
            font-size: 18px;
          }
          .img {
            width: 18px;
          }
        }
      }
    }
  }
}

#plan_op {
  .table-wrap {
    table {
      margin-bottom: 0;
      tr {
        th {
          text-wrap: wrap;
          @media (max-width: 768px) {
            width: 130px;
            padding: 20px;
          }
        }
        td {
          padding: 20px;
          overflow-wrap: break-word;
        }
      }
      .price {
        td {
          padding: 0px;
          text-wrap: nowrap;
        }
      }
    }
  }
}

/* ------------------------------------------------------

実績一覧ページ

------------------------------------------------------*/

.website,
.movie {
  padding-bottom: 240px;
  margin-bottom: -80px;
  .tag-area {
    display: flex;
    gap: 10px 10px;
    flex-wrap: wrap;

    .tag {
      display: flex;
      align-items: center;
      gap: 8px;
      padding: 10px 15px;
      background-color: #fff;
      border-radius: 20px;
      transition: var(--trans);
     
      span {
        font-size: 16px;
        font-family: "Zen Kaku Gothic New", sans-serif;
        font-weight: 500;
      }
    }
    .tag.active {
      background-color: #297b50;
      transition: var(--trans);
      .tag-icon-svg {
        path {
          fill: #fff;
        }
        circle {
          fill: #297b50;
          stroke: #297b50;
        }
      }
      span {
        color: #fff;
      }
    }
    .tag.active:hover {
      scale: 1;
    }
    .tag:hover {
      scale: 1.05;
      background-color: #297b50;
      .tag-icon-svg {
        path {
          fill: #fff;
        }
        circle {
          fill: #297b50;
          stroke: #297b50;
        }
       
      }
      span {
        color: #fff;
      }
    }
  }
  .cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr); /* 3列 */
    grid-auto-rows: auto;
    gap: 60px 30px;
    width: 100%;
    li {
      transition: var(--trans);

      .card {
        display: flex;
        flex-direction: column;
        justify-content: space-between;
        width: 100%;
        .img {
          width: 100%;
          margin-bottom: 20px;
          aspect-ratio: 16 / 9;
          overflow: hidden;

          img {
            width: 100%;
            height: 100%;
            object-fit: cover;
          }
        }
        .wrap {
          h3.title {
            font-size: 16px;
            margin-bottom: 10px;
            flex: 1;
          }
          .tag-item {
            display: flex;
            justify-content: start;
            gap: 4px 10px;
            align-items: center;
            font-size: 12px;
            flex-wrap: wrap;

            .flex {
              width: fit-content;
              display: flex;
              flex-direction: row;
              align-items: center;
              gap: 4px;
              flex-wrap: nowrap;
            }
            .icon {
              width: 10px;
            }
            span {
              color: #7b7c7a;
              text-wrap: nowrap;
            }
          }
        }
      }
    }
    li:hover {
      scale: 1.02;
    }
  }
  @media (max-width: 768px) {
    padding-bottom: 120px;
    margin-bottom: -40px;
    .tag-area {
      gap: 5px 5px;

      .tag {
        gap: 4px;
        padding: 4px 8px;
        border-radius: 10px;
        span {
          font-size: 14px;
        }
      }
    }
    .cards {
      grid-template-columns: repeat(2, 1fr); 
      gap: 30px 10px;
      li {
        .card {
          .img{
            margin-bottom: 10px;
          }
          .wrap {
            h3.title {
              font-size: 14px;
              margin-bottom: 5px;
            }
            .tag-item {
              font-size: 10px;
            }
          }
        }
      }
    }
  }
}

.voice.under,
#voice_op {
  padding: 160px 0;
  padding-bottom: 240px;
  margin-bottom: -80px;
  .flex.cards {
    display: grid;
    grid-template-columns: repeat(2, 1fr); /* 2列 */
    grid-auto-rows: auto;
    gap: 40px;
    @media (max-width: 960px) {
      grid-template-columns: 1fr;
    }
    .card {
      display: flex;
      flex-direction: column;
      padding: 40px;
      background-color: #fff;
      border-radius: 20px;

      .title {
        font-size: clamp(1.25rem, 0.7069rem + 1.1299vw, 1.625rem);
      }
      .desc {
        padding-bottom: 30px;
        border-bottom: 1px #c8d1b3 solid;
        flex: 1;
      }
      .card-bottom {
        display: flex;
        justify-content: space-between;
        align-items: center;
        .l-cont {
          display: flex;
          flex-direction: column;
          gap: 10px;
          .name {
            font-size: 16px;
          }
          .url {
            font-size: 16px;
            color: #7b7c7a;
            transition: var(--trans);
          }
          .url:hover {
            opacity: 0.7;
          }
        }
        .thumbnail {
          width: 120px;
          aspect-ratio: 1 / 1;
          border-radius: 50%;
          overflow: hidden;
          display: grid;
          place-items: center;
          img {
            height: 100%;
            object-fit: cover;
          }
        }
      }
    }
  }
  @media (max-width: 768px) {
    padding: 80px 0;
    padding-bottom: 120px;
    margin-bottom: -40px;
    .flex.cards {
      gap: 20px;
      .card {
        padding: 30px;
        .card-bottom {
          gap: 30px;
          .l-cont {
            flex: 1;
            gap: 5px;
            .name {
              font-size: 14px;
            }
            .url {
              font-size: 14px;
            }
          }
          .thumbnail {
            width: 100px;
          }
        }
      }
    }
  }
}
#voice_op {
  background-color: #f5f9eb;
}
@media (max-width: 768px) {
  .voice.under {
    padding-top: 60px;
  }
}

.under.archive {
  padding-bottom: 240px;
  margin-bottom: -80px;
  .inner1 {
    .blog-list {
      display: flex;
      gap: clamp(1.25rem, 0.3992rem + 3.4904vw, 3.75rem);
      flex-wrap: wrap;
      li {
        width: calc(
          (100% - (clamp(1.25rem, 0.3992rem + 3.4904vw, 3.75rem) * 2)) / 3
        );
        transition: var(--trans);

        .card {
          display: flex;
          flex-direction: column;
          justify-content: space-between;
          width: 100%;
          .img {
            width: 100%;
            margin-bottom: 20px;
            aspect-ratio: 16 / 9;
            overflow: hidden;

            img {
              width: 100%;
              height: 100%;
              object-fit: cover;
              border-radius: 20px;
            }
          }
          h3.title {
            font-size: var(--16-14);
            margin-bottom: 10px;
            flex: 1;
          }
          .flex {
            gap: 20px;
            align-items: center;
            padding-top: 0;
            justify-content: start;
            margin: 0;
            .date {
              font-size: 14px;
            }
            .category {
              font-size: 12px;
              color: var(--color1);
            }
          }
        }
      }
      li:hover {
        scale: 1.02;
      }
    }
  }
}

@media (max-width: 768px) {
  .under.archive {
    padding-bottom: 100px;
    margin-bottom: -40px;
    .inner1 {
      .blog-list {
        li {
          width: calc(
            50% - (clamp(1.25rem, 0.3992rem + 3.4904vw, 3.75rem) / 2)
          );
          transition: var(--trans);

          .card {
            .img {
              margin-bottom: 10px;
            }
            h3.title {
              font-size: 14px;
              margin-bottom: 10px;
            }
            .flex {
              gap: 10px;
              flex-direction: row;
              .date {
                font-size: 14px;
              }
              .category {
                font-size: 10px;
              }
            }
          }
        }
      }
    }
  }
}
/* ----------------------------

制作実績 - 記事ページ

------------------------------*/
.under-mv.il {
  .l-cont {
    width: 100%;
  }
}
.under.works-blog {
  padding-bottom: 240px;
  margin-bottom: -80px;
  @media (max-width: 1300px) {
    padding-left: 40px;
    padding-right: 40px;
  }
  @media (max-width: 960px) {
    padding-bottom: 120px;
    margin-bottom: -40px;
    padding-left: 0px;
    padding-right: 0px;
  }
  .img {
    width: 100%;
    margin-right: auto;
    margin-left: auto;
    img {
      border-radius: 20px;
    }
  }
  video {
    aspect-ratio: 16 / 9;
    border-radius: 20px;
  }
  ul {
    li {
      display: flex;
      padding: 30px 0;
      border-bottom: 1px #c8d1b3 solid;

      .l-cont {
        width: 180px;
      }
      .r-cont {
        flex: 1;
        .url {
          transition: var(--trans);
        }
        .url:hover {
          color: var(--color1);
        }
        .flex {
          display: flex;
          gap: 8px;
          align-items: center;
        }
      }
      .r-cont.tag-area {
        display: flex;
        align-items: center;
        gap: 30px;
      }
    }
    li:last-child {
      border-bottom: 0;
    }
    @media (max-width: 768px) {
      li {
        flex-direction: column;
        gap: 10px;
        padding: 20px 0;
        font-size: 14px;
        .r-cont {
          .flex {
            gap: 4px;
          }
        }
        .r-cont.tag-area {
          gap: 15px;
        }
      }
    }
  }
}

/* ----------------------------

お問い合わせ

------------------------------*/

.under.contact {
  padding-bottom: 240px;
  margin-bottom: -80px;
  @media screen and (max-width: 768px) {
    .inner1 {
      display: contents;
    }
  }
  .contents {
    .info {
      text-align: center;

      .top-text {
        font-size: clamp(1.25rem, -0.1936rem + 3.0075vw, 2.25rem);
      }

      .desc {
        font-size: 16px;
        color: #333;
      }

      .workday {
        margin-bottom: 40px;
        font-size: 16px;
      }
      a {
        display: flex;
        gap: 10px;
        margin: 0 auto;
        align-items: center;
        justify-content: center;
        transition: var(--trans);
        .img {
          width: 52px;
          translate: 0 5px;
          img {
            width: 100%;
          }
        }
        span {
          font-size: 58px;
          color: #297b50;
          font-weight: 700;
        }
      }
      a:hover {
        opacity: 0.7;
      }
    }

    /* フォーム */
    .contact-area {
      background-color: #fff;
      border-radius: 40px;
      padding: 80px 20px;
      margin-bottom: 160px;

      table {
        max-width: 700px;
        margin: 0 auto;
        margin-bottom: 40px;
        width: 100%;

        tr {
          padding: 10px 0;
          display: flex;
          align-items: start;
          flex-direction: column;
          width: fit-content;
          width: 100%;

          th {
            padding: 0px 10px;
            font-size: 16px;
            margin: 20px 0;
          }

          th.il::after {
            content: "必須";
            padding: 2px 10px;
            background-color: var(--color1);
            color: #fff;
            font-size: 12px;
            border-radius: 100px;
            margin-left: 20px;
            font-weight: 400;
            font-family: "Zen Kaku Gothic New";
          }
        }
        tr.notes {
          margin-top: 20px;
          padding: 5px 10px;
          background-color: #f6cdaa;
          width: fit-content;
          border-radius: 2px;
          th {
            margin: 0;
            font-size: 14px;
            color: var(--color2);
            font-weight: 500;
          }
        }
        td {
          width: 100%;
        }
        td.half {
          width: 50%;
        }
        td.flex-area {
          display: flex;
          justify-content: space-between;
          gap: 20px;
          width: 70%;
          @media screen and (max-width: 768px) {
            gap: 5px;
            width: 100%;
          }
          .wrapper {
            display: flex;
            gap: 10px;
            align-items: center;
            width: 100%;
            text-wrap: nowrap;
          }
        }
        p {
          font-size: 14px;
          margin-bottom: 20px;
        }
      }

      .policy-desc {
        margin-bottom: 20px;
        text-align: center;
        font-size: 14px;
      }
      .check-area {
        margin-bottom: 40px;
        display: flex;
        justify-content: center;
      }
      .thanks-message {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 20px;
        margin: 60px 0;
        text-align: center;
        .thanks-title {
          font-size: 38px;
          color: var(--color1);
          font-weight: 700;
          margin-bottom: 10px;
        }
      }
    }
    .send-btn-area {
      display: flex;
      justify-content: center;
      align-items: center;
      gap: 20px;
    }

    .send-btn {
      background-color: var(--color1);
      border-radius: 30px;
      padding: 0px 30px;
      cursor: pointer;
      color: #fff;
      width: fit-content;
      border: 0;
      transition: var(--trans);
    }
    .send-btn:hover {
      scale: 1.02;
    }
    .back-btn {
      background-color: #eee;
      border-radius: 30px;
      padding: 0px 30px;
      border: 1px #eee solid;
      cursor: pointer;
      color: #999;
      width: fit-content;
      transition: var(--trans);
    }

    .back-btn:hover {
      scale: 1.02;
    }
  }
  .recha-info {
    font-size: 14px;
    padding-top: 40px;
    text-align: center;
  }
  .policy-area {
    h3 {
      font-size: 36px;
    }
    .policy-text-area {
      border-radius: 40px;
      background-color: #fff;
      overflow-y: auto;
      padding: 40px;
      height: 500px;
      p {
        font-size: 14px;
      }
    }

    .policy-text-area::-webkit-scrollbar {
      display: none;
    }
  }
}

input,
select,
textarea {
  width: 100%;
  height: 50px;
  border-radius: 4px;
  border: #999 0.5px solid;
  background-color: rgb(255, 255, 255, 0.6);
  padding: 10px;
  font-size: 16px;
}
textarea {
  height: 300px;
}

input[type="checkbox"] {
  width: 18px;
  height: 18px;
  translate: 0 3px;
  margin-right: 10px;
  border: 1px #3f3f3f solid;
  font-size: 16px;
  color-scheme: light; /* 強制的にライトテーマで描画 */
}

input,
select,
textarea:focus {
  outline: none;
  box-shadow: none;
}

@media (max-width: 768px) {
  .under.contact {
    padding-bottom: 120px;
    margin-bottom: -40px;
    .contents {
      padding: 0 20px;
      .info {
        .desc {
          font-size: 14px;
        }
        a {
          gap: 4px;
          margin: 0 auto 10px auto;
          span {
            font-size: 40px;
            text-wrap: nowrap;
          }
          .img {
            width: 30px;
          }
        }
        a:hover {
          opacity: 0.7;
        }
      }
      /* フォーム */
      .contact-area {
        padding: 40px 20px;
        margin-bottom: 40px;
        border-radius: 20px;
        table {
          tr {
            padding: 10px 0;
            th {
              font-size: 14px;
              margin: 10px 0;
            }

            th.il::after {
              padding: 2px 8px;
              font-size: 10px;
              margin-left: 10px;
            }
          }
          td {
            width: 100%;
          }
        }

        .policy-desc {
          font-size: 12px;
        }
        .check-area {
          font-size: 14px;
        }
        .thanks-message {
          gap: 10px;
          margin: 40px 0;
          .thanks-title {
            font-size: 20px;
          }
        }
      }
      .flex {
        .btn-privacy-policy {
          padding-left: 20px;
          margin-bottom: 60px;
        }
      }
      .recha-info {
        font-size: 12px;
      }
    }
    .policy-area {
      h3 {
        font-size: 20px;
      }
      .policy-text-area {
        padding: 20px;
        height: 300px;
        border-radius: 20px;
      }
    }
  }
}

/* ブログ記事ページ */

.under.blog {
  padding-top: 0;

  .blog-contents-area {
    width: 100%;
    min-height: 30vh;
    text-align: left;
    background-color: #fff;
    border-radius: 40px;
    padding: 40px 80px;

    .inner1 {
      width: 100%;
    }
  }

  .blog-dates {
    color: #5c5575;
    font-size: 14px;
  }
  .blog-page-title {
    padding: 20px 0;
    font-size: 24px;
    font-weight: 700;
  }
  .blog-content {
    padding: 40px 0;
  }
  .company-info {
    display: flex;
    flex-direction: column;

    h4 {
      font-size: 24px;
      font-weight: normal;
    }
    p.sub-title {
      font-size: 20px;
    }

    p {
      font-size: 16px;
    }
    a {
      text-decoration: none;
      font-size: 16px;
    }
    a.contact {
      text-decoration: none;
      font-size: 16px;
    }
  }
}

@media (max-width: 768px) {
  .under-bg.il {
    display: contents;
  }
  .under.blog {
    .blog-contents-area {
      padding: 40px 20px;
      border-radius: 40px;
      .inner1 {
        width: 100%;
      }
    }

    .blog-dates {
      font-size: 10px;
      margin-bottom: 20px;
    }
    .blog-page-title {
      font-size: 18px;
      padding: 0;
      margin-bottom: 10px;
    }
  }
}
/* ----------------------------

プライバシーポリシー

------------------------------*/

#privacy-policy {
  .policy-contents-area {
    background-color: #fff;
    border-radius: 80px;
    padding: 40px 80px;
  }

  h3 {
    font-weight: normal;
    margin: 30px 0 10px 0;
    font-size: 16px;
  }

  .title {
    text-align: center;
    margin-bottom: 40px;
    padding: 40 0px;
    font-size: 28px;
    font-weight: 700;
  }
  p,
  li {
    font-size: 14px;
  }

  .policy-info {
    margin: 40px 0;
  }
}

@media (max-width: 677px) {
  #privacy-policy {
    .inner2 {
      width: calc(100% - 20px);
    }
    .policy-contents-area {
      padding: 20px;
    }

    h3 {
      font-weight: normal;
      margin: 30px 0 10px 0;
    }

    .title {
      margin-bottom: 20px;
      padding: 0px;
    }

    .policy-info {
      margin: 40px 0;
    }
  }
}

/* ----------------------------

フェードインアニメーション

------------------------------*/

.fadeIn-wrap {
  overflow: hidden;
  opacity: 0;
  .inn {
    display: inline-block;
    opacity: 0;
    transform: matrix(1, 0.15, -0.15, 0.9, 0, 100);
    transition: 1.2s cubic-bezier(0, 1, 0.6, 1);
  }
  .inn2 {
    display: inline-block;
    opacity: 0;
    transform: matrix(1, 0.15, -0.15, 0.9, 0, 100);
    transition: 1.2s cubic-bezier(0.22, 1, 0.36, 1) 0.2s;
  }
  .inn3 {
    display: inline-block;
    opacity: 0;
    transform: matrix(1, 0, 0, 1, 0, 100);
    transition: 1.2s cubic-bezier(0.22, 1, 0.36, 1) 0.1s;
  }
  .inn4 {
    display: inline-block;
    opacity: 0;
    transform: matrix(1, 0, 0, 1, 0, 100);
    transition: 1.2s cubic-bezier(0.22, 1, 0.36, 1) 0.4s;
  }
}
.fadeIn-wrap.animated {
  opacity: 1;
  .inn,
  .inn2,
  .inn3,
  .inn4 {
    opacity: 1;
    transform: matrix(1, 0, 0, 1, 0, 0);
  }
}
.blur-in {
  opacity: 0;
  transition: 1s cubic-bezier(0.5, 1, 0.6, 1) 0.1s;
  filter: blur(10px);
}
.blur-in.animated {
  opacity: 1;
  filter: blur(0px);
}
.left {
  opacity: 0;
  transition: 1.6s cubic-bezier(0.5, 1, 0.6, 1) 0.1s;
  translate: -100px;
}
.left.animated {
  opacity: 1;
  translate: 0;
}

/* ----------------------------

固定フェードインアニメーション

------------------------------*/
.fadeIn-fixed {
  animation-name: fadeIn;
  animation-duration: 1.5s;
}

@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translate3d(0, 50px, 0);
  }

  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

/* ----------------------------

ページネーション

------------------------------*/

.page-nation {
  width: 100%;
  display: flex;
  justify-content: center;

  .wp-pagenavi {
    display: flex;
    gap: 15px;
    align-items: center;
    justify-content: center;
  }

  .wp-pagenavi a,
  .current {
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: 500;
    transition: all 0.3s;
    font-size: 16px;
  }
  .wp-pagenavi a:hover {
    color: var(--color1);
  }

  .current {
    color: var(--color1);
  }
}

/* ----------------------------

リキャプチャ非表示

------------------------------*/

.grecaptcha-badge {
  visibility: hidden;
}
