/**
 * Стили для Full CTA блока психолога
 * Версия: 2.3.0
 *
 * DOM структура (3 уровня):
 * .sborisov-full-cta > .cta-options > .cta-option
 *
 * Использует :where() для внутренних элементов —
 * легче переопределять в теме без !important
 */

/* === CSS ПЕРЕМЕННЫЕ === */
:root {
    --sbr-cta-max-width: 1200px;
    --sbr-cta-border-radius: 12px;
    --sbr-cta-transition: all 0.3s ease;
    --sbr-cta-gap: 20px;
}

/* === ТИПОГРАФИКА (по умолчанию) === */
.sborisov-full-cta {
    --sbr-block-title-align: center;
    --sbr-block-title-size: 32px;
    --sbr-block-title-weight: 500;

    --sbr-option-title-align: left;
    --sbr-option-title-size: 18px;
    --sbr-option-title-weight: 500;

    --sbr-description-align: left;
    --sbr-description-size: 16px;
    --sbr-description-weight: 400;

    --sbr-price-align: left;
    --sbr-price-size: 15px;
    --sbr-price-weight: 500;
}

/* === ЦВЕТОВЫЕ СХЕМЫ === */

/* Бежевая (по умолчанию) */
.sborisov-full-cta {
    --sbr-bg-start: #fcf8f2;
    --sbr-bg-end: #f8f1e7;
    --sbr-text: #4a3a2a;
    --sbr-card-bg: rgba(255, 255, 255, 0.7);
    --sbr-card-bg-hover: rgba(255, 255, 255, 0.9);
    --sbr-card-border: rgba(74, 58, 42, 0.1);
    --sbr-card-border-hover: rgba(74, 58, 42, 0.2);
    --sbr-card-shadow: rgba(74, 58, 42, 0.15);
    --sbr-btn-bg: #d4b896;
    --sbr-btn-bg-hover: #c4a886;
    --sbr-btn-text: #5d4a36;
    --sbr-btn-border: #c4a886;
}

/* Спокойная */
.sborisov-full-cta.scheme-calm {
    --sbr-bg-start: #ede3cc;
    --sbr-bg-end: #e6d9bd;
    --sbr-text: #6d5741;
    --sbr-card-bg: rgba(255, 255, 255, 0.6);
    --sbr-card-bg-hover: rgba(255, 255, 255, 0.85);
    --sbr-card-border: rgba(109, 87, 65, 0.15);
    --sbr-card-border-hover: rgba(109, 87, 65, 0.25);
    --sbr-card-shadow: rgba(109, 87, 65, 0.15);
    --sbr-btn-bg: #c9b591;
    --sbr-btn-bg-hover: #b9a581;
    --sbr-btn-text: #6d5741;
    --sbr-btn-border: #b9a581;
}

/* Тёплая */
.sborisov-full-cta.scheme-warm {
    --sbr-bg-start: #faebc8;
    --sbr-bg-end: #f5e1b3;
    --sbr-text: #8b6738;
    --sbr-card-bg: rgba(255, 255, 255, 0.65);
    --sbr-card-bg-hover: rgba(255, 255, 255, 0.9);
    --sbr-card-border: rgba(168, 122, 78, 0.15);
    --sbr-card-border-hover: rgba(168, 122, 78, 0.25);
    --sbr-card-shadow: rgba(168, 122, 78, 0.15);
    --sbr-btn-bg: #e6c591;
    --sbr-btn-bg-hover: #d6b581;
    --sbr-btn-text: #8b6738;
    --sbr-btn-border: #d6b581;
}

/* Лавандовая */
.sborisov-full-cta.scheme-lavender {
    --sbr-bg-start: #f4f1fc;
    --sbr-bg-end: #e6e0f5;
    --sbr-text: #5a4a7a;
    --sbr-card-bg: rgba(255, 255, 255, 0.75);
    --sbr-card-bg-hover: rgba(255, 255, 255, 0.95);
    --sbr-card-border: rgba(139, 123, 186, 0.15);
    --sbr-card-border-hover: rgba(139, 123, 186, 0.25);
    --sbr-card-shadow: rgba(139, 123, 186, 0.15);
    --sbr-btn-bg: #c8b9e8;
    --sbr-btn-bg-hover: #b8a9d8;
    --sbr-btn-text: #5a4a7a;
    --sbr-btn-border: #b8a9d8;
}

