/* =========================================
   寄付ページヘッダー
   ========================================= */
.donate-page-header {
  background: #FBF4CE;
  padding: 1rem 0 2.38rem;
  background-image: url(../img/pages/donate/header_bg.png);
  background-size: cover;
  background-position: top center;
  background-repeat: no-repeat;

  @media screen and (max-width: 540px) {
    padding: 0 0 1.75rem;
    background-image: url(../img/pages/donate/header_bg_sp.png);
  }

  .c-page-header__inner {
    @media screen and (max-width: 540px) {
      padding: 1rem 0 0;

    }
  }
}

@keyframes infinity-scroll-left {
  from {
    transform: translateX(0);
  }

  to {
    transform: translateX(-100%);
  }
}

.donate-page-header__slider {
  overflow: hidden;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  margin-top: 2.44rem;

  .donate-page-header__slider_inner {
    display: flex;
    list-style: none;
    padding: 0;
    animation: infinity-scroll-left 80s infinite linear 0.5s both;

    .donate-page-header__slider_item {
      max-height: 290px;
      height: 22vw;
      aspect-ratio: 1256/290;

      @media screen and (max-width: 540px) {
        height: 10rem;
      }
    }
  }
}

.donate-page-header__slider_text {
  text-align: center;
  font-size: 1rem;
  margin-top: 1.44rem;
  font-family: "Zen Maru Gothic", sans-serif;
  font-weight: 500;
  line-height: 1.6;
  color: #333;

  @media screen and (max-width: 540px) {
    font-size: 0.75rem;
    word-break: keep-all;
  }
}

/* =========================================
   基本スタイル
   ========================================= */
.p-donate {
  margin-top: 8.06rem;

  @media screen and (max-width: 540px) {
    margin-top: 4.06rem;
  }
}


/* =========================================
   .p-donate-block-normal
   ========================================= */
.p-donate-block-normal__box {
  background: #EBEFE7;
  border-radius: 0.5rem;
  padding: 3rem 3.5625rem;
  gap: 0;
  margin-bottom: 2.25rem;
}

.p-donate-block-normal_box_inner {
  background-color: #fff;
  display: flex;
  justify-content: space-around;
  padding: 2rem 2.25rem;
  min-height: 19.1rem;

  &::after {
    content: "";
    width: 1px;
    height: auto;
    display: block;
    background-color: #C5CFC6;
    order: 2;
    margin: 0 2.25rem;
  }

  .p-donate-block-normal_detail {
    order: 1;
    width: 16.1875rem;

    .p-donate-block-normal_image {
      @media screen and (max-width: 540px) {
        aspect-ratio: 17.9/7.93;
        width: 100%;
        height: 100%;
        overflow: hidden;
      }
    }

    .p-donate-block-normal_image img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: center;
    }

    .donate_exapmle {
      display: flex;
      flex-direction: column;
      gap: 0.1875rem;
      font-family: "Zen Maru Gothic", sans-serif;
      font-weight: 700;
      font-size: 1.125rem;
      line-height: 1.4;
      color: #333;
      padding-top: 0.75rem;

      span {
        font-family: "Roboto", sans-serif;
        font-weight: 700;
        font-size: 1.5rem;
        line-height: 1.4;
        color: #333;
        display: inline-block;
      }

      small {
        font-family: "Noto Sans JP", sans-serif;
        font-weight: 400;
        font-size: 0.875rem;
        line-height: 1.6;
        color: #333;
        display: block;
        margin-top: 0.1875rem;
        margin-bottom: 0.75rem;

        span {
          display: block;
          color: var(--black-400, #5B5B5B);
          font-size: 0.6875rem;
          font-style: normal;
          font-weight: 400;
          line-height: 160%;
          /* 1.1rem */
        }
      }
    }
  }

  .donate-select-area {
    width: 16.125rem;
    order: 3;
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    gap: 1.375rem;

    @media screen and (max-width: 768px) {
      width: 100%;
    }
  }
}

.p-donate-block-normal__tax-benefit {
  text-align: center;
  margin-top: 1.125rem;
  font-size: 0.75rem;

  a {
    text-decoration: underline;
  }
}

/* =========================================
   .amout_select
   ========================================= */
.amout_select {
  .p-donate-block-normal_select_area {
    width: 100%;
    padding: 0;
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    gap: 1.375rem;
  }
}

/* =========================================
   .p-donate-block-organization, .p-donate-block-anidone, .p-donate-block-shopping
   ========================================= */
