@layer components {
  :root {
    --color-base: #333;
    --color-white: #fff;
    --blue: #004098;
  }
}

@layer components {
  :root {
    --font-family-base: "Zen Old Mincho", "YuGothic", "Hiragino Kaku Gothic Pro", "Meiryo", sans-serif;
    --font-size-base: 1rem;
  }
}

@layer components {
  :root {
    --max-width-xxl: 1512px;
    --max-width-xl: 1136px;
    --max-width-l: 944px;
    --max-width-m: 752px;
  }
}

@layer components {

  .card-whats {
    position: relative;
    display: flex;
    padding-block: 34px 44px;
  }

  @media (max-width: 896px) {

    .card-whats {
      padding-block: 8.26667vw 11.2vw;
    }
  }

  @media (min-width: 897px) and (max-width: 1239px) {

    .card-whats {
      padding-block: 2.74194vw 3.54839vw;
    }
  }

  .card-whats::before {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    content: "";
    transition: transform 0.3s ease-out;
  }

  @media (min-width: 897px) {

    .card-whats::before {
      z-index: -1;
      height: 100%;
      background: url("/assets/images/top/box-pc.png") top center no-repeat;
      background-size: contain;
    }
  }

  @media (max-width: 896px) {

    .card-whats::before {
      display: block;
      height: 8.26667vw;
      background: url("/assets/images/top/box-top-sp.png") top center no-repeat;
      background-size: 100%;
    }
  }

  @media (max-width: 896px) {

    .card-whats::after {
      position: absolute;
      z-index: -1;
      bottom: 0;
      left: 0;
      display: block;
      width: 100%;
      height: 11.2vw;
      background: url("/assets/images/top/box-bottom-sp.png") bottom center no-repeat;
      background-size: 100%;
      content: "";
    }
  }

  @media (min-width: 897px) {
    .card-whats:hover::before {
      transform: scale(1.1);
    }
  }

  .card-whats>.box {
    display: flex;
    width: 100%;
    flex-direction: column;
    justify-content: space-between;
    padding-bottom: 12px;
    padding-inline: 21px 23px;
  }

  @media (max-width: 896px) {

    .card-whats>.box {
      padding-bottom: 10px;
      background: url("/assets/images/top/box-middle-sp.png") center repeat-y;
      background-image: url("/assets/images/top/box-middle-sp.png");
      background-size: 100%;
      padding-inline: 20px 19px;
    }
  }

  @media (min-width: 897px) and (max-width: 1239px) {

    .card-whats>.box {
      padding-bottom: 0.96774vw;
      padding-inline: 1.69355vw 1.85484vw;
    }
  }

  .card-whats>.box::after {
    position: absolute;
    bottom: 12px;
    left: 50%;
    display: block;
    width: 33px;
    height: 33px;
    background: url("/assets/images/common/icon-arrow-01.svg") bottom center no-repeat;
    background-size: contain;
    content: "";
    transform: translateX(-50%);
  }

  @media (max-width: 896px) {

    .card-whats>.box::after {
      bottom: 8px;
      width: 33px;
      height: 33px;
    }
  }

  @media (min-width: 897px) and (max-width: 1239px) {

    .card-whats>.box::after {
      bottom: 0.96774vw;
      width: 2.66129vw;
      height: 2.66129vw;
    }
  }

  .card-whats>.box>figure {
    padding: 0 5px;
  }

  @media (max-width: 896px) {

    .card-whats>.box>figure {
      padding: 0 4px;
    }
  }

  @media (min-width: 897px) and (max-width: 1239px) {

    .card-whats>.box>figure {
      padding: 0 0.40323vw;
    }
  }

  .card-whats>.box>.title {
    flex: 1;
    align-content: center;
    margin-bottom: 24px;
    color: #004098;
    color: var(--blue);
    font-size: 2rem;
    font-weight: 900;
    letter-spacing: -0.01em;
    line-height: 1.44;
  }

  @media (max-width: 896px) {

    .card-whats>.box>.title {
      margin-bottom: 9px;
      font-size: 1.75rem;
      line-height: 1.32;
    }
  }

  @media (min-width: 897px) and (max-width: 1239px) {

    .card-whats>.box>.title {
      margin-bottom: 1.93548vw;
      font-size: 2.58065vw;
      white-space: nowrap;
    }
  }
}

@layer components {
  @media (min-width: 897px) {
    a[href^="tel:"] {
      pointer-events: none;
    }
  }

  @media screen and (max-width: 896px) {
    a[href^="tel:"] {
      text-decoration: underline;
    }
  }
}
