:root {
  --color1: #3a9900;
  --color2: #eac200;
  --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);
  --en: "Montserrat", sans-serif;
  --jp: "Noto Sans JP", sans-serif;
  --fz60-35: clamp(35px, 2.5vw + 15px, 60px);
  --fz14-12: clamp(12px, 0.2vw + 11px, 14px);
  --fz30-20: clamp(1.25rem, 0.9821rem + 1.0989vw, 1.875rem);
  --fz60-35: clamp(35px, 2.5vw + 15px, 60px);
}

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

共通項目

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

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

body {
  font-family: "Noto Sans JP";
  color: #383838;
  min-height: 100vh;
  overflow-x: hidden;
  line-height: 1.5;
  background-color: #fffdf7;
}
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;
  }
}

.jp-r {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
}
.jp-sb {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 600;
}
.jp-b {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
}
.en-m {
  font-family: "Montserrat", sans-serif;
  font-weight: 500;
}
.en-sb {
  font-family: "Montserrat", sans-serif;
  font-weight: 600;
}
.en-b {
  font-family: "Montserrat", sans-serif;
  font-weight: 700;
}

.title-wrap {
  display: flex;
  align-items: center;
  .l-cont {
    display: flex;
    align-items: center;
  }

  .sub-sec-title {
    display: block;
    font-family: "Montserrat", sans-serif;
    font-weight: 700;
    font-size: var(--fz60-35);
    color: var(--color1);
  }
  .sec-title {
    font-size: 14px;
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 600;
    color: #383838;
    margin-left: 30px;
    opacity: 0.6;
  }
  @media (max-width: 768px) {
    .sec-title {
      font-size: 12px;
      margin-left: 16px;
    }
  }
}

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

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

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

.inner1 {
  max-width: 1200px;
  width: calc(100% - 10.26vw);
  margin: 0 auto;
}

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

ボタン

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

.btn {
  display: flex;
  align-items: center;
  background-color: var(--color2);
  width: 200px;
  height: 60px;
  border-radius: 5px;
  transition: var(--trans);
  padding: 0 20px;
  position: relative;
  span {
    font-size: 18px;
    color: #fff;
  }
}
.btn::after {
  content: "";
  background-image: url(../img/arrow-r.svg);
  background-repeat: no-repeat;
  width: 10px;
  height: 9px;
  background-size: contain;
  position: absolute;
  right: 20px;
  top: 50%;
  translate: 0 -50%;
  display: block;
}
@media (max-width: 768px) {
  .btn {
    width: 180px;
    height: 55px;
    border-radius: 2px;
    padding: 0 15px;
    span {
      font-size: 16px;
    }
  }
  .btn::after {
    width: 8px;
    height: 8px;
    right: 10px;
  }
}

.btn:hover {
  translate: 0 -5px;
  box-shadow: 0px 10px 10px -6px rgba(0, 0, 0, 0.15);
}

.to-archive {
  width: 210px;
  height: 50px;
  font-size: 14px;
  display: grid;
  place-items: center;
  color: #fff;
  border-radius: 5px;
  font-weight: 700;
  transition: var(--trans);
  background-color: var(--color2);
  margin: 40px auto 40px 0;
  @media (max-width: 768px) {
    margin: 20px auto 20px 0;
  }
}
.to-archive:hover {
  translate: 0 -5px;
  box-shadow: 0px 10px 10px -6px rgba(0, 0, 0, 0.15);
}

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

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

ヘッダー

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