.p-donate-block-normal.for-donate-page,
.p-donate-block-organization,
.p-donate-block-anidone,
.p-donate-block-shopping {
  margin: 2rem 0;

  @media screen and (max-width: 540px) {
    margin: 1.5rem 0 2.44rem;
  }

  .box {
    border-radius: 1.125rem;
    overflow: hidden;
    background: #FBF4CE;

    h2 {
      font-family: "Zen Maru Gothic", sans-serif;
      font-weight: 500;
      font-size: 1.625rem;
      line-height: 5.875rem;
      color: #fff;
      background: #5EA321;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 0.81rem;

      @media screen and (max-width: 540px) {
        font-size: 1.20rem;
        gap: 0.25rem;
        line-height: 4.875rem;
      }

      &.icon-group::before {
        content: "";
        display: block;
        width: 4.5rem;
        height: 4.5rem;
        background-image: url(../img/icons/icon-group-white.svg);
        background-size: contain;
        background-repeat: no-repeat;
        background-position: center;

        @media screen and (max-width: 540px) {
          width: 3.6rem;
          height: 3.6rem;
        }
      }

      &.icon-box::before {
        content: "";
        display: block;
        width: 4.5rem;
        height: 4.5rem;
        background-image: url(../img/icons/icon-box-anidone.svg);
        background-size: contain;
        background-repeat: no-repeat;
        background-position: center;

        @media screen and (max-width: 540px) {
          width: 2.69rem;
          height: 2.69rem;
        }
      }

      &.icon-box-blank::before {
        content: "";
        display: block;
        width: 4.5rem;
        height: 4.5rem;
        background-image: url(../img/icons/icon-box-blank.svg);
        background-size: contain;
        background-repeat: no-repeat;
        background-position: center;

        @media screen and (max-width: 540px) {
          width: 2.69rem;
          height: 2.69rem;
        }
      }

      &.icon-cart::before {
        content: "";
        display: block;
        width: 4.5rem;
        height: 4.5rem;
        background-image: url(../img/icons/icon-cart-white.svg);
        background-size: contain;
        background-repeat: no-repeat;
        background-position: center;

        @media screen and (max-width: 540px) {
          width: 2.69rem;
          height: 2.69rem;
        }
      }
    }

    .inner {
      padding: 3rem 3.375rem;
      display: flex;
      flex-direction: column;
      gap: 1.875rem;

      @media screen and (max-width: 650px) {
        padding: 1.12rem;
      }
    }

    .organization_select_inner {
      max-width: 35.25rem;
      margin: 0 auto;
    }
  }

  .select_organization,
  .select_group,
  .select_anidone {
    background: #fff;
    padding: 1.5rem;

    @media screen and (max-width: 540px) {
      padding: 1rem;
    }

    h3 {
      line-height: 1.5625rem;
      border-left: 0.3125rem solid #5EA321;
      padding-left: 0.625rem;
      margin-bottom: 0.625rem;
      font-family: "Zen Maru Gothic", sans-serif;
      font-weight: 500;
      font-size: 1.125rem;
      line-height: 1.4;
    }

    p {
      color: #000;
      font-size: 0.875rem;
      font-style: normal;
      font-weight: 350;
      line-height: 180%;
    }

    ul {
      list-style: none;
      padding: 0;
      margin: 1.875rem 0 0 0;
      display: flex;
      flex-wrap: wrap;
      justify-content: space-between;

      @media screen and (max-width: 768px) {
        gap: 1.54rem 0.625rem;
      }
    }

    li {
      pointer-events: none;

      @media screen and (max-width: 768px) {
        width: calc(50% - 0.625rem);
      }
    }

    .organization_label {
      display: flex;
      align-items: center;
      flex-direction: column;
      gap: 0.5rem;
      cursor: pointer;
      pointer-events: auto;
      border-radius: 0.5rem;
      transition: background-color 0.3s;

      input[type=radio] {
        display: none;
      }

      input[type=radio]:checked~.organization_radio-icon::after {
        content: "";
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        width: 1rem;
        height: 1rem;
        background-color: #E37A2C;
        border-radius: 50%;
      }

      input[type=radio]:checked~.card_area {
        border-color: #E37A2C;
        box-shadow: 0 0 10px 0 rgba(227, 122, 44, 0.5);
      }

      &:hover .card_area {
        border-color: #E37A2C;
        box-shadow: 0 0 10px 0 rgba(227, 122, 44, 0.5);
      }
    }

    .organization_radio-icon {
      width: 1.625rem;
      height: 1.625rem;
      border: 0.125rem solid #E37A2C;
      border-radius: 50%;
      background-color: #EBEFE7;
      display: inline-block;
      position: relative;
      flex-shrink: 0;
    }

    .card_area {
      display: flex;
      align-items: center;
      flex-direction: column;
      border-radius: 10px;
      border: 1px solid #C5CFC6;
      padding: 0.9375rem 0.5rem;

      @media screen and (max-width: 768px) {
        width: 100%;
      }

      .organization_icon {
        display: flex;
        align-items: center;
        justify-content: center;
        flex-shrink: 0;

        img {
          width: 5rem;
          height: 5rem;
          max-width: 100%;
          max-height: 100%;

          @media screen and (max-width: 768px) {
            width: 3.5rem;
            height: 3.5rem;
          }
        }
      }

      .organization_name {
        font-family: "Zen Maru Gothic", sans-serif;
        font-weight: 500;
        font-size: 1.25rem;
        line-height: 1.6;
        color: #333;
      }
    }

    .group_select {
      position: relative;
      width: 100%;

      select {
        width: 100%;
        height: 3rem;
        padding: 0 3.125rem 0 1.625rem;
        border: 1px solid #C5CFC6;
        border-radius: 0.375rem;
        background-color: #fff;
        font-family: "Noto Sans JP", sans-serif;
        font-weight: 400;
        font-size: 1rem;
        line-height: 1.4;
        appearance: none;
        -webkit-appearance: none;
        -moz-appearance: none;
        cursor: pointer;
        outline: none;

        @media screen and (max-width: 540px) {
          font-size: 0.875rem;
        }

        &:focus {
          border-color: #E37A2C;
        }

        &.value_blank {
          color: #bfbfbf;
        }
      }

      &::after {
        content: "";
        position: absolute;
        right: 1.625rem;
        top: calc(50% + 0.125rem);
        transform: translateY(-50%) rotate(90deg);
        width: 0.5rem;
        height: 0.9375rem;
        background-image: url(../img/icons/arrow-green.svg);
        background-size: contain;
        background-repeat: no-repeat;
        background-position: center;
        pointer-events: none;
      }
    }

    .amout_select {
      .donate-amount__other {
        justify-content: flex-start;
      }
    }
  }

  .amout_select {
    margin-top: 2.25rem;
    display: none;

    &.is-active {
      display: block;
    }
  }

  .anidone_select_inner .amout_select {
    display: block;
    margin-top: 0;
  }

  .donate-block-organization__link {
    font-size: 1rem;
    font-weight: 500;
    line-height: 1.6;
    color: #006E09;
    text-decoration: underline;
    width: fit-content;
    margin: -1rem auto 0;
    font-family: "Zen Maru Gothic", sans-serif;

    @media screen and (max-width: 540px) {
      font-size: 0.875rem;
    }
  }
}

