.l-sustainability_wrapper {
  display: grid;
  grid-template-columns: 19.6rem 1fr;
  grid-auto-rows: auto;
  padding-top: 16rem;
  padding-right: 15.3rem;
  padding-left: 4.5rem;
  gap: 0 12.8rem;
}

.l-sustainability_index {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 100%;
}

.l-sustainability_index_item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  position: -webkit-sticky;
  position: sticky;
  top: 8rem;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}

.l-sustainability_index_item_txt {
  margin-bottom: 3.2rem;
  padding-bottom: .8rem;
  border-bottom: 1px solid var(--color-black);
  font-weight: 400;
  font-size: 2rem;
  line-height: 1.4;
  font-family: var(--font-jost);
  letter-spacing: .03em;
}

.l-sustainability_index_item_link {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  position: relative;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0 .8rem;
  font-weight: 500;
  font-size: 1.7rem;
  line-height: 1.4;
  letter-spacing: .03em;
}

.l-sustainability_index_item_link:has(+a) {
  margin-bottom: 2.4rem;
}

.l-sustainability_index_item_link:has(+a.is-num) {
  margin-bottom: 2rem;
}

.l-sustainability_index_item_link::before {
  display: block;
  position: relative;
  top: .1rem;
  width: 1.2rem;
  height: 1.2rem;
  border: 1px solid var(--color-black);
  border-radius: 50%;
  content: "";
  -webkit-transition: background-color var(--easing) var(--duration);
  transition: background-color var(--easing) var(--duration);
}

.l-sustainability_index_item_link.is-num {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1rem;
  font-weight: 500;
  font-size: 1.3rem;
  line-height: 1.4;
  letter-spacing: .03em;
}

.l-sustainability_index_item_link.is-num::before {
  display: grid;
  top: 0;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 2rem;
  height: 2rem;
  padding-top: .3rem;
  padding-left: .2rem;
  -webkit-transform: color var(--duration) var(--easing);
          transform: color var(--duration) var(--easing);
  border: initial;
  content: attr(data-num);
  font-weight: 500;
  font-size: 1.3rem;
  line-height: 1;
  letter-spacing: 0em;
}

.l-sustainability_index_item_link.is-num:has(+a.is-num) {
  margin-bottom: 1.6rem;
}

.l-sustainability_index_item_link.is-active::before {
  background-color: var(--color-black);
  color: var(--color-white);
}

.l-sustainability_content {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
}

.l-sustainability_policy_ttl_sub {
  margin-bottom: 3.2rem;
}

.l-sustainability_action_item_wrapper {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin-bottom: 5.6rem;
  gap: 5.6rem 4rem;
}

.l-sustainability_action_item_link img {
  -webkit-transition: -webkit-transform var(--easing) var(--duration);
  transition: -webkit-transform var(--easing) var(--duration);
  transition: transform var(--easing) var(--duration);
  transition: transform var(--easing) var(--duration), -webkit-transform var(--easing) var(--duration);
}

.l-sustainability_action_item_thumb {
  width: 100%;
  height: 100%;
}

.l-sustainability_action_item_thumb_wrapper {
  width: 25.4rem;
  height: 14.3rem;
  margin-bottom: 2rem;
  overflow: hidden;
}

.l-sustainability_action_item_time {
  display: block;
  margin-bottom: 1.2rem;
}

.l-sustainability_action_btn {
  position: relative;
  --btn-width: 30.4rem;
  border: 1px solid var(--color-black);
  background-color: var(--color-black);
  color: var(--color-white);
  --btn-border-color: var(--color-black);
  --btn-font-color: var(--color-black);
  --btn-arrow-color: var(--color-black);
  -webkit-transition: background-color var(--easing) var(--duration),color var(--easing) var(--duration);
  transition: background-color var(--easing) var(--duration),color var(--easing) var(--duration);
}

.l-sustainability_action_btn svg path {
  -webkit-transition: stroke var(--easing) var(--duration);
  transition: stroke var(--easing) var(--duration);
}

.l-sustainability_section:has(+.l-sustainability_section) {
  margin-bottom: 21.6rem;
}

.l-sustainability_section_ttl {
  margin-bottom: 7.2rem;
  margin-left: .2rem;
}