/* Мятная */
.sborisov-full-cta.scheme-mint {
    --sbr-bg-start: #f0f8f4;
    --sbr-bg-end: #e0f2e7;
    --sbr-text: #2d5a3d;
    --sbr-card-bg: rgba(255, 255, 255, 0.8);
    --sbr-card-bg-hover: rgba(255, 255, 255, 0.95);
    --sbr-card-border: rgba(76, 175, 80, 0.12);
    --sbr-card-border-hover: rgba(76, 175, 80, 0.22);
    --sbr-card-shadow: rgba(76, 175, 80, 0.12);
    --sbr-btn-bg: #a8d4b0;
    --sbr-btn-bg-hover: #98c4a0;
    --sbr-btn-text: #2d5a3d;
    --sbr-btn-border: #98c4a0;
}

/* Сиреневая */
.sborisov-full-cta.scheme-lilac {
    --sbr-bg-start: #f8f4ff;
    --sbr-bg-end: #f0e6ff;
    --sbr-text: #6a4c93;
    --sbr-card-bg: rgba(255, 255, 255, 0.7);
    --sbr-card-bg-hover: rgba(255, 255, 255, 0.92);
    --sbr-card-border: rgba(159, 122, 234, 0.15);
    --sbr-card-border-hover: rgba(159, 122, 234, 0.25);
    --sbr-card-shadow: rgba(159, 122, 234, 0.15);
    --sbr-btn-bg: #d4c4f0;
    --sbr-btn-bg-hover: #c4b4e0;
    --sbr-btn-text: #6a4c93;
    --sbr-btn-border: #c4b4e0;
}

/* Стальная */
.sborisov-full-cta.scheme-steel {
    --sbr-bg-start: #f2f5f8;
    --sbr-bg-end: #e8eef5;
    --sbr-text: #3a4a5c;
    --sbr-card-bg: rgba(255, 255, 255, 0.75);
    --sbr-card-bg-hover: rgba(255, 255, 255, 0.95);
    --sbr-card-border: rgba(108, 117, 125, 0.15);
    --sbr-card-border-hover: rgba(108, 117, 125, 0.25);
    --sbr-card-shadow: rgba(108, 117, 125, 0.12);
    --sbr-btn-bg: #b8c5d1;
    --sbr-btn-bg-hover: #a8b5c1;
    --sbr-btn-text: #3a4a5c;
    --sbr-btn-border: #a8b5c1;
}

/* === ОСНОВНОЙ КОНТЕЙНЕР === */
.sborisov-full-cta {
    max-width: var(--sbr-cta-max-width);
    margin: 60px auto;
    padding: 50px 40px;
    background: linear-gradient(135deg, var(--sbr-bg-start) 0%, var(--sbr-bg-end) 100%);
    border-radius: var(--sbr-cta-border-radius);
    color: var(--sbr-text);
    font-family: inherit;
    box-sizing: border-box;
}

/* === ВНУТРЕННИЕ ЭЛЕМЕНТЫ (низкая специфичность через :where) === */

/* Заголовок блока */
.sborisov-full-cta :where(.cta-title) {
    text-align: var(--sbr-block-title-align, center);
    font-size: var(--sbr-block-title-size, 32px);
    font-weight: var(--sbr-block-title-weight, 500);
    margin: 0 0 40px;
    color: var(--sbr-text);
    line-height: 1.3;
}

/* Контейнер опций */
.sborisov-full-cta :where(.cta-options) {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: var(--sbr-cta-gap);
    list-style: none;
    margin: 0;
    padding: 0;
}

/* Карточка опции */
.sborisov-full-cta :where(.cta-option) {
    display: flex;
    flex-direction: column;
    padding: 28px 24px;
    background: var(--sbr-card-bg);
    border: 1px solid var(--sbr-card-border);
    border-radius: var(--sbr-cta-border-radius);
    backdrop-filter: blur(10px);
    transition: var(--sbr-cta-transition);
    animation: sbr-fadeInUp 0.4s ease forwards;
}

.sborisov-full-cta :where(.cta-option:hover) {
    background: var(--sbr-card-bg-hover);
    border-color: var(--sbr-card-border-hover);
    box-shadow: 0 8px 30px var(--sbr-card-shadow);
    transform: translateY(-4px);
}

/* Заголовок опции */
.sborisov-full-cta :where(.cta-option-title) {
    text-align: var(--sbr-option-title-align, left);
    font-size: var(--sbr-option-title-size, 18px);
    font-weight: var(--sbr-option-title-weight, 500);
    margin: 0 0 12px;
    color: var(--sbr-text);
    line-height: 1.3;
}