/* =========================================
   .p-donate-block-group
   ========================================= */
.p-donate-block-group {
  position: relative;
  margin-top: 4.44rem;

  h2 {
    color: #000;
    font-family: "Zen Maru Gothic";
    font-size: 1.625rem;
    font-style: normal;
    font-weight: 500;
    line-height: 160%;
    padding: 0 1.25rem;
    margin-bottom: 0;
    box-sizing: content-box;
    position: absolute;
    top: -1.4rem;
    left: 50%;
    transform: translateX(-50%);
    background: #fff;
    display: flex;
    flex-wrap: nowrap;
    gap: 0.62rem;
    width: max-content;

    @media screen and (max-width: 540px) {
      top: -1rem;
      padding: 0 0.5rem;
      font-size: 1.0625rem;
      gap: 0.38rem;
      align-items: center;
    }

    &::before {
      content: "";
      width: 2.63rem;
      height: 2.63rem;
      display: block;
      background-image: url(../img/icons/icon-legacy.svg);
      background-size: contain;
      background-repeat: no-repeat;
      background-position: center;
      flex: 0 0 auto;

      @media screen and (max-width: 540px) {
        width: 2.25rem;
        height: 2.25rem;
      }
    }
  }

  .p-donate-block-group__box {
    border-radius: 0.51413rem;
    border: 2px solid #006E09;
    background: #FFF;
    overflow: hidden;
    gap: 0;
    margin-bottom: 2.25rem;
  }

  .p-donate-block-group_box_inner {
    background-color: #fff;
    display: flex;
    padding: 2rem 1.75rem;

    .p-donate-block-group_detail {
      order: 1;
      width: 50%;
      max-width: 15.95rem;
      border-right: 1px solid #C5CFC6;
      padding-right: 1.75rem;

      .p-donate-block-group_image {
        aspect-ratio: 2/1;
        width: 100%;
        height: auto;
        overflow: hidden;
      }

      .p-donate-block-group_image img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center;
      }

      .donate_group_name {
        display: flex;
        flex-direction: column;
        gap: 0.1875rem;
        font-family: "Zen Maru Gothic", sans-serif;
        font-weight: 700;
        font-size: 1.125rem;
        line-height: 1.4;
        color: #333;
        padding-top: 0.75rem;

        p {
          font-family: "Zen Maru Gothic", sans-serif;
          font-weight: 700;
          font-size: 1.1313rem;
          line-height: 1;
          color: #006E09;
          display: inline-block;
          text-align: center;
        }

        small {
          font-family: "Zen Maru Gothic", sans-serif;
          font-weight: 400;
          font-size: 0.82263rem;
          line-height: 1;
          color: #006E09;
          display: block;
          margin-top: 0.1875rem;
          text-align: center;
        }
      }
    }

    .p-donate-block-group_select_area {
      width: 100%;
      order: 3;
      padding-left: 1.75rem;
      flex: 1 0 0;
      display: flex;
      flex-direction: column;
      gap: 1.375rem;

      .donate-amount__buttons {
        .donate-amount__button {
          max-width: calc(25% - calc(0.625rem * 3 / 4));
          min-width: 6.375rem;

          @media screen and (max-width: 890px) {
            min-width: auto;
            max-width: calc(50% - calc(0.625rem * 1 / 2));
          }

          .donate-amount {
            .donate-amount__value {
              font-size: 1.25rem;
            }

            .donate-amount__unit {
              font-size: 0.75rem;
            }
          }
        }
      }
    }
  }
}