header {
  position: fixed;
  width: 100vw;
  height: clamp(55px, 4vw + 35px, 76px);
  z-index: 800;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  background-color: rgb(255, 255, 255, 0.35);
  display: grid;
  place-items: center;
  .header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 30px;
    width: calc(100vw - 40px);
    max-width: 1650px;
    margin: 0 auto;
    @media (max-width: 960px) {
      width: 100%;
    }
    .logo {
      height: clamp(25px, 2vw + 20px, 36px);
      img {
        height: 100%;
      }
      @media (max-width: 960px) {
        margin-left: 20px;
      }
    }
    .spacer {
      flex: 1;
    }
    nav {
      ul.flex {
        li {
          transition: var(--trans);
          a {
            font-size: 16px;
            padding: 30px 18px;
            font-family: var(--en);
            font-weight: 600;
          }
        }
        li:last-child {
          a {
            padding-right: 0;
          }
        }
        li:hover {
          color: var(--color2);
        }
      }
      @media (max-width: 1100px) {
        display: none;
      }
    }
    .h-contact-btn {
      display: block;
      height: 50px;
      width: 138px;
      background-color: var(--color2);
      display: grid;
      place-items: center;
      border-radius: 5px;
      transition: var(--trans);
      font-family: "Montserrat", sans-serif;
      font-weight: 600;
      span {
        font-size: 16px;
        color: #fff;
      }
      @media (max-width: 1100px) {
        display: none;
      }
    }
    .h-contact-btn:hover {
      scale: 1.03;
    }
  }
}

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

  .box {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 4px;
    height: 40px;
    width: 40px;
    border-radius: 2px;
    position: relative;
    z-index: 999;
    background-color: #eac200;

    span {
      display: block;
      height: 2px;
      width: 16px;
      background: #fff;
      transition: 0.2s all ease-in-out;
      border-radius: 100px;
    }
  }
}

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

/* spメニュー */

#sp-header {
  width: 100vw;
  max-width: 500px;
  height: 100vh;
  position: fixed;
  top: 0;
  right: -100%;
  transition: var(--trans);
  background-color: #eac200;
  padding: 60px 65px;
  z-index: 800;
  nav {
    .sp-menu {
      margin-bottom: 25px;
      li {
        border-bottom: 1px #efd038 solid;
        text-align: center;
        transition: var(--trans);
        width: 100%;
        a {
          font-family: var(--en);
          font-weight: 600;
          width: 100%;
          display: inline-block;
          padding: 15px 0;
          font-size: 16px;
        }
        a:hover {
          color: #fff;
        }
      }
      li:last-child {
        border-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;
          }
        }
      }
    }
  }
  .h-tel-btn {
    border-radius: 2px;
    background-color: #fff;
    padding: 15px 15px 30px;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
    width: 100%;
    img {
      width: 20px;
    }
    span {
      font-size: 28px;
      letter-spacing: 0;
      position: relative;
      text-wrap: nowrap;
    }
    span::after {
      content: "受付時間　平日9:00～17:00";
      position: absolute;
      left: 0;
      bottom: -1em;
      font-size: 12px;
      font-weight: 500;
      font-family: var(--jp);
    }
  }
}

#sp-header.active {
  right: 0;
}

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

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

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

.mv {
  margin-top: clamp(60px, 5vw + 35px, 86px);
  position: relative;
  background-image: url(../img/mv-background.jpg);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  padding: 43px 0 77px;

  .flex {
    width: calc(100% - 10.26vw);
    margin: 0 auto;
    align-items: center;
    max-width: 1336px;
    gap: 4%;
  }
  .text-area {
    width: 438px;
    @media (max-width: 800px) {
      width: 290px;
    }
    .mv-sub-title {
      font-size: clamp(14px, 0.5vw + 12px, 18px);
      color: var(--color1);
    }
    .sec-title {
      font-size: clamp(30px, 3vw + 18px, 58px);
      line-height: 1.25;
    }
  }
  .img-area {
    flex: 1;
    animation: updown 2.5s infinite ease-in-out;
    img {
      width: 100%;
    }
  }
}
@media (max-width: 768px) {
  .mv {
    padding: 40px 0;
    .flex {
      flex-direction: column;
      gap: 40px;
      .text-area {
        order: 2;
        width: 100%;
      }
    }
  }
}

