/* ============================================================
   Страница «Отзывы клиентов» (/otzyvy.php)
   ============================================================ */
.otz-intro { max-width: 640px; margin-bottom: var(--spacing-md); }
.otz-intro p { font-size: 17px; color: var(--color-text-light); margin: 0; }

/* --- Рейтинги на независимых площадках: плоские панели, без теней --- */
.otz-sources { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: var(--spacing-sm); }
.otz-source {
    display: flex; align-items: baseline; gap: 10px;
    padding: 14px 18px;
    border: 1px solid var(--color-border-light); border-radius: var(--radius-md);
    background: var(--color-bg);
    text-decoration: none; color: var(--color-text);
    transition: border-color var(--transition-fast), transform 160ms cubic-bezier(0.23, 1, 0.32, 1);
}
@media (hover: hover) and (pointer: fine) {
    .otz-source:hover { border-color: var(--color-primary-light); color: var(--color-text); }
}
.otz-source:active { transform: scale(0.98); }
.otz-source:focus-visible { outline: 3px solid rgba(0,150,136,.35); outline-offset: 2px; }
.otz-source__name { font-weight: 700; color: var(--color-dark); }
.otz-source__rating {
    display: inline-flex; align-items: center; gap: 4px;
    font-weight: 700; font-size: 20px; color: var(--color-primary-dark);
    font-variant-numeric: tabular-nums;
}
.otz-source__star { color: var(--color-primary); flex: 0 0 auto; transform: translateY(-1px); }
.otz-source__note { font-size: 14px; color: var(--color-text-light); }

.otz-regalia {
    margin: 0 0 var(--spacing-xl); max-width: 860px;
    font-size: 14px; line-height: 1.7; color: var(--color-text-light);
}
.otz-regalia span { margin: 0 6px; color: var(--color-primary); }

/* --- Двухколоночная раскладка: отзывы слева, рейтинги — липкая колонка справа --- */
@media (min-width: 992px) {
    .otz-layout {
        display: grid; grid-template-columns: minmax(0, 1fr) 320px;
        gap: 0 var(--spacing-2xl); align-items: start;
    }
    .otz-main { grid-column: 1; grid-row: 1; }
    .otz-side { grid-column: 2; grid-row: 1; position: sticky; top: 90px; }
    .otz-side .otz-sources { flex-direction: column; }
    .otz-side .otz-source { justify-content: space-between; }
    .otz-side .otz-regalia { margin-bottom: 0; }
    .otz-main .otz-item:first-child { padding-top: 0; }
}

/* --- Список отзывов: одна редакционная колонка, воздух вместо карточек --- */
.otz-list { max-width: 760px; }
.otz-item { padding: var(--spacing-md) 0; }
.otz-item + .otz-item { border-top: 1px solid var(--color-border-light); }

.otz-item__head { display: flex; align-items: center; gap: 12px; margin-bottom: 10px; }
.otz-item__avatar {
    flex: 0 0 auto; width: 44px; height: 44px;
    display: inline-flex; align-items: center; justify-content: center;
    border-radius: var(--radius-full);
    background: #e0f2f0; color: var(--color-dark);
    font-weight: 700; font-size: 17px;
}
.otz-item__who { display: flex; flex-direction: column; min-width: 0; }
.otz-item__author { font-weight: 700; color: var(--color-dark); }
.otz-item__date { font-size: 13px; color: var(--color-text-muted); }
.otz-item__deal {
    margin-left: auto; flex: 0 0 auto;
    padding: 4px 12px; border-radius: 999px;
    background: rgba(0,150,136,.08); color: var(--color-primary-dark);
    font-size: 13px; font-weight: 700; white-space: nowrap;
}

.otz-item__text { margin: 0; }
.otz-item__text p {
    margin: 0; max-width: 65ch;
    font-size: 17px; line-height: 1.65; color: var(--color-text);
}

.otz-item__meta {
    display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 18px;
    margin-top: 10px; font-size: 14px; color: var(--color-text-light);
}
.otz-item__meta a { color: var(--color-primary-dark); }
.otz-item__source { font-size: 13px; color: var(--color-text-muted); text-decoration: none; }
.otz-item__source:hover { color: var(--color-primary-dark); text-decoration: underline; }

