@charset "utf-8";

@import "_variable.css";

/* example */
/* ============================================ */

.ex {
  color: var(--ex_c);
}

.ex-header {
  padding: 24px 0;
  background: #fff;
  border-bottom: 4px solid #ff0000;
  @media (width <= 896px) {
    padding: 16px 0;
    border-bottom-width: 2px;
  }
  .ex-header__wrap {
    width: calc(100% - 80px);
    margin-inline: auto;
    @media (width <= 896px) {
      width: calc(100% - 40px);
    }
  }
  .ex-header__ttl {
    font-size: clamp(0.875rem, 0.2188rem + 1.1719vw, 1.625rem);/*64~32(1340~896)*/
    font-weight: 700;
  }
}

.footer {
  background: var(--ex_c);
}

.ex-mainvisual {
  padding: 160px 0 80px;
  position: relative;
  @media (width <= 896px) {
    padding: 120px 0 56px;
  }
  .ex-mainvisual__img {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: left bottom;
    }
  }
  .ex-mainvisual__wrap {
    position: relative;
  }
  .ex-mainvisual__ttl {
    font-size: clamp(2rem, -2.036rem + 7.2072vw, 4rem);/*64~32(1340~896)*/
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 0.05em;
    filter: drop-shadow(0 0 4px color-mix(in srgb, #fff 50%, transparent)) drop-shadow(0 0 6px color-mix(in srgb, #fff 50%, transparent)) drop-shadow(0 0 10px color-mix(in srgb, #fff 50%, transparent)) drop-shadow(0 0 12px color-mix(in srgb, #fff 50%, transparent)) drop-shadow(0 0 14px color-mix(in srgb, #fff 50%, transparent));
  }
}

.ex-case {
  padding: 64px 0 100px;
  @media (width <= 896px) {
    padding: 40px 0 64px;
  }
  .ex-case__ttl {
    word-break: keep-all;
    text-align: center;
    font-size: clamp(1.5rem, -0.518rem + 3.6036vw, 2.5rem);/*40~24(1340~896)*/
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 0.05em;
  }
  .ex-case__list {
    display: flex;
    flex-direction: column;
    gap: 40px;
    margin-top: 40px;
    @media (width <= 896px) {
      gap: 32px;
      margin-top: 32px;
    }
  }
  .ex-case__list__item {
    width: 100%;
    background: #ccffcc;
    border-radius: 16px;
    padding: 40px;
    @media (width <= 896px) {
      border-radius: 12px;
      padding: 24px;
    }
  }
  .ex-case__list__inner {
    display: flex;
    justify-content: space-between;
    gap: 24px 32px;
    @media (width <= 600px) {
      flex-direction: column;
    }
  }
  .ex-case__list__contents {
    flex-grow: 1;
    @media (width <= 600px) {
      width: 100%;
    }
  }
  .ex-case__list__img {
    flex-shrink: 0;
    width: 40%;
    @media (width <= 600px) {
      width: 100%;
    }
    img {
      width: 100%;
      object-fit: cover;
      aspect-ratio: 710 / 530;
      border-radius: 12px;
      @media (width <= 896px) {
        border-radius: 10px;
      }
    }
  }
  .ex-case__list__ttl {
    word-break: keep-all;
    text-align: center;
    font-size: clamp(1.125rem, 0.3682rem + 1.3514vw, 1.5rem);/*24~18(1340~896)*/
    font-weight: 700;
    letter-spacing: 0.05em;
  }
  .ex-case__list__detail {
    margin-top: 24px;
    font-size: clamp(0.9375rem, 0.5591rem + 0.6757vw, 1.125rem);/*18~15(1340~896)*/
    display: flex;
    flex-direction: column;
    gap: 12px;
    @media (width <= 896px) {
      margin-top: 20px;
      gap: 10px;
    }
  }
  .ex-case__list__detail__item {
    width: 100%;
    padding-left: 1.2em;
    position: relative;
    &::before {
      content: "";
      display: block;
      width: 0.8em;
      height: 0.8em;
      background: var(--ex_c);
      border-radius: 50%;
      position: absolute;
      top: 0.35em;
      left: 0;
    }
    dt {
      font-weight: 700;
    }
    dd {
      margin-top: 0.25em;
    }
  }
  .ex-case__list__link {
    text-align: center;
    margin-top: 40px;
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
    @media (width <= 896px) {
      margin-top: 32px;
      gap: 16px;
    }
  }
  .ex-case__list__link__item {
    width: calc((100% - 48px) / 3);
    @media (width <= 896px) {
      width: calc((100% - 32px) / 3);
    }
    @media (width <= 600px) {
      width: 100%;
    }
    a {
      word-break: keep-all;
      padding: 0.8em;
      font-size: clamp(0.9375rem, 0.5591rem + 0.6757vw, 1.125rem);/*18~15(1340~896)*/
      font-weight: 700;
      letter-spacing: 0.05em;
      height: 100%;
      display: grid;
      place-content: center;
      background: #0582ae;
      color: #fff;
      border: 2px solid #22c6ff;
    }
  }
}