.shinki-rf {
  --rf-bg: #f7f4ef;
  --rf-card: #ffffff;
  --rf-text: #171717;
  --rf-muted: #6d6861;
  --rf-border: #ded8cf;
  --rf-accent: #a77d45;
  --rf-accent-dark: #75562f;
  max-width: 980px;
  margin: 40px auto;
  padding: clamp(24px, 5vw, 56px);
  background: var(--rf-bg);
  color: var(--rf-text);
  border-radius: 24px;
  box-sizing: border-box;
}
.shinki-rf *, .shinki-rf *::before, .shinki-rf *::after { box-sizing: border-box; }
.shinki-rf__intro, .shinki-rf__result-head { max-width: 720px; margin: 0 auto 30px; text-align: center; }
.shinki-rf__intro h2, .shinki-rf__result-head h2 { font-size: clamp(30px, 4vw, 48px); line-height: 1.08; margin: 8px 0 14px; }
.shinki-rf__intro p, .shinki-rf__result-head p { color: var(--rf-muted); font-size: 17px; line-height: 1.7; }
.shinki-rf__eyebrow, .shinki-rf__question-number, .shinki-rf__step-label { font-size: 12px; letter-spacing: .14em; text-transform: uppercase; font-weight: 700; color: var(--rf-accent-dark); }
.shinki-rf__progress { max-width: 720px; margin: 0 auto 34px; }
.shinki-rf__progress-bar { height: 5px; background: #e7e0d6; border-radius: 99px; overflow: hidden; }
.shinki-rf__progress-bar span { display: block; height: 100%; width: 16.666%; background: var(--rf-accent); transition: width .25s ease; }
.shinki-rf__progress-text { text-align: right; margin-top: 7px; color: var(--rf-muted); font-size: 13px; }
.shinki-rf__step { display: none; max-width: 760px; margin: 0 auto; }
.shinki-rf__step.is-active { display: block; animation: shinkiRfFade .22s ease; }
.shinki-rf__step h3 { font-size: clamp(24px, 3vw, 34px); margin: 8px 0 8px; text-align: center; }
.shinki-rf__hint { text-align: center; color: var(--rf-muted); margin: 0 auto 24px; }
.shinki-rf__choices { display: grid; gap: 12px; margin-top: 24px; }
.shinki-rf__choice { cursor: pointer; display: block; }
.shinki-rf__choice input { position: absolute; opacity: 0; pointer-events: none; }
.shinki-rf__choice span { display: block; padding: 16px 18px; background: var(--rf-card); border: 1px solid var(--rf-border); border-radius: 14px; transition: .18s ease; }
.shinki-rf__choice:hover span { border-color: var(--rf-accent); transform: translateY(-1px); }
.shinki-rf__choice input:checked + span { border-color: var(--rf-accent); box-shadow: inset 0 0 0 2px var(--rf-accent); }
.shinki-rf__choice input:focus-visible + span { outline: 2px solid var(--rf-text); outline-offset: 2px; }
.shinki-rf__nav, .shinki-rf__result-actions { display: flex; gap: 12px; align-items: center; justify-content: center; flex-wrap: wrap; margin-top: 30px; }
.shinki-rf__btn { appearance: none; border: 1px solid var(--rf-text); background: var(--rf-text); color: #fff; border-radius: 999px; padding: 13px 22px; font: inherit; font-weight: 700; cursor: pointer; transition: .18s ease; }
.shinki-rf__btn:hover { transform: translateY(-1px); opacity: .92; }
.shinki-rf__btn:disabled { cursor: not-allowed; opacity: .35; transform: none; }
.shinki-rf__btn--ghost { background: transparent; color: var(--rf-text); }
.shinki-rf__loading { text-align: center; padding: 60px 10px; }
.shinki-rf__spinner { width: 38px; height: 38px; margin: 0 auto 16px; border: 3px solid var(--rf-border); border-top-color: var(--rf-accent); border-radius: 50%; animation: shinkiRfSpin .8s linear infinite; }
.shinki-rf__products { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 18px; }
.shinki-rf__product { background: var(--rf-card); border: 1px solid var(--rf-border); border-radius: 18px; overflow: hidden; }
.shinki-rf__product-image { display: block; aspect-ratio: 1 / 1; background: #eee9e1; }
.shinki-rf__product-image img { width: 100%; height: 100%; object-fit: cover; display: block; }
.shinki-rf__product-body { padding: 18px; }
.shinki-rf__product h4 { margin: 7px 0 8px; font-size: 20px; line-height: 1.3; }
.shinki-rf__product h4 a { color: inherit; text-decoration: none; }
.shinki-rf__product p { color: var(--rf-muted); line-height: 1.55; font-size: 14px; }
.shinki-rf__price { font-weight: 700; margin: 6px 0; }
.shinki-rf__text-link { color: var(--rf-text); text-decoration: underline; text-underline-offset: 3px; font-weight: 600; }
.shinki-rf__cart-message { flex-basis: 100%; text-align: center; min-height: 24px; color: var(--rf-muted); }
.shinki-rf__cart-message a { color: inherit; font-weight: 700; }
.shinki-rf__error { max-width: 680px; margin: 0 auto; text-align: center; padding: 30px; background: #fff; border-radius: 18px; border: 1px solid var(--rf-border); }
@keyframes shinkiRfFade { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: none; } }
@keyframes shinkiRfSpin { to { transform: rotate(360deg); } }
@media (max-width: 600px) {
  .shinki-rf { margin: 18px auto; padding: 24px 16px; border-radius: 16px; }
  .shinki-rf__nav { justify-content: stretch; }
  .shinki-rf__nav .shinki-rf__btn { flex: 1; }
  .shinki-rf__products { grid-template-columns: 1fr; }
}