.service {
  position: relative;
  .grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-auto-rows: auto;
    gap: clamp(15px, 0.0165vw + 8.6px, 30px);
    align-items: stretch;
    @media (max-width: 960px) {
      grid-template-columns: repeat(2, 1fr);
    }
    @media (max-width: 667px) {
      grid-template-columns: 1fr;
    }
    .card {
      background-color: #f8f8e8;
      border-radius: 5px;
      padding: 60px 30px;
      display: flex;
      flex-direction: column;
      .card-img {
        padding: 0 20px;
        margin-right: auto;
        margin-left: auto;
        display: grid;
        place-items: center;
        img{
          border-radius: 5px;
        }
      }
      .card-title {
        font-size: clamp(18px, 0.5vw + 16px, 22px);
        font-family: var(--jp);
        font-weight: 600;
        flex: 1;
      }
      .card-desc{
        flex: 1;
      }
    }
  }
  .btn {
    margin-right: auto;
    margin-left: auto;
  }
  .bgp1,
  .bgp2,
  .bgp3 {
    position: absolute;
    animation: updown 2.5s infinite ease-in-out;
    width:clamp(4.875rem, 3.7031rem + 3.75vw, 6.75rem);
  }
  .bgp1 {
    top: 0;
    right: -1%;
  }
  .bgp2 {
    bottom: 0;
    left: -1%;
    animation-delay: 1s;
  }
  .bgp3 {
    bottom: 0;
    right: -1%;
  }
}
@media (max-width: 768px) {
  .service {
    .grid {
      .card {
        border-radius: 2px;
        padding: 30px 20px;
        .card-img {
          padding: 15px 50px 0;
          img{
            border-radius: 2px;
          }
        }
        .card-desc {
          font-size: 14px;
        }
      }
    }
  }
}

.about {
  .about-bg {
    padding: 120px 0;
    background-image: url(../img/about-background.jpg);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
  }
  .title-wrap {
    display: flex;
    justify-content: space-between;
    .l-cont {
      display: flex;
      align-items: center;
      .sub-sec-title {
        color: #fff;
      }
      .sec-title {
        color: #fff;
      }
    }
    .r-cont {
      width: 41.6666%;
      max-width: 500px;
      .desc {
        color: #fff;
      }
    }
  }
  .box-area {
    display: flex;
    gap: 5%;
    .box {
      flex: 1;
      backdrop-filter: blur(10px);
      -webkit-backdrop-filter: blur(10px);
      background-color: rgb(255, 255, 255, 0.35);
      border-radius: 5px;
      border: 1px #fff solid;
      padding: 30px;
      transition: var(--trans);
      display: flex;
     flex-direction: column;
     justify-content: flex-end;
      .img {
        height: clamp(10.125rem, 7.9286rem + 9.011vw, 15.25rem);
        padding-right: 50px;
        picture{
          display: flex;
          justify-content: end;
          height: 100%;
          img {
            height: 100%;
            object-fit: contain;
          }
        }
      }
      .flex {
        align-items: end;
        justify-content: space-between;
      }
      .box-sub-title {
        font-size: 18px;
        color: #fff;
      }
      .box-title {
        color: #fff;
        font-size: clamp(20px, 0.011vw + 15.7px, 30px);
      }
    }
    .box:hover {
      background-color: transparent;
      svg {
        circle {
          fill: #3a9900;
        }
        path {
          fill: #fff;
        }
      }
    }
  }
}

@media (max-width: 768px) {
  .about {
    .about-bg {
      padding: 60px 0;
    }
    .title-wrap {
      flex-direction: column;
      gap: 20px;
      align-items: start;
      .r-cont {
        width: 100%;
        max-width: auto;
      }
    }
    .box-area {
      flex-direction: column;
      gap: 30px;
      .box {
        width: 100%;
        border-radius: 2px;
        padding: 20px;
        .img {
          padding-right: 20px;
        }
        .box-sub-title {
          font-size: 14px;
        }
        .btn-area {
          width: 30px;
        }
      }
    }
  }
}
.case {
  position: relative;
  padding-bottom: 120px;
  .grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr); /* 3列 */
    @media (max-width: 960px) {
      grid-template-columns: repeat(2, 1fr);
    }
    grid-auto-rows: auto;
    gap: 60px 30px;
    a.flex {
      width: auto;
      display: flex;
      flex-direction: column;
      transition: var(--trans);
      .img {
        width: 100%;
        height: auto;
        aspect-ratio: 19 / 13;
        overflow: hidden;
        display: flex;
        align-items: center;
        justify-content: center;
        img {
          width: 100%;
        }
      }
      h3.title {
        font-size: clamp(14px, 0.0022vw + 13.14px, 16px);
        display: -webkit-box;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;   /* 行数を指定 */
        overflow: hidden;
        text-overflow: ellipsis;
        line-clamp: 2;           /* 新仕様（対応ブラウザ向け） */
        word-break: break-word;  /* 英単語が長い場合でも崩れにくく */
      }
    }
    a.flex:hover {
      scale: 1.02;
    }
  }
  .bgp1,
  .bgp2,
  .bgp3 {
    position: absolute;
    animation: updown 2.5s infinite ease-in-out;
    width:clamp(4.875rem, 3.7031rem + 3.75vw, 6.75rem);
  }
  .bgp1 {
    bottom: -2.2%;
    right: -1.5%;
  }
  .bgp2 {
    bottom: 0;
    right: 20%;
    animation-delay: 1s;
  }
  .bgp3 {
    bottom: -4%;
    left: -1%;
  }
}

