.pageContainer {
  margin-bottom: 0;
}
@media screen and (max-width: 767px) {
  .pageContents {
    .leaf-1 {
      top: 52rem;
      right: -1rem;
    }
  }
}

/* 共通 */
main {
  font-family: var(--familyNotoSans);
}

.text-green {
  color: var(--colorGreen);
}

.gap-3 {
  gap: 0.3rem;
}
.gap-5 {
  gap: 0.5rem;
}
.gap-6 {
  gap: 0.6rem;
}
.gap-7 {
  gap: 0.7rem;
}
.gap-8 {
  gap: 0.8rem;
}
.gap-11 {
  gap: 1.1rem;
}
.gap-20 {
  gap: 2rem;
}
.mt-7 {
  margin-top: 0.7rem;
}
.mt-8 {
  margin-top: 0.8rem;
}
.mt-12 {
  margin-top: 1.2rem;
}
.mt-10 {
  margin-top: 1.0rem;
}
.mt-15 {
  margin-top: 1.5rem;
}
.mt-20 {
  margin-top: 2.0rem;
}
.mt-25 {
  margin-top: 2.5rem;
}
.mt-24 {
  margin-top: 2.4rem;
}
.mt-26 {
  margin-top: 2.6rem;
}
.mt-32 {
  margin-top: 3.2rem;
}
.mt-36 {
  margin-top: 3.6rem;
}
.mt-50 {
  margin-top: 5rem;
}
.mt-64 {
  margin-top: 6.4rem;
}
.pb-0 {
  padding-bottom: 0
}
.pb-3 {
  padding-bottom: .3rem
}
.pb-5 {
  padding-bottom: .5rem
}
.pb-7 {
  padding-bottom: .7rem
}

.strengthTag {
  display: inline-block;
  border-radius: 9.574px 9.574px 0 9.574px;
  background-color: var(--colorGreen);
  color: var(--colorWhite);
  font-size: 1.2765rem;
  font-family: var(--familyZenMaruGothic);
  font-weight: 700;
  letter-spacing: 1.149px;
  line-height: 2.35;
  width: 5.6804rem;
  height: 3.1912rem;
  display: flex;
  align-items: center;
  justify-content: center;
}

.strengthTag .number {
  display: inline-block;
  font-family: var(--familyNunito);
  font-size: 1.9147rem;
  color: var(--colorYellow);
  font-style: italic;
  font-weight: 600;
  line-height: 1.5667;
  letter-spacing: 1.149px;
}

.anchorLink__text {
  font-weight: 700;
  line-height: 2.125;
  letter-spacing: 0.54px;
  text-align: center;
}

