/* =====================================================================
   REVIEWS & PRESS
   ===================================================================== */

.pr-section { padding: 68px 0; }
.pr-section .section-header--left .section-label { display: block; margin-bottom: 10px; }

.press-grid,
.video-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(310px, 1fr));
    gap: 24px;
}

/* Celebrity videos get more room — they are the strongest proof we have */
.video-grid--featured {
    grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
    gap: 28px;
}

/* ---------------------------------------------------------------
   Written reviews — masonry-ish columns so cards of different
   lengths do not leave ragged gaps
   --------------------------------------------------------------- */
.review-grid {
    columns: 3 300px;
    column-gap: 22px;
}
.review-card {
    break-inside: avoid;
    margin-bottom: 22px;
    padding: 24px 22px;
    background: var(--card-bg);
    border: 1px solid var(--border-light);
    border-radius: var(--radius-lg);
}
.review-card__stars { display: flex; gap: 3px; margin-bottom: 12px; font-size: 13px; }
.review-card__stars i { color: var(--border); }
.review-card__stars i.is-on { color: var(--marigold); }
.review-card__body {
    font-size: 14.5px;
    line-height: 1.75;
    color: var(--text-secondary);
    margin: 0 0 18px;
}
.review-card__meta { display: flex; align-items: center; gap: 12px; }
.review-card__avatar {
    width: 42px;
    height: 42px;
    flex-shrink: 0;
    border-radius: 50%;
    overflow: hidden;
    background: var(--forest);
    display: grid;
    place-items: center;
    color: var(--cream);
    font-weight: 700;
    font-size: 15px;
}
.review-card__avatar img { width: 100%; height: 100%; object-fit: cover; }
.review-card__meta strong { display: block; font-size: 14px; font-weight: 700; color: var(--forest); }
.review-card__meta span { font-size: 12.5px; color: var(--text-muted); }

/* ---------------------------------------------------------------
   Guest photo mosaic
   --------------------------------------------------------------- */
.guest-mosaic {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 10px;
}
.guest-mosaic__item {
    display: block;
    aspect-ratio: 1;
    border-radius: var(--radius-sm);
    overflow: hidden;
    padding: 0;
    background: var(--cream-deep);
}
/* Every fifth tile spans two columns so the grid does not read as a
   uniform contact sheet */
.guest-mosaic__item:nth-child(5n + 1) { grid-column: span 2; aspect-ratio: 2 / 1; }
.guest-mosaic__item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.45s ease;
}
.guest-mosaic__item:hover img { transform: scale(1.06); }

/* ---------------------------------------------------------------
   Empty state
   --------------------------------------------------------------- */
.pr-empty {
    max-width: 520px;
    margin: 0 auto;
    text-align: center;
    padding: 48px 24px;
}
.pr-empty > i {
    font-size: 34px;
    color: var(--accent-light);
    margin-bottom: 18px;
    display: block;
}
.pr-empty h2 {
    font-family: 'Fraunces', Georgia, serif;
    font-size: 25px;
    font-weight: 700;
    color: var(--forest);
    margin: 0 0 12px;
}
.pr-empty p {
    font-size: 15.5px;
    line-height: 1.72;
    color: var(--text-muted);
    margin: 0 0 24px;
}

/* ---------------------------------------------------------------
   CTA
   --------------------------------------------------------------- */
.pr-cta { padding: 74px 0; }
.pr-cta__inner { max-width: 660px; margin: 0 auto; text-align: center; }
.pr-cta__inner .section-label { color: var(--marigold); }
.pr-cta__inner h2 {
    font-family: 'Fraunces', Georgia, serif;
    font-size: clamp(26px, 3.4vw, 38px);
    line-height: 1.18;
    font-weight: 700;
    color: #fff;
    margin: 12px 0 14px;
}
.pr-cta__inner p {
    font-size: 16px;
    line-height: 1.7;
    color: rgba(245, 241, 232, 0.82) !important;
    margin: 0 auto 28px;
    max-width: 54ch;
}
.pr-cta__actions { display: flex; flex-wrap: wrap; gap: 13px; justify-content: center; }

/* ---------------------------------------------------------------
   Responsive
   --------------------------------------------------------------- */
@media (max-width: 900px) {
    .video-grid--featured { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
    .pr-section, .pr-cta { padding: 50px 0; }
    .review-grid { columns: 1; }
    .guest-mosaic { grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); }
}
@media (max-width: 560px) {
    .guest-mosaic__item:nth-child(5n + 1) { grid-column: span 1; aspect-ratio: 1; }
    .pr-cta__actions { flex-direction: column; }
    .pr-cta__actions > * { justify-content: center; }
}
