@charset "utf-8";
.s-kv .c-catch { margin-bottom: 1.2rem; font-size: 2.2rem; font-weight: 700; line-height: 1.6; letter-spacing: .04em; }
@media print, screen and (min-width: 768px) {
  .s-kv .c-catch { font-size: 2.8rem; }
}
.c-case .s-ph img, .t-sub-cases .s-media .s-ph img, [class*="t-sub-cases-"] .s-media .s-ph img { object-position: 50% 28%; }
.s-theme .s-theme-bg img { object-position: 50% 30%; }
.c-list-lead { max-width: 72rem; margin: -2rem 0 5rem; }
@media print, screen and (min-width: 768px) {
  .c-list-lead { margin: -3rem 0 7rem; }
}
.c-nums { display: grid; grid-template-columns: repeat(3, auto); justify-content: start; gap: 0 2.4rem; margin-top: 1.6rem; padding-top: 1.6rem; border-top: .1rem solid rgb(var(--c-ink-rgb) / .2); }
.c-nums dt { margin-bottom: .6rem; color: rgb(var(--c-accent-rgb)); font-size: 1.2rem; font-weight: 500; letter-spacing: .04em; white-space: nowrap; }
.c-nums dd { font-size: 1.3rem; font-weight: 700; white-space: nowrap; }
.c-nums .t-num { margin-right: .1em; font-family: var(--font-en); font-size: 2.8rem; font-weight: 600; line-height: 1; letter-spacing: 0; }
.c-case h3 { margin-bottom: 0; }
.c-case .s-arrow { font-family: var(--font-jp); font-weight: 700; letter-spacing: .04em; }
@media print, screen and (min-width: 768px) {
  .c-nums { gap: 0 3.2rem; }
  .c-nums .t-num { font-size: 3.2rem; }
}
.c-others-ttl { margin: 8rem 0 2.4rem; font-size: 1.8rem; font-weight: 700; line-height: 1.6; letter-spacing: .04em; }
.c-others { display: grid; gap: 3rem; }
.c-other { padding-top: 2.4rem; border-top: .1rem solid rgb(var(--c-ink-rgb) / .9); }
.c-other .s-tag { display: inline-block; padding: 0 1.2rem; color: rgb(var(--c-accent-rgb)); border: .1rem solid currentColor; border-radius: 3em; font-size: 1.2rem; line-height: 2.6rem; letter-spacing: .04em; }
.c-other .c-nums { border-top: 0; }
@media print, screen and (min-width: 768px) {
  .c-others-ttl { margin-top: 11rem; font-size: 2rem; }
  .c-others { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4rem; }
}
@media print, screen and (min-width: 1024px) {
  .c-others { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.c-voices { display: grid; gap: 2.4rem; }
.c-voice { display: flex; flex-direction: column; background: rgb(255 255 255); font-size: 1.5rem; }
.c-voice .c-voice-tag { margin: 2rem 0 1.6rem; font-size: 1.3rem; font-weight: 700; letter-spacing: .04em; }
.c-voice cite { margin-top: auto; padding-top: 2rem; line-height: 1.8; }
@media print, screen and (min-width: 768px) {
  .c-voice { padding: 5rem 4rem 4rem; font-size: 1.5rem; line-height: 2; }
}
@media print, screen and (min-width: 1024px) {
  .c-voices { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 3rem; }
}
.c-index { margin-top: 4rem; background: rgb(255 255 255); }
.c-impact-h { margin-top: 6rem; scroll-margin-top: 10rem; }
.c-summary .s-stats { margin-top: 0; }
@media print, screen and (min-width: 768px) {
  .c-impact-h { margin-top: 8rem; }
}
.c-cta { padding-top: 0; }
.c-cta-in { padding: 5rem 2.4rem; border-top: .1rem solid rgb(var(--c-ink-rgb) / .9); border-bottom: .1rem solid rgb(var(--c-ink-rgb) / .9); }
.c-cta-h { margin-bottom: 3.2rem; font-size: 2.2rem; font-weight: 700; line-height: 1.6; letter-spacing: .04em; }
@media print, screen and (min-width: 768px) {
  .c-cta-in { display: flex; justify-content: space-between; align-items: center; gap: 4rem; padding: 6rem 0; }
  .c-cta-h { margin-bottom: 0; font-size: 2.8rem; }
}
.s-sec.s-gray + .s-sec.c-cta:not(.s-gray):not(.s-sumi), .s-sec.s-sumi + .s-sec.c-cta:not(.s-gray):not(.s-sumi) { padding-top: 13rem; }
@media screen and (max-width: 767px) {
  .s-sec.s-gray + .s-sec.c-cta:not(.s-gray):not(.s-sumi), .s-sec.s-sumi + .s-sec.c-cta:not(.s-gray):not(.s-sumi) { padding-top: 8rem; }
  .c-cta-in { padding-right: 0; padding-left: 0; }
}
.s-sec.s-sumi + .s-sec:not(.s-gray):not(.s-sumi), .s-sec.s-gray + .s-sec:not(.s-gray):not(.s-sumi) { padding-top: 8rem; }
@media print, screen and (min-width: 768px) {
  .s-sec.s-sumi + .s-sec:not(.s-gray):not(.s-sumi), .s-sec.s-gray + .s-sec:not(.s-gray):not(.s-sumi) { padding-top: 13rem; }
}
@media screen and (max-width: 767px) {
  .c-numbers .s-stats { grid-template-columns: minmax(0, 1fr); gap: 2.4rem; }
}
@media print, screen and (min-width: 1024px) {
  .c-voices { grid-template-columns: minmax(0, 1fr); gap: 2.4rem; }
  .c-voice { display: grid; grid-template-columns: 26rem minmax(0, 1fr); gap: 0 6rem; padding: 6rem 6rem 6rem 7rem; }
  .c-voice .c-voice-tag { grid-column: 1; grid-row: 1; margin: 0; font-size: 1.6rem; }
  .c-voice > p:not(.c-voice-tag) { grid-column: 2; grid-row: 1 / span 2; font-size: 1.6rem; line-height: 2.1; }
  .c-voice cite { grid-column: 1; grid-row: 2; align-self: end; margin-top: 0; padding-top: 1.6rem; }
}
.c-ov.s-media { align-items: start; }
@media print, screen and (min-width: 768px) {
  .c-ov.s-media .s-ph { position: sticky; top: 12rem; }
}
.s-theme .s-theme-bg img { object-position: 50% 18%; }
@media screen and (max-width: 767px) {
  .s-sec .t-ttl .t-lat { font-size: 4.6rem; }
}
@media screen and (min-width: 768px) and (max-width: 1023px) {
  .s-links.s-c3.c-cases { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
  .c-numbers .s-stats.s-c3 {
    gap: 0;
  }
  .c-numbers .s-stat {
    padding: 2.4rem 2.4rem 0;
    border-top: .1rem solid rgb(255 255 255 / .5);
  }
  .c-numbers .s-stat:first-child {
    padding-left: 0;
  }
  .c-numbers .s-stat + .s-stat {
    border-left: .1rem solid rgb(255 255 255 / .2);
  }
  .c-numbers .s-stat .t-num {
    font-size: 3.6rem;
  }
  .c-numbers .s-note {
    margin-top: 3.2rem;
  }
}
#list .c-case .s-ph {
  display: none;
}
#list .c-cases {
  counter-reset: cs;
}
#list .c-case {
  counter-increment: cs;
}
#list .c-cases {
  display: block;
  border-top: .1rem solid rgb(var(--c-ink-rgb) / .9);
  border-bottom: .1rem solid rgb(var(--c-ink-rgb) / .9);
}
#list .c-case {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-areas: "tag" "h3" "nums" "arrow";
  align-items: start;
  padding: 3.2rem 0 3.2rem;
  transition: background-color 300ms;
}
#list .c-case + .c-case {
  border-top: .1rem solid rgb(var(--c-ink-rgb) / .2);
}
#list .c-case::before {
  content: none;
  display: none;
  grid-area: no;
  padding-top: .4rem;
  color: rgb(var(--c-accent-rgb));
  font-family: var(--font-en);
  font-size: 1.4rem;
  font-weight: 600;
  line-height: 1;
  letter-spacing: .06em;
}
#list .c-case .s-tag {
  grid-area: tag;
  justify-self: start;
  margin-bottom: 1rem;
}
#list .c-case h3 {
  grid-area: h3;
  font-size: 2rem;
}
#list .c-case .c-nums {
  grid-area: nums;
  grid-template-columns: repeat(3, auto);
  gap: 0 1.6rem;
  margin-top: 2rem;
  padding-top: 0;
  border-top: 0;
}
#list .c-case .c-nums .t-num {
  font-size: 2.8rem;
  font-weight: 500;
}
#list .c-case .s-arrow {
  grid-area: arrow;
  justify-self: start;
  margin-top: 2rem;
}
#list .c-case:hover {
  background: rgb(var(--c-ink-rgb) / .03);
}
@media print, screen and (min-width: 768px) {
  #list .c-case {
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas: "tag arrow" "h3 arrow" "nums nums";
    padding: 3.6rem 2.4rem 3.6rem 0;
  }
  #list .c-case::before {
    font-size: 1.6rem;
  }
  #list .c-case .s-arrow {
    align-self: center;
    margin-top: 0;
  }
  #list .c-case .c-nums {
    grid-template-columns: 11rem 9rem minmax(0, 1fr);
    gap: 0 3.2rem;
    margin-top: 2.4rem;
  }
}
@media print, screen and (min-width: 1024px) {
  #list .c-case {
    grid-template-columns: minmax(0, 1fr) 12rem 9rem 15rem 16rem;
    grid-template-areas: "tag nums nums nums arrow" "h3 nums nums nums arrow";
    column-gap: 0;
    align-items: center;
    padding: 4.4rem 2.4rem 4.4rem 0;
  }
  #list .c-case::before {
    align-self: start;
    padding-top: .6rem;
  }
  #list .c-case .s-tag {
    align-self: end;
  }
  #list .c-case h3 {
    align-self: start;
    padding-right: 3.2rem;
    font-size: 2.2rem;
  }
  #list .c-case .c-nums {
    display: contents;
  }
  #list .c-case .c-nums > div {
    grid-row: 1 / span 2;
    align-self: center;
    padding-left: 2.4rem;
    border-left: .1rem solid rgb(var(--c-ink-rgb) / .12);
  }
  #list .c-case .c-nums > div:nth-child(1) {
    grid-column: 3;
  }
  #list .c-case .c-nums > div:nth-child(2) {
    grid-column: 4;
  }
  #list .c-case .c-nums > div:nth-child(3) {
    grid-column: 5;
  }
  #list .c-case .c-nums .t-num {
    font-size: 3.6rem;
  }
  #list .c-case .s-arrow {
    grid-column: 6;
    grid-row: 1 / span 2;
    justify-self: end;
  }
}
@media print, screen and (min-width: 768px) {
  #cs-numbers .s-split { display: block; }
  #cs-numbers .s-split > .t-ttl { position: static; margin-bottom: 5.6rem; }
  #cs-numbers .s-stat dd { white-space: nowrap; }
}
@media screen and (min-width: 768px) and (max-width: 1023px) {
  #cs-numbers .s-stat .t-num { font-size: clamp(4.4rem, 6.2vw, 7.2rem); }
}
#cs-voice { padding-top: 0; }
#cs-voice .c-voice { background: rgb(241 241 241); }
#cs-voice .c-voice {
  border-top: .2rem solid rgb(var(--c-ink-rgb));
}
#list .c-case .c-nums > div { text-align: center; }
@media screen and (max-width: 767px) {
  #list .c-case .c-nums {
    display: block;
    margin-top: 1.2rem;
  }
  #list .c-case .c-nums > div {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    padding: .8rem 0;
    text-align: left;
  }
  #list .c-case .c-nums > div + div { border-top: .1rem solid rgb(var(--c-ink-rgb) / .12); }
  #list .c-case .c-nums dt { margin-bottom: 0; }
}
@media print, screen and (min-width: 768px) {
  #list .c-case .c-nums {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
  }
  #list .c-case .c-nums > div {
    padding: .4rem 1.6rem;
    border-left: .1rem solid rgb(var(--c-ink-rgb) / .12);
  }
  #list .c-case .c-nums > div:last-child {
    border-right: .1rem solid rgb(var(--c-ink-rgb) / .12);
  }
}
@media print, screen and (min-width: 1024px) {
  #list .c-case {
    grid-template-columns: minmax(0, 1fr) repeat(3, 18rem) auto;
    grid-template-areas: "tag n1 n2 n3 arrow" "h3 n1 n2 n3 arrow";
  }
  #list .c-case .c-nums > div {
    padding: 0 1.6rem;
  }
  #list .c-case .c-nums > div:nth-child(1) { grid-column: 2; }
  #list .c-case .c-nums > div:nth-child(2) { grid-column: 3; }
  #list .c-case .c-nums > div:nth-child(3) { grid-column: 4; }
  #list .c-case .s-arrow {
    grid-column: 5;
    padding-left: 3.2rem;
  }
}
@media screen and (min-width: 1024px) and (max-width: 1199px) {
  #list .c-case { grid-template-columns: minmax(0, 1fr) repeat(3, 16rem) auto; }
}
.c-numbers .s-stat { text-align: center; }
@media (min-width: 1024px) {
  .c-numbers .s-stat:first-child { padding-left: 2.4rem; }
}
.c-kv ~ .s-sec .s-dl dd > .t-num { margin-right: .25em; }
.c-summary .s-stat .t-num, .c-kv ~ .s-sec .s-stat .t-num { margin-right: .22em; }
.c-kv ~ .s-sec .c-nums .t-num { margin-right: .2em; }
@media screen and (min-width: 768px) and (max-width: 1279px) {
  .c-kv ~ .s-sec .s-dl > div { grid-template-columns: 12rem minmax(0, 1fr); }
}
@media (hover: hover) {
  #list .c-case {
    transition: background-color 300ms, color 300ms, padding 300ms, box-shadow 300ms;
  }
  #list .c-case:hover {
    padding-right: 2.4rem;
    padding-left: 2.4rem;
    color: rgb(255 255 255);
    background: rgb(var(--c-sumi-rgb));
  }
  #list .c-case:hover * {
    color: rgb(255 255 255);
    border-color: rgb(255 255 255 / .6);
  }
  #list .c-case:hover h3 {
    opacity: 1;
  }
}
#cs-numbers .s-note { margin-top: 5.6rem; }
