/* ================= GOOGLE REVIEWS ================= */

.google-reviews {
  display: grid;
  /* Zabezpečí, že stĺpce nebudú širšie ako ich obsah a vytvoria sa len ak sú potrebné */
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); 
  /* Vycentruje celú mriežku v rámci kontajnera */
  justify-content: center;
  gap: 22px;
  /* Voliteľné: obmedzenie maximálneho počtu stĺpcov na 5 */
  max-width: ; 
  margin: 0 auto;
}

@media (max-width:1400px){
  .google-reviews{ grid-template-columns: repeat(3,1fr); }
}
@media (max-width:992px){
  .google-reviews{ grid-template-columns: repeat(2,1fr); }
}
@media (max-width:600px){
  .google-reviews{ grid-template-columns: 1fr; }
}

/* ===== BOX ===== */

.review-box{
  background: ;
  border-radius:16px;
  padding:18px;
  box-shadow:0 8px 28px rgba(0,0,0,.08);
  height:275px;               /* ZMENŠENÁ PEVNÁ VÝŠKA */
  display:flex;
  flex-direction:column;
  overflow:hidden;
}

.review-head{
  display:flex;
  flex-direction:column;
  gap:6px;
}

.review-author{
  font-weight:700;
  color:#2a4b3f;
}

.review-rating{
  color:#d19a00;
  font-size:14px;
}

/* ===== TEXT ===== */

.review-body{
  margin-top:10px;
  flex:1 1 auto;
  display:flex;
  flex-direction:column;
  overflow:hidden;
}

.review-text{
  margin:0;
  color:#4a5c55;
  line-height:1.5;

  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:3;
  overflow:hidden;
}

.review-owner-reply{
  margin-top:12px;
  padding:9px 11px;
  border-left:3px solid #789178;
  border-radius:0 7px 7px 0;
  background:#f1f5ef;
  color:#425346;
}

.review-owner-reply strong{
  display:block;
  color:#2a4b3f;
  font-size:12px;
  line-height:1.2;
}

.review-owner-reply p{
  margin:4px 0 0;
  font-size:13px;
  line-height:1.42;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  overflow:hidden;
}

/* ===== TRI BODKY ===== */

.review-more{
  background:none;
  border:0;
  padding:8px 0 0;
  /* Po odstránení náhľadu odpovede majiteľa patrí odkaz hneď pod text,
     nie až na spodok pevne vysokej karty. */
  margin-top:8px;
  align-self:flex-start;

  font-size:12px;
  font-weight:600;
  line-height:1.2;
  cursor:pointer;

  color:#2a4b3f;
  white-space:nowrap;
  max-width:none;
  text-decoration:underline;
}

/* ===== ČAS ===== */

.review-time{
  font-size:12px;
  color:#8b9590;
  margin-top:8px;
}

/* ================= MODAL – detail recenzie ================= */

.review-modal{
  position:fixed;
  inset:0;
  display:none;
  z-index:99999;
}

.review-modal.is-open{
  display:block;
}

.review-modal__backdrop{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.45);
}

.review-modal__panel{
  position:relative;
  width:min(640px,calc(100vw - 32px));
  max-height:min(760px,calc(100vh - 48px));
  margin:24px auto;
  background:#fff;
  border:1px solid #dadce0;
  border-radius:12px;
  padding:32px;
  overflow:auto;
  box-shadow:0 12px 30px rgba(60,64,67,.24),0 1px 3px rgba(60,64,67,.18);
}

/* ===== ZAVRIEŤ ===== */

.review-modal__close{
  position:absolute;
  top:16px;
  right:16px;
  width:36px;
  height:36px;
  border:0;
  border-radius:50%;
  color:#3c4043;
  background:transparent;
  cursor:pointer;
  font-size:28px;
  font-weight:300;
  line-height:34px;
}

.review-modal__close:hover,
.review-modal__close:focus-visible{
  background:#f1f3f4;
  outline:none;
}

/* ===== META ===== */

.review-modal__head{
  display:flex;
  align-items:center;
  gap:14px;
  padding-right:44px;
  margin-bottom:20px;
}

.review-modal__avatar{
  display:grid;
  flex:0 0 44px;
  width:44px;
  height:44px;
  place-items:center;
  border-radius:50%;
  background:#e8f0fe;
  color:#1967d2;
  font-size:19px;
  font-weight:600;
}

.review-modal__meta{
  display:flex;
  flex-direction:column;
  gap:2px;
}

.review-modal__author{
  font-weight:700;
  color:#202124;
  font-size:16px;
  line-height:1.35;
}

.review-modal__rating{
  color:#fbbc04;
  font-size:18px;
  letter-spacing:1px;
  line-height:1.25;
}

.review-modal__time{
  font-size:13px;
  color:#5f6368;
  line-height:1.35;
}

/* ===== CELÝ TEXT ===== */

.review-modal__text{
  line-height:1.58;
  font-size:15px;
  white-space:pre-wrap;
  color:#3c4043;
}

.review-modal__photos{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:8px;
  margin-top:20px;
}

.review-modal__photos[hidden]{
  display:none;
}

.review-modal__photos img{
  display:block;
  width:100%;
  aspect-ratio:1/1;
  border-radius:8px;
  object-fit:cover;
  background:#f1f3f4;
}

.review-modal__owner-reply{
  margin-top:22px;
  padding:16px 0 0 16px;
  border-left:2px solid #dadce0;
  border-radius:0;
  background:transparent;
  color:#3c4043;
}

.review-modal__owner-reply strong{
  display:block;
  margin-bottom:6px;
  color:#202124;
  font-size:14px;
}

.review-modal__owner-reply strong span{ color:#5f6368; font-weight:400; }

.review-modal__owner-reply div{
  white-space:pre-wrap;
  font-size:14px;
  line-height:1.58;
}

/* ===== MOBILE ===== */

@media (max-width:600px){
  .review-modal__panel{
    width:calc(100vw - 24px);
    max-height:calc(100vh - 24px);
    margin:12px auto;
    padding:28px 22px;
  }

  .review-modal__head{
    gap:12px;
    margin-bottom:18px;
  }

  .review-modal__close{
    top:10px;
    right:10px;
  }

  .review-modal__photos{
    grid-template-columns:repeat(2,1fr);
  }
}