.l-sustainability_section_ttl_small {
  font-size: 2.2rem;
  line-height: 1.6;
}

.l-sustainability_section_txt {
  margin-bottom: 4rem;
}

.l-sustainability_section_img {
  display: block;
  width: 100%;
  height: auto;
  margin-bottom: 5.6rem;
}

.l-sustainability_section_btn {
  width: 30.4rem;
  margin: auto;
  border: 1px solid var(--color-black);
  -webkit-transition: background-color var(--easing) var(--duration),color var(--easing) var(--duration);
  transition: background-color var(--easing) var(--duration),color var(--easing) var(--duration);
}

.l-sustainability_section_btn svg path {
  -webkit-transition: stroke var(--easing) var(--duration);
  transition: stroke var(--easing) var(--duration);
}

.l-sustainability_section_case {
  --color-yellow: #f8bc4c;
  --color-purple: #846cad;
  --color-green: #4cbc76;
  --color-blue: #4cc5cd;
  --color-pink: #ee799e;
}

.l-sustainability_section_case:has(+.l-sustainability_section_case) {
  margin-bottom: 12rem;
}

.l-sustainability_section_case_heading {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  margin-bottom: 4.8rem;
  gap: 2rem;
}

.l-sustainability_section_case_heading_txt {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  font-weight: 300;
  font-size: 4rem;
  line-height: 1;
  font-family: var(--font-jost);
  letter-spacing: .02em;
}

.l-sustainability_section_case_heading::after {
  display: block;
  width: 100%;
  height: .8rem;
  content: "";
}

.l-sustainability_section_case_heading.is-yellow::after {
  background-color: var(--color-yellow);
}

.l-sustainability_section_case_heading.is-purple::after {
  background-color: var(--color-purple);
}

.l-sustainability_section_case_heading.is-green::after {
  background-color: var(--color-green);
}

.l-sustainability_section_case_heading.is-blue::after {
  background-color: var(--color-blue);
}

.l-sustainability_section_case_heading.is-pink::after {
  background-color: var(--color-pink);
}

.l-sustainability_section_case_thumb {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  margin-bottom: 5.6rem;
  gap: 5.6rem;
}

.l-sustainability_section_case_thumb_img {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  aspect-ratio: 3/2;
  width: 52rem;
  height: auto;
}

.l-sustainability_section_case_thumb_txt {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  gap: 5.6rem;
}

.l-sustainability_section_case_thumb_txt_sdgs {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 1.2rem 1rem;
  font-size: 1.4rem;
  line-height: 1.5;
  letter-spacing: .03em;
}

.l-sustainability_section_case_thumb_txt_sdgs::before {
  display: block;
  width: 100%;
  content: "関連するSDGs";
}

.l-sustainability_section_case_thumb_txt_sdgs_icn {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 6.4rem;
  height: 6.4rem;
}

.l-sustainability_section_case_txt {
  margin-bottom: 5.6rem;
}

.l-sustainability_section_case_desc {
  padding: 4rem 5.6rem;
  border: 1px solid var(--color-black-30);
  background-color: var(--color-white);
}

.l-sustainability_section_case_desc:has(+*) {
  margin-bottom: 5.6rem;
}

.l-sustainability_section_case_desc_list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  margin-bottom: 3.2rem;
  gap: 1.2rem;
}

.l-sustainability_section_case_desc_list_item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: .8rem;
}

.l-sustainability_section_case_desc_list_item::before {
  display: block;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 1.6rem;
  height: .4rem;
  margin-top: 1.1rem;
  content: "";
}

.l-sustainability_section_case_desc_list_item.is-yellow::before {
  background-color: var(--color-yellow);
}

.l-sustainability_section_case_desc_list_item.is-purple::before {
  background-color: var(--color-purple);
}

.l-sustainability_section_case_desc_list_item.is-green::before {
  background-color: var(--color-green);
}

.l-sustainability_section_case_desc_list_item.is-blue::before {
  background-color: var(--color-blue);
}

.l-sustainability_section_case_desc_list_item.is-pink::before {
  background-color: var(--color-pink);
}

.l-sustainability_section_case_desc_img {
  display: block;
  width: 100%;
}

