/* Reviews and saved packages use the storefront tokens and stay within its grids. */
.kk-store .kk-pkg-fav { display:flex; align-items:center; justify-content:center; }
.kk-store .kk-pkg-fav.is-saved, .kk-store .kk-product-save.is-saved { color:var(--kk-secondary-press); background:var(--kk-secondary-50); }
.kk-store .kk-pkg-fav:disabled { opacity:.6; cursor:wait; }
.kk-store .kk-product-save { display:inline-flex; align-items:center; gap:9px; border:1px solid var(--kk-line); border-radius:12px; padding:10px 15px; background:#fff; color:var(--kk-ink); font:inherit; font-size:13px; width:auto; margin:0 0 14px; }
.kk-store .kk-product-save svg, .kk-store .kk-pkg-fav svg { flex-shrink:0; }
.kk-store .kk-review-section { margin:28px 0; padding:clamp(18px,3vw,30px); background:#fff; border:1px solid var(--kk-line); border-radius:20px; min-width:0; scroll-margin-top:110px; }
.kk-store .kk-review-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-bottom:24px; }
.kk-store .kk-review-heading h2 { margin:8px 0; color:var(--kk-ink); font-size:22px; line-height:1.5; }
.kk-store .kk-review-heading p, .kk-store .kk-booking-reviews > p { color:var(--kk-muted); font-size:13px; line-height:1.8; margin:0; }
.kk-store .kk-review-summary { display:grid; grid-template-columns:150px minmax(0,1fr); gap:32px; background:var(--kk-primary-50); padding:22px; border-radius:14px; }
.kk-store .kk-review-summary strong { font-size:40px; font-weight:600; color:var(--kk-ink); }
.kk-store .kk-review-score { display:flex; align-items:baseline; gap:6px; margin:0 0 8px; line-height:1; }
.kk-store .kk-review-score span { font-size:15px; color:var(--kk-muted); }
.kk-store .kk-review-score.is-empty { font-size:15px; font-weight:600; color:var(--kk-muted); line-height:1.4; }
.kk-store .kk-review-summary small { display:block; color:var(--kk-muted); font-size:12px; margin-top:7px; }
.kk-store .kk-review-stars { display:flex; align-items:center; gap:3px; color:var(--kk-secondary-press); width:max-content; margin:7px 0; }
.kk-store .kk-review-distribution { display:grid; gap:5px; }
.kk-store .kk-review-distribution > div { display:grid; grid-template-columns:34px minmax(0,1fr) 30px; gap:10px; align-items:center; font-size:12px; color:var(--kk-muted); }
.kk-store .kk-review-distribution meter { width:100%; height:12px; accent-color:var(--kk-secondary); }
.kk-store .kk-review-distribution meter::-webkit-meter-bar { background:var(--kk-line); border:0; }
.kk-store .kk-review-distribution meter::-webkit-meter-optimum-value { background:var(--kk-secondary); }
.kk-store .kk-review-list article { padding:24px 0; border-bottom:1px solid var(--kk-line); overflow-wrap:anywhere; }
.kk-store .kk-review-list article > header { display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; }
.kk-store .kk-review-list article > header > div { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.kk-store .kk-review-list b { font-size:14px; color:var(--kk-ink); }
.kk-store .kk-review-list time { font-size:11px; color:var(--kk-muted); }
.kk-store .kk-review-list p, .kk-store .kk-booking-review-saved p { font-size:14px; line-height:1.9; color:var(--kk-ink); white-space:pre-wrap; margin:10px 0 0; overflow-wrap:anywhere; }
.kk-store .kk-review-response { margin-top:16px; padding:16px; background:var(--kk-primary-50); border-left:3px solid var(--kk-primary-200); border-radius:10px; }
.kk-store .kk-review-empty { padding:32px 18px; text-align:center; color:var(--kk-muted); font-size:14px; line-height:1.9; background:var(--kk-surface); border-radius:16px; margin-top:20px; }
.kk-store .kk-review-empty h2 { font-size:22px; color:var(--kk-ink); }
.kk-store .kk-review-pagination { display:flex; justify-content:center; align-items:center; gap:20px; margin-top:22px; font-size:13px; }
.kk-store .kk-review-pagination button, .kk-store .kk-booking-review-form button { width:auto; }
.kk-store .kk-review-pagination button:disabled { opacity:.45; cursor:not-allowed; }
.kk-store .kk-booking-reviews { padding:24px; border-top:1px solid var(--kk-line); }
.kk-store .kk-booking-reviews h3 { font-size:18px; margin:0 0 8px; color:var(--kk-ink); }
.kk-store .kk-booking-review-form, .kk-store .kk-booking-review-saved { border:1px solid var(--kk-line); border-radius:12px; margin-top:14px; padding:16px; }
.kk-store .kk-booking-review-form summary { cursor:pointer; color:var(--kk-primary-900); font-size:14px; line-height:1.8; font-weight:500; }
.kk-store .kk-booking-review-form form { display:grid; gap:12px; margin-top:20px; }
.kk-store .kk-booking-review-form fieldset { border:0; padding:0; margin:0; }
.kk-store .kk-booking-review-form legend, .kk-store .kk-booking-review-form label { font-size:13px; color:var(--kk-ink); }
.kk-store .kk-rating-input { display:flex; gap:5px; }
.kk-store .kk-rating-input label { position:relative; cursor:pointer; display:grid; place-items:center; width:42px; height:44px; margin:0; }
.kk-store .kk-rating-input input { position:absolute; opacity:0; width:1px; height:1px; }
.kk-store .kk-rating-input label > span:not(.kk-sr) { font-size:32px; color:var(--kk-line); }
.kk-store .kk-rating-input label > span.is-active { color:var(--kk-secondary-press); }
.kk-store .kk-rating-input label:focus-within { outline:2px solid var(--kk-primary-700); border-radius:8px; }
.kk-store .kk-booking-review-form textarea { width:100%; min-height:110px; resize:vertical; border:1px solid var(--kk-line); border-radius:10px; padding:12px; background:#fff; color:var(--kk-ink); font:inherit; font-size:14px; }
.kk-store .kk-booking-review-form small { font-size:11px; color:var(--kk-muted); line-height:1.8; }
.kk-store .kk-review-error { color:var(--kk-secondary-press); font-size:13px; }
.kk-store .kk-booking-review-form .kk-button { justify-self:start; }
.kk-store .kk-saved-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.kk-store .kk-saved-count { font-size:13px; color:var(--kk-muted); margin-bottom:20px; }
@media(max-width:1100px) { .kk-store .kk-saved-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:600px) {
  .kk-store .kk-review-summary { grid-template-columns:1fr; gap:16px; padding:18px; }
  .kk-store .kk-review-heading h2 { font-size:20px; }
  .kk-store .kk-booking-reviews { padding:18px; }
  .kk-store .kk-saved-grid { gap:12px; }
}
@media(max-width:380px) { .kk-store .kk-saved-grid { grid-template-columns:minmax(0,1fr); } }