#strength {

  .strength__title {
    font-family: var(--familyZenMaruGothic);
    font-size: 2.6rem;
    font-weight: 700;
    line-height: 1.54;
    letter-spacing: 1.8px;
    text-align: center;
  }
  
  .strength__text {
    letter-spacing: 0.54px;
    text-align: center;
    margin-top: 0.5rem;
    line-height: 2.125;
  }

  .anchor__links {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 2.3rem;
    margin-top: 1.8rem;
    width: fit-content;
    margin-inline: auto;
  }

  .anchorLink {
    display: block;
    background-color: var(--colorWhite);
    padding: 2.4rem 1.6rem 2.4rem 1.6rem;
    border: 1px solid var(--colorGreen);
    box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.25);
    border-radius: 10px;
    position: relative;
    margin-top: 0.9rem;
    transition: all .3s;
    min-width: 23rem;
  }

  .strengthTag.position {
    position: absolute;
    top: -0.9rem;
    left: 50%;
    transform: translateX(-50%);
  }

  .anchorLink__icon {
    display: grid;
    place-items: center;
    position: absolute;
    left: 50%;
    bottom: 0.7rem;
    transform: translateX(-50%);

    svg {
      width: 1.8rem;
      height: 1.8rem;
      aspect-ratio: 1 / 1;
      
      circle {
        fill: #3C1F15;
      }
      path {
        fill: #fff;
      }
    }
  }

  .strength__lists {
    margin-top: 0.7rem;
     @media screen and (min-width: 768px) {
      .strengthTag {
          font-size: 1.664rem;
          width: 7.4rem;
          height: 4.1rem;
        }
        .strengthTag .number {
          font-size: 2.496rem;
        }
     }
    
  }

  .strength__lists-title {
    font-size: 1.8rem;
    font-weight: 700;
    margin-top: 3rem;
  }

  .strengthList {
    display: flex;
    gap: 1.8rem;
    padding-block: 1.4rem;
    border-bottom: 1px dashed rgba(0, 0, 0, 0.30);

    &:first-child {
      align-items: center;
      padding-bottom: .9rem;

      .strengthTag {
        margin-top: 0;
      }
    }

    .anchorLink__tag {
      margin-top: 0.5rem;
    }

    .strengthTag {
      margin-top: .7rem;
    }
  }

  .strengthList__text {
    line-height: 1.875;
    letter-spacing: 0.54px;
  }

  @media screen and (max-width: 767px) {
    .container1040 {
      padding-inline: 3rem;
    }

    .strength__title {
      font-size: 2.4rem;
      line-height: 1.37;
      letter-spacing: 0;
    }
    
    .strength__text {
      margin-top: 1.5rem;
      line-height: 1.75;
      letter-spacing: 0;
    }

    .anchor__links {
      grid-template-columns: 1fr;
      gap: 0.9rem;
      margin-top: 1.7rem;
      width: 100%;
    }

    .anchorLink {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 1.7rem 1.7rem 1.6rem 2.4rem;
      margin-top: 1.6rem;
      max-width: unset;
    }

    .strengthTag.position {
      top: 0;
      left: -0.6rem;
      transform: translateY(-50%);
    }
    
    .anchorLink__icon {
      position: static;
      bottom: auto;
      left: auto;
      transform: none;
    }

    .strength__lists {
      margin-top: 0.7rem;
    }

    .strength__lists-title {
      margin-top: 4.4rem;
    }

    .strengthList {
      flex-direction: column;
      gap: 0.4rem;
      padding-block: 1.1rem 1.4rem;
      border-bottom: 1px dashed rgba(0, 0, 0, 0.30);

      &:first-child {
        align-items: flex-start;
      }
    }

    .strengthList__text {
      line-height: 1.875;
      letter-spacing: 0;
    }
  }
}


/* 以下３セクション共通化 */
.groupContent {
  background-color: var(--colorWhite);
  border: 1px solid var(--colorGreen);
  border-radius: 20px;
  padding: 4rem 3.2rem;
  margin-top: 3.2rem;

  h3 {
    display: block;
    color: var(--colorWhite);
    font-size: 2rem;
    font-family: var(--familyZenMaruGothic);
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 0.84px;
    border-radius: 15px 15px 0 15px;
    background-color: #66B065;
    padding: 1.25rem;
    padding-left: 2rem;
  }
}

.groupContent__lead {
  padding-bottom: 1.4rem;
  border-bottom: 1px solid #AEB7C0;
  display: flex;
  align-items: center;
  gap: 2.261rem;

  h2 {
    color: #333;
    font-size: 2.6rem;
    font-family: var(--familyZenMaruGothic);
    font-weight: 700;
    line-height: 1.07692;
    letter-spacing: 0.84px;
  }
}

.groupContent__container {
  padding-inline: 3rem 4.4rem;
  @media screen and (max-width: 767px) {
    padding-inline: 0;
  }
}

.groupContent {
  .strengthTag {
    width: 10.1rem;
    height: 5.7rem;
    font-size: 2.278rem;
    border-radius: 1.7rem 1.7rem 0 1.7rem;
    .number {
      font-size: 3.417rem;
    }
  }
}

@media (hover: hover) {
  #strength .anchorLink:hover {
    background-color: var(--colorHoverGreen);
  }
}


@media screen and (max-width: 767px) {
  .groupContent {
    padding: 1.7rem 2rem 4rem 2rem;
    margin-top: 2.4rem;

    h3 {
      font-size: 1.6rem;
      letter-spacing: 0.61px;
      border-radius: 11.204px 11.204px 0 11.204px;
      padding: 0.8rem 1.8rem 1.1rem 2rem;
    }
  }

  .groupContent__lead {
    align-items: baseline;
    padding-bottom: 1.3rem;
    gap: 1.3rem;
    position: relative;

    .strengthTag {
      font-size: 1.88rem;
      white-space: nowrap;
      width: 8.2rem;
      height: 5.2rem;
      letter-spacing: 1.692px;
      position: absolute;
      left: -1rem;
      top: 0;
    }

    .strengthTag .number {
      font-size: 2.82rem;
    }

    h2 {
      font-size: 2.2rem;
      line-height: 1.36;
      letter-spacing: 0;
      margin-left: 8.7rem;
      margin-top: 1.4rem;
    }
  }
}