.l-sustainability_section_case_desc_img:has(+*) {
  margin-bottom: 2rem;
}

.l-sustainability_section_case_desc_note {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: .4rem;
}

.l-sustainability_section_case_desc_note::before {
  display: inline-block;
  content: "※";
}

.l-sustainability_section_case_desc_btn {
  width: 30.4rem;
  margin: auto;
  border: 1px solid var(--color-black);
  -webkit-transition: background-color var(--easing) var(--duration),color var(--easing) var(--duration);
  transition: background-color var(--easing) var(--duration),color var(--easing) var(--duration);
}

.l-sustainability_section_case_desc_btn svg path {
  -webkit-transition: stroke var(--easing) var(--duration);
  transition: stroke var(--easing) var(--duration);
}

.l-sustainability_section_case_initiative {
  display: grid;
  grid-template-columns: 1fr 30.4rem;
  grid-template-areas: "heading heading" "txt img";
  padding-bottom: 5.6rem;
  gap: 3.2rem 4rem;
  border-bottom: 1px solid var(--color-black-30);
}

.l-sustainability_section_case_initiative:has(+*) {
  margin-bottom: 5.6rem;
}

.l-sustainability_section_case_initiative_heading {
  grid-area: heading;
}

.l-sustainability_section_case_initiative_txt {
  display: grid;
  grid-area: txt;
  gap: 3.2rem 0;
}

.l-sustainability_section_case_initiative_txt_btn {
  width: 30.4rem;
  border: 1px solid var(--color-black);
  -webkit-transition: background-color var(--easing) var(--duration),color var(--easing) var(--duration);
  transition: background-color var(--easing) var(--duration),color var(--easing) var(--duration);
}

.l-sustainability_section_case_initiative_txt_btn svg path {
  -webkit-transition: stroke var(--easing) var(--duration);
  transition: stroke var(--easing) var(--duration);
}

.l-sustainability_section_case_initiative_img {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  grid-area: img;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 1rem;
}

.l-sustainability_section_case_initiative_img_caption {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 1rem .8rem;
}

.l-sustainability_section_case_initiative_img_caption_term {
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
}

.l-sustainability_section_case_initiative_img_caption_detail {
  display: block;
  width: auto;
}

.l-sustainability_section_case_example {
  padding-bottom: 5.6rem;
  border-bottom: 1px solid var(--color-black-30);
}

.l-sustainability_section_case_example_ttl {
  margin-bottom: 3.2rem;
}

.l-sustainability_section_case_example_list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 4rem;
}

.l-sustainability_section_case_example_list_item {
  display: grid;
  grid-template-rows: auto 1fr;
  grid-template-columns: 30.4rem 1fr;
  grid-template-areas: "img heading" "img desc";
  gap: 1.2rem 4rem;
}

.l-sustainability_section_case_example_list_item_img {
  grid-area: img;
}

.l-sustainability_section_case_example_list_item_heading {
  grid-area: heading;
}

.l-sustainability_section_case_example_list_item_desc {
  grid-area: desc;
}

