@charset "UTF-8";

/* 施工事例。PCは1000pxのコンテンツ幅、SPは414pxのデザインを基準に縮尺を合わせる。 */
.cases {
  --case-unit: calc(1.2173913 * var(--art-unit));
  --case-heading-unit: var(--art-unit);
  --case-blue: #002e7d;
  --case-orange: #ff5001;
  padding-block: calc(63 * var(--art-unit)) calc(71 * var(--art-unit));
  color: var(--case-blue);
  background: #ecf4ff;
  font-weight: 700;
}

.cases .art-inner > .cases__bulb {
  position: absolute;
  top: calc(-16 * var(--art-unit));
  left: calc(50% + 206 * var(--art-unit));
  width: calc(104.8 * var(--art-unit));
  height: auto;
  pointer-events: none;
}

/* 見出しの文字・リボン・左右の飾り。既存の見出しアニメーションを共用する。 */
.cases-heading {
  position: relative;
  z-index: 1;
  width: calc(412 * var(--case-heading-unit));
  margin-inline: auto;
  text-align: center;
}

.cases-heading > .heading-reveal__content {
  position: relative;
  min-height: calc(119.862 * var(--case-heading-unit));
}

.cases-heading__ribbon {
  position: relative;
  z-index: 0;
  display: block;
  width: calc(251.622 * var(--case-heading-unit));
  margin-inline: auto;
  padding-block: calc(5.215 * var(--case-heading-unit));
  background: #fde401;
  color: #013384;
  font-size: calc(19.556 * var(--case-heading-unit));
  line-height: calc(20.86 * var(--case-heading-unit));
  letter-spacing: 0.08em;
  white-space: nowrap;
}

.cases-heading__ribbon::before,
.cases-heading__ribbon::after {
  content: '';
  position: absolute;
  z-index: -1;
  top: calc(10.43 * var(--case-heading-unit));
  width: calc(35.201 * var(--case-heading-unit));
  height: calc(26.075 * var(--case-heading-unit));
  background: #fde401;
  clip-path: polygon(0 10%, 100% 0, 100% 100%, 0 90%, 25% 50%);
}

.cases-heading__ribbon::before {
  left: calc(-23.468 * var(--case-heading-unit));
}

.cases-heading__ribbon::after {
  right: calc(-23.468 * var(--case-heading-unit));
  transform: scaleX(-1);
}

.cases-heading__title {
  display: block;
  margin-top: calc(14.34 * var(--case-heading-unit));
  color: #003386;
  font-size: calc(70.148 * var(--case-heading-unit));
  font-weight: 900;
  line-height: calc(70.485 * var(--case-heading-unit));
  transform: skewX(-2deg);
}

.cases-heading__title > span {
  color: #fd5601;
}

.cases-heading__rays {
  position: absolute;
  top: calc(61 * var(--case-heading-unit));
  width: calc(49 * var(--case-heading-unit));
  height: calc(57 * var(--case-heading-unit));
}

.cases-heading__rays--left {
  left: calc(6 * var(--case-heading-unit));
}

.cases-heading__rays--right {
  right: calc(6 * var(--case-heading-unit));
  transform: scaleX(-1);
}

.cases-heading__rays i {
  position: absolute;
  left: 0;
  top: calc(28 * var(--case-heading-unit));
  width: calc(40 * var(--case-heading-unit));
  height: calc(5 * var(--case-heading-unit));
  border-radius: calc(4 * var(--case-heading-unit));
  background: #fd5601;
  clip-path: polygon(0 0, 100% 50%, 0 100%);
  transform: rotate(8deg);
}

.cases-heading__rays i:first-child {
  top: calc(10 * var(--case-heading-unit));
  left: calc(8 * var(--case-heading-unit));
  width: calc(32 * var(--case-heading-unit));
  transform: rotate(37deg);
}

.cases-heading__rays i:last-child {
  top: calc(48 * var(--case-heading-unit));
  left: calc(15 * var(--case-heading-unit));
  width: calc(26 * var(--case-heading-unit));
  transform: rotate(-35deg);
}

/* 事例を増やす場合はindex.htmlのarticle.case-cardを複製する。 */
.cases-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: calc(17 * var(--case-unit));
  margin-top: calc(48.616 * var(--art-unit));
  padding-left: calc(41.522 * var(--art-unit));
  padding-right: calc(27.174 * var(--art-unit));
}

.case-card {
  position: relative;
  min-width: 0;
  padding: 0 calc(7 * var(--case-unit)) calc(5 * var(--case-unit));
  border-radius: calc(7 * var(--case-unit));
  background: #fff;
  box-shadow: 0 0 calc(4 * var(--case-unit)) rgb(0 73 162 / 30%);
}

