/**
 * WooCommerce no layout MetSul
 * Checkout em português e layout amigável (cards, espaçamento).
 *
 * @package MetSul
 */

/* ========== Container e página ========== */
.ms-main--woocommerce .woocommerce,
.ms-main--page .woocommerce {
    padding: 24px 0 48px;
}

/* ========== Header do checkout ========== */
.ms-checkout__header {
    margin-bottom: 32px;
    padding-bottom: 24px;
    border-bottom: 2px solid var(--ms-border, #eee);
}

.ms-checkout__title {
    font-size: 1.75rem;
    font-weight: 800;
    color: var(--ms-blue-dark, #003377);
    margin: 0 0 8px;
    line-height: 1.2;
}

.ms-checkout__desc {
    font-size: 1rem;
    color: var(--ms-text-light, #666);
    margin: 0;
}

.ms-checkout__message {
    padding: 20px;
    background: #fff3cd;
    border-radius: 8px;
    color: #856404;
}

/* ========== Grid: duas colunas no desktop (dados à esquerda, resumo + pagamento à direita) ========== */
.ms-checkout,
.ms-checkout__form {
    display: block;
    margin: 0;
    width: 100%;
    max-width: 100%;
}

/* Quando o nosso template é usado (#customer_details tem .col-1 e .col-2): grid em uma única linha */
.woocommerce-checkout #customer_details:has(> .col-2),
.woocommerce-checkout #customer_details.ms-checkout__grid,
.ms-checkout #customer_details.ms-checkout__grid {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto;
    grid-auto-flow: row;
    gap: 24px;
    margin: 0;
    width: 100%;
    align-items: start;
    overflow: visible;
}

.woocommerce-checkout #customer_details .col-1,
.woocommerce-checkout #customer_details .col-2,
.ms-checkout #customer_details .col-1,
.ms-checkout #customer_details .col-2 {
    float: none !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0;
    min-width: 0;
    grid-column: auto;
}

/* Garantir que a segunda coluna fique na coluna 2 (evitar wrap) */
.woocommerce-checkout #customer_details .col-2,
.ms-checkout #customer_details .col-2 {
    grid-column: 2;
    grid-row: 1;
}

.woocommerce-checkout #customer_details .col-1,
.ms-checkout #customer_details .col-1 {
    grid-column: 1;
    grid-row: 1;
}

/* Manter resumo e pagamento dentro da segunda coluna (evitar clear que quebra o grid) */
#order_review_wrap,
#customer_details #order_review_wrap,
#customer_details #order_review {
    display: block !important;
    width: 100%;
    clear: none !important;
}

/* Estratégia 2: quando o resumo/pagamento estão fora do grid (template padrão ou Divi),
   ou seja, quando #order_review é filho direto do form. Colocar #customer_details na 1.ª coluna
   e #order_review_heading + #order_review na 2.ª coluna */
.woocommerce-checkout form.woocommerce-checkout:has(> #order_review) {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
    align-items: start;
}

.woocommerce-checkout form.woocommerce-checkout:has(> #order_review) #customer_details {
    grid-column: 1;
    float: none !important;
    width: 100% !important;
}

.woocommerce-checkout form.woocommerce-checkout:has(> #order_review) #order_review_heading,
.woocommerce-checkout form.woocommerce-checkout:has(> #order_review) #order_review {
    grid-column: 2;
    float: none !important;
    width: 100% !important;
}

/* Abaixo de 1280px: uma coluna apenas */
@media (max-width: 1279px) {
    .woocommerce-checkout #customer_details:has(> .col-2),
    .woocommerce-checkout #customer_details.ms-checkout__grid,
    .ms-checkout #customer_details.ms-checkout__grid {
        grid-template-columns: 1fr;
    }

    .woocommerce-checkout #customer_details .col-1,
    .woocommerce-checkout #customer_details .col-2 {
        grid-column: 1;
        grid-row: auto;
    }

    .woocommerce-checkout form.woocommerce-checkout {
        grid-template-columns: 1fr !important;
    }

    .woocommerce-checkout form.woocommerce-checkout:has(> #order_review) #customer_details,
    .woocommerce-checkout form.woocommerce-checkout:has(> #order_review) #order_review_heading,
    .woocommerce-checkout form.woocommerce-checkout:has(> #order_review) #order_review {
        grid-column: 1;
    }
}

/* Mobile (telas pequenas): manter uma coluna */
@media (max-width: 767px) {
    .woocommerce-checkout #customer_details:has(> .col-2),
    .woocommerce-checkout #customer_details.ms-checkout__grid,
    .ms-checkout #customer_details.ms-checkout__grid {
        grid-template-columns: 1fr;
    }

    .woocommerce-checkout #customer_details .col-1,
    .woocommerce-checkout #customer_details .col-2 {
        grid-column: 1;
        grid-row: auto;
    }
}

