/* ========== Затемнение ========== */
.slideout-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.35);
    z-index: 9998;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s;
}
.slideout-overlay.active {
    opacity: 1;
    visibility: visible;
}

/* ========== Панель ========== */
.slideout-panel {
    position: fixed;
    top: 0;
    right: 0;
    width: 33vw;                    /* треть экрана */
    min-width: 320px;               /* минимальная ширина для мелких экранов */
    height: 100%;
    background: var(--white, #fff);
    box-shadow: -5px 0 25px rgba(0,0,0,0.08);
    z-index: 9999;
    overflow: visible;              /* чтобы кнопки, выступающие наружу, не обрезались */
    transform: translateX(100%);    /* скрыта за правым краем */
    transition: transform 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    display: flex;
    flex-direction: column;
}
/* Открытое состояние */
.slideout-panel.active {
    transform: translateX(0);
}

/* ========== Кнопки (теперь внутри панели, абсолютно позиционированы) ========== */
.slideout-triggers {
    position: absolute;
    right: 100%;                    /* прижаты к левому краю панели */
    top: 35vh;                      /* чуть выше центра экрана (регулируйте 30–40vh) */
    margin-right: 6px;              /* зазор между кнопками и панелью */
    display: flex;
    flex-direction: column;
    z-index: 10000;                /* чтобы быть над панелью и оверлеем */
}
/* Первая кнопка: убрать скругление снизу */
.slideout-trigger:first-child {
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
}

/* Вторая кнопка: убрать все скругления */
.slideout-trigger:nth-child(2) {
    border-radius: 0;
}

/* Третья кнопка: убрать скругление сверху */
.slideout-trigger:last-child {
    border-top-left-radius: 0;
    border-top-right-radius: 0;
}
.slideout-trigger {
    width: 64px;
    height: 64px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--white, #fff);
    border: 1px solid var(--border-color, #eaeaea);
    border-radius: var(--radius-sm, 8px);
    box-shadow: 0 2px 8px rgba(0,0,0,0.05);
    color: var(--text-light, #666);
    cursor: pointer;
    transition: background 0.2s, color 0.2s, border-color 0.2s;
    font-size: 16px;
}
.slideout-trigger:hover {
    background: var(--primary-light, #ff6aa8);
    border-color: var(--primary-color, #E02E7A);
    color: var(--primary-dark, #b82362);
}
.slideout-trigger.active {
    background: var(--primary-color, #E02E7A);
    border-color: var(--primary-color, #E02E7A);
    color: var(--white, #fff);
}

/* ========== Кнопка закрытия ========== */
.slideout-panel__close {
    position: absolute;
    top: 12px;
    right: 16px;
    background: none;
    border: none;
    font-size: 28px;
    line-height: 1;
    color: var(--text-dark, #333);
    cursor: pointer;
    z-index: 10;
    display: block;                 /* показываем всегда, не только на мобильных */
}

/* Контентная часть */
.slideout-panel__content {
    flex: 1;
    overflow-y: auto;
    padding: 30px 25px;
    -webkit-overflow-scrolling: touch;
    display: flex;
    flex-direction: column;
    justify-content: center;   /* вертикальное центрирование */
    align-items: center;       /* горизонтальное центрирование */
}

/* Вкладки */
.slideout-form-panel {
    display: none;
}
.slideout-form-panel.active {
    display: block;
}

/* --- Стилизация CF7 внутри панели --- */
.slideout-form-panel .wpcf7 input[type="text"],
.slideout-form-panel .wpcf7 input[type="email"],
.slideout-form-panel .wpcf7 input[type="tel"],
.slideout-form-panel .wpcf7 textarea {
    width: 100%;
    padding: 10px 14px;
    border: 1px solid var(--border-color, #eaeaea);
    border-radius: var(--radius-sm, 8px);
    font-size: 14px;
    background: var(--bg-light, #f9f9f9);
    transition: border-color 0.2s, background 0.2s;
    box-sizing: border-box;
    margin-bottom: 12px;
}
.slideout-form-panel .wpcf7 input:focus,
.slideout-form-panel .wpcf7 textarea:focus {
    border-color: var(--primary-color, #E02E7A);
    background: var(--white, #fff);
    outline: none;
}
.slideout-form-panel .wpcf7 input[type="submit"] {
    width: 100%;
    padding: 12px;
    background: var(--primary-color, #E02E7A);
    color: var(--white, #fff);
    border: none;
    border-radius: var(--radius-sm, 8px);
    font-size: 15px;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.2s;
}
.slideout-form-panel .wpcf7 input[type="submit"]:hover {
    background: var(--primary-dark, #b82362);
}
.slideout-form-panel .wpcf7-acceptance label {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: var(--text-light, #666);
}

/* Карта */
.slideout-map-container {
    width: 100%;
    height: 100%;
    min-height: 350px;
    border-radius: var(--radius-md, 12px);
    overflow: hidden;
}
#yandex-map {
    width: 100%;
    height: 100%;
}

/* ========== Адаптив ========== */
@media (max-width: 768px) {
    .slideout-panel {
        width: 90vw;
        min-width: auto;
    }
    .slideout-triggers {
        top: 40vh;
    }
    .slideout-trigger {
        width: 48px;
        height: 48px;
    }
}

/* ===== ОТКЛЮЧАЕМ ВЫЕЗЖАЮЩУЮ ПАНЕЛЬ НА МОБИЛЬНЫХ ===== */
@media (max-width: 767px) {
    /* Кнопки-триггеры (телефон, конверт, карта) */
    .slideout-triggers {
        display: none !important;
    }

    /* Сама выезжающая панель */
    .slideout-panel {
        display: none !important;
    }

    /* Затемнение (на всякий случай, чтобы не перекрывало экран) */
    .slideout-overlay {
        display: none !important;
    }
}