/* Описание опции */
.sborisov-full-cta :where(.cta-option-desc) {
    text-align: var(--sbr-description-align, left);
    font-size: var(--sbr-description-size, 16px);
    font-weight: var(--sbr-description-weight, 400);
    line-height: 1.6;
    margin: 0 0 12px;
    color: var(--sbr-text);
    opacity: 0.85;
    flex-grow: 1;
}

/* Цена */
.sborisov-full-cta :where(.cta-option-price) {
    text-align: var(--sbr-price-align, left);
    font-size: var(--sbr-price-size, 15px);
    font-weight: var(--sbr-price-weight, 500);
    margin: 0 0 16px;
    color: var(--sbr-text);
    opacity: 0.75;
}

/* === КНОПКА === */
.sborisov-full-cta :where(.cta-button) {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 14px 24px;
    background: var(--sbr-btn-bg);
    color: var(--sbr-btn-text);
    border: 1px solid var(--sbr-btn-border);
    border-radius: 8px;
    font-size: var(--sbr-button-text-size, 0.95rem);
    font-weight: var(--sbr-button-text-weight, 500);
    text-align: var(--sbr-button-text-align, center);
    text-decoration: none;
    cursor: pointer;
    transition: var(--sbr-cta-transition);
    margin-top: auto;
    max-width: 100%;
    box-sizing: border-box;
}

.sborisov-full-cta :where(.cta-button:hover) {
    background: var(--sbr-btn-bg-hover);
    transform: translateY(-2px);
    box-shadow: 0 4px 12px var(--sbr-card-shadow);
}

.sborisov-full-cta :where(.cta-button:focus-visible) {
    outline: 2px solid var(--sbr-btn-text);
    outline-offset: 2px;
}

/* Неактивная кнопка */
.sborisov-full-cta :where(.cta-button-disabled) {
    opacity: 0.6;
    cursor: not-allowed;
}

.sborisov-full-cta :where(.cta-button-disabled:hover) {
    transform: none;
    box-shadow: none;
}

/* === ПЛЕЙСХОЛДЕР === */
.sborisov-full-cta-placeholder {
    padding: 40px;
    text-align: center;
    background: #f5f5f5;
    border: 2px dashed #ccc;
    border-radius: var(--sbr-cta-border-radius);
    color: #666;
    font-size: 1rem;
}

/* === АНИМАЦИЯ === */
@keyframes sbr-fadeInUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* === АДАПТИВНОСТЬ === */
@media (max-width: 768px) {
    .sborisov-full-cta {
        margin: 40px 15px;
        padding: 35px 25px;
    }

    .sborisov-full-cta :where(.cta-title) {
        margin-bottom: 30px;
        text-align: center;
        font-size: calc(var(--sbr-block-title-size, 32px) * 0.8);
    }

    .sborisov-full-cta :where(.cta-options) {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .sborisov-full-cta :where(.cta-option) {
        padding: 24px 20px;
    }

    .sborisov-full-cta :where(.cta-button) {
        width: 100%;
        padding: 14px 16px;
    }

    .sborisov-full-cta :where(.cta-option-title) {
        text-align: center;
        font-size: calc(var(--sbr-option-title-size, 18px) * 0.8);
    }

    .sborisov-full-cta :where(.cta-option-desc) {
        text-align: center;
        font-size: calc(var(--sbr-description-size, 16px) * 0.8);
    }

    .sborisov-full-cta :where(.cta-option-price) {
        text-align: center;
        font-size: calc(var(--sbr-price-size, 15px) * 0.8);
    }

    .sborisov-full-cta :where(.cta-button) {
        width: 100%;
    }
}

@media (max-width: 480px) {
    .sborisov-full-cta {
        margin: 30px 10px;
        padding: 25px 18px;
        border-radius: 10px;
    }

    .sborisov-full-cta :where(.cta-option) {
        padding: 20px 16px;
    }

    .sborisov-full-cta :where(.cta-button) {
        padding: 12px 14px;
        font-size: 0.9rem;
    }
}

/* === REDUCED MOTION === */
@media (prefers-reduced-motion: reduce) {
    .sborisov-full-cta :where(.cta-option),
    .sborisov-full-cta :where(.cta-button) {
        animation: none;
        transition: none;
    }
}