.case-card__badge {
  position: absolute;
  top: 0;
  left: calc(7 * var(--case-unit));
  display: flex;
  flex-direction: column;
  align-items: center;
  width: calc(79 * var(--case-unit));
  height: calc(95 * var(--case-unit));
  padding-top: calc(11 * var(--case-unit));
  background: var(--case-blue);
  color: #fff;
  clip-path: polygon(0 0, 100% 0, 100% 81%, 52% 100%, 0 81%);
  font-size: calc(19.712 * var(--case-unit));
  line-height: calc(21 * var(--case-unit));
}

.case-card__number {
  color: #fbe503;
  font-size: calc(40.408 * var(--case-unit));
  line-height: calc(44 * var(--case-unit));
}

.case-card__summary {
  margin-left: calc(97 * var(--case-unit));
  margin-right: calc(13 * var(--case-unit));
}

.case-card__property {
  display: flex;
  align-items: center;
  min-height: calc(31 * var(--case-unit));
  padding-left: calc(4 * var(--case-unit));
  font-size: calc(16.89 * var(--case-unit));
  line-height: 1.1;
  white-space: nowrap;
}

.case-card__property > span + span::before {
  content: '／';
  display: inline-block;
  margin-inline: calc(3 * var(--case-unit));
  font-weight: 400;
}

.case-card__details {
  margin: 0;
  font-size: calc(12.17 * var(--case-unit));
  line-height: 1.4;
}

.case-card__row {
  display: flex;
  align-items: center;
  min-height: calc(24 * var(--case-unit));
  border-top: 1px solid #d4e1f6;
}

.case-card__row dt {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  width: calc(98 * var(--case-unit));
  white-space: nowrap;
}

.case-card__row dt img {
  flex-shrink: 0;
  width: calc(24 * var(--case-unit));
  height: auto;
  margin-right: calc(10 * var(--case-unit));
}

.case-card__row dd {
  min-width: 0;
  margin: 0;
  overflow-wrap: anywhere;
}

.case-card__work {
  color: var(--case-orange);
  font-size: calc(14.95 * var(--case-unit));
  transform: skewX(-5deg);
}

.case-card__duration {
  font-size: calc(12.95 * var(--case-unit));
  transform: skewX(-5deg);
}

.case-card__duration strong {
  color: var(--case-orange);
  font-size: calc(14.95 * var(--case-unit));
}

.case-card__row--price {
  min-height: calc(30 * var(--case-unit));
}

.case-card__row--price dt {
  width: calc(75 * var(--case-unit));
}

.case-card__price {
  font-size: calc(13 * var(--case-unit));
  line-height: 1;
  white-space: nowrap;
}

.case-card__price strong {
  margin-right: calc(2 * var(--case-unit));
  color: var(--case-orange);
  font-size: calc(23.62 * var(--case-unit));
  line-height: 1.15;
}

.case-card__photos {
  position: relative;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: calc(18 * var(--case-unit));
}

.case-card__photos::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: calc(12.5 * var(--case-unit));
  height: calc(24 * var(--case-unit));
  background: var(--case-orange);
  clip-path: polygon(0 0, 100% 50%, 0 100%);
  transform: translate(-50%, -50%);
}

.case-card__photo {
  position: relative;
  min-width: 0;
  margin: 0;
}

.case-card__photo > img,
.case-card__photo > picture img {
  width: 100%;
  height: auto;
  border-radius: calc(5 * var(--case-unit));
}

.case-card__photo-label {
  position: absolute;
  top: 0;
  left: 0;
  min-width: calc(58 * var(--case-unit));
  padding: calc(2 * var(--case-unit)) calc(5 * var(--case-unit));
  border-radius: calc(5 * var(--case-unit)) calc(5 * var(--case-unit)) calc(5 * var(--case-unit)) 0;
  background: var(--case-blue);
  color: #fff;
  font-size: calc(11.625 * var(--case-unit));
  line-height: calc(14 * var(--case-unit));
  text-align: center;
}

.case-card__photo-label--after {
  background: var(--case-orange);
}

@media (max-width: 767px) {
  .cases {
    --case-unit: var(--art-unit);
    --case-heading-unit: calc(0.767025 * var(--art-unit));
    padding-block: calc(39 * var(--art-unit)) calc(54 * var(--art-unit));
  }

  .cases .art-inner > .cases__bulb {
    top: calc(-41 * var(--art-unit));
    left: auto;
    right: calc(5.2 * var(--art-unit));
  }

  .cases-heading {
    left: calc(-5 * var(--art-unit));
  }

  .cases-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: calc(9 * var(--art-unit));
    margin-top: calc(36.063 * var(--art-unit));
    padding-inline: calc(20 * var(--art-unit));
  }
}

/* 新しい防水事例はSP_v2のカード幅に合わせる。PCは既存カードと同じ幅。 */
.case-card--03 .case-card__photo:last-child > picture {
  width: calc(169 * var(--case-unit));
}
@media (max-width: 767px) {
  .case-card--waterproof {
    --case-unit: calc(var(--case-scale-sp) * var(--art-unit));
    width: calc(374 * var(--case-scale-sp) * var(--art-unit));
    justify-self: center;
    transform: translateX(calc(var(--case-offset-sp) * var(--art-unit)));
  }
}