#solution {

  .groupContent {
    margin-top: 5.8rem;
  }

  .solution__textarea {
    padding-inline: 1rem;
  }

  .solution__title {
    color: #333;
    font-size: 2rem;
    font-weight: 700;
    line-height: 1.7;
    letter-spacing: 0.54px;
    margin-top: 2.8rem;
  }

  .solution__text {
    color: #333;
    line-height: 1.625;
    letter-spacing: 0.54px;
    margin-top: 0.9rem;
  }

  .solutionFigure {
    margin-top: 1.8rem;
  }

  .solutionFigure img {
    width: 100%;
  }

  .solution__buttons {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1.4rem;
    margin-top: 2.9rem;
    .strength_BTN {
      min-width: 28rem;
      grid-template-columns: unset;
      p {
        font-size: 1.6rem;
        margin-right: 1rem;
      }
      .strength_BTN__icon {
        position: absolute;
        right: 1.6rem;
      }
    }
  }

  @media screen and (max-width: 767px) {

    .container1100 {
      padding-inline: 1rem;
    }

    .groupContent__container {
      padding-inline: 0;
    }

    .solution__textarea {
      padding-inline: 0;
    }
  
    .groupContent {
      margin-top: 3.4rem;
    }

    .solution__title {
      font-size: 1.8rem;
      line-height: 1.66;
      letter-spacing: 0;
      margin-top: 2.3rem;
    }

    .solution__text {
      line-height: 1.75;
      letter-spacing: -0.16px;
      margin-top: 0.4rem;
    }

    .solutionFigure {
      margin-top: 2.3rem;
    }

    .solution__buttons {
      flex-direction: column;
      gap: 0.9rem;
      margin-top: 2.5rem;
      margin-inline: auto;
      max-width: 30.3rem;
    }
    
    .modal__button {
      border: 1px solid var(--colorGreen);
      background-color: var(--colorWhite);
      padding: 0.4rem 1rem 0.6rem 1rem;
      border-radius: 20px;
      box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.15);
      margin: 1.9rem auto 0 auto;
      display: flex;
      gap: 0.4rem;
      align-items: center;
      width: fit-content;
    }

    .modal__button p {
      font-size: 1.1rem;
      font-weight: 700;
      line-height: 1;
      letter-spacing: -0.55px;
      font-family: var(--familyZenMaruGothic);
    }
  }
}

