@charset "UTF-8";
:root {
  --viewport-width: min(100vw, 1600px);
  --b: calc(var(--viewport-width) / 160);
}

/*
Theme Name: Twenty Twenty-one Child
Version: 1.6
Template: twentytwentyone
*/
body {
  background-color: #fff;
}

* {
  color: #363636;
  font-family: YakuHanJP, "Noto Sans JP", sans-serif;
  font-size: max(1.6rem, 14px);
  font-weight: 500;
  line-height: 2;
  letter-spacing: 0.1em;
}

a > *,
button > * {
  pointer-events: none;
  color: inherit;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  letter-spacing: inherit;
}

a,
button {
  display: block;
}

span {
  display: inline-block;
  color: inherit;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  letter-spacing: inherit;
}

.nolink {
  pointer-events: none;
  opacity: 0.6;
}

#gt-nvframe {
  display: none !important;
}

font {
  font-size: inherit;
  font-family: inherit;
  line-height: inherit;
  font-weight: inherit;
  font-style: inherit;
  letter-spacing: inherit;
  color: inherit;
}

#header {
  position: fixed;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: max(1rem, 5px);
  top: 0;
  left: 0;
  right: 0;
  width: 100vw;
  height: max(12.7rem, 127px);
  padding: 0 max(3rem, 10px);
  z-index: 9999;
  background: linear-gradient(180deg, #FFFFFF, transparent);
}
@media screen and (max-width: 1000px) {
  #header {
    height: max(8rem, 80px);
  }
}
@media screen and (max-width: 550px) {
  #header {
    height: 65px;
  }
}
#header .header__logo {
  width: max(26rem, 160px);
  z-index: 9999;
}
#header .header__logo .header__logo-text {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}
@media screen and (max-width: 768px) {
  #header .header__logo {
    margin-top: -2%;
  }
}
#header .header__logo a {
  padding: 0;
}
#header .header__flex {
  flex: 1;
  padding-top: max(1rem, 11px);
}
#header .header__nav {
  display: flex;
  justify-content: flex-end;
  gap: max(1rem, 10px);
}
@media screen and (max-width: 768px) {
  #header .header__nav {
    display: none;
  }
}
#header .header__nav--list {
  display: flex;
  align-items: center;
  justify-content: space-evenly;
  border-radius: 0.4rem;
  background-color: #fff;
  box-shadow: 0px 3px 6px #00000029;
}
@media screen and (max-width: 1000px) {
  #header .header__nav--list {
    display: none;
  }
}
#header .header__nav--list.menu {
  flex: 1;
  max-width: 850px;
}
#header .header__nav--list.contact {
  width: 14%;
  max-width: 190px;
  min-width: 110px;
  background: linear-gradient(180deg, #30B8D8, #007E9B);
  transition: 0.2s;
}
#header .header__nav--list.contact:hover {
  opacity: 0.3;
}
#header .header__nav--list.langage {
  width: 7%;
  max-width: 110px;
  min-width: 67px;
  background-color: transparent;
  box-shadow: initial;
}
#header .header__nav--list.map {
  width: 80px;
  background-color: transparent;
  box-shadow: initial;
  margin-right: max(1rem, 10px);
}
#header .header__nav--list.sp {
  display: none;
}
@media screen and (max-width: 1000px) {
  #header .header__nav--list.sp {
    display: block;
    background: transparent;
    box-shadow: none;
    min-width: 70px;
    z-index: 9999;
  }
}
#header .header__nav--list .header__nav--item a {
  color: #363636;
  font-size: max(1.4rem, 12px);
  text-align: center;
  padding: 1.5rem 1rem;
  transition: 0.25s;
}
#header .header__nav--list .header__nav--item a img {
  width: max(1.5rem, 12px);
  transform: translate(20%, -20%);
}
#header .header__nav--list .header__nav--item a img.langage {
  width: max(1.8rem, 12px);
  transform: translate(-45%, -20%);
}
#header .header__nav--list .header__nav--item a span {
  font-family: "Questrial", sans-serif;
  color: #3A9447;
  line-height: 1;
  display: block;
}
#header .header__nav--list .header__nav--item a:hover {
  opacity: 0.3;
}
#header .header__nav--list .header__nav--item.contact img {
  width: max(1.8rem, 12px);
  transform: translate(-20%, -20%);
}
#header .header__nav--list .header__nav--item.contact a {
  color: #ffffff;
}
#header .header__nav--list .header__nav--item.contact a span {
  color: #ffffff;
}
#header .header__nav--list .header__nav--item.contact a:hover {
  opacity: 1;
}
#header .header__nav--list .header__nav--item.map img {
  width: max(1.1rem, 14px);
  transform: translate(-10%, -12%);
}
#header .header__nav--list .header__nav--item.map a {
  padding: 0;
  font-weight: 400;
}
#header .header__nav--list .header__nav--item.langage {
  display: flex;
  align-items: center;
  color: #363636;
}
@media screen and (max-width: 1000px) {
  #header .header__nav--list .header__nav--item.langage {
    justify-content: end;
  }
}
@media screen and (max-width: 550px) {
  #header .header__nav--list .header__nav--item.langage {
    justify-content: center;
  }
}
#header .header__nav--list .header__nav--item.langage img {
  width: max(1.8rem, 12px);
  transform: translate(-45%, -20%);
}
#header .header__nav--list .header__nav--item.langage a {
  color: #363636;
  padding: 0;
  transition: 0.25s;
  font-family: "Questrial", sans-serif;
}
#header .header__nav--list .header__nav--item.langage a:hover {
  color: #3A9447;
}
#header .header__toggle {
  display: none;
}
@media screen and (max-width: 1000px) {
  #header .header__toggle {
    position: relative;
    display: block;
    width: 23px;
    height: 16px;
    z-index: 99999;
  }
}
#header .header__toggle--line {
  position: absolute;
  left: 0;
  right: 0;
  width: 100%;
  height: 1px;
  background: #fff;
  transition: 0.3s;
}
#header .header__toggle--line:nth-of-type(1) {
  top: 0;
}
#header .header__toggle--line:nth-of-type(2) {
  top: 50%;
  transform: translateY(-50%);
}
#header .header__toggle--line:nth-of-type(3) {
  bottom: 0;
}
#header .header__menu {
  position: fixed;
  top: 0;
  right: -100%;
  width: 100vw;
  max-width: 375px;
  height: 100svh;
  background: #3A9447;
  transition: 0.5s;
}
#header .header__menu--list {
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  width: 85%;
  margin: max(10rem, 80px) auto 0;
}
#header .header__menu--item {
  color: #fff;
  border-top: 1px solid rgba(255, 255, 255, 0.3);
}
#header .header__menu--item:last-of-type {
  border-bottom: 1px solid rgba(255, 255, 255, 0.3);
}
#header .header__menu--item .morebtm {
  padding: max(2rem, 20px);
  display: flex;
  align-items: center;
  justify-content: space-between;
}
#header .header__menu--item .morebtm .rhombus {
  background-color: #fff;
}
#header.active .header__toggle--line:nth-of-type(1) {
  top: 50%;
  transform: translateY(-50%) rotate(-45deg);
}
#header.active .header__toggle--line:nth-of-type(2) {
  opacity: 0;
}
#header.active .header__toggle--line:nth-of-type(3) {
  bottom: 50%;
  transform: translateY(50%) rotate(45deg);
}
#header.active .header__menu {
  right: 0%;
}
#header .mail {
  position: fixed;
  right: 5vw;
  bottom: 5vw;
  border-radius: 6px;
  overflow: hidden;
  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16);
  display: none;
}
@media screen and (max-width: 768px) {
  #header .mail {
    display: block;
  }
}