@media (max-width: 768px) {
  .case {
    padding-bottom: 60px;
    .grid {
      gap: 30px 20px;
      .date {
        font-size: 14px;
      }
    }
  }
}

.news {
  .flex {
    display: flex;
    justify-content: space-between;
    min-height: 30vh;
  }
  .l-cont {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    .sec-title {
      color: var(--color1);
      font-size: var(--fz60-35);
      overflow: hidden;             
      text-overflow: ellipsis;      
      white-space: nowrap;   
    }
  }
  .r-cont {
    width: 66.666%;
    max-width: 800px;
    ul {
      li {
        border-bottom: 1px solid #e1e1e1;
        cursor: pointer;
      }
      li:first-child {
        border-top: 1px solid #e1e1e1;
      }
      li:hover {
        a {
          scale: 1.01;
          .title {
            color: var(--color2);
          }
        }
      }
      a.flex {
        width: 100%;
        flex-direction: column;
        gap: 20px;
        padding: 30px 0;
        padding-right: 50px;
        transition: var(--trans);
        position: relative;
        min-height: 0;
        .news-wrap {
          display: flex;
          align-items: center;
          gap: 20px;
          time {
            font-size: 16px;
          }
          .category {
            display: block;
            padding: 4px 8px;
            font-size: 12px;
            background-color: #fff7c9;
            border-radius: 2px;
          }
        }
        .title {
          transition: var(--trans);
          font-size: 16px;
        }
      }
      a.flex::after {
        content: "";
        background-image: url(../img/news-btn.svg);
        background-repeat: no-repeat;
        background-size: contain;
        width: 40px;
        height: 40px;
        position: absolute;
        right: 0;
        top: 50%;
        translate: 0 -50%;
      }
    }
  }
}

@media (max-width: 768px) {
  .news {
    .flex {
      flex-direction: column;
    }
    .l-cont {
      display: contents;
      .sec-title {
        order: 1;
        margin-bottom: 30px;
      }
      .btn {
        order: 3;
      }
    }
    .r-cont {
      order: 2;
      width: 100%;
      max-width: auto;
      margin-bottom: 40px;
      ul {
        li::after {
          width: 30px;
          height: 30px;
        }
        a.flex {
          gap: 10px;
          padding: 20px 0;
          padding-right: 40px;
          .news-wrap {
            gap: 10px;
            time {
              font-size: 14px;
            }
            .category {
              font-size: 9px;
            }
          }
          .title {
            font-size: 14px;
          }
        }

      }
    }
  }
}