/* ========== Campos do Brazilian Market – responsividade sem alterar o plugin ========== */
/* Anular width fixo inline (ex.: 334px) – forçar 100% do container */
.woocommerce-checkout .ms-checkout__card [style*="width"],
.woocommerce-checkout #customer_details [style*="width"] {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}

/* Tipo de pessoa: forçar bloco e largura total para não sobrepor */
.woocommerce-checkout #billing_persontype_field {
    float: none !important;
    clear: both !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    display: block !important;
}

/* CPF, CNPJ e demais campos do plugin em bloco */
.woocommerce-checkout #billing_cpf_field,
.woocommerce-checkout #billing_cnpj_field,
.woocommerce-checkout #billing_rg_field,
.woocommerce-checkout #billing_ie_field,
.woocommerce-checkout .person-type-field {
    float: none !important;
    clear: both !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* Abaixo de 1280px: tipo de pessoa e form-rows sem ficar ao lado */
@media (max-width: 1279px) {
    .woocommerce-checkout #billing_persontype_field,
    .woocommerce-checkout #billing_persontype_field .input-radio,
    .woocommerce-checkout #billing_persontype_field label,
    .woocommerce-checkout .ms-checkout__card .form-row-first,
    .woocommerce-checkout .ms-checkout__card .form-row-last,
    .woocommerce-checkout #billing_cpf_field,
    .woocommerce-checkout #billing_cnpj_field,
    .woocommerce-checkout #billing_rg_field,
    .woocommerce-checkout #billing_ie_field,
    .woocommerce-checkout .person-type-field {
        float: none !important;
        clear: both !important;
        width: 100% !important;
        max-width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

}

/* ========== Cards (blocos) ========== */
.ms-checkout__card {
    background: #fff;
    border: 1px solid var(--ms-border, #eee);
    border-radius: 12px;
    padding: 24px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}

.ms-checkout__card-title,
.ms-checkout__section-title {
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--ms-blue-dark, #003377);
    margin: 0 0 20px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--ms-border, #eee);
}

.ms-checkout__section-title {
    margin-bottom: 16px;
    padding-bottom: 10px;
}

/* Card do pedido (resumo + pagamento) em largura total, abaixo do grid */
.ms-checkout__card--order {
    margin-top: 8px;
}

@media (min-width: 992px) {
    .ms-checkout__card--order {
        max-width: 100%;
    }
}

/* ========== Campos de formulário ========== */
.woocommerce form .form-row {
    margin-bottom: 18px;
}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select {
    width: 100%;
    padding: 12px 14px;
    border: 1px solid var(--ms-border, #eee);
    border-radius: 8px;
    font-family: var(--font-main);
    font-size: 1rem;
    transition: border-color 0.2s;
}

.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus {
    border-color: var(--ms-blue-nav, #0066BF);
    outline: none;
}

.woocommerce form .form-row label {
    display: block;
    margin-bottom: 6px;
    font-weight: 600;
    color: var(--ms-text, #0066bf);
    font-size: 0.9375rem;
}

.woocommerce form .form-row .required {
    color: #c62828;
}

/* Checkbox "Criar conta" / "Enviar para outro endereço" */
.woocommerce form .form-row.checkbox label,
.woocommerce-form__label-for-checkbox {
    font-weight: 500;
    display: inline;
}

/* ========== Tabela do pedido ========== */
.ms-checkout__table,
.woocommerce-checkout-review-order-table {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 20px;
}

.ms-checkout__table thead th,
.woocommerce-checkout-review-order-table thead th {
    text-align: left;
    padding: 12px 0;
    font-size: 0.875rem;
    font-weight: 700;
    color: var(--ms-text-light, #666);
    border-bottom: 2px solid var(--ms-border, #eee);
}

.ms-checkout__table tbody td,
.woocommerce-checkout-review-order-table tbody td {
    padding: 12px 0;
    border-bottom: 1px solid var(--ms-border, #eee);
    vertical-align: top;
}

.ms-checkout__table tfoot th,
.ms-checkout__table tfoot td,
.woocommerce-checkout-review-order-table tfoot th,
.woocommerce-checkout-review-order-table tfoot td {
    padding: 10px 0;
    text-align: left;
}

.ms-checkout__table .order-total th,
.ms-checkout__table .order-total td,
.woocommerce-checkout-review-order-table .order-total th,
.woocommerce-checkout-review-order-table .order-total td {
    font-weight: 700;
    font-size: 1.125rem;
    color: var(--ms-blue-dark, #003377);
    padding-top: 16px;
    border-top: 2px solid var(--ms-border, #eee);
}

/* ========== Pagamento (métodos + botão) ========== */
.woocommerce-checkout-payment {
    margin-top: 24px;
    padding-top: 24px;
    border-top: 1px solid var(--ms-border, #eee);
}

.woocommerce-checkout-payment .wc_payment_methods {
    list-style: none;
    padding: 0;
    margin: 0 0 20px;
}

.woocommerce-checkout-payment .wc_payment_method {
    margin-bottom: 12px;
    padding: 14px 16px;
    background: #f8f9fa;
    border-radius: 8px;
}

.woocommerce-checkout-payment .payment_method_radio {
    margin-right: 10px;
}

.form-row.place-order {
    margin-top: 24px;
    margin-bottom: 0;
}

/* Botão Finalizar pedido */
#place_order,
.woocommerce button.button.alt,
.woocommerce input.button.alt {
    width: 100%;
    max-width: 320px;
    padding: 16px 28px;
    font-size: 1.0625rem;
    font-weight: 700;
    border-radius: 8px;
    cursor: pointer;
    font-family: var(--font-main);
    background: var(--ms-orange-cta, #FC7E00);
    color: #fff;
    border: none;
    transition: background 0.2s;
}

#place_order:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover {
    background: #e57200;
    color: #fff;
}

/* Outros botões (Pagar, Atualizar totais) */
.woocommerce #respond input#submit,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button {
    background: var(--ms-orange-cta, #FC7E00);
    color: #fff;
    border: none;
    padding: 14px 28px;
    font-size: 1rem;
    font-weight: 700;
    border-radius: 8px;
    cursor: pointer;
    font-family: var(--font-main);
}

.woocommerce #respond input#submit:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover {
    background: #e57200;
    color: #fff;
}

/* ========== Página "Pedido recebido" ========== */
.ms-checkout-thankyou__message {
    font-size: 1.125rem;
    padding: 20px 24px;
    background: #e8f5e9;
    border-radius: 12px;
    border-left: 4px solid #4caf50;
    margin-bottom: 24px;
}

.ms-checkout-thankyou__details {
    list-style: none;
    padding: 0;
    margin: 0;
    background: #fff;
    border: 1px solid var(--ms-border, #eee);
    border-radius: 12px;
    overflow: hidden;
}

.ms-checkout-thankyou__details li {
    padding: 14px 20px;
    border-bottom: 1px solid var(--ms-border, #eee);
}

.ms-checkout-thankyou__details li:last-child {
    border-bottom: none;
}

.woocommerce-order-received .woocommerce-order {
    max-width: 640px;
    margin: 0 auto;
}

/* ========== Avisos / notices ========== */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
    padding: 14px 18px;
    margin-bottom: 16px;
    border-radius: 8px;
    list-style: none;
}

.woocommerce-message {
    background: #e8f5e9;
    border-left: 4px solid #4caf50;
}

.woocommerce-info {
    background: #e3f2fd;
    border-left: 4px solid var(--ms-blue-nav, #0066BF);
}

/* ========== Área "Já é cliente? Clique aqui para entrar" ========== */
/* Estilizando tanto o template customizado quanto o padrão do WooCommerce */
.woocommerce-checkout .woocommerce-info,
.woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info,
.woocommerce-checkout .ms-checkout-login-cta__card {
    margin: 0 0 32px 0 !important;
    padding: 20px 24px !important;
    background: #f8fbff !important;
    border: 1px solid rgba(0, 102, 191, 0.15) !important;
    border-left: 4px solid var(--ms-blue-nav, #0066BF) !important;
    border-radius: 12px !important;
    box-shadow: 0 2px 10px rgba(0, 51, 119, 0.05) !important;
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    color: var(--ms-blue-dark, #003377) !important;
    font-size: 0.95rem !important;
    font-weight: 600 !important;
    line-height: 1.4 !important;
    cursor: pointer !important;
}

/* Ícone para ambos os casos */
.woocommerce-checkout .woocommerce-info::before,
.woocommerce-checkout .ms-checkout-login-cta__icon {
    display: none !important;
}

.woocommerce-checkout .woocommerce-info::after,
.woocommerce-checkout .ms-checkout-login-cta__card::before {
    content: "";
    order: -1;
    width: 24px;
    height: 24px;
    background-color: var(--ms-blue-nav, #0066BF);
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2'%3E%3C/path%3E%3Ccircle cx='12' cy='7' r='4'%3E%3C/circle%3E%3C/svg%3E") no-repeat center;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2'%3E%3C/path%3E%3Ccircle cx='12' cy='7' r='4'%3E%3C/circle%3E%3C/svg%3E") no-repeat center;
    flex-shrink: 0;
}

/* Link para ambos os casos */
.woocommerce-checkout .woocommerce-info a.showlogin,
.woocommerce-checkout .ms-checkout-login-cta__link {
    color: var(--ms-blue-nav, #0066BF) !important;
    font-size: 0.9rem !important;
    font-weight: 600 !important;
    text-decoration: underline !important;
    text-underline-offset: 3px !important;
    margin-left: 4px !important;
    transition: color 0.2s !important;
}

.woocommerce-checkout .woocommerce-info a.showlogin:hover,
.woocommerce-checkout .ms-checkout-login-cta__link:hover {
    color: #004d94 !important;
}

.woocommerce-checkout .ms-checkout-login-cta__content {
    display: flex !important;
    flex-direction: column !important;
    gap: 2px !important;
}

.woocommerce-checkout .ms-checkout-login-cta__text {
    display: inline !important;
}

@media (max-width: 767px) {
    .woocommerce-checkout .woocommerce-info {
        flex-direction: column !important;
        align-items: flex-start !important;
        padding: 16px !important;
    }
}

/* Formulário de Login que expande */
form.login.woocommerce-form-login {
    background: #fff !important;
    border: 1px solid var(--ms-border, #eee) !important;
    border-radius: 12px !important;
    padding: 32px !important;
    margin: 16px 0 32px !important;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08) !important;
}

form.login.woocommerce-form-login .form-row {
    margin-bottom: 20px;
}

form.login.woocommerce-form-login .button {
    width: 100%;
    padding: 14px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-top: 10px;
}

form.login.woocommerce-form-login .woocommerce-form-login__rememberme {
    display: block;
    margin: 10px 0;
}

form.login.woocommerce-form-login .lost_password {
    margin-top: 15px;
    text-align: center;
    font-size: 0.9rem;
}

/* Estilos de erro mantidos */
.woocommerce-error {
    background: #ffebee;
    border-left: 4px solid #c62828;
}

.woocommerce-error li {
    list-style: none;
    margin: 0;
}

/* Se a página de checkout foi construída com Divi, ocultar o módulo "Informações adicionais" */
body.woocommerce-checkout .et_pb_wc_checkout_additional_info,
body.page .et_pb_wc_checkout_additional_info {
    display: none !important;
}