.home #footer {
  margin-top: max(-10.5rem, -105px);
}

#footer {
  background: #3A9447;
  width: 100%;
}
#footer * {
  color: #fff;
}
#footer .line {
  padding-bottom: max(2.3rem, 10px);
  background: linear-gradient(90deg, #3CA74A, #99EF34 20%, #99EF34 80%, #30B8D8);
}
#footer .footer__topbox {
  display: flex;
  justify-content: space-between;
  padding-top: max(15rem, 61px);
}
@media screen and (max-width: 1000px) {
  #footer .footer__topbox {
    flex-direction: column;
    gap: max(5rem, 50px);
  }
}
#footer .footer__topbox .logo {
  width: 100%;
  max-width: 323px;
  margin-bottom: max(5rem, 50px);
}
#footer .footer__topbox .logo span {
  font-size: max(1.9rem, 19px);
}
#footer .footer__topbox h3 {
  font-family: "Questrial", sans-serif;
  margin-bottom: max(2.2rem, 22px);
}
#footer .footer__topbox a {
  transition: 0.2s;
}
#footer .footer__topbox a:hover {
  opacity: 0.5;
}
#footer .footer__topbox a span {
  font-family: "Questrial", sans-serif;
  display: block;
}
#footer .footer__topbox .tel {
  display: inline;
}
#footer .footer__abox {
  display: grid;
  gap: 1%;
  grid-template-columns: repeat(3, 1fr);
  grid-template-areas: "a1 a4 a7" "a2 a5 ." "a3 a6 .";
}
@media screen and (max-width: 1000px) {
  #footer .footer__abox {
    grid-template-columns: repeat(2, 1fr);
    grid-template-areas: "a1 a2" "a3 a4" "a5 a6" "a7 .";
    gap: max(3rem, 30px) 0;
  }
}
#footer .footer__abox a {
  width: 100%;
  line-height: 1.2;
}
#footer .footer__abox a:nth-child(1) {
  grid-area: a1;
}
#footer .footer__abox a:nth-child(2) {
  grid-area: a2;
}
#footer .footer__abox a:nth-child(3) {
  grid-area: a3;
}
#footer .footer__abox a:nth-child(4) {
  grid-area: a4;
}
#footer .footer__abox a:nth-child(5) {
  grid-area: a5;
}
#footer .footer__abox a:nth-child(6) {
  grid-area: a6;
  display: none;
}
@media screen and (max-width: 1000px) {
  #footer .footer__abox a:nth-child(6) {
    display: block;
  }
}
#footer .footer__abox a:nth-child(6) img {
  width: max(1.3rem, 18px);
  margin-left: max(0.8rem, 5px);
}
#footer .footer__abox a:nth-child(7) {
  grid-area: a7;
}
#footer .footer__abox a span {
  line-height: 1.2;
  margin-top: 5px;
  font-size: max(1.4rem, 12px);
}
#footer .footer__bottombox {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  padding: max(4rem, 53px) 0 max(11.6rem, 17px);
}
@media screen and (max-width: 768px) {
  #footer .footer__bottombox {
    flex-direction: column-reverse;
    align-items: center;
    gap: max(4.4rem, 44px);
    padding: max(4rem, 53px) 0 max(1.7rem, 17px);
  }
}
#footer .footer__bottombox .footer__copyright {
  font-family: "Questrial", sans-serif;
}
#footer .footer__bottombox .footer__contact {
  position: relative;
  z-index: 10;
  overflow: hidden;
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  max-width: 565px;
  padding: max(3.2rem, 32px) max(4rem, 19px);
  border-radius: max(0.6rem, 6px);
  box-shadow: 0px 3px 6px #00000029;
}
#footer .footer__bottombox .footer__contact::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 200%;
  height: 100%;
  z-index: -1;
  /* 2色に分けて配置 */
  background: linear-gradient(to right, #3A9447 0%, #f7ff24 35%, #fff 50%);
  background-size: 200% 100%;
  background-position: right;
  transition: background-position 0.8s ease;
}
#footer .footer__bottombox .footer__contact * {
  transition: 0.4s ease;
}
#footer .footer__bottombox .footer__contact:hover::before {
  background-position: left;
}
#footer .footer__bottombox .footer__contact:hover * {
  color: #fff !important;
}
#footer .footer__bottombox .footer__contact:hover * img {
  filter: brightness(0) invert(1);
}
#footer .footer__bottombox .footer__contact:hover * .rhombus {
  background-color: #fff !important;
  -webkit-clip-path: polygon(15% 5%, 85% 50%, 15% 95%, 15% 50%);
  clip-path: polygon(15% 5%, 85% 50%, 15% 95%, 15% 50%);
}
#footer .footer__bottombox .footer__contact--text {
  display: flex;
  gap: 1.4rem;
}
#footer .footer__bottombox .footer__contact--text h3 {
  color: #3A9447;
}
#footer .footer__bottombox .footer__contact--text p {
  color: #3A9447;
  font-family: "Questrial", sans-serif;
}
#footer .footer__bottombox .rhombus {
  background-color: #3A9447;
  aspect-ratio: 11/6;
  width: max(3.3rem, 33px);
  height: 100%;
  clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
}