.contact {
  padding: 80px 0;
  background-image: url(../img/contact-background.jpg);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;

  .sec-title {
    color: #fff;
    text-align: center;
    font-size: var(--fz60-35);
  }

  .flex {
    margin-left: auto;
    margin-right: auto;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: clamp(20px, 0.022vw + 11.42px, 40px);
    .btn {
      width: 500px;
      height: 100px;
      justify-content: center;
    }
    .btn::after {
      display: none;
    }
    .btn:hover {
      translate: 0 0;
      box-shadow: none;
      background-color: transparent;
      span {
        color: #fff;
      }
      svg {
        path,
        rect {
          stroke: #fff;
        }
      }
    }
    .tel-btn {
      background-color: transparent;
      border: 2px #fff solid;
      display: flex;
      align-items: center;
      justify-content: center;
      .tel-area {
        display: flex;
        gap: 15px;
        img {
          width: 27px;
          translate: 0 5px;
        }
      }
      .text-area {
        span {
          display: block;
          font-size: clamp(1.75rem, 1.4286rem + 0.8571vw, 2.125rem);
          line-height: 1.2;
        }
        .note {
          font-size: 14px;
        }
      }
    }
    .mail-btn {
      background-color: #fff;
      display: flex;
      align-items: center;
      border: 2px #fff solid;
      .mail-area {
        display: flex;
        gap: 15px;
        align-items: center;
      }
      span {
        color: var(--color1);
      }
    }
  }

  .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) {
  .contact {
    padding: 40px 0;
    .flex {
      flex-direction: column;
      .btn {
        width: 100%;
        max-width: 500px;
      }
      .btn::after {
        display: none;
      }
      .tel-btn {
        background-color: transparent;
        border: 2px #fff solid;
        display: flex;
        align-items: center;
        justify-content: center;
        .tel-area {
          display: flex;
          gap: 15px;
          img {
            width: 27px;
            translate: 0 5px;
          }
        }
        .text-area {
          span {
            display: block;
            font-size: clamp(28px, 0.0066vw + 25.43px, 34px);
            line-height: 1.2;
          }
          .note {
            font-size: 14px;
          }
        }
      }
      .mail-btn {
        background-color: #fff;
        display: flex;
        align-items: center;
        border: 2px #fff solid;
        .mail-area {
          display: flex;
          gap: 15px;
          align-items: center;
        }
        span {
          color: var(--color1);
        }
      }
    }

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

footer {
  .footer {
    padding: 80px 0;
    background-color: #f8f8e8;
    position: relative;
    background-color: #f9faf8;
    .to-top-btn {
      position: absolute;
      top: -31px;
      right: 50px;
      transition: var(--trans);
    }
    .to-top-btn:hover {
      translate: 0 -5px;
    }

    .logo {
      margin-bottom: 40px;
      height: clamp(25px, 2vw + 20px, 36px);
      img {
        height: 100%;
      }
    }
    .add {
      font-size: 14px;
    }
    small {
      font-size: 12px;
      display: block;
      margin-right: 0;
      margin-left: auto;
      width: fit-content;
    }
  }
}
@media (max-width: 768px) {
  footer {
    .footer {
      padding: 40px 0;
      .to-top-btn {
        width: 50px;
        top: -25px;
        right: 20px;
      }

      .logo {
        margin-bottom: 20px;
      }
      small {
        font-size: 10px;
      }
    }
  }
}

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

下層ページ

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

.under-mv {
  position: relative;
  margin-top: clamp(60px, 5vw + 35px, 86px);
  padding: 40px 0;
  background-image: url(../img/mv-background.jpg);
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  margin-bottom: 20px;
  .flex {
    justify-content: space-between;
    align-items: center;
    .text-area {
      .sub-title {
        color: var(--color1);
        font-size: var(--fz60-35);
      }
      .sec-title {
        font-size: var(--fz14-12);
        opacity: 0.6;
      }
    }
    .img-area {
      height: 19vw;
      img {
        height: 100%;
        object-fit: contain;
      }
    }
  }
}

@media (max-width: 768px) {
  .under-mv {
    .flex {
      .sub-title{
        display: inline-block;
      line-height: 1;
      padding-bottom: 0.1em;
      }
      .img-area {
        height: 100px;
      }
    }
  }
}
.page-nav-area {
  .flex {
    gap: 15px;
    align-items: start;
    @media (max-width: 768px) {
      gap: 8px;
    }
    a {
      color: #aeaeae;
      font-size: var(--fz14-12);
      text-wrap: nowrap;
    }
    img {
      width: 8px;
      height: 8px;
      object-fit: contain;
      translate: 0 6px;
    }
    span {
      font-size: var(--fz14-12);
    }
  }
}

.strengths.under {
  .flex {
    gap: 6.6666%;
    align-items: center;
    .text-area {
      width: 50%;
      span {
        font-size: 18px;
        color: var(--color1);
        display: block;
        margin-bottom: 6px;
      }
      h3 {
        font-size: var(--fz30-20);
      }
    }
    .img-area {
      width: 50%;
      img {
        border-radius: 5px;
      }
    }
  }
}
@media (max-width: 768px) {
  .strengths.under {
    .flex {
      flex-direction: column;
      gap: 30px;
      align-items: center;
      .text-area {
        width: 100%;
        order: 1;
        span {
          font-size: 14px;
        }
      }
      .img-area {
        width: 100%;
        order: 2;
        img {
          border-radius: 2px;
        }
      }
    }
  }
}

.service.under {
  ul {
    display: flex;
    flex-direction: column;
    gap: clamp(40px, 0.044vw + 22.84px, 80px);
    li {
      background-color: #f8f8e8;
      border-radius: 5px;
      padding: 3.33% 6.66%;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 5%;
      .text-area {
        max-width: 600px;
        width: 58%;
        .card-title {
          font-size: var(--fz30-20);
        }

        .service-box {
          background-color: #fff;
          border-radius: 5px;
          padding: 5%;
          font-size: 16px;
          display: flex;
          flex-direction: column;
          gap: 5px;
          @media (max-width: 960px) {
            font-size: 14px;
          }
        }
      }
      .card-img {
        width: 36.5%;
      }
    }
  }
}
@media (max-width: 768px) {
  .service.under {
    ul {
      li {
        border-radius: 2px;
        flex-direction: column;
        gap: 30px;
        padding: 20px;
        .text-area {
          max-width: auto;
          width: 100%;

          .service-box {
            border-radius: 2px;
          }
        }
        .card-img {
          width: 76.5%;
        }
      }
    }
  }
}

.company.under {
  .message {
    background-color: #f8f8e8;
    border-radius: 5px;
    padding: 60px 80px;
    .sub-title {
      color: var(--color1);
      font-size: 18px;
      margin-bottom: 6px;
      display: block;
    }
    .title {
      font-size: var(--fz30-20);
    }
    .text-r {
      text-align: end;
      font-size: 16px;
      opacity: 0.6;
    }
    .text-r.il {
      opacity: 1;
      span {
        opacity: 0.6;
      }
      span:last-child {
        opacity: 1;
        display: inline-block;
        padding-left: 10px;
      }
    }
  }

  .philosophy,
  .mission,
  .vision,
  .overview {
    .flex {
      justify-content: space-between;
      align-items: center;
    }
    .text-area {
      width: 50%;
    }
    .img-area {
      width: 50%;
    }
    .content-title-wrap {
      display: flex;
      align-items: center;
      gap: 30px;
      .sub-title {
        color: var(--color1);
        font-size: var(--fz60-35);
        font-family: var(--en);
        font-weight: 700;
      }
      .content-title {
        font-size: 14px;
        font-family: var(--jp);
        opacity: 0.6;
      }
    }
    .title {
      font-size: var(--fz30-20);
    }
  }

  .philosophy {
    background-color: #63b42c;
    padding: 120px 0;
    .content-title-wrap {
      .sub-title {
        color: #fff;
      }
      .content-title {
        color: #fff;
      }
    }
    .title {
      color: #fff;
    }
    .desc {
      color: #fff;
    }
  }

  .vision {
    padding: 120px 0;
    background-color: #f8f8e8;
  }
  .overview {
    dl {
      display: grid;
      grid-template-columns: 200px 1fr;
      dt {
        border-bottom: 1px solid #3a9900;
        font-weight: 600;
        padding: 30px 0;
        font-size: 16px;
      }
      dd {
        border-bottom: 1px solid #e5e5e5;
        line-height: 2;
        padding: 30px;
        font-size: 16px;
      }
    }
  }
}

@media (max-width: 768px) {
  .company.under {
    .message {
      border-radius: 2px;
      padding: 20px;
      .sub-title {
        font-size: 14px;
      }
      .text-r {
        font-size: 14px;
      }
    }

    .philosophy,
    .mission,
    .vision,
    .overview {
      .flex {
        flex-direction: column;
        gap: 30px;
      }
      .text-area {
        width: 100%;
        order: 1;
      }
      .img-area {
        width: 100%;
        order: 2;
      }
      .content-title-wrap {
        display: flex;
        align-items: center;
        gap: 30px;
        .content-title {
          font-size: 14px;
          font-family: var(--jp);
        }
      }
    }

    .philosophy {
      padding: 60px 0;
    }

    .vision {
      padding: 60px 0;
    }
    .overview {
      dl {
        display: grid;
        grid-template-columns: 1fr;
        dt {
          padding: 20px 0 0 0;

          font-size: 14px;
          border-bottom: 0;
        }
        dd {
          padding: 10px 0 20px;
          font-size: 14px;
        }
        dd:last-child {
          border-bottom: 0;
        }
      }
    }
  }
}

.under.archive {
  .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;
          .img {
            width: 100%;
            margin-bottom: 20px;
            aspect-ratio: 16 / 9;
            overflow: hidden;

            img {
              width: 100%;
              height: 100%;
              object-fit: cover;
              border-radius: 5px;
            }
          }
          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 {
              display: block;
              padding: 4px 8px;
              font-size: 12px;
              background-color: #fff7c9;
              border-radius: 2px;
            }
          }
        }
      }
      li:hover {
        scale: 1.02;
      }
    }
  }
}