.wp-block-acf-donate-button-group .p-donate-block-group h2 {
  margin-top: 0;
}

.p-donate-block-normal.for-donate-page {
  position: relative;

  &:before {
    content: "";
    position: absolute;
    top: -0.45rem;
    left: -0.25rem;
    width: 9.4rem;
    height: 9.85rem;
    background-image: url(../img/pages/donate/recommend_label.png);
    background-size: cover;
    background-position: center;

    @media screen and (max-width: 540px) {
      width: 5.33rem;
      height: 5.39rem;
      top: -0.25rem;
      left: -0.15rem;
    }
  }

  .c-deco.c-report-archive-bubble {
    bottom: calc(100% - 3.76rem);

    @media screen and (max-width: 540px) {
      right: -1.5%;
      bottom: calc(100% - 1.45rem);
    }
  }

  .p-donate-block-normal__box {
    background: none;
    padding-bottom: 0;
  }
}

/* =========================================
   共通パーツ: 寄付金額選択（簡素化）
   ========================================= */
.donate-select-area {
  display: flex;
  flex-direction: column;
  gap: 1.375rem;
  width: 100%;
}

/* 寄付タイプ選択 */
.donate-type {
  display: flex;
  gap: 1.3125rem;
  align-items: center;

  .donate-type__label {
    display: flex;
    gap: 0.3125rem;
    align-items: flex-end;
    cursor: pointer;

    input[type=radio] {
      display: none;

      &:checked+.donate-type__icon::after {
        content: "";
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        width: 1rem;
        height: 1rem;
        background-color: #E37A2C;
        border-radius: 50%;

        @media screen and (max-width: 540px) {
          width: 0.82rem;
          height: 0.82rem;
        }
      }
    }

    &.active input[type=radio]+.donate-type__icon::after {
      content: "";
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      width: 1rem;
      height: 1rem;
      background-color: #E37A2C;
      border-radius: 50%;

      @media screen and (max-width: 540px) {
        width: 0.82rem;
        height: 0.82rem;
      }
    }
  }

  .donate-type__icon {
    width: 1.625rem;
    height: 1.625rem;
    border: 0.125rem solid #E37A2C;
    border-radius: 50%;
    background-color: #EBEFE7;
    display: inline-block;
    position: relative;
    flex-shrink: 0;

    @media screen and (max-width: 540px) {
      width: 1.21rem;
      height: 1.21rem;
      margin-bottom: 0.125rem;
    }
  }

  .donate-type__text {
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 400;
    font-size: 1rem;
    line-height: 1.6;
    color: #333;
  }
}

/* 金額選択 */
.donate-amount {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  align-items: center;
  width: 100%;

  .donate-amount__buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 0.625rem;
    width: 100%;
  }

  .donate-amount__button {
    width: calc(50% - 0.3125rem);
    max-width: 7.75rem;
    height: 2.93rem;
    border-radius: 1.875rem;
    background-color: #EBEFE7;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.11275rem;
    cursor: pointer;
    transition: all 0.3s;

    @media screen and (max-width: 777px) {
      max-width: none;
    }

    @media screen and (max-width: 540px) {
      height: 2.25rem;
    }

    input[type=radio] {
      display: none;
    }

    &:has(input[type=radio]:checked),
    &.active {
      background-color: #E37A2C;

      .donate-amount__value,
      .donate-amount__unit {
        color: #fff;
      }
    }

    .donate-amount__button--hidden {
      display: none;
    }
  }

  .donate-amount__value {
    font-family: "Roboto", sans-serif;
    font-weight: 700;
    font-size: 1.25rem;
    line-height: 1;
    color: #E37A2C;

    @media screen and (max-width: 540px) {
      font-size: 1.125rem;
    }
  }

  .donate-amount__unit {
    font-weight: 700;
    font-size: 0.75rem;
    line-height: 1;
    color: #E37A2C;
    margin-top: 0.25em;

    @media screen and (max-width: 540px) {
      font-size: 0.6875rem;
    }
  }

  .donate-amount__other {
    width: 100%;
    height: 1.375rem;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0.625rem;
    border-radius: 1.875rem;
    cursor: pointer;
    transition: opacity 0.3s;

    @media screen and (max-width: 540px) {
      justify-content: flex-start;
    }

    &:hover {
      opacity: 0.7;
    }

    .donate-amount__other-text {
      font-family: "Noto Sans JP", sans-serif;
      font-weight: 400;
      font-size: 0.875rem;
      line-height: 1.6;
      color: #333;
    }

    .donate-amount__other-arrow {
      color: #E37A2C;
    }
  }
}

