/* Review page ([cg_review]). */
.cg-review { max-width: 640px; margin: clamp(16px, 4vw, 48px) auto; }
.cg-review__card { background: #fff; border: 1px solid var(--erp-line, #e6e7ea); border-radius: var(--erp-r-lg, 16px); padding: clamp(20px, 4vw, 36px); box-shadow: var(--erp-shadow, 0 6px 20px rgba(17,20,24,.06)); }
.cg-review__head { text-align: center; margin-bottom: 20px; }
.cg-review__head h2 { font-size: clamp(1.5rem, 1.2rem + 1.4vw, 2.1rem); margin: 6px 0 8px; }
.cg-review__sub { color: var(--erp-muted, #6b7079); margin: 0; }
.cg-review__items { list-style: none; margin: 0 0 22px; padding: 0; display: flex; gap: 10px; overflow-x: auto; justify-content: center; scrollbar-width: thin; }
.cg-review__items li { flex: none; width: 96px; text-align: center; font-size: var(--erp-fs-xs, .75rem); color: var(--erp-text, #262a31); line-height: 1.3; }
.cg-review__items img { display: block; width: 72px; height: 72px; margin: 0 auto 6px; object-fit: contain; background: var(--erp-soft, #f6f6f7); border-radius: var(--erp-r, 12px); }
.cg-review__items span { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.cg-review__items small { display: block; color: var(--erp-muted, #6b7079); }
.cg-review__stars { border: 0; margin: 0 0 18px; padding: 0; text-align: center; }
.cg-review__stars legend { font-weight: 700; color: var(--erp-ink, #111418); margin: 0 auto 8px; padding: 0; }
.cg-stars-input { display: inline-flex; gap: 6px; }
.cg-stars-input input { position: absolute; opacity: 0; width: 1px; height: 1px; pointer-events: none; }
.cg-stars-input label { cursor: pointer; padding: 4px; border-radius: 10px; color: var(--erp-line-strong, #d5d7dc); transition: color .12s, transform .12s; line-height: 0; }
.cg-stars-input label svg { width: clamp(40px, 11vw, 52px); height: clamp(40px, 11vw, 52px); fill: currentColor; }
.cg-stars-input label:has(~ input:checked), .cg-stars-input input:checked + label { color: var(--erp-star, #f5a524); }
@media (hover: hover) {
	.cg-stars-input:hover label { color: var(--erp-star, #f5a524); }
	.cg-stars-input label:hover ~ label { color: var(--erp-line-strong, #d5d7dc); }
	.cg-stars-input label:hover { transform: scale(1.08); }
}
.cg-stars-input input:focus-visible + label { outline: 2px solid var(--erp-primary, #e30a17); outline-offset: 2px; }
.cg-review__rating-label { min-height: 1.5em; margin: 4px 0 0; font-weight: 700; color: var(--erp-ink, #111418); }
.cg-review__error { margin: 4px 0 0; color: var(--erp-primary-700, #a9060f); font-weight: 600; font-size: var(--erp-fs-sm, .8125rem); }
.cg-review__stars.is-invalid .cg-stars-input { animation: cg-shake .3s; }
@keyframes cg-shake { 25% { transform: translateX(-4px); } 75% { transform: translateX(4px); } }
.cg-review__form textarea { min-height: 120px; }
.cg-review__bar { position: sticky; bottom: 0; z-index: 5; margin: 20px calc(-1 * clamp(20px, 4vw, 36px)) calc(-1 * clamp(20px, 4vw, 36px)); padding: 14px clamp(20px, 4vw, 36px) calc(14px + env(safe-area-inset-bottom)); background: rgba(255,255,255,.96); border-top: 1px solid var(--erp-line, #e6e7ea); border-radius: 0 0 var(--erp-r-lg, 16px) var(--erp-r-lg, 16px); backdrop-filter: blur(6px); }
.cg-review__msg { text-align: center; display: flex; flex-direction: column; align-items: center; gap: 12px; }
.cg-review__msg h2 { margin: 0; }
.cg-review__msg p { margin: 0; color: var(--erp-muted, #6b7079); max-width: 46ch; }
.cg-review__icon .cg-icon { width: 56px; height: 56px; color: var(--erp-green, #16a34a); }
.cg-review__icon--muted .cg-icon { color: var(--erp-muted, #6b7079); }
@media (max-width: 640px) {
	.cg-review { margin-top: 12px; }
	.cg-review__bar { position: fixed; left: 0; right: 0; bottom: 0; margin: 0; border-radius: 0; box-shadow: 0 -6px 20px rgba(17,20,24,.08); }
	.cg-review__form { padding-bottom: 96px; }
}
