/* Contenedor general y reseteo de herencia para el modal */
.cpt-descarga-wrapper *,
.cpt-modal-overlay * {
    box-sizing: border-box;
    text-transform: none !important; /* Elimina cualquier mayúscula forzada por el tema */
    letter-spacing: normal !important;
}

/* Botón que abre el modal */
.cpt-open-modal-btn {
    background-color: #ff6b35; /* Color por defecto o ajústalo a tu marca */
    color: #fff !important;
    border: none !important;
    padding: 12px 24px !important;
    font-size: 15px !important;
    font-family: inherit !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    border-radius: 4px !important;
    display: inline-block !important;
    text-align: center !important;
    text-decoration: none !important;
    box-shadow: none !important;
    transition: background 0.3s ease !important;
}
.cpt-open-modal-btn:hover {
    opacity: 0.9;
}

/* Overlay fijo sin hacer scroll */
.cpt-modal-overlay {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.65);
    z-index: 999999;
    justify-content: center;
    align-items: center;
    padding: 20px;
}

/* Caja del Modal (Aislada de estilos globales) */
.cpt-modal-content {
    background: #ffffff !important;
    padding: 35px 30px !important;
    width: 100% !important;
    max-width: 500px !important;
    border-radius: 8px !important;
    position: relative !important;
    box-shadow: 0 10px 25px rgba(0,0,0,0.3) !important;
    max-height: 90vh;
    overflow-y: auto;
    text-align: left !important;
}

/* Título dentro del modal */
.cpt-modal-content h3 {
    font-size: 20px !important;
    font-weight: 700 !important;
    color: #1a1a1a !important;
    margin-top: 0 !important;
    margin-bottom: 20px !important;
    line-height: 1.4 !important;
    text-transform: none !important;
    padding-right: 32px;
}

/* Botón de cierre (X) */
.cpt-close-modal {
    position: absolute !important;
    top: 15px !important;
    right: 15px !important;
    background: #ff6b35 !important;
    color: #fff !important;
    border: none !important;
    width: 35px !important;
    height: 35px !important;
    font-size: 35px !important;
    line-height: 41px !important;
    text-align: center !important;
    cursor: pointer !important;
    border-radius: 50% !important;
    padding: 0 !important;
    box-shadow: none !important;
}
.cpt-close-modal:hover {
    background: #e05a2b !important;
}

/* Grupos del Formulario */
.cpt-form-group {
    margin-bottom: 15px !important;
    display: flex !important;
    flex-direction: column !important;
}

.cpt-form-group label {
    font-size: 13px !important;
    font-weight: 600 !important;
    color: #444 !important;
    margin-bottom: 6px !important;
    text-transform: none !important;
}

/* Campos de Texto, Email, Teléfono */
.cpt-form-group input[type="text"],
.cpt-form-group input[type="email"],
.cpt-form-group input[type="tel"] {
    background: #fdfdfd !important;
    color: #333 !important;
    border: 1px solid #ccd0d5 !important;
    padding: 10px 12px !important;
    font-size: 15px !important;
    font-family: inherit !important;
    border-radius: 4px !important;
    width: 100% !important;
    box-shadow: inset 0 1px 2px rgba(0,0,0,0.05) !important;
    outline: none !important;
}
.cpt-form-group input[type="text"]:focus,
.cpt-form-group input[type="email"]:focus,
.cpt-form-group input[type="tel"]:focus {
    border-color: #ff6b35 !important;
    background: #fff !important;
}

/* Checkbox de políticas */
.cpt-checkbox-group {
    flex-direction: row !important;
    align-items: center !important;
    margin-top: 10px !important;
    margin-bottom: 20px !important;
}
.cpt-checkbox-group label {
    font-weight: normal !important;
    font-size: 13px !important;
    color: #555 !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    text-transform: none !important;
}
.cpt-checkbox-group input[type="checkbox"] {
    width: 16px !important;
    height: 16px !important;
    accent-color: #ff6b35;
    margin: 0 !important;
}

/* Botón de envío del formulario */
.cpt-submit-btn {
    background-color: #ff6b35 !important;
    color: #fff !important;
    border: none !important;
    padding: 12px 20px !important;
    font-size: 15px !important;
    font-family: inherit !important;
    font-weight: 600 !important;
    width: 100% !important;
    border-radius: 4px !important;
    cursor: pointer !important;
    text-transform: none !important;
    box-shadow: none !important;
    transition: opacity 0.3s ease !important;
}
.cpt-submit-btn:hover {
    opacity: 0.9 !important;
}

/* Mensaje de éxito / error */
.cpt-form-msg {
    margin-top: 12px !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    text-align: center !important;
    text-transform: none !important;
}

/* Mensaje de éxito / error (Oculto por defecto si no tiene contenido) */
.cpt-form-msg:not(:empty) {
    margin-top: 12px !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    text-align: center !important;
    text-transform: none !important;
    padding: 10px !important;
    border-radius: 4px !important;
}
.cpt-form-msg:empty {
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    background: transparent !important;
}