@media screen and (max-width: 48em) {
  .l-sustainability_wrapper {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    grid-template-columns: 1fr;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    padding-top: 8rem;
    padding-right: 2rem;
    padding-left: 2rem;
    overflow: hidden;
    gap: 7.7rem 0;
  }
  .l-sustainability_index {
    padding-bottom: 3.2rem;
    border-bottom: 1px solid var(--color-black-30);
  }
  .l-sustainability_index_item_link {
    font-size: 1.6rem;
  }
  .l-sustainability_index_item_link::before {
    top: 0;
    width: 1.4rem;
    height: 1.4rem;
  }
  .l-sustainability_index_item_link.is-active::before {
    background-color: unset;
    color: var(--color-black);
  }
  .l-sustainability_policy_ttl {
    --ttl-mb: 4.8rem;
  }
  .l-sustainability_policy_ttl_sub {
    margin-bottom: 2rem;
  }
  .l-sustainability_action_ttl {
    --ttl-mb: 4.8rem;
  }
  .l-sustainability_action_item_wrapper {
    grid-template-columns: 1fr;
    gap: 3.7rem;
  }
  .l-sustainability_action_item_thumb_wrapper {
    width: 33.5rem;
    height: 18.8rem;
  }
  .l-sustainability_action_btn {
    --btn-width: 100%;
  }
  .l-sustainability_section:has(+.l-sustainability_section) {
    margin-bottom: 12rem;
  }
  .l-sustainability_section_ttl {
    margin-bottom: 4.8rem;
  }
  .l-sustainability_section_ttl_small {
    display: block;
    font-size: 2rem;
  }
  .l-sustainability_section_img {
    width: 100vw;
    max-width: initial;
    margin-inline: calc(50% - 50vw);
  }
  .l-sustainability_section_btn {
    width: 100%;
  }
  .l-sustainability_section_case_heading {
    margin-bottom: 4rem;
  }
  .l-sustainability_section_case_heading_txt {
    font-size: 2.8rem;
  }
  .l-sustainability_section_case_thumb {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    margin-bottom: 4rem;
    gap: 2.4rem;
  }
  .l-sustainability_section_case_thumb_txt {
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
    gap: 2.4rem;
  }
  .l-sustainability_section_case_txt {
    margin-bottom: 4rem;
  }
  .l-sustainability_section_case_desc {
    padding: 3.2rem 2rem;
  }
  .l-sustainability_section_case_desc:has(+*) {
    margin-bottom: 4rem;
  }
  .l-sustainability_section_case_desc_list {
    margin-bottom: 2.4rem;
  }
  .l-sustainability_section_case_desc_btn {
    width: 100%;
  }
  .l-sustainability_section_case_initiative {
    grid-template-columns: 1fr;
    grid-template-areas: "heading" "img" "txt";
    padding-bottom: 4rem;
    gap: 2.4rem;
  }
  .l-sustainability_section_case_initiative:has(+*) {
    margin-bottom: 4rem;
  }
  .l-sustainability_section_case_initiative_txt {
    gap: 2.4rem 0;
  }
  .l-sustainability_section_case_initiative_txt_btn {
    width: 100%;
  }
  .l-sustainability_section_case_example {
    padding-bottom: 4rem;
  }
  .l-sustainability_section_case_example_list_item {
    display: block;
  }
  .l-sustainability_section_case_example_list_item_img {
    margin-bottom: 2rem;
  }
  .l-sustainability_section_case_example_list_item_heading {
    margin-bottom: 1.2rem;
  }
}

@media (hover: hover) {
  .l-sustainability_index_item_link:hover::before {
    background-color: var(--color-black);
  }
  .l-sustainability_index_item_link.is-num:hover::before {
    color: var(--color-white);
  }
  .l-sustainability_action_item_link:hover img {
    -webkit-transform: scale(1.1);
            transform: scale(1.1);
  }
  .l-sustainability_action_btn:hover {
    border: 1px solid var(--btn-border-color, var(--color-black));
    background-color: var(--btn-bg-color, transparent);
    color: var(--btn-font-color, var(--color-black));
  }
  .l-sustainability_action_btn:hover svg path {
    stroke: var(--btn-arrow-color, var(--color-black));
  }
  .l-sustainability_section_btn:hover {
    border: 1px solid var(--btn-border-color, var(--color-black));
    background-color: var(--btn-bg-color, transparent);
    color: var(--btn-font-color, var(--color-black));
  }
  .l-sustainability_section_btn:hover svg path {
    stroke: var(--btn-arrow-color, var(--color-black));
  }
  .l-sustainability_section_case_desc_btn:hover {
    border: 1px solid var(--btn-border-color, var(--color-black));
    background-color: var(--btn-bg-color, transparent);
    color: var(--btn-font-color, var(--color-black));
  }
  .l-sustainability_section_case_desc_btn:hover svg path {
    stroke: var(--btn-arrow-color, var(--color-black));
  }
  .l-sustainability_section_case_initiative_txt_btn:hover {
    border: 1px solid var(--btn-border-color, var(--color-black));
    background-color: var(--btn-bg-color, transparent);
    color: var(--btn-font-color, var(--color-black));
  }
  .l-sustainability_section_case_initiative_txt_btn:hover svg path {
    stroke: var(--btn-arrow-color, var(--color-black));
  }
}