#achievement {
  position: relative;

  &::before {
    content: "";
    background: url(../../images/common/img_bg_left-tree.webp) no-repeat center center/ contain;
    position: absolute;
    top: -7rem;
    left: 0;
    width: 27rem;
    height: 131rem;
    z-index: -1;
  }

  .groupContent__container {
    padding-inline: 4rem;
  }

  .achievement__base {
    h3 {
      padding-left: 2rem;
    }
  }

  .achievement__user {
    h3 {
      padding-left: 2rem;
    }
  }

  .achievement__text {
    margin-top: 2.4rem;
    line-height: 1.625;
    letter-spacing: 0.54px;
  }

  .achievement__contents {
    margin-top: 2.8rem;
    display: flex;
    gap: 6.4rem;
  }

  .achievement__base,
  .achievement__user {
    flex: 0 1 50%;
  }

  .achievement__base-img {
    margin-top: 2rem;
    position: relative;
    padding-right: 9.9rem;
  }

  .achievement__base-img img {
    width: 100%;
  }

  .achievement__ken-round {
    position: absolute;
    bottom: -0.9rem;
    right: 4.2rem;
    display: grid;
    place-items: center;
    width: 10.8rem;
    height: 10.8rem;
    border-radius: 50%;
    background-color: var(--colorWhite);
    border: 1.31px solid #5EA853;
  }

  .achievement__ken {
    font-family: var(--familyZenMaruGothic);
    font-size: 1.44rem;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.673px;
    color: var(--colorGreen);
  }

  .achievement__ken-number {
    font-family: var(--familyNunito);
    font-size: 4.81rem;
    font-weight: 700;
    color: var(--colorGreen);
    line-height: 1;
    letter-spacing: 0.673px;
    margin-bottom: -4rem;
  }

  .achievementCard:nth-last-child(1) {
    padding-inline: 0;
  }

  .achievementCard__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(21.6rem, 1fr));
    gap: 1.2rem;
  }

  .achievementCard {
    border: 1px solid #AEB7C0;
    padding: 1.4rem;
    display: grid;
    grid-template-rows: 3rem 2.7rem auto;
    place-items: center;

    &.pb-3 {
      padding-bottom: 0.3rem;
    }

    &.pb-7 {
      padding-bottom: 0.7rem;
    }
  }

  .achievementCard.flex {
    display: flex;
    gap: 3.2rem;
    align-items: center;
    justify-content: center;
    padding-right: 1.6rem;
  }

  .location-df {
    gap: 3.2rem;
  }

  .icon-building {
    margin-top: .6rem;
  }

  .location-num {
    margin-top: .6rem;
  }

  .flex-center {
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .flex-base {
    display: flex;
    align-items: baseline;
    justify-content: center;
  }

  .achievementCard__content:nth-of-type(2) {
    align-items: baseline;
  }

  .achievementCard__title {
    font-size: 1.4rem;
    font-weight: 700;
  }

  .achievementCard__grid {
    .achievementCard__title {
      font-size: 1.8rem;
    }
  }

  .achievementCard__number {
    font-family: var(--familyZenMaruGothic);
    font-size: 4rem;
    line-height: 1;
    font-weight: 500;
    letter-spacing: 0;
  }
  
  .achievementCard__unit {
    font-family: var(--familyZenMaruGothic);
    font-size: 2rem;
    font-weight: 700;
    line-height: 2.35;
    letter-spacing: 1.8px;
  }

  .achievement__bottom-text {
    margin-top: 3.5rem;
    text-align: center;
    line-height: 2.125;
    letter-spacing: 0.54px;
  }
  
  .achievement__button {
    margin-top: 0.8rem;
    text-align: center;
    .strength_BTN {
      padding-left: 4.2rem;
    }
  }

  .icon-1 {
    position: relative;
    bottom: 0.8rem;
    left: -0.8rem;
  }

  @media screen and (max-width: 767px) {
    &::before {
      top: -7rem;
      left: 0;
      width: 17rem;
      height: 108rem;
    }

    .container1100 {
      padding-inline: 1rem;
    }

    .groupContent__container {
      padding-inline: 0;
    }

    .groupContent__lead {
      padding-bottom: 2.6rem;
    }

    .achievement__text {
      margin-top: 1.6rem;
      line-height: 1.75;
      letter-spacing: 0;
    }

    .achievement__contents {
      margin-top: 2.3rem;
      display: block;
      gap: 1.6rem;
    }

    .achievement__base-img {
      margin-top: 1.6rem;
      padding-right: 7rem;
    }

    .achievement__ken-round {
      bottom: 1rem;
      right: 2.6rem;
      width: 7.842rem;
      height: 7.842rem;
    }

    .achievement__ken {
      font-size: 1.046rem;
      letter-spacing: 0.49px;
    }

    .achievement__ken-number {
      font-size: 3.493rem;
      letter-spacing: 0.49px;
      margin-bottom: -3rem;
    }

    .achievement__user {
      margin-top: 1.8rem;
    }

    .achievementCard__grid {
      grid-template-columns: 1fr 1fr;
      gap: 0.8rem;
    }

    .achievementCard {
      padding: 1rem 0.2rem;

      .icon-building {
        width: 3.464rem;
        height: 3.776rem;
        margin-top: 0;
      }
      .icon-1 {
        width: 3.464rem;
        height: 3.83rem;
      }
      .icon-2 {
        width: 3.514rem;
        height: 2.704rem;
      }
      .icon-3 {
        width: 3.814rem;
        height: 3.3805rem;
      }
      .icon-4 {
        width: 3.664rem;
        height: 3.606rem;
      }
    }

    .achievementCard.flex {
      gap: 1.2rem;
      margin-top: 2.6rem;
    }

    .achievementCard__title {
      font-size: 1.4rem;
    }

    .achievementCard__grid {
      .achievementCard__title {
        font-size: 1.4rem;
      }
    }

    .achievementCard__number {
      font-size: 3rem;
      letter-spacing: 0.769px;
    }
    
    .achievementCard__unit {
      font-size: 1.5rem;
      letter-spacing: 1.346px;
    }

    .achievementCard__text {
      font-size: 1.1964rem;
      margin-top: 0.4rem;
    }

    .achievement__bottom-text {
      margin-top: 3.8rem;
      line-height: 1.5;
    }
    
    .achievement__button {
      margin: 0.7rem auto 0;
      max-width: 30.3rem;

      .strength_BTN {
        padding-left: 1.5em;
      }
    }
    .achievement__button .strength_BTN p {
      line-height: 1.11;
    }
  }
}