/* 送信ボタン */
.donate-submit {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  width: 100%;
  max-width: 13.8rem;
  height: 2.9306875rem;
  border-radius: 1.6908125rem;
  background-color: #FA8240;
  color: #fff;
  text-decoration: none;
  transition: all 0.3s;
  padding: 0 1.1271875rem 0.11275rem;
  border: none;
  cursor: pointer;
  position: relative;

  @media screen and (max-width: 768px) {
    margin: 0 auto;
  }

  &:hover {
    opacity: 0.9;
  }

  .donate-submit__text {
    font-family: "Zen Maru Gothic", sans-serif;
    font-weight: 700;
    font-size: 1rem;
    line-height: 1.4;
    color: #fff;
  }

  .donate-submit__arrow {
    position: absolute;
    right: 0.901875rem;
    top: 50%;
    transform: translateY(-50%);
    width: 0.6763125rem;
    height: 0.50725rem;
  }
}

/* =========================================
   その他のコンポーネント
   ========================================= */
.p-donate-block-other {
  margin-top: 4.5rem;

  h2 {
    position: relative;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 1rem;
    color: #000;
    font-family: "Zen Maru Gothic";
    font-size: 1.625rem;
    font-style: normal;
    font-weight: 500;
    line-height: 180%;

    @media screen and (max-width: 540px) {
      margin-bottom: 0.5rem;
      font-size: 1.25rem;
    }

    &::before {
      left: 0;
      display: block;
      content: "";
      background-image: url(../img/common/deco-title.svg);
      background-repeat: no-repeat;
      background-size: contain;
      width: 3.3125rem;
      height: 3.5625rem;

      @media screen and (max-width: 540px) {
        width: 2.93744rem;
      }
    }
  }

  p {
    margin-bottom: 1.5rem;

    @media screen and (max-width: 540px) {
      font-size: 0.875rem;
    }
  }

  .c-button {
    max-width: 19.625rem;
    margin: 0 auto;
  }
}

.support_list {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin-top: 1.5rem;

  .support_list_item {
    display: flex;
    align-items: center;
    gap: 0.8125rem;
    padding: 1.375rem 0;
    position: relative;

    @media screen and (max-width: 768px) {
      flex-wrap: wrap;
      gap: 0.64rem 0;
    }

    &:last-child {
      padding-bottom: 0;
    }

    &:not(:last-child)::after {
      content: "";
      position: absolute;
      bottom: 0;
      left: 0;
      right: 0;
      height: 1px;
      background-color: #C5CFC6;
    }

    .support_list_item_icon {
      flex-shrink: 0;
      width: 4.0625rem;
      height: 4.0625rem;

      @media screen and (max-width: 540px) {
        width: 3rem;
        height: 3rem;
        flex: 0 0 auto;
        margin: 0 0.38rem 0 0;
      }

      img {
        width: 100%;
        height: 100%;
        object-fit: contain;
      }
    }

    .support_list_item_text {
      flex: 1;
      display: flex;
      flex-direction: column;
      gap: 0.375rem;

      @media screen and (max-width: 768px) {
        flex: 0 0 auto;
      }

      @media screen and (max-width: 540px) {
        width: calc(100% - 3.38rem);
      }

      .support_list_item_title {
        font-family: "Zen Maru Gothic", sans-serif;
        font-weight: 700;
        font-size: 1.25rem;
        line-height: 1.4;
        color: #333;
        margin: 0;

        @media screen and (max-width: 540px) {
          font-size: 0.93rem;
          text-align: left;
        }
      }

      .support_list_item_description {
        font-family: "Noto Sans JP", sans-serif;
        font-weight: 400;
        font-size: 1rem;
        line-height: 1.4;
        color: #333;
        margin: 0;

        @media screen and (max-width: 540px) {
          font-size: 0.75rem;
          text-align: left;
        }
      }
    }

    .support_list_item_actions {
      display: flex;
      align-items: center;
      gap: 1.3125rem;
      flex-shrink: 0;

      @media screen and (max-width: 768px) {
        justify-content: flex-end;
        width: 100%;
      }

      @media screen and (max-width: 540px) {
        justify-content: center;
      }

      .support_list_item_detail {
        font-family: "Zen Maru Gothic", sans-serif;
        font-weight: 500;
        font-size: 1rem;
        line-height: 1.6;
        color: #006E09;
        text-underline-position: from-font;
        text-decoration: underline;

        &:hover {
          opacity: 0.7;
        }
      }

      .support_list_item_button {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 0.2254375rem;
        width: 8.875rem;
        height: 2.9375rem;
        padding: 0;
        border-radius: 1.6908125rem;
        border: none;
        cursor: pointer;
        position: relative;
        transition: opacity 0.3s;

        &:hover {
          opacity: 0.9;
        }

        &.support_list_item_button--orange {
          background-color: #FA8240;
        }

        &.support_list_item_button--green {
          background-color: #5EA321;
        }

        .support_list_item_button_text {
          font-family: "Zen Maru Gothic", sans-serif;
          font-weight: 700;
          font-size: 1rem;
          line-height: 1.4;
          color: #fff;
        }

        .support_list_item_button_arrow {
          position: absolute;
          right: 0.901875rem;
          top: 50%;
          transform: translateY(-50%);
          width: 0.6763125rem;
          height: 0.50725rem;
        }
      }
    }
  }
}

