/* Scoped review components; product stars also belong to the shared header. */
.hm-rating { display: inline-flex; align-items: center; justify-content: center; gap: 6px; vertical-align: middle; line-height: 1; }
.hm-stars { position: relative; display: inline-block; flex: 0 0 auto; font: 21px/1.2 Arial, sans-serif; letter-spacing: 1px; color: #515163; white-space: nowrap; }
.hm-stars-fill { position: absolute; inset: 0 auto 0 0; overflow: hidden; color: #efc66e; background: linear-gradient(160deg, #ffe7a2, #ebbc58 55%, #c78d30); background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent; }
.hm-rating-count { display: inline-flex; align-items: center; align-self: stretch; color: #fff; font-size: 12px; font-weight: 500; line-height: 1; }
.product-meta > .hm-rating, .shop-product-link > .hm-rating, .discover-product-link > .hm-rating { display: flex; margin: 1px 0 5px; }
.product-meta > .hm-rating { margin: -4px 0 0; }
.product-meta:has(> .product-rating) { gap: 2px; }
.product-meta > .product-rating { margin-top: -4px; }
.product-rating .hm-rating { display: inline-flex; }
.discover-product-link .hm-stars { font-size: 17px; }
.hm-product-rating-link { display: inline-flex; margin: -4px 0 24px; text-decoration: none; }
.hm-product-rating-link .hm-stars { font-size: 24px; }
.hm-product-rating-link .hm-rating-count { font-size: 14px; }

.hm-reviews { --hm-border: rgba(159, 179, 255, .17); --hm-muted: #b6bdd8; text-align: left; scroll-margin-top: 30px; }
.hm-reviews .section-title { margin-bottom: 20px; color: #fff; text-align: center; }
.hm-reviews-summary { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 10px 18px; margin: 0 0 32px; }
.hm-reviews-summary > strong { color: #fff; font-size: 29px; font-weight: 700; }
.hm-reviews-summary > strong > span { color: var(--hm-muted); font-size: 14px; font-weight: 400; }
.hm-reviews-summary > span:last-child { color: #fff; font-size: 13px; }
.hm-reviews .hm-reviews-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; align-items: start; }
.hm-reviews .hm-reviews-grid:has(> .hm-review-card:only-child) { grid-template-columns: minmax(0, 420px); justify-content: center; }
.hm-review-card { min-width: 0; height: 100%; box-sizing: border-box; padding: 22px; display: flex; flex-direction: column; align-items: flex-start; gap: 17px; background: linear-gradient(145deg, #10152f, #090c23 68%); border: 1px solid var(--hm-border); border-radius: 16px; color: #f6f7ff; box-shadow: 0 12px 30px rgba(0, 0, 0, .12); overflow-wrap: anywhere; }
.hm-review-person { display: flex; align-items: center; gap: 11px; min-width: 0; }
.hm-review-avatar { display: grid; place-items: center; flex: 0 0 40px; width: 40px; height: 40px; border-radius: 50%; color: #becaff; background: #20284a; border: 1px solid rgba(159, 179, 255, .2); font-size: 16px; font-weight: 600; }
.hm-review-name { display: block; font-size: 15px; font-weight: 600; }
.hm-review-verified { display: flex; align-items: center; gap: 5px; margin-top: 3px; color: #acbbf5; font-size: 11px; line-height: 1.4; }
.hm-review-verified > .hm-verified-badge { width: 14px; height: 14px; flex: 0 0 14px; object-fit: contain; }
.hm-review-card .hm-review-text { margin: 0; font-size: 14px; line-height: 1.8; color: #e4e7f5; text-align: left; }
.hm-review-photo-wrap { width: 100%; }
.hm-review-photo { display: block; position: relative; overflow: hidden; border-radius: 10px; background: #07091e; }
.hm-review-photo img { display: block; width: 100%; height: auto; max-height: 310px; object-fit: contain; }
.hm-review-photo-error { margin: 0; color: var(--hm-muted); font-size: 12px; }
.hm-review-card .hm-review-product { display: flex; align-items: center; gap: 16px; width: 100%; margin-top: auto; padding-top: 16px; border-top: 1px solid var(--hm-border); color: #fff; text-decoration: none; font-size: 14px; line-height: 1.5; }
.hm-review-product img { width: 64px; height: 44px; flex: 0 0 64px; object-fit: cover; border-radius: 5px; }
.hm-review-product:hover { color: #fff; }
.hm-reviews-navigation { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; margin-top: 28px; }
.hm-reviews-navigation:empty { margin: 0; }
.hm-review-button { display: inline-flex; align-items: center; justify-content: center; min-height: 46px; box-sizing: border-box; padding: 12px 24px; border: 1px solid #6e7ed8; border-radius: 8px; background: #4e5db4; color: #fff; font: 600 13px/1.5 Poppins, sans-serif; text-decoration: none; cursor: pointer; transition: background .15s ease, border-color .15s ease; }
.hm-review-button:hover { background: #6070c9; color: #fff; border-color: #9fb3ff; }
.hm-review-button--secondary { background: #151b3b; border-color: #3b4778; }
.hm-review-button[aria-disabled="true"], .hm-review-button:disabled { opacity: .6; cursor: wait; }
.hm-review-status { margin: 14px 0 0; color: #fff; font-size: 13px; text-align: center; }
.hm-review-status:empty { margin: 0; }
.hm-reviews-empty { padding: 25px; margin: 0; border: 1px solid var(--hm-border); border-radius: 12px; background: #0b0e27; color: var(--hm-muted); text-align: center; line-height: 1.8; }
.hm-reviews [hidden], .hm-review-dialog [hidden] { display: none !important; }
.hm-reviews :focus-visible, .hm-review-form-wrap :focus-visible, .hm-product-rating-link:focus-visible, .hm-review-dialog :focus-visible { outline: 2px solid #b5c1ff; outline-offset: 4px; }

.single-product-reviews .hm-reviews { margin: 0; }
.hm-review-form-wrap { max-width: 760px; margin: 38px auto 0; text-align: left; }
.hm-review-form-wrap.hm-review-form-wrap--empty { margin-top: 0; }
.hm-review-form { padding: clamp(20px, 4vw, 36px); border: 1px solid rgba(159, 179, 255, .18); border-radius: 16px; background: #0b0e27; }
.hm-review-form h3 { margin: 0 0 6px; color: #fff; font-size: clamp(21px, 3vw, 26px); font-weight: 600; }
.hm-review-intro { margin: 0 0 25px; color: #b6bdd8; font-size: 13px; line-height: 1.7; }
.hm-review-field { margin-top: 22px; }
.hm-review-field > label { display: block; margin-bottom: 9px; font-size: 13px; font-weight: 500; color: #f6f7ff; }
.hm-review-field > label > span, .hm-review-rating-picker legend > span { color: #c6ceff; }
.hm-review-form .hm-review-field input, .hm-review-form .hm-review-field textarea { display: block; width: 100%; box-sizing: border-box; min-height: 46px; margin: 0; padding: 12px 14px; border: 1px solid #c7cce1; border-radius: 7px; background: #fff; color: #080b25; font: 400 14px/1.6 Poppins, sans-serif; }
.hm-review-form .hm-review-field textarea { min-height: 125px; resize: vertical; }
.hm-review-form .hm-review-field input::placeholder { color: #626b8c; opacity: 1; }
.hm-review-form .hm-review-field input:focus, .hm-review-form .hm-review-field textarea:focus { outline: 2px solid #9fafff; outline-offset: 3px; }
.hm-review-form .hm-review-rating-picker { display: block; min-width: 0; padding: 0; margin: 0; border: 0; border-radius: 0; background: none; }
.hm-review-form .hm-review-rating-picker legend { display: block; float: none; width: auto; margin: 0 0 8px; padding: 0; border: 0; font-size: 13px; font-weight: 500; color: #f6f7ff; }
.hm-review-rating-options { display: inline-flex; gap: 5px; }
.hm-review-star-choice { position: relative; display: inline-grid; place-items: center; width: 44px; height: 44px; cursor: pointer; border: 1px solid #353c5b; border-radius: 8px; background: #141a34; }
.hm-review-star-choice input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.hm-review-star-choice > span[aria-hidden] { color: #77778c; font: 30px/1 Arial, sans-serif; pointer-events: none; }
.hm-review-star-choice:has(input:checked), .hm-review-star-choice.is-selected { border-color: #b59150; background: #302818; }
.hm-review-star-choice:has(input:checked) > span[aria-hidden], .hm-review-star-choice.is-selected > span[aria-hidden] { color: #f5d180; }
.hm-review-star-choice:has(input:focus-visible) { outline: 2px solid #b5c1ff; outline-offset: 3px; }
.hm-review-counter { display: block; margin-top: 7px; text-align: right; font-size: 11px; color: #b6bdd8; }
.hm-review-counter.is-over-limit { color: #ffb8c2; }
.hm-review-help { margin: 12px 0 0; color: #b6bdd8; font-size: 12px; line-height: 1.8; }
.hm-review-help a { display: block; color: #b3c2ff; text-underline-offset: 3px; margin-top: 6px; }
.hm-review-submit-row { display: flex; align-items: center; flex-wrap: wrap; gap: 14px; margin-top: 26px; }
.hm-review-submit-row > span { color: #b6bdd8; font-size: 11px; }
.hm-review-notice { padding: 22px; margin: 0 0 20px; border: 1px solid rgba(159, 179, 255, .2); border-radius: 12px; background: #0c102b; color: #e6eaff; font-size: 13px; line-height: 1.85; text-align: center; }
.hm-review-notice p { margin: 0 0 15px; }
.hm-review-notice p + p { color: #b6bdd8; font-size: 12px; }
.hm-review-notice--error { border-color: #bc7989; }
.hm-review-contact { display: inline-block; margin: 12px 0 0 16px; color: #b3c2ff; }
#reviews { scroll-margin-top: 30px; }

.hm-review-dialog { max-width: min(92vw, 1100px); max-height: 90dvh; padding: 0; border: 1px solid #525b83; border-radius: 12px; background: #080b23; color: #fff; overflow: auto; }
.hm-review-dialog::backdrop { background: rgba(0, 1, 16, .88); }
.hm-review-dialog img { display: block; max-width: 100%; max-height: 85dvh; object-fit: contain; }
.hm-review-dialog button { position: sticky; top: 10px; float: right; z-index: 1; margin: 10px 10px -54px 0; width: 44px; height: 44px; border: 1px solid #8d99cc; border-radius: 50%; background: #10152f; color: #fff; font-size: 28px; cursor: pointer; }
.hm-review-dialog p { padding: 36px; }
body.hm-review-dialog-open { overflow: hidden; }
@media (max-width: 1100px) {
  .hm-reviews .hm-reviews-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .hm-reviews .hm-reviews-grid { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .hm-review-card { padding: 20px; }
  .hm-reviews-summary { gap: 10px 13px; margin-bottom: 24px; }
  .hm-review-submit-row { align-items: stretch; flex-direction: column; }
  .hm-review-submit-row .hm-review-button { width: 100%; }
  .hm-review-form-wrap { margin-top: 28px; }
  .hm-review-contact { margin-left: 0; display: block; }
}
@media (prefers-reduced-motion: reduce) {
  .hm-review-button { transition: none; }
}
