/* Customer reviews — shared by reviews.html, the home page block and the product page */
:root { --gmr-star: #C5A059; --gmr-star-off: #ddd; }

.gmr-stars { display: inline-flex; gap: 2px; vertical-align: middle; line-height: 0; }
.gmr-stars svg { width: 16px; height: 16px; fill: var(--gmr-star-off); }
.gmr-stars svg.on { fill: var(--gmr-star); }
.gmr-stars.lg svg { width: 22px; height: 22px; }

/* ---- review card ---- */
.gmr-card { background: #fff; border: 1px solid #eee; padding: 22px 24px; }
.gmr-card + .gmr-card { margin-top: 16px; }
.gmr-head { display: flex; align-items: center; gap: 14px; margin-bottom: 12px; }
.gmr-avatar {
  width: 44px; height: 44px; border-radius: 50%; flex: 0 0 44px;
  background: #f4efe6; color: #8a6d2f; display: flex; align-items: center; justify-content: center;
  font-family: var(--font-serif); font-size: 18px; font-weight: 500;
}
.gmr-who { min-width: 0; flex: 1; }
.gmr-name { font-weight: 600; font-size: 14px; color: #111; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; }
.gmr-verified { font-size: 10px; letter-spacing: 1px; text-transform: uppercase; color: #2f7d4f; font-weight: 600; white-space: nowrap; }
.gmr-date { font-size: 12px; color: #999; margin-top: 2px; }
.gmr-title { font-family: var(--font-serif); font-size: 17px; color: #111; margin: 10px 0 6px; line-height: 1.3; }
.gmr-text { font-size: 14px; color: #444; line-height: 1.75; font-weight: 300; white-space: pre-line; overflow-wrap: anywhere; }
.gmr-photos { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.gmr-photos button { padding: 0; border: 1px solid #eee; background: #fafafa; cursor: zoom-in; width: 96px; height: 120px; overflow: hidden; }
.gmr-photos img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s; }
.gmr-photos button:hover img { transform: scale(1.05); }
.gmr-product {
  display: flex; align-items: center; gap: 12px; margin-top: 16px; padding: 10px 12px;
  background: #faf8f3; border: 1px solid #f0ead9; text-decoration: none; color: inherit;
}
.gmr-product img { width: 40px; height: 52px; object-fit: cover; flex: 0 0 40px; }
.gmr-product small { display: block; font-size: 10px; letter-spacing: 1.5px; text-transform: uppercase; color: #999; }
.gmr-product span { font-size: 13px; color: #111; }
.gmr-product:hover span { color: #8a6d2f; }

/* ---- compact variant (home block, product page) ---- */
.gmr-card.compact { padding: 16px 18px; }
.gmr-card.compact .gmr-text { font-size: 13px; display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.gmr-card.compact .gmr-photos button { width: 56px; height: 70px; }
.gmr-card.compact .gmr-avatar { width: 36px; height: 36px; flex-basis: 36px; font-size: 15px; }

/* ---- summary ---- */
.gmr-summary { display: flex; align-items: center; justify-content: center; gap: 28px; flex-wrap: wrap; padding: 30px 20px; }
.gmr-avg { font-family: var(--font-serif); font-size: 56px; line-height: 1; color: #111; }
.gmr-summary-meta { text-align: left; }
.gmr-summary-meta small { display: block; font-size: 13px; color: #777; margin-top: 6px; }

/* ---- buttons ---- */
.gmr-btn {
  display: inline-block; border: 1px solid #111; background: #111; color: #fff; cursor: pointer;
  font-family: var(--font-sans); font-size: 12px; letter-spacing: 2px; text-transform: uppercase;
  padding: 14px 28px; text-decoration: none; transition: background .3s, color .3s;
}
.gmr-btn:hover { background: #fff; color: #111; }
.gmr-btn.ghost { background: transparent; color: #111; }
.gmr-btn.ghost:hover { background: #111; color: #fff; }
.gmr-btn[disabled] { opacity: .5; cursor: default; }

/* ---- reviews page ---- */
.gmr-page { max-width: 860px; margin: 0 auto; padding: 10px 20px 90px; }
.gmr-more { text-align: center; margin-top: 28px; }
.gmr-empty { text-align: center; padding: 50px 20px; color: #888; font-size: 14px; font-style: italic; font-family: var(--font-serif); }

/* ---- form ---- */
.gmr-form-wrap { display: none; background: #fff; border: 1px solid #eee; padding: 28px; margin: 0 0 30px; }
.gmr-form-wrap.open { display: block; }
.gmr-form-wrap h2 { font-family: var(--font-serif); font-weight: 400; font-size: 24px; margin-bottom: 20px; }
.gmr-field { margin-bottom: 18px; }
.gmr-field label { display: block; font-size: 11px; letter-spacing: 1.5px; text-transform: uppercase; color: #777; margin-bottom: 7px; }
.gmr-field input[type=text], .gmr-field input[type=email], .gmr-field select, .gmr-field textarea {
  width: 100%; padding: 12px 14px; border: 1px solid #ddd; font-family: var(--font-sans); font-size: 14px; background: #fff; border-radius: 0;
}
.gmr-field textarea { min-height: 130px; resize: vertical; line-height: 1.6; }
.gmr-field input:focus, .gmr-field select:focus, .gmr-field textarea:focus { outline: none; border-color: #C5A059; }
.gmr-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.gmr-hint { font-size: 12px; color: #999; margin-top: 6px; }
.gmr-rate { display: inline-flex; gap: 6px; }
.gmr-rate button { background: none; border: none; padding: 2px; cursor: pointer; line-height: 0; }
.gmr-rate svg { width: 34px; height: 34px; fill: var(--gmr-star-off); transition: fill .15s, transform .15s; }
.gmr-rate button.on svg { fill: var(--gmr-star); }
.gmr-rate button:hover svg { transform: scale(1.12); }
.gmr-upload { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-start; }
.gmr-upload-add {
  width: 96px; height: 120px; border: 1px dashed #bbb; background: #fafafa; cursor: pointer; color: #888;
  display: flex; flex-direction: column; align-items: center; justify-content: center; font-size: 11px; gap: 6px; text-align: center;
}
.gmr-upload-add b { font-size: 26px; font-weight: 300; line-height: 1; }
.gmr-thumb { position: relative; width: 96px; height: 120px; border: 1px solid #eee; }
.gmr-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gmr-thumb button {
  position: absolute; top: -8px; right: -8px; width: 24px; height: 24px; border-radius: 50%;
  border: none; background: #111; color: #fff; cursor: pointer; font-size: 13px; line-height: 24px; padding: 0;
}
.gmr-consent { display: flex; gap: 10px; align-items: flex-start; font-size: 13px; color: #555; line-height: 1.5; }
.gmr-consent input { margin-top: 3px; flex: 0 0 auto; }
.gmr-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.gmr-msg { padding: 14px 16px; font-size: 14px; margin-bottom: 18px; display: none; }
.gmr-msg.err { display: block; background: #fdf0ee; color: #a8342a; border: 1px solid #f3c9c4; }
.gmr-msg.ok { display: block; background: #eef7f1; color: #2f6b45; border: 1px solid #c6e3d0; }

/* ---- lightbox ---- */
.gmr-lb { position: fixed; inset: 0; background: rgba(0,0,0,.88); z-index: 10000; display: none; align-items: center; justify-content: center; padding: 20px; cursor: zoom-out; }
.gmr-lb.open { display: flex; }
.gmr-lb img { max-width: 100%; max-height: 100%; object-fit: contain; }

/* ---- home page split: news (left) + reviews (right), desktop only ---- */
.home-split { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(300px, 1fr); gap: 36px; align-items: start; }
.home-split-news { min-width: 0; }
.home-reviews { min-width: 0; }
.home-reviews .home-news-header { margin-bottom: 24px; }
.home-reviews-sum { display: flex; align-items: center; gap: 10px; margin-bottom: 16px; font-size: 13px; color: #666; }
.home-reviews-sum b { font-family: var(--font-serif); font-size: 26px; color: #111; font-weight: 500; }
.home-reviews-cta { margin-top: 18px; display: flex; gap: 10px; flex-wrap: wrap; }
.home-reviews-cta .gmr-btn { padding: 11px 20px; font-size: 11px; }
@media (max-width: 900px) {
  /* on phones reviews live in the hamburger menu ("Отзиви"), not on the home page */
  .home-reviews { display: none; }
  .home-split { display: block; }
}

/* ---- product page block ---- */
.gmr-product-block { max-width: 860px; margin: 60px auto 20px; padding: 0 20px; }
.gmr-product-block h2 { font-family: var(--font-serif); font-weight: 400; font-size: 26px; margin-bottom: 8px; text-align: center; }
.gmr-product-block .gmr-summary { padding: 10px 0 22px; }
.gmr-product-block { padding-bottom: 50px; border-top: 1px solid #eee; padding-top: 50px; }
.gmr-click-list { display: grid; grid-template-columns: 1fr; gap: 16px; }   /* always one under another */
.gmr-click-list .gmr-card { cursor: pointer; transition: box-shadow .3s, transform .3s; margin-top: 0; }
.gmr-click-list .gmr-card:hover { box-shadow: 0 8px 28px rgba(0,0,0,.06); transform: translateY(-2px); }

@media (max-width: 700px) {
  .gmr-card { padding: 18px 16px; }
  .gmr-form-wrap { padding: 20px 16px; }
  .gmr-row { grid-template-columns: 1fr; gap: 0; }
  .gmr-avg { font-size: 44px; }
  .gmr-summary { gap: 16px; padding: 22px 10px; }
  .gmr-rate svg { width: 40px; height: 40px; }
  .gmr-btn { width: 100%; text-align: center; }
  .gmr-photos button, .gmr-upload-add, .gmr-thumb { width: 78px; height: 98px; }
  .gmr-page { padding: 0 14px 70px; }
}