/* --- CTA: оставить отзыв --- */
.otz-cta {
    display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
    gap: var(--spacing-sm); margin-top: var(--spacing-xl);
    background: linear-gradient(135deg, var(--color-dark), var(--color-bg-dark));
    border-radius: 20px; padding: var(--spacing-lg); color: #fff;
}
.otz-cta__title { color: #fff; font-size: 24px; margin: 0 0 6px; }
.otz-cta__text { margin: 0; color: rgba(255,255,255,.75); }
.otz-cta__actions { display: flex; flex-wrap: wrap; gap: 12px; }
.otz-cta__btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 10px;
    min-height: 52px; padding: 14px 26px;
    border-radius: 14px; cursor: pointer;
    font-family: inherit; font-size: 16px; font-weight: 600; white-space: nowrap;
    text-decoration: none;
    transition: transform 160ms cubic-bezier(0.23, 1, 0.32, 1),
                box-shadow 160ms cubic-bezier(0.23, 1, 0.32, 1),
                background 160ms ease;
}
.otz-cta__btn--primary { background: var(--color-accent); border: none; color: #fff; }
.otz-cta__btn--ghost { background: transparent; border: 1px solid rgba(255,255,255,.45); color: #fff; }
.otz-cta__btn svg { transition: transform 160ms cubic-bezier(0.23, 1, 0.32, 1); }
@media (hover: hover) and (pointer: fine) {
    .otz-cta__btn--primary:hover {
        background: var(--color-accent-dark); color: #fff;
        transform: translateY(-1px);
        box-shadow: 0 12px 28px -12px rgba(0, 0, 0, .5);
    }
    .otz-cta__btn--ghost:hover { background: rgba(255,255,255,.1); color: #fff; }
    .otz-cta__btn--primary:hover svg { transform: translate(2px, -2px); }
}
.otz-cta__btn:active { transform: scale(0.97); box-shadow: none; }
.otz-cta__btn:focus-visible { outline: 3px solid rgba(255, 255, 255, .55); outline-offset: 3px; }

@media (max-width: 575.98px) {
    .otz-sources { flex-direction: column; }
    .otz-source { justify-content: space-between; }
    .otz-item__deal { font-size: 12px; padding: 3px 10px; }
    .otz-cta__actions { width: 100%; }
    .otz-cta__btn { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
    .otz-source, .otz-cta__btn, .otz-cta__btn svg { transition: background 160ms ease; }
}

/* Фасад виджета Яндекс.Карт: кнопка → iframe по клику */
.otz-widget { margin-top: 16px; }
.otz-widget__btn {
    display: inline-flex; align-items: center; gap: 8px; width: 100%;
    padding: 12px 16px; border: 1px solid rgba(0, 0, 0, .12); border-radius: 12px;
    background: #fff; color: var(--color-dark); font-weight: 600; font-size: 14px;
    cursor: pointer; transition: border-color 160ms ease, transform 160ms cubic-bezier(.23, 1, .32, 1);
}
.otz-widget__btn:active { transform: scale(.98); }
.otz-widget__btn:focus-visible { outline: 2px solid var(--color-primary, #0e6d7c); outline-offset: 2px; }
@media (hover: hover) and (pointer: fine) {
    .otz-widget__btn:hover { border-color: var(--color-primary, #0e6d7c); }
}
.otz-widget__hint { margin: 8px 0 0; font-size: 12.5px; color: var(--color-text-muted); line-height: 1.45; }
.otz-widget__frame { width: 100%; height: 560px; border: 1px solid rgba(0, 0, 0, .08); border-radius: 12px; }
@media (prefers-reduced-motion: reduce) { .otz-widget__btn { transition: none; } .otz-widget__btn:active { transform: none; } }

/* Сканы сертификатов в сайдбаре отзывов */
.otz-docs { display: flex; gap: 12px; margin-top: 16px; }
.otz-doc {
    flex: 1; display: flex; flex-direction: column; gap: 6px;
    text-decoration: none;
}
.otz-doc img {
    width: 100%; height: auto; border-radius: 10px;
    border: 1px solid rgba(0, 0, 0, .10);
    transition: box-shadow 200ms cubic-bezier(.23, 1, .32, 1), transform 200ms cubic-bezier(.23, 1, .32, 1);
}
@media (hover: hover) and (pointer: fine) {
    .otz-doc:hover img { box-shadow: 0 8px 20px rgba(14, 42, 48, .14); transform: translateY(-2px); }
}
.otz-doc__caption { font-size: 12.5px; color: var(--color-text-muted); line-height: 1.35; text-align: center; }
@media (prefers-reduced-motion: reduce) { .otz-doc img { transition: none; } .otz-doc:hover img { transform: none; } }
