/* v0.9 Fix2: natural scrolling, official-site-inspired S2, and restrained phase-label motion. */

.s2-offer {
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr);
  align-items: center;
  gap: clamp(1rem, 3vw, 3rem);
  padding: clamp(2rem, 5vh, 4rem) max(1.5rem, calc((100vw - 1000px) / 2));
  text-align: left;
  color: #080808;
  background: #fff;
}

.s2-offer__media {
  position: relative;
  inset: auto;
  grid-column: 2;
  grid-row: 1;
  width: 100%;
  height: min(72vh, 620px);
}

.s2-offer__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  filter: none;
}

.s2-offer__overlay {
  display: none;
}

.s2-offer__inner {
  position: relative;
  grid-column: 1;
  grid-row: 1;
  width: 100%;
  max-width: 390px;
  margin: 0;
  align-items: flex-start;
}

.s2-offer__copy {
  width: 100%;
  align-items: flex-start;
}

.s2-offer__headline-row {
  justify-content: flex-start;
  gap: clamp(.75rem, 1.4vw, 1.1rem);
}
.s2-offer__status { color: #555; }

/* 商品カテゴリ補助見出し（30%OFFより控えめ・アニメーションなし） */
.s2-offer__category {
  display: block;
  margin-top: .45rem;
  color: #4a4a48;
  font-size: clamp(1.125rem, 1.5vw, 1.3rem);
  font-weight: 600;
  letter-spacing: .14em;
}

.s2-offer__title { margin-block: 1.2rem 1.35rem; }
.s2-offer__limited {
  padding-bottom: .3rem;
  font-size: clamp(.88rem, 1.15vw, 1.05rem);
  font-weight: 700;
  letter-spacing: .12em;
}
.s2-offer__discount-block { align-items: baseline; }
.s2-offer__limited,
.s2-offer__max,
.s2-offer__discount-number,
.s2-offer__discount-unit { color: #080808; }
.s2-offer__max {
  margin-right: .35rem;
  font-size: .95rem;
  letter-spacing: .08em;
}
.s2-offer__discount-number {
  font-size: clamp(3.8rem, 5.7vw, 5.1rem);
  letter-spacing: -.06em;
}
.s2-offer__discount-unit {
  margin-left: .55rem;
  font-size: clamp(1.35rem, 2vw, 1.75rem);
  letter-spacing: -.02em;
}
.s2-offer__body {
  max-width: 29rem;
  margin-bottom: 1.75rem;
  color: #333;
  line-height: 1.9;
  letter-spacing: .015em;
}
.s2-offer__coupon-highlight { color: #080808; }
.s2-offer__note {
  max-width: 29rem;
  margin-top: 1.15rem;
  color: #666;
  line-height: 1.8;
  letter-spacing: .015em;
}

[data-phase-label].phase-label--animated {
  position: relative;
  display: inline-block;
  overflow: visible;
  width: max-content;
  max-width: 100%;
  isolation: isolate;
}

[data-phase-label].phase-label--animated > .phase-label__char {
  display: inline-block;
  animation: fix2-phase-wave 1.8s ease-in-out infinite;
  animation-delay: calc(var(--phase-char-index) * 70ms);
}

[data-phase-label].phase-label--animated::after {
  display: none;
}

@keyframes fix2-phase-wave {
  0%, 40%, 100% { transform: translateY(0); }
  20% { transform: translateY(-8px); }
}

.s12__media img { object-position: 12% center; }

@media (max-width: 900px) {
  .s2-offer {
    min-height: calc(100svh - var(--swipe-ui-rail));
    grid-template-columns: 1fr;
    grid-template-rows: minmax(210px, 30vh) auto;
    align-content: center;
    gap: .25rem;
    padding: 1.25rem 1rem max(1.5rem, env(safe-area-inset-bottom));
  }

  .s2-offer__media {
    grid-column: 1;
    grid-row: 1;
    width: min(100%, 350px);
    height: 100%;
    margin-inline: auto;
  }

  .s2-offer__media img {
    object-position: center bottom;
    filter: none;
  }

  .s2-offer__inner {
    grid-column: 1;
    grid-row: 2;
    width: 100%;
    max-width: 440px;
    margin: 0;
    justify-self: center;
  }

  .s2-offer__copy {
    width: 100%;
    align-items: center;
    text-align: center;
  }

  .s2-offer__headline-row {
    flex-direction: row;
    justify-content: center;
    gap: .7rem;
  }
  .s2-offer__title { margin-block: .6rem .75rem; }
  .s2-offer__category {
    margin-top: .3rem;
    font-size: .95rem;
    letter-spacing: .12em;
    white-space: nowrap;
  }
  .s2-offer__limited { font-size: .9rem; }
  .s2-offer__max { font-size: .9rem; }
  .s2-offer__discount-number { font-size: clamp(2.75rem, 14vw, 3.5rem); }
  .s2-offer__discount-unit { font-size: 1.25rem; }
  .s2-offer__body { margin-bottom: 1rem; font-size: .86rem; line-height: 1.65; }
  .s2-offer__note { margin-top: .75rem; line-height: 1.5; }

  .s12__media img { object-position: 20% center; }
}

@media (prefers-reduced-motion: reduce) {
  [data-phase-label].phase-label--animated > .phase-label__char,
  [data-phase-label].phase-label--animated::after {
    animation: none !important;
    transform: none !important;
  }

  [data-phase-label].phase-label--animated::after { display: none; }
}
