/* ===== TODOMONTEVIDEO - FORMULARIOS Y BOTONES PROFESIONALES ===== */
/* Paleta de colores profesional y moderna */

:root {
    /* Colores principales */
    --primary-blue: #2563EB;
    --primary-blue-hover: #1D4ED8;
    --primary-blue-light: #DBEAFE;

    /* Colores de éxito */
    --success-green: #10B981;
    --success-green-hover: #059669;
    --success-green-light: #D1FAE5;

    /* Colores neutros */
    --neutral-50: #F8FAFC;
    --neutral-100: #F1F5F9;
    --neutral-200: #E2E8F0;
    --neutral-300: #CBD5E1;
    --neutral-400: #94A3B8;
    --neutral-500: #64748B;
    --neutral-600: #475569;
    --neutral-700: #334155;
    --neutral-800: #1E293B;
    --neutral-900: #0F172A;

    /* Colores de error */
    --error-red: #EF4444;
    --error-red-light: #FEE2E2;

    /* Colores de advertencia */
    --warning-yellow: #F59E0B;
    --warning-yellow-light: #FEF3C7;
}

/* ===== RESET Y BASE PARA FORMULARIOS ===== */
input, textarea, select, button, .wpcf7-form-control {
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif !important;
    box-sizing: border-box !important;
}

/* ===== INPUTS DE TEXTO ===== */
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="number"],
input[type="search"],
input[type="password"],
input[type="url"],
input[type="date"],
input[type="time"],
textarea,
select {
    background-color: #FFFFFF !important;
    color: var(--neutral-900) !important;
    border: 2px solid var(--neutral-300) !important;
    padding: 12px 16px !important;
    border-radius: 8px !important;
    font-size: 16px !important;
    line-height: 1.5 !important;
    width: 100% !important;
    opacity: 1 !important;
    -webkit-appearance: none !important;
    appearance: none !important;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05) !important;
    transition: all 0.2s ease !important;
}

/* ===== PLACEHOLDERS ===== */
::placeholder {
    color: var(--neutral-500) !important;
    opacity: 1 !important;
}

::-webkit-input-placeholder {
    color: var(--neutral-500) !important;
    opacity: 1 !important;
}

:-moz-placeholder {
    color: var(--neutral-500) !important;
    opacity: 1 !important;
}

::-moz-placeholder {
    color: var(--neutral-500) !important;
    opacity: 1 !important;
}

:-ms-input-placeholder {
    color: var(--neutral-500) !important;
    opacity: 1 !important;
}

/* ===== ESTADOS DE FOCUS ===== */
input:focus,
textarea:focus,
select:focus {
    outline: none !important;
    border-color: var(--primary-blue) !important;
    box-shadow: 0 0 0 3px var(--primary-blue-light), 0 1px 2px rgba(0, 0, 0, 0.05) !important;
    background-color: #FFFFFF !important;
    color: var(--neutral-900) !important;
}

/* ===== LABELS ===== */
label {
    color: var(--neutral-700) !important;
    font-weight: 600 !important;
    font-size: 14px !important;
    display: block !important;
    margin-bottom: 6px !important;
    letter-spacing: 0.025em !important;
}

/* ===== BOTONES PRIMARIOS (Enviar, Submit) ===== */
input[type="submit"],
button[type="submit"],
.wpcf7-submit,
.wp-block-button__link,
.btn-primary,
.btn-enviar,
button.submit {
    background: linear-gradient(135deg, var(--primary-blue) 0%, var(--primary-blue-hover) 100%) !important;
    color: #FFFFFF !important;
    font-weight: 600 !important;
    text-transform: none !important;
    letter-spacing: 0.025em !important;
    border: none !important;
    padding: 12px 24px !important;
    cursor: pointer !important;
    border-radius: 8px !important;
    font-size: 16px !important;
    transition: all 0.3s ease !important;
    box-shadow: 0 4px 6px rgba(37, 99, 235, 0.2), 0 1px 3px rgba(0, 0, 0, 0.1) !important;
    display: inline-block !important;
    text-align: center !important;
}

