
.case {
  overflow: hidden;
}
.case-bg {
  background: url(../img/cmn/bg01.png) no-repeat center top, url(../img/cmn/bg.svg) no-repeat center bottom, hsl(194, 100%, 95%);
  background-size: 100%, contain;
  background-blend-mode: normal;
}
.case__content {
  width: min(1200px, 98%);
  margin-inline: auto;
}
.case__tab {
  display: grid;
  grid-template-columns: repeat(8, 1fr);
  border: 2px solid hsl(26, 54%, 25%);
  border-radius: 25px;
  margin-block-end: clamp(2.5rem, 0.23rem + 9.7vw, 7.5rem);
  overflow: hidden;
}
@media screen and (max-width: 1024px) {
  .case__tab {
    border: none;
    border-radius: 0;
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
  }
}
@media screen and (max-width: 768px) {
  .case__tab {
    grid-template-columns: repeat(1, 1fr);
  }
}
.case__li {
  background-image: url(../img/case/tab02.png);
  background-repeat: no-repeat;
  background-position: center top 8px;
  background-size: 60px;
  background-color: hsl(0, 0%, 100%);
}
.case__li:not(:last-of-type) {
  border-right: 1px solid hsl(26, 54%, 25%);
}
@media screen and (max-width: 1024px) {
  .case__li:not(:last-of-type) {
    border-right: none;
  }
}
@media screen and (max-width: 1024px) {
  .case__li {
    background-position: left 8px center;
    background-size: max(32px,6vw);
  }
}
.case__li > a {
  height: 100%;
  padding-block-start: clamp(1.5rem, 0.36rem + 4.85vw, 4rem);
  display: grid;
  grid-template-rows: 1fr auto;
  align-items: center;
  padding-inline: clamp(1.5rem, 1.27rem + 0.97vw, 2rem);
}
@media screen and (max-width: 1024px) {
  .case__li > a {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    flex-wrap: nowrap;
    padding-block: 1.5rem;
    gap: 1.5rem;
    border: 1px solid hsl(26, 54%, 25%);
    padding-inline-start: max(47px,8vw);
  }
}
@media screen and (max-width: 768px) {
  .case__li > a {
    padding-block: 1rem;
  }
}
.case__li .ttl {
  writing-mode: vertical-rl;
  transform: rotate(10deg);
  justify-self: center;
  font-size: clamp(1.1rem, 0.59rem + 1.21vw, 1.5rem);
  font-weight: 800;
  line-height: 1;
  text-align: center;
}
@media screen and (max-width: 1024px) {
  .case__li .ttl {
    writing-mode: horizontal-tb;
    transform: rotate(0);
  }
}
.case__li .name {
  margin-block-start: clamp(1rem, 0.89rem + 0.48vw, 1.25rem);
  margin-block-end: clamp(1.5rem, 1.33rem + 0.73vw, 1.875rem);
  align-self: end;
  justify-self: center;
  font-size: clamp(0.875rem, 0.82rem + 0.24vw, 1rem);
}
@media screen and (max-width: 768px) {
  .case__li .name {
    margin-block-start: 0;
    margin-block-end: 0;
  }
}
.case__li:hover {
  background-image: url(../img/case/tab.png);
}
.case__li:hover .ttl,
.case__li:hover .name {
  color: #be0000;
}
@media screen and (max-width: 1024px) {
  .case__li:hover {
    background-image: none;
  }
}
.case__flex {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: nowrap;
  row-gap: 1.5rem;
  margin-block-end: clamp(4rem, 3.55rem + 1.94vw, 5rem);
}
@media screen and (max-width: 768px) {
  .case__flex {
    flex-direction: column;
  }
}
.case__img {
  position: relative;
  flex-basis: 56%;
  width: min(655px, 56%);
}
@media screen and (max-width: 768px) {
  .case__img {
    width: min(655px, 100%);
  }
}
.case__img .before {
  position: absolute;
  z-index: 2;
  transform: translate(-20%, -30%);
  width: min(198px, 26vw);
}
@media screen and (max-width: 768px) {
  .case__img .before {
    transform: translate(-5%, -30%);
  }
}
.case__img .before::before {
  content: "Before";
  display: block;
  font-size: clamp(0.875rem, 0.82rem + 0.24vw, 1rem);
  background-color: hsl(26, 54%, 25%);
  color: hsl(0, 0%, 100%);
  padding-block: 0.2em;
  padding-inline: 0.5em;
  border-radius: 5px;
  position: absolute;
  left: 50%;
  top: 20px;
  transform: translate(-50%, 0);
}
.case__img .before::after {
  content: "";
  display: block;
  background: url(../img/case/img03.png) no-repeat center/contain;
  width: min(86px, 4.4791666667vw);
  aspect-ratio: 1/1;
  position: absolute;
  top: 50%;
  left: 90%;
  transform: translate(0%, 0%);
}
.case__img .after {
  border: 2px solid hsl(26, 54%, 25%);
  box-shadow: 4px 4px 0px hsl(26, 54%, 25%);
}
/*.case__img .after::before {
  content: "After";
  display: block;
  font-size: clamp(1rem, 0.74rem + 1.09vw, 1.5625rem);
  background-color: #ff0000;
  color: hsl(0, 0%, 100%);
  padding-block: 0;
  padding-inline: 0.5em;
  border-radius: 5px;
  position: absolute;
  right: 1rem;
  top: 1rem;
  z-index: 3;
  border: 2px solid hsl(26, 54%, 25%);
}*/
.case__slide img {
  width: auto;
  max-width: 100%;
}
.case__box {
  flex-basis: 40%;
}
.case__name {
  font-size: clamp(1.55rem, 0.5rem + 2.67vw, 2.5rem);
  margin-block-end: 1.25rem;
  font-weight: 800;
}
.case__name span {
  font-size: clamp(0.875rem, 0.65rem + 0.97vw, 1.375rem);
  margin-inline-start: 1.25rem;
}
.case__ttl {
  position: relative;
  font-size: clamp(1.125rem, 0.9rem + 0.97vw, 1.625rem);
  font-weight: 700;
  background-color: hsl(26, 54%, 25%);
  border-radius: 50px;
  padding-inline-start: calc(4.5rem + 2%);
  padding-inline-end: 2rem;
  width: -moz-fit-content;
  width: fit-content;
  color: #fff;
  margin-block-end: 1rem;
  padding-block: .35em;
}
@media screen and (max-width: 768px) {
  .case__ttl {
    padding-inline-start: calc(3.5rem + 2%);
  }
}
.case__ttl::before {
  content: "";
  display: inline-block;
  background: url(../img/case/icon02.svg) no-repeat center/contain;
  width: 55px;
  aspect-ratio: 1;
  position: absolute;
  left: 16px;
  top: -7px;
}
@media screen and (max-width: 768px) {
  .case__ttl::before {
    width: 38px;
  }
}
.case__ttl::after {
  content: "";
  position: absolute;
  display: block;
  background-color: hsl(26, 54%, 25%);
  width: 24px;
  height: 17px;
  -webkit-clip-path: polygon(0 0, 80% 0, 100% 100%);
          clip-path: polygon(0 0, 80% 0, 100% 100%);
}
@media screen and (max-width: 768px) {
  .case__ttl::after {
    width: 18px;
    height: 10px;
  }
}
.case__txt {
  width: min(450px, 98%);
  font-size: clamp(0.875rem, 0.7rem + 0.73vw, 1.25rem);
}
@media screen and (max-width: 768px) {
  .case__txt {
    width: 100%;
  }
}
.case__txt .ti {
  font-size: clamp(1.1rem, 0.53rem + 1.45vw, 1.5rem);
  font-weight: 800;
  line-height: 1.8;
  margin-bottom: 1em;
  display: block;
}
.case__txt .ti span{
  border-bottom: 1px solid hsl(26, 54%, 25%);
  padding-bottom: .15em;
}
