/* ══════════════════════════════════════════════════════════════════════
   review.css — หน้ารวมรีวิวร้านลูกค้า และหน้ารีวิวรายร้าน
   โหลดต่อจาก style.css และ shop.css · ทุกคลาสขึ้นต้นด้วย rv-
   สร้างหน้าด้วย notes\make_review_pages.py ห้ามแก้ไฟล์ HTML ตรง ๆ
   ══════════════════════════════════════════════════════════════════════ */

/* ── หัวหน้ารวม: ตัวเลขสรุป ────────────────────────────────────────── */
.rv-stats{display:flex;flex-wrap:wrap;gap:10px;margin:22px 0 0;padding:0;list-style:none}
.rv-stats li{
  display:flex;flex-direction:column;gap:2px;min-width:120px;padding:12px 16px;border-radius:13px;
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);
  font-size:13px;color:rgba(255,255,255,.78);line-height:1.5;
}
.rv-stats b{font-size:22px;font-weight:700;color:#fff;letter-spacing:-.3px;line-height:1.25}

/* ── ปุ่มกระโดดไปแต่ละประเภทร้าน ─────────────────────────────────── */
.rv-jump{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 8px;padding:0;list-style:none}
.rv-jump a{
  display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border-radius:999px;
  background:#fff;border:1px solid var(--sh-ring);color:var(--ink);
  font-size:14px;font-weight:600;line-height:1.3;
}
.rv-jump a:hover{text-decoration:none;border-color:var(--sh-blue);color:var(--sh-blue)}
.rv-jump small{font-size:12px;font-weight:700;color:var(--sh-mut);background:var(--sh-ice);
  border-radius:999px;padding:1px 8px}

.rv-group{padding-top:30px;scroll-margin-top:12px}
.rv-group .sh-h2 small{font-size:.62em;font-weight:600;color:var(--sh-mut);margin-left:6px}

/* ── การ์ดรีวิว ───────────────────────────────────────────────────── */
.rv-grid{display:grid;gap:18px;grid-template-columns:1fr}
.rv-card{
  position:relative;display:flex;flex-direction:column;overflow:hidden;
  background:#fff;border:1px solid var(--sh-ring);border-radius:16px;
  box-shadow:0 1px 2px rgba(16,26,44,.05),0 16px 34px -26px rgba(16,26,44,.4);
  transition:box-shadow .16s ease,transform .16s ease;
}
.rv-card:hover{transform:translateY(-2px);
  box-shadow:0 1px 2px rgba(16,26,44,.06),0 22px 42px -22px rgba(16,26,44,.5)}
.rv-pic{position:relative;display:block;background:var(--sh-ice);aspect-ratio:4/3;overflow:hidden}
.rv-pic img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.rv-type{
  position:absolute;left:12px;top:12px;padding:5px 11px;border-radius:999px;
  background:rgba(15,30,53,.84);color:#fff;font-size:12.5px;font-weight:600;line-height:1.3;
}
.rv-body{display:flex;flex-direction:column;flex:1 1 auto;padding:16px 18px 18px}
.rv-where{display:flex;align-items:center;gap:6px;margin:0 0 6px;font-size:13px;color:var(--sh-mut)}
.rv-where svg{width:14px;height:14px;flex:0 0 auto;color:var(--sh-blue)}
.rv-card h3{margin:0 0 7px;font-size:17.5px;font-weight:700;line-height:1.42}
.rv-card h3 a{color:var(--ink)}
.rv-card h3 a::after{content:"";position:absolute;inset:0;z-index:2}
.rv-card h3 a:focus-visible{outline:none}
.rv-card:focus-within{outline:3px solid var(--sh-blue);outline-offset:2px}
.rv-card p.rv-sum{margin:0 0 14px;font-size:14.5px;line-height:1.72;color:var(--ink-2)}
.rv-more{margin-top:auto;display:inline-flex;align-items:center;gap:6px;font-size:14px;
  font-weight:700;color:var(--sh-blue)}
.rv-more svg{width:15px;height:15px}

/* ── หน้ารีวิวรายร้าน: หัวเรื่อง ──────────────────────────────────── */
.rv-hero{display:grid;gap:22px;grid-template-columns:1fr;align-items:start}
.rv-hero-pic{margin:0;background:var(--sh-ice);border:1px solid var(--sh-ring);border-radius:18px;
  padding:10px}
.rv-hero-pic img{display:block;width:100%;height:auto;max-height:560px;object-fit:contain;
  border-radius:11px;background:#fff}
.rv-badge{display:inline-flex;align-items:center;gap:7px;margin:0 0 12px;padding:6px 13px;
  border-radius:999px;background:var(--sh-ice);color:#1e3a8a;font-size:13px;font-weight:600}
.rv-badge svg{width:15px;height:15px}
.rv-hero h1{margin:0 0 12px;font-size:clamp(23px,5.2vw,33px);line-height:1.32;letter-spacing:-.3px}

.rv-facts{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 0 18px}
.rv-facts div{background:var(--sh-ice-2);border:1px solid var(--sh-ring);border-radius:12px;
  padding:11px 13px}
.rv-facts dt{font-size:12.5px;font-weight:600;color:var(--sh-mut)}
.rv-facts dd{margin:2px 0 0;font-size:15px;font-weight:700;color:var(--ink);line-height:1.45}

/* ── เนื้อเรื่อง ──────────────────────────────────────────────────── */
.rv-body-wrap{display:grid;gap:24px;grid-template-columns:1fr;align-items:start}
.rv-story h2{margin:0 0 10px;font-size:clamp(19px,4.2vw,23px);line-height:1.4}
.rv-story h2:not(:first-child){margin-top:26px}
.rv-story p{margin:0 0 14px;font-size:16px;line-height:1.85;color:var(--ink-2)}
.rv-quote{
  position:relative;margin:4px 0 18px;padding:16px 18px 16px 50px;border-radius:14px;
  background:#fff;border:1px solid var(--sh-ring);font-size:16px;line-height:1.8;color:var(--ink);
}
.rv-quote::before{content:"“";position:absolute;left:16px;top:4px;font-size:46px;line-height:1;
  color:var(--sh-blue);opacity:.55;font-family:Georgia,serif}
.rv-quote footer{margin-top:6px;font-size:13.5px;color:var(--sh-mut)}

.rv-side{display:grid;gap:14px}
.rv-sys{background:#fff;border:1px solid var(--sh-ring);border-radius:15px;padding:18px}
.rv-sys h3{margin:0 0 6px;font-size:16.5px;line-height:1.45}
.rv-sys p{margin:0 0 14px;font-size:14.5px;line-height:1.72;color:var(--ink-2)}
.rv-sys .sh-btn{width:100%}
.rv-sys .sh-btn + .sh-btn{margin-top:9px}

/* ── แกลเลอรีภาพหน้าร้าน ─────────────────────────────────────────── */
.rv-gal{display:grid;gap:12px;grid-template-columns:1fr 1fr}
.rv-gal figure{margin:0}
.rv-gal a{display:block;border-radius:13px;overflow:hidden;border:1px solid var(--sh-ring);
  background:var(--sh-ice);aspect-ratio:1/1}
.rv-gal img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .2s ease}
.rv-gal a:hover img{transform:scale(1.03)}
.rv-gal figcaption{margin-top:6px;font-size:13px;line-height:1.6;color:var(--sh-mut)}

/* การ์ดคลิป (ใช้เมื่อรีวิวมีคลิปของร้านนั้นจริง) */
a.rv-card.rv-vid{color:inherit;text-decoration:none}
.rv-pic-vid{aspect-ratio:16/9}
.rv-play{position:absolute;left:50%;top:50%;width:54px;height:54px;margin:-27px 0 0 -27px;border-radius:50%;
  background:rgba(225,29,46,.92);color:#fff;display:flex;align-items:center;justify-content:center}
.rv-play svg{width:24px;height:24px;margin-left:3px}

.rv-src{margin:22px 0 0;font-size:13px;line-height:1.7;color:var(--sh-mut)}
.rv-story .rv-src{margin:24px 0 0;font-size:13px;line-height:1.7;color:var(--sh-mut)}
.rv-story .sh-keys{margin-bottom:4px}
.rv-allbtn{display:flex;justify-content:center;margin-top:22px}

/* ── จอกว้างขึ้น ──────────────────────────────────────────────────── */
@media (min-width:620px){
  .rv-grid{grid-template-columns:1fr 1fr}
  .rv-gal{grid-template-columns:repeat(3,1fr)}
  .rv-facts{grid-template-columns:repeat(2,1fr)}
}
@media (min-width:940px){
  .rv-grid{grid-template-columns:repeat(3,1fr)}
  .rv-hero{grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);gap:38px;align-items:center}
  .rv-body-wrap{grid-template-columns:minmax(0,1fr) 320px;gap:36px}
  .rv-side{position:sticky;top:16px}
  .rv-gal{grid-template-columns:repeat(4,1fr)}
}
