/**
 * Google Reviews Module – v3.4.0
 */

/* ── PROMĚNNÉ ─────────────────────────────────────────────────── */
.gr-wrapper {
    --gr-primary:      #F62423;
    --gr-star-full:    #ffc41e;
    --gr-star-empty:   #e0e0e0;
    --gr-text:         #212529;
    --gr-text-muted:   #9D9D9D;
    --gr-border:       #eeeeee;
    --gr-shadow:       0 2px 16px rgba(0,0,0,0.07);
    --gr-shadow-hover: 0 6px 28px rgba(0,0,0,0.12);
    --gr-font:         'Archivo', -apple-system, BlinkMacSystemFont, sans-serif;
    font-family: var(--gr-font);
    color: var(--gr-text);
    box-sizing: border-box;
}
.gr-wrapper *, .gr-wrapper *::before, .gr-wrapper *::after { box-sizing: inherit; }

/* ── SKELETON ─────────────────────────────────────────────────── */
@keyframes gr-shimmer {
    0%   { background-position: -400px 0; }
    100% { background-position:  400px 0; }
}
.gr-skeleton-block {
    background: linear-gradient(90deg, #f0f0f0 25%, #e8e8e8 50%, #f0f0f0 75%);
    background-size: 800px 100%;
    animation: gr-shimmer 1.4s infinite linear;
    border-radius: 4px;
}
.gr-skeleton-cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.25rem;
}
.gr-skeleton-card {
    background: #fff; border: 1px solid #eee; padding: 1.75rem 1.25rem;
    display: flex; flex-direction: column; align-items: center; gap: .75rem;
}
.gr-skeleton-avatar { width: 56px; height: 56px; border-radius: 50%; }
.gr-skeleton-line   { width: 100%; height: 12px; }
.gr-skeleton-line--short  { width: 55%; }
.gr-skeleton-line--medium { width: 75%; }

/* ── CAROUSEL WRAP ────────────────────────────────────────────── */
.gr-carousel-wrap {
    position: relative;
    padding: 0 2.5rem;   /* místo pro šipky */
}

/* ── VIEWPORT ─────────────────────────────────────────────────── */
.gr-viewport {
    overflow: hidden;
    width: 100%;
}

/* ── TRACK ────────────────────────────────────────────────────── */
.gr-track {
    display: flex;
    transition: transform .35s ease;
    /* šířka a posun nastavuje JS */
}

/* ── SLIDE ────────────────────────────────────────────────────── */
.gr-slide {
    flex-shrink: 0;
    padding: 0 .625rem;
    /* šířka nastavuje JS */
}

/* ── KARTA ────────────────────────────────────────────────────── */
.gr-card {
    background: #fff;
    border: 1px solid var(--gr-border);
    padding: 1.75rem 1.25rem;
    box-shadow: var(--gr-shadow);
    text-align: center;
    display: flex; flex-direction: column;
    align-items: center; gap: .75rem;
    height: 100%;
    transition: box-shadow .2s, transform .2s;
}
.gr-card:hover {
    box-shadow: var(--gr-shadow-hover);
    transform: translateY(-3px);
}

/* ── ŠIPKY ────────────────────────────────────────────────────── */
.gr-btn-prev,
.gr-btn-next {
    position: absolute;
    top: 50%; transform: translateY(-50%);
    width: 2rem; height: 2rem;
    background: #fff; border: 1px solid var(--gr-border);
    border-radius: 50%; cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    font-size: 1rem; color: var(--gr-text);
    box-shadow: var(--gr-shadow);
    transition: background .2s, color .2s, opacity .2s;
    z-index: 2;
    padding: 0;
}
.gr-btn-prev { left: 0; }
.gr-btn-next { right: 0; }
.gr-btn-prev:hover:not(:disabled),
.gr-btn-next:hover:not(:disabled) {
    background: var(--gr-primary); color: #fff; border-color: var(--gr-primary);
}
.gr-btn-prev:disabled,
.gr-btn-next:disabled { opacity: .3; cursor: default; }

/* ── TEČKY ────────────────────────────────────────────────────── */
.gr-dots {
    display: flex; justify-content: center; gap: .4rem;
    margin-top: 1.25rem;
}
.gr-dot {
    width: .5rem; height: .5rem; border-radius: 50%;
    background: var(--gr-border); border: none; padding: 0; cursor: pointer;
    transition: background .2s, transform .2s;
}
.gr-dot--active {
    background: var(--gr-primary);
    transform: scale(1.3);
}

/* ── AVATAR ───────────────────────────────────────────────────── */
.gr-avatar {
    width: 56px; height: 56px; border-radius: 50%;
    background: #f8f9fa; border: 2px solid var(--gr-border);
    overflow: hidden; display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
}
.gr-avatar img { width: 100%; height: 100%; object-fit: cover; }
.gr-avatar-initials { font-weight: 800; font-size: 1.1rem; color: var(--gr-primary); }

/* ── AUTOR ────────────────────────────────────────────────────── */
.gr-card-header { display: flex; flex-direction: column; align-items: center; gap: .5rem; width: 100%; }
.gr-author      { display: flex; flex-direction: column; align-items: center; gap: .2rem; }
.gr-author-name {
    font-weight: 700; font-size: .9rem;
    color: var(--gr-primary); text-align: center; display: block;
}
a.gr-author-name:hover { color: #c41c1b; text-decoration: none; }
.gr-card-meta { display: flex; align-items: center; justify-content: center; gap: .375rem; }
.gr-time { display: none; }

/* ── HVĚZDIČKY ────────────────────────────────────────────────── */
.gr-stars { display: inline-flex; align-items: center; gap: 1px; }
.gr-star  { font-size: 1.1rem; line-height: 1; }
.gr-star--full, .gr-star--half { color: var(--gr-star-full); }
.gr-star--empty { color: var(--gr-star-empty); }

/* ── TEXT RECENZE ─────────────────────────────────────────────── */
.gr-card-text {
    font-size: .875rem; line-height: 1.7; color: #555;
    text-align: center;
    border-top: 1px solid var(--gr-border);
    padding-top: .75rem; width: 100%;
}

/* ── ODKAZ NA GOOGLE ──────────────────────────────────────────── */
.gr-all-reviews-link {
    display: flex; align-items: center; justify-content: center;
    gap: .625rem; margin-top: 1.5rem; padding-top: 1.25rem;
    border-top: 1px solid var(--gr-border);
}
.gr-all-reviews-a {
    font-size: .875rem; font-weight: 600;
    color: var(--gr-text-muted); text-decoration: none;
    transition: color .2s;
}
.gr-all-reviews-a:hover { color: var(--gr-primary); text-decoration: underline; }

/* ── STAVY ────────────────────────────────────────────────────── */
.gr-no-reviews {
    padding: 2rem; text-align: center; color: var(--gr-text-muted);
    border: 1px dashed var(--gr-border);
}
.gr-admin-error {
    padding: 1rem 1.25rem; border: 1px solid #ffc107;
    background: #fff3cd; color: #664d03; font-size: .875rem;
}

/* ── RESPONZIVITA ─────────────────────────────────────────────── */
@media (max-width: 1024px) {
    .gr-skeleton-cards { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
    .gr-skeleton-cards { grid-template-columns: 1fr; }
    .gr-carousel-wrap  { padding: 0 2rem; }
}