.leaf-3 {
  background-image: url(../../images/common/img_bg_contents-leaf-2.webp);
  width: 4.8rem;
  height: 2.8rem;
  top: 13.9rem;
  right: 6rem;
  animation: fall-right 1.2s cubic-bezier(0.2, 0.8, 0.2, 1) forwards;
  animation-delay: 1s;
}

#operation {
  position: relative;

  &::after {
    content: "";
    background: url(../../images/common/img_bg_right-tree.webp) no-repeat center center/ contain;
    position: absolute;
    bottom: -10rem;
    right: 0;
    width: 24rem;
    height: 57rem;
    z-index: -1;
  }

  .groupContent {
    padding-bottom: 8rem;
  }

  .operation__lead-text {
    margin-top: 2rem;
  }

  .operationContent__flex {
    display: grid;
    grid-template-columns: auto 43.783%;
    padding-inline: 3.6rem 0;
    gap: 0 4.7rem;
  }

  .operationContent__text {
    grid-row: 1 / 2;
    grid-column: 1 / 2;
  }
  
  .operationContent__button {
    grid-row: 2 / 3;
    grid-column: 1 / 2;
  }

  .operationContent .operationContent__button {
    margin-top: -7rem;
  }
  .operationContent:last-of-type .operationContent__button {
    margin-top: 2rem;
  }
  
  .operation__img {
    flex: 1;
    margin-left: auto;
    grid-row: 1 / 2;
    grid-column: 2 / 3;
  }

  .operation__img img {
    margin-left: auto;
    width: 100%;
  }

  .operationContent:last-of-type h3 {
    margin-top: 6.4rem;
  }

  @media screen and (max-width: 767px) {

    &::after {
      top: -10rem;
      bottom: auto;
      right: 0;
      width: 14rem;
      height: 33rem;
    }

    .container1100 {
      padding-inline: 1rem;
    }

    .groupContent {
      padding-bottom: 5rem;
    }

    .groupContent__lead {
        padding-bottom: 2.6rem;
    }

    .operation__lead-text {
      margin-top: 1.6rem;
    }

    .operationContent__flex {
      display: flex;
      flex-direction: column;
      padding-inline: 0;
      flex-direction: column;
      gap: 2.8rem;
    }

    .operationContent__details {
      flex: 0 1 45%;
    }

    .operation__img {
      flex: 1;
      margin-left: auto;
    }

    .operation__img img {
      margin-left: auto;
    }

    .operationContent__button {
      max-width: 30rem;
      width: 100%;
      margin-inline: auto;
    }

    .operationContent .operationContent__button,
    .operationContent:last-of-type .operationContent__button {
      margin-top: 0;
    }

    .operationContent:last-of-type h3 {
      margin-top: 5.2rem;
    }
    
    .leaf-operation {
      background: url(../../images/group/img_bg_contents-leaf_operation.webp) no-repeat center center / contain;
      width: 4.8rem;
      height: 2.8rem;
      position: absolute;
      bottom: 42.1rem;
      right: -2rem;
      z-index: -1;
    }
  }
}

.contactCTA {
  margin-top: 10rem;
  @media screen and (max-width: 767px) {
    margin-top: 7.4rem;
  }
}

.footer {

  .leaf-1 {
    width: 6.593rem;
    height: 8.986rem;
    background-image: url(../../images/group/img_bg_footer-leaf-1.webp);
    top: calc(-43.6rem - 8.986rem);
    animation: fall-left 1.4s cubic-bezier(0.2, 0.8, 0.2, 1) forwards;
    animation-delay: 0.5s;
  }
  
  .leaf-2 {
    width: 8.444rem;
    height: 8.521rem;
    background-image: url(../../images/group/img_bg_footer-leaf-2.webp);
    top: calc(-30.8rem - 8.444rem);
    left: 3.5417%;
    animation: fall-right 1.4s cubic-bezier(0.2, 0.8, 0.2, 1) forwards;
  }

  @media screen and (max-width: 1370px) {
    .leaf-1 {
      left: auto;
      right: calc(100% - (100% - min(1100px, 100% - 3.8rem)) / 2);
    }

    .leaf-2 {
      left: auto;
      right: calc(100% - (100% - min(1100px, 100% - 4rem)) / 2);
    }
  }

  @media screen and (max-width: 767px) {
    .leaf-1,
    .leaf-2 {
      display: none;
    }
  }
}