@media only screen and (max-width: 768px) {
  .c-mv {
    background-image: url("../img/img-main_sp.jpg");
  }
}
@media print, screen and (min-width: 769px) {
  .c-mv {
    background-image: url("../img/img-main.jpg");
  }
}

@media only screen and (max-width: 768px) {
  .p-case {
    margin-bottom: 16vw;
    padding-inline: 8vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-case {
    margin: 0 auto min(120px, 8.5714285714vw);
    width: min(990px, 70.7142857143vw);
  }
}

.p-case-title {
  text-align: center;
}
@media only screen and (max-width: 768px) {
  .p-case-title {
    font-size: 6.1333333333vw;
    margin-bottom: 6.6666666667vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-case-title {
    font-size: min(32px, 2.2857142857vw);
    margin-bottom: min(60px, 4.2857142857vw);
  }
}

@media only screen and (max-width: 768px) {
  .p-case-items {
    margin: 0 -2.6666666667vw 13.3333333333vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-case-items {
    margin-bottom: min(136px, 9.7142857143vw);
  }
}

.p-case-item {
  background: var(--bc03);
}
@media only screen and (max-width: 768px) {
  .p-case-item {
    padding: 4vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-case-item {
    padding: min(20px, 1.4285714286vw);
  }
}
@media only screen and (max-width: 768px) {
  .p-case-item + .p-case-item {
    margin-top: 4.2666666667vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-case-item + .p-case-item {
    margin-top: min(32px, 2.2857142857vw);
  }
}

@media print, screen and (min-width: 769px) {
  .p-case-main {
    display: flex;
    gap: min(50px, 3.5714285714vw);
    margin-bottom: min(20px, 1.4285714286vw);
  }
}

.p-case-main-image {
  flex-shrink: 0;
}
@media only screen and (max-width: 768px) {
  .p-case-main-image {
    margin-bottom: 4vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-case-main-image {
    width: min(425px, 30.3571428571vw);
  }
}
.p-case-main-image img {
  width: 100%;
  height: auto;
}

@media print, screen and (min-width: 769px) {
  .p-case-main-detail {
    padding-top: min(10px, 0.7142857143vw);
  }
}

@media only screen and (max-width: 768px) {
  .p-case-info {
    font-size: 3.2vw;
    margin-bottom: 2.6666666667vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-case-info {
    font-size: min(13px, 0.9285714286vw);
    margin-bottom: min(10px, 0.7142857143vw);
  }
}

.p-case-heading {
  color: var(--bc01);
  line-height: 1.5;
  position: relative;
}
@media only screen and (max-width: 768px) {
  .p-case-heading {
    font-size: 4.2666666667vw;
    margin-bottom: 3.3333333333vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-case-heading {
    font-size: min(20px, 1.4285714286vw);
    margin-bottom: min(15px, 1.0714285714vw);
    padding-bottom: min(17px, 1.2142857143vw);
  }
}
@media only screen and (max-width: 768px) {
  .p-case-heading br {
    display: none;
  }
}
.p-case-heading::after {
  background: var(--grad-blue);
  bottom: 0;
  content: "";
  display: block;
  left: 0;
  position: absolute;
}
@media print, screen and (min-width: 769px) {
  .p-case-heading::after {
    height: min(2px, 0.1428571429vw);
    width: min(30px, 2.1428571429vw);
  }
}

.p-case-text {
  letter-spacing: 0.08em;
}
@media only screen and (max-width: 768px) {
  .p-case-text {
    font-size: 3.7333333333vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-case-text {
    font-size: min(15px, 1.0714285714vw);
  }
}

.p-case-images {
  display: -ms-grid;
  display: grid;
}
@media only screen and (max-width: 768px) {
  .p-case-images {
    gap: 1.3333333333vw;
    -ms-grid-columns: 1fr 1.3333333333vw 1fr 1.3333333333vw 1fr;
    grid-template-columns: repeat(3, 1fr);
    margin-bottom: 6.6666666667vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-case-images {
    gap: min(10px, 0.7142857143vw);
    -ms-grid-columns: 1fr min(10px, 0.7142857143vw) 1fr min(10px, 0.7142857143vw) 1fr min(10px, 0.7142857143vw) 1fr min(10px, 0.7142857143vw) 1fr min(10px, 0.7142857143vw) 1fr min(10px, 0.7142857143vw) 1fr;
    grid-template-columns: repeat(7, 1fr);
  }
}
.p-case-images li a {
  transition: 0.3s ease-in-out;
}
@media print, screen and (min-width: 769px) {
  .p-case-images li a {
    width: min(150px, 10.7142857143vw);
  }
}
.p-case-images li a.is-no-link {
  pointer-events: none;
}
.p-case-images li a img {
  height: 100%;
  object-fit: cover;
  width: 100%;
}
@media print, screen and (min-width: 769px) {
  .p-case-images li a:hover {
    opacity: 0.7;
  }
}

.p-pagination {
  align-items: center;
  display: flex;
  justify-content: center;
}
@media only screen and (max-width: 768px) {
  .p-pagination {
    gap: 1.3333333333vw;
    margin-top: 8vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-pagination {
    gap: min(10px, 0.7142857143vw);
    margin-top: min(60px, 4.2857142857vw);
  }
}
.p-pagination a {
  display: -ms-grid;
  display: grid;
  place-content: center;
}
@media only screen and (max-width: 768px) {
  .p-pagination a {
    height: 8vw;
    width: 8vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-pagination a {
    height: min(36px, 2.5714285714vw);
    width: min(36px, 2.5714285714vw);
  }
}

.p-pagination-num a {
  background: var(--bc03);
  border: 1px solid var(--bc01);
  color: var(--bc01);
  font-weight: bold;
  transition: 0.3s ease-in-out;
}
@media only screen and (max-width: 768px) {
  .p-pagination-num a {
    font-size: 3.7333333333vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-pagination-num a {
    font-size: min(15px, 1.0714285714vw);
  }
}
@media print, screen and (min-width: 769px) {
  .p-pagination-num a:hover {
    background: var(--bc01);
    color: #fff;
  }
}
.p-pagination-num.is-active a {
  background: var(--bc01);
  color: #fff;
}

.p-pagination-ellipsis {
  line-height: 1;
  vertical-align: middle;
}
@media only screen and (max-width: 768px) {
  .p-pagination-ellipsis {
    font-size: 3.7333333333vw;
    padding-bottom: 1.0666666667vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-pagination-ellipsis {
    font-size: min(15px, 1.0714285714vw);
    padding-bottom: min(8px, 0.5714285714vw);
  }
}

.p-pagination-prev a,
.p-pagination-next a {
  display: block;
  overflow: hidden;
  position: relative;
  text-indent: -999px;
  transition: 0.3s ease-in-out;
}
@media only screen and (max-width: 768px) {
  .p-pagination-prev a,
  .p-pagination-next a {
    height: 8vw;
    width: 8vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-pagination-prev a,
  .p-pagination-next a {
    height: min(36px, 2.5714285714vw);
    width: min(36px, 2.5714285714vw);
  }
}
.p-pagination-prev a::before,
.p-pagination-next a::before {
  background: var(--bc01);
  content: "";
  display: block;
  left: 50%;
  mask-image: url("../../img/icon-arrow01.svg");
  mask-size: contain;
  mask-repeat: no-repeat;
  position: absolute;
  top: 50%;
  translate: -50% -50%;
  transition: 0.3s ease-in-out;
}
@media only screen and (max-width: 768px) {
  .p-pagination-prev a::before,
  .p-pagination-next a::before {
    height: 2.6666666667vw;
    width: 1.7333333333vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-pagination-prev a::before,
  .p-pagination-next a::before {
    height: min(12px, 0.8571428571vw);
    width: min(8px, 0.5714285714vw);
  }
}
@media print, screen and (min-width: 769px) {
  .p-pagination-prev a:hover,
  .p-pagination-next a:hover {
    background: var(--bc01);
  }
}
@media print, screen and (min-width: 769px) {
  .p-pagination-prev a:hover::before,
  .p-pagination-next a:hover::before {
    background: #fff;
  }
}
.p-pagination-prev.is-disabled a,
.p-pagination-next.is-disabled a {
  pointer-events: none;
}
.p-pagination-prev.is-disabled a::before,
.p-pagination-next.is-disabled a::before {
  background: #c9c9c9;
}

@media only screen and (max-width: 768px) {
  .p-pagination-prev {
    margin-right: 0.5333333333vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-pagination-prev {
    margin-right: min(6px, 0.4285714286vw);
  }
}
.p-pagination-prev a::before {
  rotate: 180deg;
}

@media only screen and (max-width: 768px) {
  .p-pagination-next {
    margin-left: 0.5333333333vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-pagination-next {
    margin-left: min(6px, 0.4285714286vw);
  }
}

@media only screen and (max-width: 768px) {
  .c-factory-items {
    margin-bottom: 13.3333333333vw;
  }
}
@media print, screen and (min-width: 769px) {
  .c-factory-items {
    margin-bottom: min(80px, 5.7142857143vw);
  }
}