.elementor-2692 .elementor-element.elementor-element-d41a19d{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}#elementor-popup-modal-2692 .dialog-widget-content{animation-duration:1.2s;border-radius:20px 20px 20px 20px;box-shadow:2px 8px 23px 3px rgba(0,0,0,0.2);}#elementor-popup-modal-2692{background-color:rgba(0,0,0,.8);justify-content:center;align-items:center;pointer-events:all;}#elementor-popup-modal-2692 .dialog-message{width:800px;height:auto;}#elementor-popup-modal-2692 .dialog-close-button{display:flex;}@media(max-width:1024px){#elementor-popup-modal-2692 .dialog-message{width:45em;}}@media(max-width:767px){#elementor-popup-modal-2692 .dialog-message{width:30.6em;}}/* Start custom CSS *//*
 * VCB Idiomas — Configurador de Cursos Avançado
 * Arquivo: vcb-configurador.css
 * Salve em: wp-content/themes/SEU-TEMA/vcb-configurador.css
 *
 * Paleta:
 *   --vcb-brand      : #0F4C81  (azul principal)
 *   --vcb-accent     : #F5A623  (âmbar/ouro — CTA e destaques)
 *   --vcb-success    : #27AE60  (verde — seleção ativa / desconto)
 *   --vcb-danger     : #E74C3C  (vermelho — erros)
 *   --vcb-text       : #1A1A2E  (texto escuro)
 *   --vcb-muted      : #6B7280  (texto secundário)
 *   --vcb-bg         : #F8F9FB  (fundo do form)
 *   --vcb-surface    : #FFFFFF  (cards e inputs)
 *   --vcb-border     : #E2E8F0  (bordas sutis)
 */

/* ── Reset e variáveis ─────────────────────────────────────────────────────── */