.shopping_list {
  display: flex;
  gap: 2.375rem;
  margin-top: 1.5rem;

  @media screen and (max-width: 540px) {
    flex-direction: column;
    gap: 2.59rem;
  }
}

.shopping_list_item {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  width: calc(50% - 1.4rem);

  @media screen and (max-width: 540px) {
    width: 100%;
    gap: 0rem;
  }
}

.shopping_list_item_banner {
  width: 100%;
  height: 10.0625rem;
  border-radius: 0.638875rem;
  border: 1px solid #A7A7A7;
  position: relative;
  overflow: hidden;
}

.shopping_list_item_banner img {
  object-fit: cover;
  object-position: center;
  width: 100%;
  height: 100%;
}

.shopping_list_item_title {
  font-family: "Zen Maru Gothic", sans-serif;
  font-weight: 500;
  font-size: 1.25rem;
  line-height: 1.4;
  color: #333;
  margin: 0;

  @media screen and (max-width: 540px) {
    margin: 0.5rem 0 0 0;
  }
}

.shopping_list_item_description {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 350;
  font-size: 0.875rem;
  line-height: 1.8;
  color: #333;
  margin: 0;

  @media screen and (max-width: 540px) {
    margin: 0 0 0.75rem 0;
  }
}

.shopping_list_item .c-detail-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 1.4375rem;
  height: 2.25rem;
  padding: 0.375rem 0.625rem;
  border: 1px solid #006E09;
  border-radius: 3.125rem;
  background-color: #fff;
  text-decoration: none;
  position: relative;
  transition: opacity 0.3s;
  width: 9.5625rem;
  margin: 0 auto;
  transition: all 0.3s;
}

.shopping_list_item .c-detail-button:hover {
  background-color: #006E09;
}

.shopping_list_item .c-detail-button:hover .c-detail-button_text {
  color: #fff;
}

.shopping_list_item .c-detail-button:hover .c-detail-button_arrow path {
  stroke: #fff;
}

.shopping_list_item .c-detail-button_text {
  font-family: "Zen Maru Gothic", sans-serif;
  font-weight: 500;
  font-size: 1rem;
  line-height: 1.6;
  color: #006E09;
}

.shopping_list_item .c-detail-button_arrow {
  position: absolute;
  right: 0.8125rem;
  top: 50%;
  transform: translateY(-50%);
  width: 0.75rem;
  height: 0.5625rem;
}

.donate-wave-block {
  padding: 8.7rem 0 11rem 0;
  background: var(--green-300, #C7E1AE);
  overflow: hidden;
  margin-top: 5.125rem;
  margin-bottom: 7.5rem;

  @media screen and (max-width: 540px) {
    padding: 4.71rem 0 6.52rem 0;
    margin-bottom: 3.44rem;
  }

  .c-donate-links {
    margin-bottom: 7.94rem;

    @media screen and (max-width: 540px) {
      margin-bottom: 4.75rem;
    }

    a {
      min-height: 6.4375rem;

      @media screen and (max-width: 540px) {
        min-height: 3.95rem;
      }
    }
  }
}

.donate-theme-list {
  display: flex;
  gap: 3rem;
  margin-bottom: 1.5625rem;

  @media screen and (max-width: 540px) {
    flex-direction: column;
    gap: 3.81rem;
  }
}

.donate-theme-list_item {
  flex: 1;
  display: flex;
  flex-direction: column;
}

.donate-theme-list_item_badge {
  background-color: #fff;
  padding: 0.625rem 2.5625rem;
  border-radius: 2.5rem;
  font-family: "Zen Maru Gothic", sans-serif;
  font-weight: 500;
  font-size: min(1.875rem, 2vw);
  line-height: 1.8;
  color: #006E09;
  text-align: center;
  white-space: nowrap;
  position: relative;
  z-index: 2;

  @media screen and (max-width: 540px) {
    font-size: 1.25rem;
  }
}

.donate-theme-list_item_badge:after {
  content: "";
  width: 1.84rem;
  height: 1.59rem;
  clip-path: polygon(100% 0, 0 0, 50% 100%);
  background: #fff;
  display: block;
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  z-index: 1;
}

.donate-theme-list_item_banner {
  margin-top: 1.875rem;
  width: 100%;
  height: auto;
  border-radius: 0.6785625rem;
  border: 0.067875rem solid #A7A7A7;
  overflow: hidden;
  background-color: #fff;
  aspect-ratio: 21.4/10.7;
}

.donate-theme-list_item_banner img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.donate-theme-list_item_title {
  font-family: "Zen Maru Gothic", sans-serif;
  font-weight: 500;
  font-size: 1.25rem;
  line-height: 1.4;
  color: #333;
  margin: 0.625rem 0 0.3125rem;

  @media screen and (max-width: 540px) {
    font-size: 1rem;
  }
}

.donate-theme-list_item_description {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 350;
  font-size: 0.875rem;
  line-height: 1.8;
  color: #333;
  margin: 0;
}

.donate-theme-list_item .c-detail-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 1.4375rem;
  height: 2.25rem;
  padding: 0.375rem 0.625rem;
  border: 1px solid #006E09;
  border-radius: 3.125rem;
  background-color: #fff;
  text-decoration: none;
  position: relative;
  transition: opacity 0.3s;
  width: 9.5625rem;
  margin: 1.5rem auto 0;
  transition: all 0.3s;
}

