/* ========================================
   経産省キャッシュバック告知バナー
   基準 690px幅 / cqw で等比スケール
   将来: .ris-banner--effect-ready でアニメーション（style-animation.css）
   ======================================== */
.ris-banner {
  container-type: inline-size;
  width: 100%;
  margin: 0 auto;
  background: #bd241e;
  position: relative;
  overflow: hidden;
  font-family: "Noto Sans JP", sans-serif;
  border-radius: 0.25rem;
}

.ris-banner-wrap {
  max-width: 800px;
  width: 92.5%;
  margin: 0 auto 2rem;
  padding: 0;
  box-sizing: border-box;
}

.ris-banner__effect-layer {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
}

.ris-banner__inner {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-rows: auto auto auto;
  column-gap: 3.25%;
  row-gap: 0.8cqw;
  padding: 3%;
  box-sizing: border-box;
  align-items: stretch;
}

.ris-banner__logo-box {
  display: contents;
}

.ris-banner__logo-wrap {
  grid-column: 1;
  grid-row: 1 / 4;
  display: flex;
  align-items: center;
  justify-content: center;
  align-self: stretch;
  background: #fff;
  padding: 2.5cqw;
  box-sizing: border-box;
  border-radius: 0.39cqw;
}

.ris-banner__logo {
  display: block;
  width: auto;
  height: auto;
  max-width: 19cqw;
  max-height: 100%;
  object-fit: contain;
}

.ris-banner__body {
  display: contents;
  text-align: left;
}

.ris-banner__notice {
  grid-column: 2;
  grid-row: 1;
  display: inline-flex;
  align-items: center;
  align-self: start;
  gap: 0.65cqw;
  max-width: fit-content;
  margin: 0;
  padding: 0.78cqw 1.56cqw;
  background: #000;
  border-radius: 0.39cqw;
  transform-origin: left center;
}

.ris-banner__notice-icon {
  width: 2.6cqw;
  height: 2.6cqw;
  object-fit: contain;
  flex-shrink: 0;
  display: block;
}

.ris-banner__notice-label {
  font-size: 2.35cqw;
  font-weight: 700;
  line-height: 1.2;
  color: #ffcf2b;
  white-space: nowrap;
}

.ris-banner__lead {
  grid-column: 2;
  grid-row: 2;
  margin: 0;
  font-size: 2.1cqw;
  font-weight: 500;
  line-height: 1.45;
  color: #fff;
  white-space: nowrap;
  align-self: center;
}

.ris-banner__title {
  grid-column: 2;
  grid-row: 3;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.35cqw;
  letter-spacing: 0.04rem;
  align-self: center;
}

.ris-banner__title-line {
  display: block;
  font-size: 4.95cqw;
  font-weight: 900;
  line-height: 1.25;
  color: #fff;
  white-space: nowrap;
  text-shadow: none;
}

@media screen and (max-width: 767px) {
  .ris-banner {
    overflow: visible;
    border-radius: 0.5rem;
  }

  .ris-banner__inner {
    display: flex;
    flex-direction: column;
    padding: 4.5cqw;
    gap: 0;
  }

  .ris-banner__logo-box {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    background: #fff;
    padding: 0 4cqw 4.5cqw;
    border-radius: 0.39cqw;
    box-sizing: border-box;
  }

  .ris-banner__logo-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    background: transparent;
    padding: 0;
    border-radius: 0;
  }

  .ris-banner__logo {
    max-width: 32cqw;
  }

  .ris-banner__body {
    display: flex;
    flex-direction: column;
    width: 100%;
  }

  .ris-banner__notice {
    align-self: center;
    margin: 0 0 2cqw;
    padding: 0.78cqw 2.5cqw;
    transform-origin: center center;
    position: relative;
    top: -8px;
  }

  .ris-banner__notice-icon {
    width: 3.5cqw;
    height: 3.5cqw;
  }

  .ris-banner__notice-label {
    font-size: 3.15cqw;
  }

  .ris-banner__lead {
    margin: 0;
    padding: 3cqw 1cqw 1cqw;
    font-size: 3.15cqw;
    font-weight: 700;
    line-height: 1.5;
    text-align: center;
    white-space: normal;
  }

  .ris-banner__title {
    margin: 0 auto;
    padding: 4.5cqw calc(3.5cqw - 8px) 4.5cqw calc(3.5cqw + 8px);
    background: #ffcf2b;
    text-align: center;
    width: 100%;
    letter-spacing: 0.01rem;
    box-sizing: border-box;
  }

  .ris-banner__title-line {
    color: #282827;
    font-size: 6.25cqw;
    line-height: 1.35;
    white-space: normal;
    text-shadow: none;
    letter-spacing: 0.01rem;
  }
}