@media (max-width: 768px) {
  .under.archive {
    .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;
              border-radius: 2px;
            }
            h3.title {
              font-size: 14px;
              margin-bottom: 10px;
            }
            .flex {
              gap: 10px;
              flex-direction: row;
              .date {
                font-size: 14px;
              }
              .category {
                font-size: 10px;
              }
            }
          }
        }
      }
    }
  }
}

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

お問い合わせ

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

.contact.under {
  background-image: none;
  padding: 0;
  @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 {
        font-size: 16px;
      }
      a {
        display: flex;
        gap: 10px;
        margin: 0 auto;
        align-items: center;
        justify-content: center;
        transition: var(--trans);
        .img {
          width: 40px;
          img {
            width: 100%;
          }
        }
        span {
          font-size: 58px;
          color: var(--color1);
          font-weight: 700;
        }
      }
      a:hover {
        opacity: 0.7;
      }
    }

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

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

        tr {
          padding: 20px 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;
          }
        }
        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;
        }
        .desc{
          color: #383838;
        }
      }
    }
    .send-btn-area {
      display: flex;
      justify-content: center;
      align-items: center;
      gap: 20px;
    }

    .send-btn {
      background-color: var(--color2);
      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: 5px;
      background-color: #f8f8e8;
      overflow-y: auto;
      padding: 40px;
      height: 500px;
      p {
        font-size: 14px;
        color: #383838;
        text-align: left;
      }
    }

    .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;
        p{
          font-size: 12px;
        }
      }
    }
  }
}

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