.donate-theme-list_item .c-detail-button:hover {
  background-color: #006E09;
}

.donate-theme-list_item .c-detail-button:hover .c-detail-button_text {
  color: #fff;
}

.donate-theme-list_item .c-detail-button:hover .c-detail-button_arrow path {
  stroke: #fff;
}

.donate-theme-list_item .c-detail-button_text {
  font-family: "Zen Maru Gothic", sans-serif;
  font-weight: 500;
  font-size: 1rem;
  line-height: 1.6;
  color: #006E09;

  @media screen and (max-width: 540px) {
    font-size: 0.875rem;
  }
}

.donate-theme-list_item .c-detail-button_arrow {
  position: absolute;
  right: 0.8125rem;
  top: 50%;
  transform: translateY(-50%);
  width: 0.75rem;
  height: 0.5625rem;
}

.donate-theme-furusato {
  margin: 5.125rem auto 6.6875rem;
  max-width: 42.8125rem;
  display: flex;
  flex-direction: column;
  align-items: flex-center;

  @media screen and (max-width: 540px) {
    margin: 5.06rem auto 3.67rem;
  }
}

.donate-theme-furusato_banner {
  width: 100%;
  height: auto;
  aspect-ratio: 685/386;
  border-radius: 0.6785625rem;
  border: 0.067875rem solid #A7A7A7;
  overflow: hidden;
  background-color: #fff;
  margin: 0 auto 1.5rem;
}

.donate-theme-furusato_title {
  font-family: "Zen Maru Gothic", sans-serif;
  font-weight: 500;
  font-size: 1.25rem;
  line-height: 1.4;
  color: #333;
  margin: 0 0 0.3125rem 0;
}

.donate-theme-furusato_description {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 350;
  font-size: 0.875rem;
  line-height: 1.8;
  color: #333;
  margin: 0 0 1.5rem 0;
  text-align: left;
}

.donate-theme-furusato .c-detail-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 1.4375rem;
  height: 2.25rem;
  padding: 0.375rem 0.625rem;
  border: 1px solid #006E09;
  border-radius: 3.125rem;
  background-color: #fff;
  text-decoration: none;
  position: relative;
  transition: opacity 0.3s;
  width: 9.5625rem;
  margin: 0 auto;
  transition: all 0.3s;
}

.donate-theme-furusato .c-detail-button:hover {
  background-color: #006E09;
}

.donate-theme-furusato .c-detail-button:hover .c-detail-button_text {
  color: #fff;
}

.donate-theme-furusato .c-detail-button:hover .c-detail-button_arrow path {
  stroke: #fff;
}

.donate-theme-furusato .c-detail-button_text {
  font-family: "Zen Maru Gothic", sans-serif;
  font-weight: 500;
  font-size: 1rem;
  line-height: 1.6;
  color: #006E09;
}

.donate-theme-furusato .c-detail-button_arrow {
  position: absolute;
  right: 0.8125rem;
  top: 50%;
  transform: translateY(-50%);
  width: 0.75rem;
  height: 0.5625rem;
}

.donate-all-list {
  margin-bottom: 9.8125rem;

  .list_table {
    margin-left: 1.5rem;
    margin: 0 auto 0.5625rem;
    border-collapse: collapse;
    width: 100%;
    max-width: 44.6875rem;

    @media screen and (max-width: 768px) {
      width: calc(100% - 1.75rem);
    }

    tr {
      border-bottom: 1px dashed #B8AAAA;
      background: none;

      &:nth-child(2n) td {
        background-color: #fff !important;
      }

      &:first-child {
        th {
          padding: 1em;
        }

        td {
          color: #AA9A8A;
          font-size: 0.875rem;
          padding: 1em;

          @media screen and (max-width: 768px) {
            font-size: 0.625rem;
            text-align: left;
            width: 6rem;
          }
        }
      }
    }

    th {
      background: none;
      font-weight: 700;
      font-size: 1rem;
      line-height: 1.5;
      color: #006E09;
      vertical-align: middle;
      padding: 0.5rem 0;
      position: relative;
      text-align: left;

      @media screen and (max-width: 768px) {
        width: 12rem;
        font-size: 0.75rem;
        padding: 1em 0;
      }

      span {
        color: #006E09;
        text-align: justify;
        /* leading-trim: both; */
        /* 非標準プロパティのためコメントアウト */
        /* text-edge: cap; */
        /* 非標準プロパティのためコメントアウト */
        font-family: "Source Sans Pro", HelveticaNeue-Light, "Helvetica Neue Light", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif;
        font-size: 1.5rem;
        font-style: normal;
        font-weight: 900;
        line-height: 1;
        position: absolute;
        left: -1.5rem;
        top: 0.875rem;

        @media screen and (max-width: 768px) {
          font-size: 1.25rem;
          top: 1rem;
        }
      }
    }

    td {
      background: none;
      text-align: center;
      font-size: 1rem;
      line-height: 0.9375rem;
      vertical-align: middle;
      padding: 1em;
      font-family: "Source Sans Pro", HelveticaNeue-Light, "Helvetica Neue Light", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif;

      @media screen and (max-width: 768px) {
        padding: 0;
      }

      a {
        font-size: 1rem;
      }
    }
  }
}