.vcb-wrap,
.vcb-wrap * {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

.vcb-wrap {
    --vcb-brand        : #0F4C81;
    --vcb-brand-dark   : #093963;
    --vcb-brand-light  : #EBF3FB;
    --vcb-accent       : #F5A623;
    --vcb-accent-dark  : #D4891A;
    --vcb-success      : #27AE60;
    --vcb-success-light: #E8F8F0;
    --vcb-danger       : #E74C3C;
    --vcb-danger-light : #FDF0EE;
    --vcb-text         : #1A1A2E;
    --vcb-muted        : #6B7280;
    --vcb-bg           : #F3F6FA;
    --vcb-surface      : #FFFFFF;
    --vcb-border       : #E2E8F0;
    --vcb-radius       : 14px;
    --vcb-radius-sm    : 8px;
    --vcb-shadow       : 0 4px 24px rgba(15,76,129,.10);
    --vcb-shadow-hover : 0 8px 32px rgba(15,76,129,.18);
    --vcb-transition   : 0.22s ease;
    --vcb-font         : 'Segoe UI', 'Helvetica Neue', Arial, sans-serif;

    font-family        : var(--vcb-font);
    color              : var(--vcb-text);
    background         : var(--vcb-bg);
    border-radius      : var(--vcb-radius);
    padding            : 0 0 32px;
    max-width          : 800px;
    margin             : 0 auto;
    position           : relative;
}

/* ── Barra de Progresso ────────────────────────────────────────────────────── */

.vcb-progress-bar-wrap {
    background    : var(--vcb-border);
    border-radius : var(--vcb-radius) var(--vcb-radius) 0 0;
    overflow      : hidden;
    position      : relative;
    padding-bottom: 0;
}

.vcb-progress-bar-inner {
    height          : 5px;
    background      : linear-gradient(90deg, var(--vcb-brand), var(--vcb-accent));
    border-radius   : 4px;
    transition      : width 0.4s cubic-bezier(.4,0,.2,1);
    width           : 0%;
}

.vcb-progress-steps {
    display        : flex;
    justify-content: space-between;
    padding        : 16px 20px 14px;
    background     : var(--vcb-surface);
    border-bottom  : 1px solid var(--vcb-border);
    gap            : 4px;
    overflow-x     : auto;
    scrollbar-width: none;
}
.vcb-progress-steps::-webkit-scrollbar { display: none; }

.vcb-step-dot {
    display        : flex;
    flex-direction : column;
    align-items    : center;
    gap            : 4px;
    cursor         : default;
    flex           : 1;
    min-width      : 44px;
}

.vcb-step-num {
    width           : 30px;
    height          : 30px;
    border-radius   : 50%;
    border          : 2px solid var(--vcb-border);
    background      : var(--vcb-surface);
    color           : var(--vcb-muted);
    font-size       : 12px;
    font-weight     : 700;
    display         : flex;
    align-items     : center;
    justify-content : center;
    transition      : all var(--vcb-transition);
}

.vcb-step-label {
    font-size   : 10px;
    color       : var(--vcb-muted);
    text-align  : center;
    line-height : 1.2;
    transition  : color var(--vcb-transition);
    white-space : nowrap;
}

/* Estado: Etapa ativa */
.vcb-step-dot.active .vcb-step-num {
    background  : var(--vcb-brand);
    border-color: var(--vcb-brand);
    color       : #fff;
    box-shadow  : 0 0 0 4px rgba(15,76,129,.15);
}
.vcb-step-dot.active .vcb-step-label {
    color      : var(--vcb-brand);
    font-weight: 700;
}

/* Estado: Etapa concluída */
.vcb-step-dot.done .vcb-step-num {
    background  : var(--vcb-success);
    border-color: var(--vcb-success);
    color       : #fff;
}
.vcb-step-dot.done .vcb-step-num::before {
    content: '✓';
}
.vcb-step-dot.done .vcb-step-label { color: var(--vcb-success); }

/* ── Form e Etapas ─────────────────────────────────────────────────────────── */

.vcb-form {
    padding: 0;
}

.vcb-step {
    display : none;
    padding : 36px 32px 28px;
    animation: vcbFadeIn 0.3s ease forwards;
}

.vcb-step.active {
    display: block;
}

@keyframes vcbFadeIn {
    from { opacity: 0; transform: translateY(12px); }
    to   { opacity: 1; transform: translateY(0);    }
}

/* ── Cabeçalho de cada etapa ─────────────────────────────────────────────── */

.vcb-step-header {
    text-align    : center;
    margin-bottom : 28px;
}

.vcb-step-icon {
    font-size     : 44px;
    display       : block;
    margin-bottom : 10px;
    line-height   : 1;
}

.vcb-step-header h2 {
    font-size  : 1.6rem;
    font-weight: 800;
    color      : var(--vcb-text);
    margin     : 0 0 8px;
    line-height: 1.25;
}

.vcb-step-header p {
    font-size : 0.95rem;
    color     : var(--vcb-muted);
    max-width : 480px;
    margin    : 0 auto;
}

/* ── Campos de Texto (Etapa 0) ──────────────────────────────────────────────  */

.vcb-fields {
    display       : flex;
    flex-direction: column;
    gap           : 20px;
    max-width     : 480px;
    margin        : 0 auto 28px;
}

.vcb-field-group {
    display        : flex;
    flex-direction : column;
    gap            : 6px;
}

.vcb-field-group label {
    font-size  : 0.875rem;
    font-weight: 600;
    color      : var(--vcb-text);
}

.vcb-required {
    color      : var(--vcb-danger);
    margin-left: 2px;
}

.vcb-input {
    border       : 2px solid var(--vcb-border);
    border-radius: var(--vcb-radius-sm);
    padding      : 13px 16px;
    font-size    : 1rem;
    color        : var(--vcb-text);
    background   : var(--vcb-surface);
    width        : 100%;
    transition   : border-color var(--vcb-transition), box-shadow var(--vcb-transition);
    outline      : none;
    font-family  : var(--vcb-font);
}

.vcb-input:focus {
    border-color: var(--vcb-brand);
    box-shadow  : 0 0 0 3px rgba(15,76,129,.12);
}

.vcb-input::placeholder { color: #B0BAC9; }

.vcb-input--error {
    border-color: var(--vcb-danger) !important;
    background  : var(--vcb-danger-light);
}

.vcb-field-error {
    font-size  : 0.8rem;
    color      : var(--vcb-danger);
    min-height : 16px;
    font-weight: 500;
}

/* ── Cards / Botões de Seleção ───────────────────────────────────────────── */

.vcb-cards-grid {
    display              : grid;
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    gap                  : 14px;
    margin-bottom        : 8px;
}

/* Grid de 2 colunas para modalidade */
.vcb-cards-grid--2 {
    grid-template-columns: 1fr 1fr;
    max-width            : 480px;
    margin-left          : auto;
    margin-right         : auto;
}

.vcb-card {
    position      : relative;
    display       : flex;
    flex-direction: column;
    align-items   : center;
    justify-content: center;
    gap           : 6px;
    padding       : 18px 12px 16px;
    border        : 2px solid var(--vcb-border);
    border-radius : var(--vcb-radius);
    background    : var(--vcb-surface);
    cursor        : pointer;
    transition    : all var(--vcb-transition);
    text-align    : center;
    min-height    : 110px;
    box-shadow    : 0 2px 8px rgba(0,0,0,.04);
    outline       : none;
    /* Reset estilos de <button> */
    font-family   : var(--vcb-font);
    color         : var(--vcb-text);
    -webkit-appearance: none;
    appearance    : none;
}

.vcb-card:hover:not(.vcb-card--disabled) {
    border-color: var(--vcb-brand);
    box-shadow  : var(--vcb-shadow-hover);
    transform   : translateY(-2px);
}

.vcb-card:focus-visible {
    box-shadow: 0 0 0 3px rgba(15,76,129,.3);
}

/* Estado selecionado */
.vcb-card.selected {
    border-color: var(--vcb-success);
    background  : var(--vcb-success-light);
    box-shadow  : 0 4px 16px rgba(39,174,96,.15);
}

.vcb-card.selected .vcb-card-label { color: var(--vcb-success); }

/* Estado desabilitado (horários — regra sábado) */
.vcb-card--disabled {
    opacity       : 0.35;
    cursor        : not-allowed;
    pointer-events: none;
    filter        : grayscale(60%);
}

/* Ícone de check (visível apenas quando selecionado) */
.vcb-card-check {
    position    : absolute;
    top         : 8px;
    right       : 10px;
    font-size   : 14px;
    color       : var(--vcb-success);
    opacity     : 0;
    transform   : scale(0.5);
    transition  : all 0.2s ease;
}
.vcb-card.selected .vcb-card-check {
    opacity  : 1;
    transform: scale(1);
}

/* Elementos internos dos cards */
.vcb-card-icon  { font-size: 30px; line-height: 1; }
.vcb-card-label { font-size: .9rem; font-weight: 700; color: var(--vcb-text); line-height: 1.2; }
.vcb-card-sub   { font-size: .76rem; color: var(--vcb-muted); line-height: 1.2; }

/* Card grande (Modalidade) */
.vcb-card--large {
    min-height: 140px;
    padding   : 24px 16px;
}
.vcb-card--large .vcb-card-icon  { font-size: 40px; }
.vcb-card--large .vcb-card-label { font-size: 1rem; }

/* Card dia da semana */
.vcb-card--day {
    min-height: 80px;
    padding   : 12px 8px;
}
.vcb-card-abrev {
    font-size  : 1.1rem;
    font-weight: 800;
    color      : var(--vcb-brand);
}
.vcb-card--day .vcb-card-label {
    font-size  : 0.75rem;
    color      : var(--vcb-muted);
    font-weight: 500;
}

/* Card horário */
.vcb-card--horario { min-height: 90px; }

/* Erro nos cards */
.vcb-cards-error {
    display   : block;
    font-size : 0.82rem;
    color     : var(--vcb-danger);
    margin-top: 4px;
    font-weight: 500;
    min-height: 18px;
}

/* ── Aviso condicional (horário sábado) ─────────────────────────────────── */

.vcb-aviso {
    display      : flex;
    align-items  : center;
    gap          : 8px;
    background   : #FFF8E6;
    border       : 1px solid #F5A623;
    border-radius: var(--vcb-radius-sm);
    padding      : 10px 14px;
    font-size    : 0.85rem;
    color        : #7B5200;
    margin-top   : 12px;
    font-weight  : 500;
}

/* ── Navegação (Voltar / Próximo) ───────────────────────────────────────── */

.vcb-nav {
    display        : flex;
    justify-content: space-between;
    align-items    : center;
    gap            : 12px;
    margin-top     : 28px;
    flex-wrap      : wrap;
}

.vcb-nav--center {
    flex-direction: column;
    align-items   : center;
}

/* Botão Primário (Próximo) */
.vcb-btn-primary {
    background   : var(--vcb-brand);
    color        : #fff;
    border       : none;
    border-radius: 50px;
    padding      : 14px 32px;
    font-size    : 1rem;
    font-weight  : 700;
    cursor       : pointer;
    transition   : all var(--vcb-transition);
    display      : inline-flex;
    align-items  : center;
    gap          : 8px;
    font-family  : var(--vcb-font);
    margin-left  : auto;
    outline      : none;
    box-shadow   : 0 4px 14px rgba(15,76,129,.3);
}
.vcb-btn-primary:hover {
    background : var(--vcb-brand-dark);
    transform  : translateY(-2px);
    box-shadow : 0 6px 20px rgba(15,76,129,.4);
}
.vcb-btn-primary:focus-visible {
    box-shadow: 0 0 0 3px rgba(15,76,129,.4);
}

/* Botão Secundário (Voltar) */
.vcb-btn-secondary {
    background   : transparent;
    color        : var(--vcb-muted);
    border       : 2px solid var(--vcb-border);
    border-radius: 50px;
    padding      : 12px 24px;
    font-size    : 0.95rem;
    font-weight  : 600;
    cursor       : pointer;
    transition   : all var(--vcb-transition);
    display      : inline-flex;
    align-items  : center;
    gap          : 6px;
    font-family  : var(--vcb-font);
    outline      : none;
}
.vcb-btn-secondary:hover {
    border-color: var(--vcb-brand);
    color       : var(--vcb-brand);
}

/* ── Badge de Desconto (Etapa 6) ────────────────────────────────────────── */

.vcb-desconto-badge {
    display       : flex;
    align-items   : center;
    gap           : 14px;
    background    : linear-gradient(135deg, #1B7A3E 0%, #27AE60 100%);
    border-radius : var(--vcb-radius);
    padding       : 18px 22px;
    margin-bottom : 28px;
    box-shadow    : 0 6px 24px rgba(39,174,96,.3);
    animation     : vcbPulseGreen 2s ease-in-out infinite;
}

@keyframes vcbPulseGreen {
    0%, 100% { box-shadow: 0 6px 24px rgba(39,174,96,.3); }
    50%       { box-shadow: 0 6px 32px rgba(39,174,96,.5); }
}

.vcb-desconto-icon { font-size: 36px; flex-shrink: 0; }

.vcb-desconto-text {
    display       : flex;
    flex-direction: column;
    gap           : 2px;
    flex          : 1;
}
.vcb-desconto-text strong {
    color      : #fff;
    font-size  : 1rem;
    font-weight: 800;
    line-height: 1.3;
}
.vcb-desconto-text span {
    color    : rgba(255,255,255,.85);
    font-size: 0.82rem;
}

.vcb-desconto-check { font-size: 28px; flex-shrink: 0; }

/* ── Resumo da Simulação ────────────────────────────────────────────────── */

.vcb-resumo {
    display      : flex;
    flex-direction: column;
    gap          : 20px;
    margin-bottom: 28px;
}

.vcb-resumo-section {
    background   : var(--vcb-surface);
    border       : 1px solid var(--vcb-border);
    border-radius: var(--vcb-radius);
    padding      : 20px 22px;
}

.vcb-resumo-section h3 {
    font-size    : 0.9rem;
    font-weight  : 700;
    color        : var(--vcb-brand);
    margin-bottom: 14px;
    text-transform: uppercase;
    letter-spacing: .05em;
    border-bottom: 1px solid var(--vcb-border);
    padding-bottom: 10px;
}

.vcb-resumo-section dl { display: flex; flex-direction: column; gap: 10px; }

.vcb-resumo-row {
    display        : flex;
    justify-content: space-between;
    align-items    : flex-start;
    gap            : 12px;
}

.vcb-resumo-row dt {
    font-size  : 0.85rem;
    color      : var(--vcb-muted);
    font-weight: 500;
    flex-shrink: 0;
    min-width  : 90px;
}

.vcb-resumo-row dd {
    font-size  : 0.9rem;
    font-weight: 700;
    color      : var(--vcb-text);
    text-align : right;
    word-break : break-word;
}

/* ── Botão Final de Envio ───────────────────────────────────────────────── */

.vcb-btn-enviar {
    display        : inline-flex;
    align-items    : center;
    justify-content: center;
    gap            : 10px;
    background     : linear-gradient(135deg, var(--vcb-accent) 0%, var(--vcb-accent-dark) 100%);
    color          : #fff;
    border         : none;
    border-radius  : 50px;
    padding        : 18px 38px;
    font-size      : 1.1rem;
    font-weight    : 800;
    cursor         : pointer;
    transition     : all var(--vcb-transition);
    box-shadow     : 0 6px 24px rgba(245,166,35,.4);
    font-family    : var(--vcb-font);
    text-align     : center;
    width          : 100%;
    max-width      : 480px;
    outline        : none;
    letter-spacing : .01em;
}
.vcb-btn-enviar:hover {
    transform : translateY(-3px);
    box-shadow: 0 10px 32px rgba(245,166,35,.55);
}
.vcb-btn-enviar:focus-visible {
    box-shadow: 0 0 0 3px rgba(245,166,35,.5);
}
.vcb-btn-enviar:active { transform: translateY(0); }

.vcb-btn-enviar-icon { font-size: 22px; }

/* Disclaimer abaixo do botão */
.vcb-rodape-disclaimer {
    text-align : center;
    font-size  : 0.78rem;
    color      : var(--vcb-muted);
    margin-top : 14px;
    max-width  : 420px;
    margin-left: auto;
    margin-right: auto;
    line-height: 1.5;
}

/* ── Botão Flutuante [vcb_botao_flutuante] ──────────────────────────────── */

.vcb-botao-flutuante {
    position       : fixed;
    bottom         : 24px;
    right          : 24px;
    z-index        : 9999;
    display        : flex;
    align-items    : center;
    gap            : 10px;
    background     : linear-gradient(135deg, #0F4C81 0%, #1A6EC7 100%);
    color          : #fff !important;
    text-decoration: none;
    padding        : 14px 22px;
    border-radius  : 50px;
    font-family    : var(--vcb-font, 'Segoe UI', sans-serif);
    font-size      : 0.92rem;
    font-weight    : 700;
    box-shadow     : 0 6px 28px rgba(15,76,129,.45);
    transition     : all 0.25s ease;
    cursor         : pointer;
    overflow       : visible;
    white-space    : nowrap;
    max-width      : calc(100vw - 48px);
}

.vcb-botao-flutuante:hover {
    transform : translateY(-3px) scale(1.03);
    box-shadow: 0 10px 36px rgba(15,76,129,.6);
}

/* Ícone e texto */
.vcb-bf-icon { font-size: 22px; flex-shrink: 0; }
.vcb-bf-text { line-height: 1.2; }

/* Efeito de pulso (anel animado) */
.vcb-bf-pulse {
    position     : absolute;
    inset        : -4px;
    border-radius: 50px;
    border       : 3px solid rgba(15,76,129,.5);
    animation    : vcbBfPulse 2s ease-out infinite;
    pointer-events: none;
}

@keyframes vcbBfPulse {
    0%   { opacity: 1; transform: scale(1); }
    70%  { opacity: 0; transform: scale(1.2); }
    100% { opacity: 0; transform: scale(1.2); }
}

/* ── Responsivo ─────────────────────────────────────────────────────────── */

@media (max-width: 640px) {

    .vcb-step {
        padding: 24px 18px 20px;
    }

    .vcb-step-header h2 { font-size: 1.3rem; }
    .vcb-step-icon      { font-size: 36px; }

    .vcb-cards-grid {
        grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));
        gap: 10px;
    }

    .vcb-cards-grid--2 {
        grid-template-columns: 1fr 1fr;
        max-width: 100%;
    }

    .vcb-card      { min-height: 90px; padding: 14px 10px 12px; }
    .vcb-card-icon { font-size: 24px; }

    .vcb-card--large { min-height: 120px; }

    .vcb-card--day {
        min-height: 70px;
        padding   : 10px 6px;
    }

    .vcb-progress-steps {
        padding: 12px 10px 10px;
    }

    .vcb-step-label { display: none; } /* Oculta texto nos dots em mobile */

    .vcb-nav {
        flex-direction: column-reverse;
        gap: 10px;
    }

    .vcb-btn-primary,
    .vcb-btn-secondary {
        width    : 100%;
        margin   : 0;
        justify-content: center;
    }

    .vcb-btn-enviar { font-size: 1rem; padding: 16px 24px; }

    .vcb-desconto-badge {
        flex-wrap: wrap;
        gap      : 10px;
    }

    .vcb-resumo-row { flex-direction: column; gap: 2px; }
    .vcb-resumo-row dd { text-align: left; }

    .vcb-botao-flutuante {
        bottom    : 16px;
        right     : 16px;
        padding   : 12px 16px;
        font-size : 0.84rem;
    }
    .vcb-bf-icon { font-size: 18px; }
}

@media (max-width: 400px) {
    .vcb-cards-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* ── Acessibilidade: prefers-reduced-motion ─────────────────────────────── */

@media (prefers-reduced-motion: reduce) {
    .vcb-step,
    .vcb-card,
    .vcb-btn-primary,
    .vcb-btn-secondary,
    .vcb-btn-enviar,
    .vcb-botao-flutuante,
    .vcb-progress-bar-inner {
        transition : none;
        animation  : none;
    }
    .vcb-desconto-badge { animation: none; }
    .vcb-bf-pulse       { animation: none; display: none; }
}/* End custom CSS */