.breadcrumb {
  width: 100%;
  margin-top: max(13rem, 50px);
  border-bottom: 1px solid #646464;
}
.breadcrumb__list {
  display: flex;
  align-items: center;
  gap: max(1rem, 10px);
}
.breadcrumb__list a {
  color: #363636;
}
.breadcrumb__separator {
  color: #363636;
}
.breadcrumb__item {
  color: #3A9447;
}

.commonDivisions__wrapper {
  padding-top: max(14rem, 70px);
  padding-bottom: max(12.5rem, 50px);
}
.commonDivisions__list {
  display: grid;
  gap: max(3.5rem, 10px);
  grid-template-columns: repeat(4, 1fr);
}
@media screen and (max-width: 1000px) {
  .commonDivisions__list {
    grid-template-columns: repeat(2, 1fr);
  }
}
.commonDivisions__list__item {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: max(4rem, 20px) max(2.5rem, 10px);
  border-radius: max(1rem, 10px);
  overflow: hidden;
  z-index: 0;
}
.commonDivisions__list__item::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  width: 200%;
  height: 100%;
  transform: translateX(0%);
  background: linear-gradient(135deg, #3ca74a, #99ef34);
  transition: transform 0.5s ease;
  z-index: -1;
}
.commonDivisions__list__item__text {
  color: #fff;
  font-size: max(1.6rem, 14px);
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.05em;
}
.commonDivisions__list__item__icon.rhombus {
  background-color: #fff;
  transition: clip-path 0.5s ease;
}
.commonDivisions__list__item:hover::before {
  transform: translateX(-25%);
}
.commonDivisions__list__item:hover .rhombus {
  clip-path: polygon(15% 5%, 85% 50%, 15% 95%, 15% 50%);
}