.donate_block_normal_wide {
  border-radius: 0.625rem;
  background: #FFF;
  overflow: hidden;

  .p-donate-block-normal__box {
    padding: 0;
    background: none;
    margin-bottom: 0;

    .p-donate-block-normal_box_inner {
      padding: 2rem 4.2rem;

      @media screen and (max-width: 768px) {
        padding: 1.125rem;
      }

      @media screen and (max-width: 540px) {
        padding: 2.4rem 2rem;
      }

      &::after {
        margin: 0 4rem;

        @media screen and (max-width: 768px) {
          margin: 0 0 1rem 0;
        }
      }

      .p-donate-block-normal_detail {
        max-width: 19.13925rem;
        aspect-ratio: 306.23/204.15;
        width: 100%;

        @media screen and (max-width: 980px) {
          width: 30%;
        }

        @media screen and (max-width: 768px) {
          max-width: none;
          width: 100%;
          aspect-ratio: auto;
        }

        .p-donate-block-normal_image {
          @media screen and (max-width: 768px) {
            width: 100%;
          }
        }

        .donate_exapmle {
          @media screen and (max-width: 768px) {
            padding: 1rem 0;
          }
        }
      }

      .donate-select-area {
        width: 100%;
        flex: 1 0 0;
      }
    }

    .p-donate-block-normal__tax-benefit {
      display: none;
    }
  }
}

/* =========================================
   レスポンシブ
   ========================================= */
@media screen and (max-width: 768px) {
  .p-donate-block-normal__box {
    flex-direction: column;
    padding: 1.5rem;
    gap: 1.25rem;

    .p-donate-block-normal_box_inner {
      flex-direction: column;
      height: auto;
      padding: 1.12rem;

      &::after {
        height: 1px;
        width: 100%;
        margin: 0.88rem 0;
      }

      .p-donate-block-normal_detail {
        width: 100%;
        height: auto;
        display: flex;
        align-items: center;
        justify-content: space-between;

        .donate_exapmle {
          position: static;
          width: 100%;
          padding: 1.25rem 0;
        }
      }

      .p-donate-block-normal_select_area {
        width: 100%;
        height: auto;

        .p-donate-block-normal__submit {
          margin: 0 auto;
        }
      }
    }
  }

  .p-donate-block-group__box {
    flex-direction: column;
    padding: 2.18rem;
    gap: 1.25rem;

    .p-donate-block-group_box_inner {
      flex-direction: column;
      padding: 0;

      .p-donate-block-group_detail {
        width: 100%;
        height: auto;
        max-width: none;
        padding-right: 0;
        border-right: none;
        border-bottom: 1px solid #C5CFC6;
        padding-bottom: 0.88rem;
        margin-bottom: 0.88rem;

        .p-donate-block-group_image {
          width: 100%;
          margin: 0;
          height: auto;
        }

        .donate_group_name {
          position: static;
          width: 100%;
          padding: 1.25rem;
          padding: 0;
          align-items: flex-start;
          margin-top: 0.38rem;
        }
      }

      .p-donate-block-group_select_area {
        width: 100%;
        height: auto;
        padding-left: 0;

        .donate-amount__buttons {
          gap: 0.69rem 0.53rem;

          .donate-amount__button {
            max-width: none;
            width: calc(50% - 0.265rem);
          }
        }
      }
    }
  }
}

@media screen and (max-width: 540px) {
  .p-donate-block-normal__box {
    .p-donate-block-normal_box_inner {
      .p-donate-block-normal_detail {
        width: 100%;
        height: auto;
        flex-direction: column;

        .donate_exapmle {
          padding: 0.38rem 0 0 0;
          gap: 0;

          p {
            font-size: 0.9rem;

            span {
              font-size: 1.2375rem;
            }
          }

          small {
            font-size: 0.7875rem;
          }
        }
      }
    }
  }
}


.page-template-page-organization-list {
  .c-donation-block {
    .donate_block_normal_wide {
      border-radius: 0.625rem;
      border: 1px solid #90B023;
    }
  }
}

.page-template-template-donate {
  .top-scroll-infinity__wrap {
    margin-top: -2rem;
  }

  .top-scroll-infinity__item {
    max-width: 120rem;

    @media screen and (max-width: 540px) {
      width: calc(100vw / 0.5);
    }
  }

  .c-page-header__body {
    p {
      @media screen and (max-width: 540px) {
        word-break: keep-all;
        padding: 0 1rem;
      }
    }
  }
}