.hero-art { position: relative; border-radius: 28px; overflow: hidden; }
      .hero-art img.hero-photo { display: block; width: 100%; height: auto; }
      .spot-ico { display: block; height: 64px; width: auto; max-width: 100%; object-fit: contain; margin-bottom: 14px; } /* contain: keeps the shape if a narrow card caps the width */
      .pain .card-flat { display: flex; align-items: center; gap: 18px; }
      .pain .card-flat .spot-ico { height: 92px; margin-bottom: 0; flex-shrink: 0; }
      .pain .card-flat h3 { margin-bottom: 6px; }
      .hero-art .spot { position: absolute; left: 50%; top: 52%; transform: translate(-50%,-50%); width: 210px; }
      .hero-art .dot { position: absolute; border-radius: 50%; }
      .hero-art .float { position: absolute; background: #fff; border-radius: 16px; box-shadow: var(--shadow-card);
        padding: 10px 14px; font-weight: 700; font-size: 13px; color: var(--hp-ink); display: flex; align-items: center; gap: 8px; }
      .reassure { font-size: 13px; color: var(--hp-muted); margin: 0; }
      .steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; align-items: start; }
      .step .clip { display: block; width: 100%; border-radius: 18px; overflow: hidden; box-shadow: var(--shadow-card); margin-bottom: 14px; }
      .step .clip video { display: block; width: 100%; height: auto; }
      .step p.card { background: var(--hp-sand); box-shadow: none; }
      .step .cap-box { background: var(--hp-lime); border-radius: 18px; padding: 20px 22px; }
      .step .cap-box h3 { font-family: var(--font-display); font-weight: 400; margin: 0 0 6px; }
      .step .cap-box p { margin: 0; }
      .step .n { font-family: var(--font-display); font-size: 40px; color: var(--hp-coral); line-height: 1; }
      .step h3 { margin: 10px 0 6px; }
      .obj { background: #fff; border-radius: 18px; box-shadow: var(--ring-hairline); padding: 20px 22px; }
      .obj .q { font-weight: 600; font-size: 15px; color: var(--hp-ink); margin: 0 0 6px; }
      .obj .a { font-size: 14px; line-height: 22px; color: var(--hp-body); margin: 0; }
      .price-solo { max-width: 520px; margin: 0 auto; background: var(--hp-blue); color: #fff; border-radius: 28px;
        box-shadow: var(--shadow-blue-glow); padding: 40px; text-align: center; }
      .price-solo .num { font-weight: 700; font-size: 56px; letter-spacing: -1px; }
      .price-solo .per { font-size: 16px; opacity: .8; }
      .price-solo ul { list-style: none; padding: 0; margin: 20px 0 24px; display: inline-flex; flex-direction: column; gap: 8px; text-align: left; }
      .price-solo li { font-size: 14px; color: var(--hp-on-blue-85); }
      .price-solo li::before { content: "✓  "; color: var(--hp-yellow); font-weight: 700; }
      @media (max-width:900px){ .steps { grid-template-columns: 1fr 1fr; } }
      @media (max-width:600px){ .steps { grid-template-columns: 1fr; } }