.h2box {
  position: relative;
  overflow: hidden;
}
.h2box::after, .h2box::before {
  content: "";
  position: absolute;
  z-index: -1;
  transform: translate(-50%, -50%);
  width: 66%;
  aspect-ratio: 1/1;
  background-size: contain;
  background-repeat: no-repeat;
}
.h2box::after {
  top: 10%;
  left: 10%;
  background-image: url(./images/h2box_deco.svg);
}
.h2box::before {
  top: 50%;
  left: 100%;
  background-image: url(./images/h2box_deco-blue.svg);
}

.h2title {
  padding-top: max(24.4rem, 100px);
  font-size: max(11.5rem, 30px);
  letter-spacing: 0.05em;
  font-family: "Questrial", sans-serif;
  line-height: 1.25;
  color: #3A9447;
}
.h2title span {
  display: block;
  font-size: max(2.5rem, 15px);
}

.viewmore {
  position: relative;
  z-index: 10;
  overflow: hidden;
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  max-width: 565px;
  padding: max(3.2rem, 16px) max(4rem, 19px);
  border-radius: max(0.6rem, 6px);
  box-shadow: 0px 3px 6px #00000029;
  margin: 0 0 0 auto;
}
.viewmore::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 200%;
  height: 100%;
  z-index: -1;
  /* 2色に分けて配置 */
  background: linear-gradient(to right, #fff 0%, #fff 50%, #3A9447 50%, #86e138 75%);
  background-size: 200% 100%;
  background-position: right;
  transition: background-position 0.8s ease;
}
.viewmore * {
  transition: 0.4s ease;
}
.viewmore:hover::before {
  background-position: left;
}
.viewmore:hover * {
  color: #3A9447 !important;
}
.viewmore:hover * .rhombus {
  background-color: #3A9447 !important;
  -webkit-clip-path: polygon(15% 5%, 85% 50%, 15% 95%, 15% 50%);
  clip-path: polygon(15% 5%, 85% 50%, 15% 95%, 15% 50%);
}
.viewmore--text {
  display: flex;
  gap: 1.4rem;
}
.viewmore--text h3 {
  color: #fff;
}
.viewmore--text p {
  color: #fff;
  font-family: "Questrial", sans-serif;
  margin: 0 !important;
  font-size: max(1.6rem, 16px) !important;
}
.viewmore .rhombus {
  background-color: #fff;
}

.rhombus {
  background-color: #3A9447;
  aspect-ratio: 11/6;
  width: max(3.3rem, 30px);
  height: 100%;
  clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
}

.section-title {
  display: flex;
  align-items: baseline;
  gap: max(1.66rem, 5px);
  margin-bottom: max(4rem, 25px);
}
.section-title .rhombus {
  flex-shrink: 0;
  background-color: #3A9447;
  aspect-ratio: 11/6;
  width: max(3.3rem, 30px);
  height: auto;
  clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
  transform: scale(0.8);
  transform-origin: top;
}
.section-title__inner {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  column-gap: max(0.8rem, 5px);
}
.section-title__inner__text {
  font-size: max(3rem, 25px);
  line-height: 1.5;
}
.section-title__inner__sub {
  font-size: max(2rem, 20px);
  font-family: "Questrial", sans-serif;
  letter-spacing: 0.05em;
  color: #3A9447;
  margin-left: max(1.2rem, 12px);
  line-height: 1.7;
}
@media screen and (max-width: 550px) {
  .section-title__inner__sub {
    margin-left: max(1rem, 5px);
  }
}