/**
 * PMPro Checkout Form - Estilos Profesionales Compactos
 */

/* Campos del formulario */
.pmpro .pmpro_form_field,
.pmpro_form_field
{
    margin-bottom: 1rem !important;
}

/* Labels */
.pmpro .pmpro_form_label,
.pmpro_form_label
{
    font-size: 0.875rem !important;
    font-weight: 500 !important;
    margin-bottom: 0.5rem !important;
    color: #374151 !important;
    display: block !important;
}

/* Inputs - Compactos, ancho máximo 280px */
.pmpro input.pmpro_form_input-text,
.pmpro input.pmpro_form_input-email,
.pmpro input.pmpro_form_input-password,
.pmpro select.pmpro_form_input-select,
.pmpro_form input[type="text"],
.pmpro_form input[type="email"],
.pmpro_form input[type="password"],
.pmpro_form select,
input.pmpro_form_input-text,
input.pmpro_form_input-email,
input.pmpro_form_input-password,
select.pmpro_form_input-select
{
    padding: 0.5rem 0.75rem !important;
    font-size: 0.9375rem !important;
    line-height: 1.5 !important;
    border: 1px solid #d1d5db !important;
    border-radius: 0.375rem !important;
    transition: all 0.15s ease-in-out !important;
    width: 100% !important;
    max-width: 280px !important;
    box-sizing: border-box !important;
    background-color: #fff !important;
    color: #111827 !important;
}

.pmpro input.pmpro_form_input-text:focus,
.pmpro input.pmpro_form_input-email:focus,
.pmpro input.pmpro_form_input-password:focus,
.pmpro select.pmpro_form_input-select:focus,
.pmpro_form input[type="text"]:focus,
.pmpro_form input[type="email"]:focus,
.pmpro_form input[type="password"]:focus,
.pmpro_form select:focus
{
    outline: none !important;
    border-color: #3b82f6 !important;
    box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1) !important;
}

/* Campos en columnas - Ocupan el 100% de su columna */
.pmpro_cols-2
{
    display: flex;
    gap: 1rem !important;
}

.pmpro_cols-2 input.pmpro_form_input-text,
.pmpro_cols-2 input.pmpro_form_input-email,
.pmpro_cols-2 input.pmpro_form_input-password,
.pmpro_cols-2 select.pmpro_form_input-select,
.pmpro_cols-2 input[type="text"],
.pmpro_cols-2 input[type="email"],
.pmpro_cols-2 input[type="password"],
.pmpro_cols-2 select
{
    max-width: 100% !important;
}

/* Campos que necesitan más ancho */
.pmpro_form_field-baddress1 input,
.pmpro_form_field-baddress2 input,
.pmpro_form_field-bcountry select,
.pmpro_payment-account-number input,
.pmpro_form_field-username input
{
    max-width: 400px !important;
}

/* Selects */
select.pmpro_form_input-select,
.pmpro_form select
{
    padding-right: 2.5rem !important;
    background-position: right 0.75rem center !important;
    cursor: pointer !important;
}

/* Cards */
.pmpro_card
{
    border: 1px solid #e5e7eb !important;
    border-radius: 0.5rem !important;
    margin-bottom: 1.5rem !important;
    background: #fff !important;
    box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1) !important;
}

.pmpro_card_content
{
    padding: 1.5rem !important;
}

.pmpro_card_title,
.pmpro_form_heading
{
    font-size: 1.125rem !important;
    font-weight: 600 !important;
    margin-bottom: 1rem !important;
    color: #111827 !important;
}

/* Botones */
.pmpro_btn-submit-checkout
{
    width: 100% !important;
    padding: 0.75rem 1.5rem !important;
    font-size: 1rem !important;
    font-weight: 600 !important;
    border-radius: 0.375rem !important;
    background-color: #3b82f6 !important;
    color: #fff !important;
    border: none !important;
    cursor: pointer !important;
    transition: all 0.15s ease-in-out !important;
}

.pmpro_btn-submit-checkout:hover
{
    background-color: #2563eb !important;
    transform: translateY(-1px) !important;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1) !important;
}

/* Mensajes */
.pmpro_message
{
    padding: 0.875rem 1rem !important;
    margin-bottom: 1rem !important;
    border-radius: 0.375rem !important;
    font-size: 0.875rem !important;
}

/* Campos inline */
.pmpro_form_fields-inline
{
    display: flex !important;
    gap: 0.5rem !important;
    align-items: flex-start !important;
}

.pmpro_form_fields-inline .pmpro_form_input,
.pmpro_form_fields-inline input
{
    flex: 1 !important;
    max-width: none !important;
}

.pmpro_form_fields-inline .pmpro_btn
{
    flex-shrink: 0 !important;
    white-space: nowrap !important;
}

/* Responsive */
@media (max-width: 640px)
{
    .pmpro input.pmpro_form_input-text,
    .pmpro input.pmpro_form_input-email,
    .pmpro input.pmpro_form_input-password,
    .pmpro select.pmpro_form_input-select,
    .pmpro_form input[type="text"],
    .pmpro_form input[type="email"],
    .pmpro_form input[type="password"],
    .pmpro_form select
    {
        max-width: 100% !important;
    }

    .pmpro_cols-2
    {
        grid-template-columns: 1fr !important;
        gap: 0 !important;
    }

    .pmpro_card_content
    {
        padding: 1rem !important;
    }

    .pmpro_form_fields-inline
    {
        flex-direction: column !important;
    }

    .pmpro_form_fields-inline .pmpro_btn
    {
        width: 100% !important;
    }
}