.under.blog {
  padding-top: 0;

  .blog-contents-area {
    min-height: 30vh;
    text-align: left;

    .inner1 {
      width: 100%;
    }
  }

  .blog-dates {
    font-size: 14px;
    padding-bottom: 40px;
    border-bottom: 1px #eaeaea solid;
  }
  .blog-page-title {
    padding: 20px 0;
    font-size: var(--fz30-20);
    font-weight: 700;
  }
}

@media (max-width: 768px) {
  .under-bg.il {
    display: contents;
  }
  .under.blog {
    .blog-dates {
      font-size: 10px;
    }
    .blog-page-title {
      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: "Noto Sans JP", sans-serif;
    font-weight: 500;
    transition: all 0.3s;
    font-size: 16px;
  }
  .wp-pagenavi a:hover {
    background-color: var(--color1);
    color: #fff;
  }

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

  .nextpostslink {
    width: 40px;
    aspect-ratio: 1;
    padding: 0;
    svg {
      width: 17px;
      height: 9px;
    }
  }
}

/*

アニメーション - キーフレーム

*/

@keyframes updown {
  0% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(10px);
  }
  100% {
    transform: translateY(0);
  }
}

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

リキャプチャ非表示

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

.grecaptcha-badge {
  visibility: hidden;
}