input[type="submit"]:hover,
button[type="submit"]:hover,
.wpcf7-submit:hover,
.wp-block-button__link:hover,
.btn-primary:hover,
.btn-enviar:hover,
button.submit:hover {
    background: linear-gradient(135deg, var(--primary-blue-hover) 0%, #1E40AF 100%) !important;
    box-shadow: 0 6px 12px rgba(37, 99, 235, 0.3), 0 2px 4px rgba(0, 0, 0, 0.1) !important;
    transform: translateY(-1px) !important;
}

input[type="submit"]:active,
button[type="submit"]:active,
.wpcf7-submit:active {
    transform: translateY(0) !important;
    box-shadow: 0 2px 4px rgba(37, 99, 235, 0.2) !important;
}

/* ===== BOTONES SECUNDARIOS ===== */
input[type="button"],
input[type="reset"],
button[type="button"],
.btn-secondary {
    background-color: var(--neutral-100) !important;
    color: var(--neutral-700) !important;
    font-weight: 600 !important;
    border: 2px solid var(--neutral-300) !important;
    padding: 12px 24px !important;
    cursor: pointer !important;
    border-radius: 8px !important;
    font-size: 16px !important;
    transition: all 0.3s ease !important;
}

input[type="button"]:hover,
input[type="reset"]:hover,
button[type="button"]:hover,
.btn-secondary:hover {
    background-color: var(--neutral-200) !important;
    border-color: var(--neutral-400) !important;
}

/* ===== BOTONES DE ÉXITO ===== */
.btn-success {
    background: linear-gradient(135deg, var(--success-green) 0%, var(--success-green-hover) 100%) !important;
    color: #FFFFFF !important;
    font-weight: 600 !important;
    border: none !important;
    padding: 12px 24px !important;
    cursor: pointer !important;
    border-radius: 8px !important;
    font-size: 16px !important;
    transition: all 0.3s ease !important;
    box-shadow: 0 4px 6px rgba(16, 185, 129, 0.2), 0 1px 3px rgba(0, 0, 0, 0.1) !important;
}

.btn-success:hover {
    background: linear-gradient(135deg, var(--success-green-hover) 0%, #047857 100%) !important;
    box-shadow: 0 6px 12px rgba(16, 185, 129, 0.3), 0 2px 4px rgba(0, 0, 0, 0.1) !important;
    transform: translateY(-1px) !important;
}

/* ===== ACORDEONES / FAQ ===== */
.faq-item,
.accordion-item,
.accordion-title,
.wp-block-details summary,
details summary {
    background-color: #FFFFFF !important;
    color: var(--neutral-800) !important;
    border: 2px solid var(--neutral-200) !important;
    padding: 16px 20px !important;
    border-radius: 8px !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    margin-bottom: 8px !important;
    transition: all 0.2s ease !important;
    position: relative !important;
}

.faq-item:hover,
.accordion-item:hover,
.accordion-title:hover,
details summary:hover {
    border-color: var(--primary-blue) !important;
    background-color: var(--primary-blue-light) !important;
    color: var(--primary-blue) !important;
}

/* Icono de acordeón */
.faq-item::after,
.accordion-title::after,
details summary::after {
    content: '+' !important;
    position: absolute !important;
    right: 20px !important;
    font-size: 24px !important;
    font-weight: 300 !important;
    color: var(--primary-blue) !important;
}

.faq-item.active::after,
.accordion-title.active::after,
details[open] summary::after {
    content: '−' !important;
}

/* ===== CONTENIDO DE ACORDEONES ===== */
.faq-content,
.accordion-content,
details {
    color: var(--neutral-700) !important;
    line-height: 1.6 !important;
    padding: 16px 20px !important;
    background-color: var(--neutral-50) !important;
    border-radius: 0 0 8px 8px !important;
}

/* ===== CONTACT FORM 7 ===== */
.wpcf7-form {
    color: var(--neutral-900) !important;
}

.wpcf7-form-control-wrap {
    display: block !important;
    margin-bottom: 16px !important;
}

.wpcf7-form-control {
    background-color: #FFFFFF !important;
    color: var(--neutral-900) !important;
    border: 2px solid var(--neutral-300) !important;
}

/* ===== MENSAJES DE VALIDACIÓN ===== */
.wpcf7-not-valid {
    border-color: var(--error-red) !important;
    background-color: var(--error-red-light) !important;
}

.wpcf7-not-valid-tip {
    color: var(--error-red) !important;
    font-weight: 600 !important;
    font-size: 14px !important;
    margin-top: 4px !important;
}

.wpcf7-response-output {
    border-radius: 8px !important;
    padding: 12px 16px !important;
    margin: 16px 0 !important;
    font-weight: 600 !important;
}

.wpcf7-mail-sent-ok {
    background-color: var(--success-green-light) !important;
    color: var(--success-green-hover) !important;
    border: 2px solid var(--success-green) !important;
}

.wpcf7-validation-errors {
    background-color: var(--error-red-light) !important;
    color: var(--error-red) !important;
    border: 2px solid var(--error-red) !important;
}

/* ===== CHECKBOXES Y RADIO BUTTONS ===== */
input[type="checkbox"],
input[type="radio"] {
    width: 18px !important;
    height: 18px !important;
    margin-right: 8px !important;
    cursor: pointer !important;
    accent-color: var(--primary-blue) !important;
}

/* ===== SELECT DROPDOWN ===== */
select {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23334155' d='M6 9L1 4h10z'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: right 12px center !important;
    padding-right: 40px !important;
}

/* ===== FORMULARIOS EN SIDEBAR / WIDGET ===== */
.widget_contact_form,
.sidebar-form,
aside form,
.widget form {
    background: linear-gradient(135deg, var(--neutral-800) 0%, var(--neutral-900) 100%) !important;
    padding: 24px !important;
    border-radius: 12px !important;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1) !important;
}

.widget_contact_form label,
.sidebar-form label,
aside form label,
.widget form label {
    color: #FFFFFF !important;
    font-weight: 600 !important;
    margin-bottom: 8px !important;
    display: block !important;
}

.widget_contact_form input,
.widget_contact_form textarea,
.widget_contact_form select,
.sidebar-form input,
.sidebar-form textarea,
.sidebar-form select,
aside form input,
aside form textarea,
aside form select,
.widget form input,
.widget form textarea,
.widget form select {
    background-color: var(--neutral-700) !important;
    color: #FFFFFF !important;
    border: 2px solid var(--neutral-600) !important;
    padding: 12px 16px !important;
}

.widget_contact_form input::placeholder,
.sidebar-form input::placeholder,
aside form input::placeholder,
.widget form input::placeholder {
    color: var(--neutral-400) !important;
}

.widget_contact_form input:focus,
.sidebar-form input:focus,
aside form input:focus,
.widget form input:focus {
    border-color: var(--primary-blue) !important;
    background-color: var(--neutral-600) !important;
    color: #FFFFFF !important;
}

/* ===== ESTADOS DISABLED ===== */
input:disabled,
textarea:disabled,
select:disabled,
button:disabled {
    opacity: 0.5 !important;
    cursor: not-allowed !important;
    background-color: var(--neutral-100) !important;
}

/* ===== RESPONSIVE ===== */
@media (max-width: 768px) {
    input[type="text"],
    input[type="email"],
    input[type="tel"],
    textarea,
    select {
        font-size: 16px !important; /* Evita zoom en iOS */
    }

    input[type="submit"],
    button[type="submit"],
    .wpcf7-submit {
        width: 100% !important;
        padding: 14px 24px !important;
    }
}

/* ===== DARK MODE ===== */
@media (prefers-color-scheme: dark) {
    input[type="text"],
    input[type="email"],
    input[type="tel"],
    input[type="number"],
    textarea,
    select {
        background-color: var(--neutral-800) !important;
        color: #FFFFFF !important;
        border-color: var(--neutral-600) !important;
    }

    ::placeholder {
        color: var(--neutral-400) !important;
    }

    label {
        color: var(--neutral-200) !important;
    }

    .faq-item,
    .accordion-item,
    .accordion-title {
        background-color: var(--neutral-800) !important;
        color: #FFFFFF !important;
        border-color: var(--neutral-600) !important;
    }
}

/* ===== ANIMACIONES ===== */
@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(-10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.wpcf7-response-output {
    animation: fadeIn 0.3s ease !important;
}


/* ===== CORRECCIONES ESPECÍFICAS TODOMONTEVIDEO ===== */

/* ===== CORRECCIÓN ULTRA AGRESIVA - TODOMONTEVIDEO ===== */
/* Forzar visibilidad TOTAL en todos los campos */

/* RESETEAR TODO - Máxima prioridad */
* input[type="text"],
* input[type="email"],
* input[type="password"],
* input[type="tel"],
* input[type="number"],
* input[type="search"],
* input[type="url"],
* textarea,
* select,
input,
textarea {
    background-color: #FFFFFF !important;
    background: #FFFFFF !important;
    color: #000000 !important;
    border: 2px solid #94A3B8 !important;
    padding: 12px 16px !important;
    border-radius: 8px !important;
    font-size: 16px !important;
    opacity: 1 !important;
    -webkit-text-fill-color: #000000 !important;
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    appearance: none !important;
    box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1) !important;
}

/* PLACEHOLDERS - Negro/Gris oscuro */
*::placeholder,
*::-webkit-input-placeholder,
*:-moz-placeholder,
*::-moz-placeholder,
*:-ms-input-placeholder {
    color: #475569 !important;
    opacity: 1 !important;
    -webkit-text-fill-color: #475569 !important;
}

/* FOCUS - Borde azul fuerte */
input:focus,
textarea:focus,
select:focus {
    background-color: #FFFFFF !important;
    background: #FFFFFF !important;
    color: #000000 !important;
    border-color: #2563EB !important;
    outline: 2px solid #2563EB !important;
    outline-offset: 0px !important;
    box-shadow: 0 0 0 4px rgba(37, 99, 235, 0.2), inset 0 1px 3px rgba(0, 0, 0, 0.1) !important;
    -webkit-text-fill-color: #000000 !important;
}

/* LABELS - Texto oscuro SIEMPRE */
label,
.elementor-field-label,
.wpforms-field-label,
.gfield_label {
    color: #1E293B !important;
    font-weight: 600 !important;
    font-size: 14px !important;
    margin-bottom: 8px !important;
    display: block !important;
    text-shadow: none !important;
}

/* ELEMENTOR ESPECÍFICO */
.elementor-field-textual,
.elementor-field-type-text input,
.elementor-field-type-email input,
.elementor-field-type-tel input,
.elementor-field-type-number input,
.elementor-field-type-textarea textarea,
.elementor-field-type-select select,
.elementor-field input,
.elementor-field textarea,
.elementor-field select {
    background-color: #FFFFFF !important;
    background: #FFFFFF !important;
    color: #000000 !important;
    border: 2px solid #94A3B8 !important;
    -webkit-text-fill-color: #000000 !important;
}

/* WPFORMS ESPECÍFICO */
.wpforms-field input,
.wpforms-field textarea,
.wpforms-field select {
    background-color: #FFFFFF !important;
    background: #FFFFFF !important;
    color: #000000 !important;
    border: 2px solid #94A3B8 !important;
    -webkit-text-fill-color: #000000 !important;
}

/* GRAVITY FORMS ESPECÍFICO */
.gfield input,
.gfield textarea,
.gfield select {
    background-color: #FFFFFF !important;
    background: #FFFFFF !important;
    color: #000000 !important;
    border: 2px solid #94A3B8 !important;
    -webkit-text-fill-color: #000000 !important;
}

/* CONTACT FORM 7 ESPECÍFICO */
.wpcf7-form-control,
.wpcf7-text,
.wpcf7-email,
.wpcf7-tel,
.wpcf7-number,
.wpcf7-textarea {
    background-color: #FFFFFF !important;
    background: #FFFFFF !important;
    color: #000000 !important;
    border: 2px solid #94A3B8 !important;
    -webkit-text-fill-color: #000000 !important;
}

/* AUTOFILL - Forzar fondo blanco */
input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
input:-webkit-autofill:active,
textarea:-webkit-autofill,
textarea:-webkit-autofill:hover,
textarea:-webkit-autofill:focus,
select:-webkit-autofill,
select:-webkit-autofill:hover,
select:-webkit-autofill:focus {
    -webkit-box-shadow: 0 0 0 1000px white inset !important;
    -webkit-text-fill-color: #000000 !important;
    background-color: #FFFFFF !important;
    background: #FFFFFF !important;
    color: #000000 !important;
    border: 2px solid #94A3B8 !important;
}

/* BOTONES - Mantener estilo rojo/rosa */
button[type="submit"],
input[type="submit"],
.elementor-button,
.wpforms-submit,
.gform_button,
.wpcf7-submit,
button.submit {
    background: linear-gradient(135deg, #DC2626 0%, #B91C1C 100%) !important;
    color: #FFFFFF !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    border: none !important;
    padding: 14px 32px !important;
    cursor: pointer !important;
    border-radius: 12px !important;
    font-size: 16px !important;
    box-shadow: 0 4px 12px rgba(220, 38, 38, 0.3) !important;
    transition: all 0.3s ease !important;
}

button[type="submit"]:hover,
input[type="submit"]:hover,
.elementor-button:hover {
    background: linear-gradient(135deg, #B91C1C 0%, #991B1B 100%) !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 6px 16px rgba(220, 38, 38, 0.4) !important;
}

/* BOTÓN "VER EN MAPA" - Estilo secundario */
button:not([type="submit"]),
.elementor-button:not([type="submit"]) {
    background: #F1F5F9 !important;
    color: #334155 !important;
    border: 2px solid #CBD5E1 !important;
}

button:not([type="submit"]):hover {
    background: #E2E8F0 !important;
    border-color: #94A3B8 !important;
}

/* SELECT - Flecha visible */
select {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23000000' d='M6 9L1 4h10z'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: right 12px center !important;
    padding-right: 40px !important;
}

/* DISABLED - Visible pero atenuado */
input:disabled,
textarea:disabled,
select:disabled {
    background-color: #F1F5F9 !important;
    color: #64748B !important;
    opacity: 0.7 !important;
    cursor: not-allowed !important;
}

/* CHECKBOX Y RADIO */
input[type="checkbox"],
input[type="radio"] {
    width: 18px !important;
    height: 18px !important;
    margin-right: 8px !important;
    cursor: pointer !important;
    accent-color: #2563EB !important;
    background-color: #FFFFFF !important;
    border: 2px solid #94A3B8 !important;
}

/* MENSAJES DE ERROR */
.elementor-message-danger,
.wpforms-error,
.gfield_error,
.wpcf7-not-valid-tip,
.error {
    background-color: #FEE2E2 !important;
    color: #DC2626 !important;
    border: 2px solid #DC2626 !important;
    padding: 12px !important;
    border-radius: 8px !important;
    font-weight: 600 !important;
}

/* MENSAJES DE ÉXITO */
.elementor-message-success,
.wpforms-confirmation-container,
.gform_confirmation_message,
.wpcf7-mail-sent-ok,
.success {
    background-color: #D1FAE5 !important;
    color: #059669 !important;
    border: 2px solid #10B981 !important;
    padding: 12px !important;
    border-radius: 8px !important;
    font-weight: 600 !important;
}

/* RESPONSIVE */
@media (max-width: 768px) {
    input,
    textarea,
    select {
        font-size: 16px !important; /* Evita zoom en iOS */
    }

    button[type="submit"],
    input[type="submit"] {
        width: 100% !important;
        padding: 16px 24px !important;
    }
}

/* FORZAR EN TODOS LOS CONTENEDORES */
.elementor-widget-container input,
.elementor-widget-container textarea,
.elementor-widget-container select,
.wpforms-container input,
.wpforms-container textarea,
.wpforms-container select,
.gform_wrapper input,
.gform_wrapper textarea,
.gform_wrapper select,
form input,
form textarea,
form select {
    background-color: #FFFFFF !important;
    background: #FFFFFF !important;
    color: #000000 !important;
    -webkit-text-fill-color: #000000 !important;
}

/* ASEGURAR CONTRASTE MÁXIMO */
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="number"],
input[type="search"],
input[type="password"],
input[type="url"],
textarea {
    font-weight: 400 !important;
    text-shadow: none !important;
    letter-spacing: 0.025em !important;
}

/* TÍTULOS DE SECCIONES */
.elementor-heading-title,
h2, h3, h4 {
    color: #1E293B !important;
}

/* ICONOS */
.elementor-icon {
    color: #DC2626 !important;
}
