/* ==========================================================================
   CHECKOUT SIMPLIFICADO WOOCOMMERCE — CSS PRINCIPAL
   Versão 2.0 — Layout 3 colunas sempre visíveis, compacto, centralizado
   ========================================================================== */

/* Google Fonts Inter */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');

/* ─── Tipografia Global ──────────────────────────────────────────────────── */
.csw-checkout-wrapper *,
.csw-secure-header * {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif !important;
    box-sizing: border-box;
}

/* ─── Variáveis CSS (sobrescritas via JS inline style de class-assets.php) ── */
:root {
    --csw-primary:       #C0392B;
    --csw-primary-dark:  #A93226;
    --csw-bg:            #F0F2F5;
    --csw-card-bg:       #FFFFFF;
    --csw-border:        #E0E0E0;
    --csw-text:          #222222;
    --csw-text-muted:    #6B7280;
    --csw-success:       #16A34A;
    --csw-error:         #DC2626;
    --csw-radius:        6px;
    --csw-header-bg:     #C0392B;
}

/* ─── Cabeçalho Seguro ───────────────────────────────────────────────────── */
.csw-secure-header {
    max-width: 1100px;
    margin: 24px auto 0 auto !important;
    background-color: var(--csw-header-bg-color, var(--csw-header-bg));
    padding: 10px 20px;
    border-radius: var(--csw-border-radius, var(--csw-radius)) var(--csw-border-radius, var(--csw-radius)) 0 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.csw-header-container {
    max-width: 1100px;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 15px;
    flex-wrap: wrap;
}

.csw-logo-text {
    font-size: 18px;
    font-weight: 700;
    color: #FFF;
    letter-spacing: -0.3px;
}

.csw-header-logo img {
    max-height: 36px;
    width: auto;
}

.csw-header-badge {
    display: flex;
    align-items: center;
    gap: 6px;
    background: rgba(255,255,255,0.2);
    padding: 5px 12px;
    border-radius: 50px;
    font-size: 12.5px;
    font-weight: 500;
    color: #FFF;
}

.csw-shield-icon { stroke: #FFF; }

/* ─── Wrapper Principal ──────────────────────────────────────────────────── */
.csw-checkout-wrapper {
    max-width: 1100px;
    margin: 0 auto 40px auto !important;
    background-color: var(--csw-bg-color, var(--csw-bg));
    padding: 0 20px 24px 20px;   /* margem lateral em todos os lados */
    box-sizing: border-box;
}

/* ─── Grid 3 Colunas ─────────────────────────────────────────────────────── */
.csw-grid-container {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    padding: 16px 0 0 0;
    align-items: stretch;   /* todos os cards ficam com a mesma altura */
}

.csw-col {
    min-width: 0;
    width: 100%;
}

@media (max-width: 1024px) {
    .csw-grid-container { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
    .csw-col-right      { grid-column: 1 / -1; }
}

@media (max-width: 640px) {
    .csw-grid-container { grid-template-columns: minmax(0, 1fr) !important; }
}

/* ─── Cards ──────────────────────────────────────────────────────────────── */
.csw-card {
    background-color: var(--csw-card-bg-color, var(--csw-card-bg));
    border: 1px solid var(--csw-border-color, var(--csw-border));
    border-radius: var(--csw-border-radius, var(--csw-radius));
    padding: 18px 20px;
    position: relative;
    overflow: hidden;   /* impede qualquer elemento filho de vazar para fora do card */
    box-sizing: border-box;
    height: 100%;       /* preenche toda a altura da célula do grid */
    display: flex;
    flex-direction: column;
}

.csw-step-card { border-top: 3px solid var(--csw-primary-color, var(--csw-primary)); }
.csw-payment-card {
    height: auto;
    padding: 14px 16px;
    border-top: 3px solid var(--csw-primary-color, var(--csw-primary));
}

/* O corpo do card cresce para preencher o espaço restante do card */
.csw-step-card .csw-step-body,
.csw-step-card .csw-fields-grid,
.csw-payment-card .csw-payment-methods-box {
    flex: 1;
}

/* ─── Cabeçalho dos Cards ────────────────────────────────────────────────── */
.csw-step-header {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 14px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--csw-border-color, var(--csw-border));
}

.csw-step-number {
    width: 26px;
    height: 26px;
    background-color: var(--csw-primary-color, var(--csw-primary));
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    color: #FFF;
}

.csw-step-number svg { stroke: #FFF; }

.csw-step-title {
    font-size: 14px !important;
    font-weight: 700 !important;
    color: var(--csw-btn-bg-color, var(--csw-text)) !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1.3 !important;
    letter-spacing: 0 !important;
    text-transform: uppercase !important;
    font-size: 12px !important;
    color: var(--csw-text-muted) !important;
}

/* ─── Login Row ──────────────────────────────────────────────────────────── */
.csw-login-row {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 12px;
    font-size: 13px;
    color: var(--csw-text-muted);
}

.csw-btn-login {
    background-color: var(--csw-primary-color, var(--csw-primary));
    color: #FFF !important;
    padding: 5px 14px;
    border-radius: var(--csw-border-radius, var(--csw-radius));
    font-size: 13px;
    font-weight: 600;
    text-decoration: none !important;
    transition: filter 0.2s;
}

.csw-btn-login:hover { filter: brightness(1.1); }

/* ─── Campos de Formulário ───────────────────────────────────────────────── */
.csw-fields-grid {
    display: flex;
    flex-direction: column;
    gap: 0;
}

/* Reset completo dos form-rows do WooCommerce */
.csw-checkout-wrapper .form-row,
.csw-checkout-wrapper .form-row.form-row-first,
.csw-checkout-wrapper .form-row.form-row-last,
.csw-checkout-wrapper .form-row.form-row-wide {
    width: 100% !important;
    max-width: 100% !important;
    float: none !important;
    clear: both !important;
    padding: 0 !important;
    margin: 0 0 8px 0 !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
}

.csw-checkout-wrapper .form-row label {
    display: block !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    color: #555 !important;
    margin-bottom: 3px !important;
    text-transform: none !important;
}

.csw-checkout-wrapper .form-row .required { color: var(--csw-primary-color, var(--csw-primary)); }

.csw-checkout-wrapper .form-row .woocommerce-input-wrapper {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}

/* Inputs, Selects */
.csw-checkout-wrapper input[type="text"],
.csw-checkout-wrapper input[type="email"],
.csw-checkout-wrapper input[type="tel"],
.csw-checkout-wrapper input[type="number"],
.csw-checkout-wrapper input[type="password"],
.csw-checkout-wrapper select {
    width: 100% !important;
    height: 36px !important;
    padding: 6px 10px !important;
    border: 1px solid var(--csw-border-color, var(--csw-border)) !important;
    border-radius: var(--csw-border-radius, var(--csw-radius)) !important;
    background-color: #FAFAFA !important;
    font-size: 13.5px !important;
    color: var(--csw-btn-bg-color, var(--csw-text)) !important;
    transition: border-color 0.15s, box-shadow 0.15s !important;
    box-shadow: none !important;
    outline: none !important;
	box-sizing: border-box !important;
	font-family: inherit !important;
	line-height: 1.4 !important;
}

.csw-checkout-wrapper textarea {
    width: 100% !important;
    height: 80px !important;
    padding: 8px 10px !important;
    border: 1px solid var(--csw-border-color, var(--csw-border)) !important;
    border-radius: var(--csw-border-radius, var(--csw-radius)) !important;
    background-color: #FAFAFA !important;
    font-size: 13.5px !important;
    color: var(--csw-btn-bg-color, var(--csw-text)) !important;
    transition: border-color 0.15s, box-shadow 0.15s !important;
    box-shadow: none !important;
    outline: none !important;
	box-sizing: border-box !important;
	font-family: inherit !important;
	line-height: 1.4 !important;
    resize: vertical;
}

/* Mantém o select nativo e o Select2 do WooCommerce no mesmo padrão dos fields. */
.csw-checkout-wrapper select {
	min-height: 36px !important;
	padding: 6px 34px 6px 10px !important;
	border-color: var(--csw-border-color, var(--csw-border)) !important;
	background-color: #FAFAFA !important;
	color: var(--csw-btn-bg-color, var(--csw-text)) !important;
	font: inherit !important;
}

.csw-checkout-wrapper .select2-container {
	display: block !important;
	width: 100% !important;
	max-width: 100% !important;
}

.csw-checkout-wrapper .select2-container .select2-selection--single {
	height: 36px !important;
	min-height: 36px !important;
	border: 1px solid var(--csw-border-color, var(--csw-border)) !important;
	border-radius: var(--csw-border-radius, var(--csw-radius)) !important;
	background-color: #FAFAFA !important;
	box-shadow: none !important;
}

.csw-checkout-wrapper .select2-container .select2-selection--single .select2-selection__rendered {
	height: 34px !important;
	padding: 7px 34px 6px 10px !important;
	color: var(--csw-btn-bg-color, var(--csw-text)) !important;
	font-family: inherit !important;
	font-size: 13.5px !important;
	line-height: 20px !important;
}

.csw-checkout-wrapper .select2-container .select2-selection--single .select2-selection__arrow {
	height: 34px !important;
	right: 6px !important;
}

.csw-checkout-wrapper input:focus,
.csw-checkout-wrapper select:focus,
.csw-checkout-wrapper textarea:focus {
    background-color: #FFF !important;
    border-color: var(--csw-primary-color, var(--csw-primary)) !important;
    box-shadow: 0 0 0 2px rgba(192, 57, 43, 0.10) !important;
}

.csw-checkout-wrapper textarea {
    height: 70px !important;
    resize: vertical !important;
}

/* ─── Colunas Flex dentro dos campos ─────────────────────────────────────── */
.csw-row-flex {
    display: flex;
    gap: 8px;
    width: 100%;
    margin-bottom: 8px;
    /* NÃO usar overflow:hidden aqui — corta o foco/sombra dos inputs */
}

.csw-row-flex:last-child { margin-bottom: 0; }
.csw-fields-grid .csw-row-flex:last-child { margin-bottom: 0; }

.csw-col-half,
.csw-col-one-third,
.csw-col-two-thirds {
    min-width: 0;           /* impede que flex-item ignore limite do container */
    box-sizing: border-box;
	overflow: visible;
}

.csw-col-half       { flex: 1 1 0; }
.csw-col-one-third  { flex: 0 0 35%; max-width: 35%; }
.csw-col-two-thirds { flex: 1 1 0; }

/* form-rows dentro de colunas flex: sem margem, largura total */
.csw-col-half > .form-row,
.csw-col-one-third > .form-row,
.csw-col-two-thirds > .form-row {
    width: 100% !important;
    max-width: 100% !important;
	margin: 0 !important;
	overflow: visible !important;
}

/* Evita que o form-row do WooCommerce recorte a borda inferior do Select2. */
.csw-checkout-wrapper .csw-col-half > .form-row,
.csw-checkout-wrapper .csw-col-one-third > .form-row,
.csw-checkout-wrapper .csw-col-two-thirds > .form-row {
	min-height: 63px !important;
	overflow: visible !important;
}

/* Inputs e selects dentro de colunas flex: 100% da coluna sempre */
.csw-col-half .woocommerce-input-wrapper,
.csw-col-one-third .woocommerce-input-wrapper,
.csw-col-two-thirds .woocommerce-input-wrapper {
    width: 100% !important;
    max-width: 100% !important;
	overflow: visible !important;
    display: block !important;
    box-sizing: border-box !important;
}

.csw-col-half input,
.csw-col-half select,
.csw-col-one-third input,
.csw-col-one-third select,
.csw-col-two-thirds input,
.csw-col-two-thirds select {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}

/* ─── CEP + Botão Alterar Envio — alinhamento vertical correto ───────────── */
.csw-cep-row {
    display: flex;
    align-items: flex-end;  /* alinha base do botão com base do input */
    gap: 8px;
    margin-bottom: 10px;
}

.csw-checkout-wrapper .csw-cep-row .form-row {
    flex: 1;
    min-width: 0;
	margin: 0 !important;
	padding: 0 !important;
}

/* Garante que o input CEP e o botão ficam na mesma altura */
.csw-cep-row input[type="text"] {
    height: 36px !important;
    line-height: 36px !important;
}

.csw-btn-recalc-shipping {
    height: 36px !important;
    flex-shrink: 0;
    margin-bottom: 0 !important;
    align-self: flex-end;
}

.csw-btn-recalc-shipping {
    height: 36px !important;
	min-height: 36px !important;
    padding: 0 12px !important;
	margin: 0 !important;
    font-size: 12px !important;
	line-height: 1 !important;
    font-weight: 500 !important;
    background-color: #F5F5F5 !important;
    color: var(--csw-btn-bg-color, var(--csw-text)) !important;
    border: 1px solid var(--csw-border-color, var(--csw-border)) !important;
    border-radius: var(--csw-border-radius, var(--csw-radius)) !important;
    cursor: pointer !important;
    white-space: nowrap;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	align-self: flex-end !important;
    gap: 4px;
    flex-shrink: 0;
    transition: background-color 0.15s;
}

.csw-btn-recalc-shipping:hover { background-color: #E8E8E8 !important; }

.csw-shipping-section-title {
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    color: var(--csw-text-muted) !important;
    text-transform: uppercase !important;
    margin: 14px 0 8px 0 !important;
    letter-spacing: 0.5px !important;
    border-bottom: 1px solid var(--csw-border-color, var(--csw-border)) !important;
    padding-bottom: 5px !important;
}
.csw-shipping-title-icon {
    flex: 0 0 16px;
    width: 16px;
    height: 16px;
    color: var(--csw-primary-color, var(--csw-primary));
    stroke: currentColor;
}

/* ─── Métodos de Frete (Melhor Envio, Correios, Super Frete, etc.) ────────── */
.csw-shipping-methods-box {
    background: #F8FAFC;
    border: 1px solid var(--csw-border-color, var(--csw-border));
    border-radius: var(--csw-border-radius, var(--csw-radius));
    margin-bottom: 12px;
    overflow: hidden;
}

.csw-shipping-method-item {
    padding: 10px 14px;
    border-bottom: 1px solid var(--csw-border-color, var(--csw-border));
    cursor: pointer;
    transition: background-color 0.15s;
}

.csw-shipping-method-item:last-child { border-bottom: none; }
.csw-shipping-method-item:hover { background-color: #EFF2F7; }
.csw-shipping-method-item.csw-shipping-chosen { background-color: #E8EFF8; }

.csw-shipping-label {
    display: flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    width: 100%;
}

.csw-shipping-label input[type="radio"] {
    width: 15px !important;
    height: 15px !important;
    accent-color: var(--csw-primary-color, var(--csw-primary));
    flex-shrink: 0;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    box-shadow: none !important;
}

.csw-shipping-method-name {
    flex: 1;
    font-size: 13px;
    font-weight: 500;
    color: var(--csw-text);
}

.csw-shipping-method-price {
    font-size: 13px;
    font-weight: 700;
    color: var(--csw-primary-color, var(--csw-primary));
    white-space: nowrap;
}

.csw-shipping-method-desc {
    font-size: 11px;
    color: var(--csw-text-muted);
    margin: 3px 0 0 23px;
}

.csw-no-shipping, .csw-shipping-placeholder {
    padding: 12px 14px;
    font-size: 12.5px;
    color: var(--csw-text-muted);
    margin: 0;
    font-style: italic;
}

.csw-address-fields-section { margin-top: 4px; }

/* ─── Métodos de Pagamento (Mercado Pago, PayPal, etc.) ──────────────────── */
.csw-payment-methods-box {
    margin-bottom: 12px;
}

/* WooCommerce renderiza #payment natively */
.csw-checkout-wrapper #payment {
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

.csw-checkout-wrapper #payment ul.payment_methods {
    list-style: none !important;
    margin: 0 0 12px 0 !important;
    padding: 0 !important;
    border: 1px solid var(--csw-border-color, var(--csw-border)) !important;
    border-radius: var(--csw-border-radius, var(--csw-radius)) !important;
    overflow: hidden !important;
}

.csw-checkout-wrapper #payment ul.payment_methods li {
    border-bottom: 1px solid var(--csw-border-color, var(--csw-border)) !important;
    padding: 10px 14px !important;
    margin: 0 !important;
    background: #FFF !important;
    transition: background 0.15s !important;
}

.csw-checkout-wrapper #payment ul.payment_methods li:last-child {
    border-bottom: none !important;
}

.csw-checkout-wrapper #payment ul.payment_methods li.payment_method_selected,
.csw-checkout-wrapper #payment ul.payment_methods li:has(input:checked) {
    background: #F0F7FF !important;
}

.csw-checkout-wrapper #payment ul.payment_methods label {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    cursor: pointer !important;
    font-size: 13.5px !important;
    font-weight: 500 !important;
    color: var(--csw-text) !important;
    margin: 0 !important;
}

.csw-checkout-wrapper #payment ul.payment_methods input[type="radio"] {
    width: 15px !important;
    height: 15px !important;
    accent-color: var(--csw-primary-color, var(--csw-primary)) !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    box-shadow: none !important;
    flex-shrink: 0;
}

.csw-checkout-wrapper #payment ul.payment_methods img {
    max-height: 24px !important;
    width: auto !important;
    vertical-align: middle !important;
    margin-left: auto !important;
}

/* Descrição do método expandida */
.csw-checkout-wrapper #payment .payment_box {
    padding: 10px 14px !important;
    background: #F8FAFC !important;
    border-top: 1px solid var(--csw-border-color, var(--csw-border)) !important;
    font-size: 12.5px !important;
    color: var(--csw-text-muted) !important;
}

/* Botão Finalizar Compra */
.csw-checkout-wrapper .woocommerce-privacy-policy-text,
.csw-checkout-wrapper .woocommerce-privacy-policy-text p {
	font-family: inherit !important;
	font-size: 13.5px !important;
	font-weight: 400 !important;
	line-height: 1.5 !important;
	color: var(--csw-btn-bg-color, var(--csw-text)) !important;
}

.csw-checkout-wrapper .woocommerce-privacy-policy-text a,
.csw-checkout-wrapper .woocommerce-privacy-policy-link {
	font-family: inherit !important;
	font-size: inherit !important;
	font-weight: inherit !important;
	line-height: inherit !important;
	color: var(--csw-privacy-link-color, #E11D48) !important;
}

.csw-checkout-wrapper #payment #place_order,
.csw-checkout-wrapper #payment .button.alt {
    width: 100% !important;
    background-color: var(--csw-btn-bg-color, var(--csw-primary)) !important;
    color: var(--csw-btn-text-color, #FFF) !important;
    border: none !important;
    border-radius: var(--csw-border-radius, var(--csw-radius)) !important;
    padding: 13px 20px !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    cursor: pointer !important;
    transition: filter 0.2s, transform 0.1s !important;
    box-shadow: 0 3px 8px rgba(0,0,0,0.12) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    letter-spacing: 0.3px !important;
    text-transform: uppercase !important;
    margin-top: 12px !important;
}

.csw-checkout-wrapper #payment #place_order:hover { filter: brightness(1.08) !important; transform: translateY(-1px) !important; }
.csw-checkout-wrapper #payment #place_order:active { transform: translateY(0) !important; }

/* ─── Cupom de Desconto ───────────────────────────────────────────────────── */
.csw-coupon-section {
    border-top: 1px dashed var(--csw-border-color, var(--csw-border));
    padding-top: 10px;
    margin-top: 10px;
    margin-bottom: 10px;
}

.csw-btn-toggle-coupon {
    background: none !important;
    border: none !important;
    padding: 0 !important;
    box-shadow: none !important;
    color: var(--csw-primary-color, var(--csw-primary)) !important;
    font-size: 12.5px !important;
    font-weight: 500 !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    gap: 5px !important;
    text-decoration: underline !important;
    text-underline-offset: 2px !important;
    width: 100% !important;
    justify-content: flex-start !important;
}

.csw-chevron { transition: transform 0.2s; }
.csw-btn-toggle-coupon[aria-expanded="true"] .csw-chevron { transform: rotate(180deg); }

.csw-coupon-input-wrap {
    margin-top: 8px;
}

.csw-coupon-row {
    display: flex;
    gap: 8px;
    align-items: center;
}

.csw-coupon-input {
    flex: 1;
    height: 34px !important;
    padding: 5px 10px !important;
    font-size: 13px !important;
    border: 1px solid var(--csw-border-color, var(--csw-border)) !important;
    border-radius: var(--csw-border-radius, var(--csw-radius)) !important;
    background: #FAFAFA !important;
}

.csw-btn-coupon-apply {
    height: 34px !important;
    padding: 0 14px !important;
    font-size: 12.5px !important;
    font-weight: 600 !important;
    background: #F0F0F0 !important;
    color: var(--csw-text) !important;
    border: 1px solid var(--csw-border-color, var(--csw-border)) !important;
    border-radius: var(--csw-border-radius, var(--csw-radius)) !important;
    cursor: pointer !important;
    white-space: nowrap;
    transition: background 0.15s !important;
}

.csw-btn-coupon-apply:hover { background: #E0E0E0 !important; }

.csw-coupon-message {
    font-size: 12px;
    padding: 5px 8px;
    border-radius: 4px;
    margin-top: 5px;
}

.csw-coupon-message.success { color: var(--csw-success); background: rgba(22,163,74,0.08); }
.csw-coupon-message.error   { color: var(--csw-error); background: rgba(220,38,38,0.07); }

.csw-active-coupons {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 8px;
}

.csw-coupon-tag {
    background: #E2E8F0;
    color: #334155;
    padding: 3px 8px;
    border-radius: 3px;
    font-size: 11.5px;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

.csw-btn-remove-coupon {
    color: #EF4444;
    text-decoration: none;
    font-size: 14px;
    font-weight: bold;
    line-height: 1;
}

/* ─── Totais no Bloco de Pagamento ────────────────────────────────────────── */
.csw-payment-totals {
    border-top: 1px dashed var(--csw-border-color, var(--csw-border));
    padding-top: 10px;
    margin-top: 2px;
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.csw-total-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 13px;
    color: #4B5563;
}

.csw-discount-row { color: var(--csw-success); }
.csw-discount-value { font-weight: 700; color: var(--csw-success); }

.csw-total-divider {
    border: none;
    border-top: 1px dashed var(--csw-border-color, var(--csw-border));
    margin: 3px 0;
}

.csw-grand-total {
    font-size: 16px !important;
    font-weight: 700 !important;
    color: var(--csw-text) !important;
}

.csw-grand-total span:last-child {
    font-size: 17px;
    color: var(--csw-primary-color, var(--csw-primary));
    font-weight: 700;
}

/* ─── Order Bump ─────────────────────────────────────────────────────────── */
.csw-order-bump-card {
    border: 1px solid var(--csw-primary-color, var(--csw-primary));
    border-left: 4px solid var(--csw-primary-color, var(--csw-primary));
    background: #FFFEF5;
    border-radius: var(--csw-border-radius, var(--csw-radius));
    padding: 14px 16px;
    margin-bottom: 12px;
}

.csw-bump-checkbox-label {
    display: flex;
    align-items: center;
    cursor: pointer;
    font-weight: 600;
    font-size: 12.5px;
    color: var(--csw-text);
    gap: 8px;
}

.csw-bump-checkbox-label input[type="checkbox"] { display: none; }

.csw-bump-checkbox-custom {
    width: 16px;
    height: 16px;
    border: 2px solid var(--csw-border-color, var(--csw-border));
    border-radius: 3px;
    display: inline-block;
    position: relative;
    flex-shrink: 0;
    transition: all 0.2s;
}

.csw-bump-checkbox-label input[type="checkbox"]:checked + .csw-bump-checkbox-custom {
    background: var(--csw-primary-color, var(--csw-primary));
    border-color: var(--csw-primary-color, var(--csw-primary));
}

.csw-bump-checkbox-label input[type="checkbox"]:checked + .csw-bump-checkbox-custom::after {
    content: '';
    position: absolute;
    left: 4px; top: 1px;
    width: 4px; height: 8px;
    border: solid #FFF;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}

.csw-bump-content {
    display: flex;
    gap: 12px;
    align-items: center;
    margin-top: 10px;
}

.csw-bump-image {
    width: 52px; height: 52px;
    border-radius: 4px;
    border: 1px solid var(--csw-border);
    overflow: hidden;
    flex-shrink: 0;
}

.csw-bump-image img { width: 100%; height: 100%; object-fit: cover; }

.csw-bump-description {
    font-size: 11.5px;
    color: var(--csw-text);
    margin: 0 0 5px 0;
    line-height: 1.4;
}

.csw-bump-pricing { display: flex; align-items: baseline; gap: 6px; }
.csw-bump-old-price { font-size: 11px; color: #999; text-decoration: line-through; }
.csw-bump-new-price { font-size: 13px; font-weight: 700; color: var(--csw-primary-color, var(--csw-primary)); }

/* ─── Incentivo Pix ──────────────────────────────────────────────────────── */
.csw-pix-incentive-box {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    background: rgba(22, 163, 74, 0.05);
    border: 1px dashed var(--csw-success);
    border-radius: var(--csw-border-radius, var(--csw-radius));
    padding: 10px 12px;
    margin-top: 12px;
    gap: 10px;
}

.csw-pix-icon-wrap {
    background: var(--csw-success);
    color: #FFF;
    width: 28px; height: 28px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.csw-pix-text-wrap {
    font-size: 12.5px;
    font-weight: 600;
    color: #145a2a;
    line-height: 1.4;
}

/* Quadro informativo configurável abaixo das observações do pedido. */
.csw-info-box {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    box-sizing: border-box;
    margin-top: 12px;
    padding: 10px 12px;
    background: rgba(var(--csw-info-box-rgb, 139, 92, 246), 0.07);
    border: 1px dashed var(--csw-info-box-color, #8B5CF6);
    border-radius: var(--csw-border-radius, var(--csw-radius));
}

.csw-info-icon-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 28px;
    width: 28px;
    height: 28px;
    color: #FFF;
    background: var(--csw-info-box-color, #8B5CF6);
    border-radius: 50%;
}

.csw-info-text-wrap {
    color: var(--csw-info-box-color, #8B5CF6);
    font-size: 12.5px;
    font-weight: 600;
    line-height: 1.4;
}

.csw-payment-info-box {
    margin: 0 0 12px;
    background: rgba(var(--csw-payment-info-box-rgb, 220, 38, 38), 0.07);
    border-color: var(--csw-payment-info-box-color, #DC2626);
}

.csw-payment-info-box .csw-info-icon-wrap {
    background: var(--csw-payment-info-box-color, #DC2626);
}

.csw-payment-info-box .csw-info-text-wrap {
    color: var(--csw-payment-info-box-color, #DC2626);
}

/* ─── Resumo do Pedido (coluna direita, acima do pagamento) ──────────────── */
.csw-summary-card {
    border-top: 3px solid var(--csw-primary-color, var(--csw-primary));
}

.csw-summary-items {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-bottom: 10px;
    max-height: 360px;
    overflow-y: scroll;
    scrollbar-width: auto;
    scrollbar-color: rgba(0, 0, 0, 0.45) rgba(0, 0, 0, 0.08);
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: var(--csw-border-radius, var(--csw-radius));
    padding: 12px 8px 12px 12px;
    background-color: #FAFAFA;
}

.csw-summary-items::-webkit-scrollbar { width: 9px; }
.csw-summary-items::-webkit-scrollbar-track { background: rgba(0, 0, 0, 0.08); border-radius: 8px; }
.csw-summary-items::-webkit-scrollbar-thumb { background: rgba(0, 0, 0, 0.45); border: 2px solid rgba(0, 0, 0, 0.08); border-radius: 8px; }
.csw-summary-items::-webkit-scrollbar-thumb:hover { background: rgba(0, 0, 0, 0.55); }

.csw-summary-item {
    display: flex;
    gap: 10px;
    align-items: center;
    border-bottom: 1px solid var(--csw-border);
    padding-bottom: 8px;
    font-size: 12.5px;
}

.csw-summary-item:last-child { border-bottom: none; padding-bottom: 0; }

.csw-item-image-wrap {
    width: 42px; height: 42px;
    border-radius: 4px;
    border: 1px solid var(--csw-border);
    overflow: hidden;
    position: relative;
    flex-shrink: 0;
    background: #F5F5F5;
}

.csw-item-image-wrap img { width: 100%; height: 100%; object-fit: cover; }

.csw-item-qty-badge {
    position: absolute;
    top: -4px; right: -4px;
    width: 16px; height: 16px;
    border-radius: 50%;
    background: var(--csw-btn-bg-color, var(--csw-text));
    color: #FFF;
    font-size: 9px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
}

.csw-item-details { flex: 1; min-width: 0; }

.csw-item-title-row {
    display: flex;
    justify-content: space-between;
    gap: 6px;
    margin-bottom: 4px;
}

.csw-item-name {
    font-size: 12.5px;
    font-weight: 500;
    color: var(--csw-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.csw-btn-remove-item { color: var(--csw-error, #dc2626) !important; transition: opacity 0.15s; }
.csw-btn-remove-item:hover { opacity: 0.7; }

.csw-item-action-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.csw-qty-select-wrap select {
    height: 25px !important;
    padding: 0 20px 0 6px !important;
    font-size: 12px !important;
    width: auto !important;
    display: inline-block !important;
}

.csw-item-qty-readonly { font-size: 12px; color: var(--csw-text-muted); }
.csw-item-subtotal { font-size: 13px; font-weight: 600; }

/* ─── Erros WooCommerce ───────────────────────────────────────────────────── */
.csw-checkout-wrapper .woocommerce-error {
    background: rgba(220,38,38,0.05) !important;
    border-left: 3px solid var(--csw-error) !important;
    color: var(--csw-error) !important;
    padding: 12px 14px !important;
    border-radius: var(--csw-border-radius, var(--csw-radius)) !important;
    margin-bottom: 14px !important;
    list-style: none !important;
    font-size: 13px !important;
}

.csw-checkout-wrapper .woocommerce-notice {
    padding: 12px 14px !important;
    border-radius: var(--csw-border-radius, var(--csw-radius)) !important;
    font-size: 13px !important;
    margin-bottom: 12px !important;
}

/* Validação inline */
.csw-checkout-wrapper .form-row.validate-required.woocommerce-invalid input,
.csw-checkout-wrapper .form-row.validate-required.woocommerce-invalid select {
    border-color: var(--csw-error) !important;
    box-shadow: 0 0 0 2px rgba(220,38,38,0.10) !important;
}
.csw-checkout-wrapper .form-row.csw-invalid-field input,
.csw-checkout-wrapper .form-row.csw-invalid-field select {
    border-color: var(--csw-error-color, #DC2626) !important;
    box-shadow: 0 0 0 2px rgba(220,38,38,0.10) !important;
}
.csw-checkout-wrapper #csw-shipping-methods.csw-invalid-field {
    border: 1px solid var(--csw-error-color, #DC2626);
    border-radius: var(--csw-border-radius, var(--csw-radius));
    padding: 8px;
}
.csw-checkout-wrapper .csw-field-error-message {
    display: block;
    width: 100%;
    margin-top: 5px;
    color: #DC2626 !important;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.4;
}

/* ─── Loading Spinner ─────────────────────────────────────────────────────── */
.csw-loading-overlay {
    position: absolute;
    inset: 0;
    background: rgba(255,255,255,0.7);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 100;
    border-radius: var(--csw-border-radius, var(--csw-radius));
}

.csw-spinner {
    width: 28px; height: 28px;
    border: 3px solid rgba(0,0,0,0.06);
    border-top-color: var(--csw-primary-color, var(--csw-primary));
    border-radius: 50%;
    animation: csw-spin 0.7s linear infinite;
}

@keyframes csw-spin { to { transform: rotate(360deg); } }

/* ─── Sidebar Sticky (coluna direita) ─────────────────────────────────────── */

/* A coluna direita deve preencher toda a altura do grid (herdada de align-items:stretch) */
.csw-col-right {
    display: flex;
    flex-direction: column;
}

.csw-sidebar-sticky {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.csw-sidebar-sticky .csw-card {
    height: auto !important;
    flex: none !important;
}

/* Restaura inputs e labels nativos dos gateways no modal */
.csw-modal-body .payment_methods > li > input[type="radio"],
.csw-modal-body .payment_methods > li > label {
    display: revert !important;
}

.csw-payment-methods-box .payment_box {
    background: #FFF !important;
    border: 1px solid var(--csw-border-color, var(--csw-border)) !important;
    border-radius: var(--csw-border-radius, var(--csw-radius)) !important;
    padding: 15px !important;
    margin: 8px 0 15px 0 !important;
}

/* ─── Botão EFETUAR PAGAMENTO (CTA) ────────────────────────────── */
.csw-payment-cta-wrap {
    width: 100%;
    padding: 0;
    box-sizing: border-box;
}

.csw-checkout-wrapper .csw-btn-open-payment {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100% !important;
    min-height: 44px;
    margin: 0 !important;
    padding: 10px 16px !important;
    box-sizing: border-box;
    background: var(--csw-primary-color, var(--csw-primary)) !important;
    color: #FFF !important;
    border: 1px solid var(--csw-primary-color, var(--csw-primary)) !important;
    border-radius: var(--csw-border-radius, var(--csw-radius)) !important;
    font-family: inherit;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: 0;
    text-transform: none;
    cursor: pointer;
    box-shadow: 0 2px 5px rgba(0,0,0,0.10);
    transition: filter 0.18s, box-shadow 0.18s, transform 0.1s;
}

.csw-checkout-wrapper .csw-btn-open-payment:hover {
    filter: brightness(0.96);
    box-shadow: 0 3px 7px rgba(0,0,0,0.14);
    transform: translateY(-1px);
}

.csw-checkout-wrapper .csw-btn-open-payment:active {
    transform: translateY(0);
    filter: brightness(0.92);
}

.csw-checkout-wrapper .csw-btn-open-payment:disabled,
.csw-checkout-wrapper .csw-btn-open-payment[aria-disabled="true"] {
    background: #A8AFB8 !important;
    color: #FFF !important;
    border-color: #A8AFB8 !important;
    box-shadow: none;
    cursor: not-allowed;
    filter: none;
    transform: none;
}

/* ─── Modal de Pagamento ─────────────────────────────────── */
.csw-modal-overlay {
    position: fixed;
    inset: 0;
    z-index: 2147483647 !important;
    width: 100vw;
    max-width: none;
    height: 100vh;
    max-height: none;
    margin: 0;
    border: 0;
    background: transparent;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
    box-sizing: border-box;
    animation: csw-fade-in 0.2s ease;
}

dialog.csw-modal-overlay:not([open]) {
    display: none;
}

#csw-payment-modal-overlay::backdrop {
    background: rgba(0, 0, 0, 0.62);
    backdrop-filter: blur(3px);
    -webkit-backdrop-filter: blur(3px);
}
#csw-registration-modal::backdrop { background: rgba(0, 0, 0, 0.62); backdrop-filter: blur(3px); }
#csw-registration-modal .csw-registration-container { width: min(470px, calc(100vw - 32px)) !important; max-width: 470px !important; background: #fff; border-radius: 12px; overflow: hidden; box-shadow: 0 24px 60px rgba(0,0,0,.28); }
#csw-registration-modal .csw-modal-close { display:flex; align-items:center; justify-content:center; width:26px; height:26px; padding:0; border:0; border-radius:4px; color:#fff; background:#dc2626; font-size:20px; line-height:1; cursor:pointer; }
.csw-registration-body > p { margin: 0 0 14px; color: #475569; font-size: 14px; line-height: 1.55; }
.csw-registration-data { display:grid; gap:7px; padding:12px; color:#334155; background:#f8fafc; border:1px solid var(--csw-border-color); border-radius:8px; font-size:13px; overflow-wrap:anywhere; }
.csw-registration-actions { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:16px; }
#csw-registration-modal .csw-registration-actions button {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 42px !important;
    margin: 0 !important;
    padding: 9px 14px !important;
    border-radius: var(--csw-border-radius, 8px) !important;
    box-shadow: none !important;
    font-family: var(--csw-font-family, inherit) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
    text-align: center !important;
    text-transform: none !important;
    cursor: pointer !important;
    transition: filter .2s ease, border-color .2s ease, background-color .2s ease !important;
}
#csw-registration-modal .csw-registration-primary {
    color: var(--csw-btn-text-color, #FFFFFF) !important;
    background: var(--csw-btn-bg-color, #111827) !important;
    border: 1px solid var(--csw-btn-bg-color, #111827) !important;
}
#csw-registration-modal .csw-registration-primary:hover {
    color: var(--csw-btn-text-color, #FFFFFF) !important;
    background: var(--csw-btn-bg-color, #111827) !important;
    filter: brightness(.92) !important;
}
#csw-registration-modal .csw-registration-secondary {
    color: #475569 !important;
    background: #FFFFFF !important;
    border: 1px solid var(--csw-border-color, #E5E7EB) !important;
}
#csw-registration-modal .csw-registration-secondary:hover {
    color: #334155 !important;
    background: #F8FAFC !important;
    border-color: #CBD5E1 !important;
}
#csw-registration-modal .csw-registration-actions button:focus-visible { outline: 3px solid rgba(22,163,74,.22) !important; outline-offset: 2px !important; }
#csw-registration-modal .csw-registration-actions button:disabled { opacity:.65 !important; cursor:wait !important; }
.csw-registration-error { margin-top:12px; padding:9px 11px; color:#b91c1c; background:#fef2f2; border:1px solid #fecaca; border-radius:7px; font-size:13px; }
.csw-registration-body > small { display:block; margin-top:11px; color:#64748b; line-height:1.45; }
@media (max-width: 480px) { .csw-registration-actions { grid-template-columns:1fr; } }

@keyframes csw-fade-in {
    from { opacity: 0; }
    to   { opacity: 1; }
}

#csw-payment-modal-overlay .csw-modal-container {
    position: relative;
    z-index: 2147483647;
    background: #FFF;
    border-radius: 12px;
    width: min(860px, calc(100vw - 32px)) !important;
    max-width: 860px !important;
    max-height: 78vh;
    display: flex;
    flex-direction: column;
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.28);
    overflow: hidden;
    animation: csw-slide-up 0.25s ease;
}

@keyframes csw-slide-up {
    from { opacity: 0; transform: translateY(20px); }
    to   { opacity: 1; transform: translateY(0); }
}

.csw-modal-header {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 18px 20px 16px;
    border-bottom: 1px solid var(--csw-border-color, var(--csw-border));
    flex-shrink: 0;
}

.csw-modal-header-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 8px;
    background: var(--csw-primary-color, var(--csw-primary));
    color: #FFF;
    flex-shrink: 0;
}

.csw-modal-title {
    flex: 1;
    font-size: 14px;
    font-weight: 700;
    color: var(--csw-text);
    text-transform: uppercase;
    letter-spacing: 0.4px;
    margin: 0;
    padding: 0;
}

#csw-payment-modal-overlay .csw-modal-close {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 26px !important;
    min-width: 26px !important;
    height: 26px !important;
    min-height: 26px !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 4px !important;
    background: #DC2626 !important;
    color: #FFF !important;
    cursor: pointer;
    transition: none;
    flex-shrink: 0;
    padding: 0 !important;
    line-height: 1 !important;
    box-shadow: none !important;
}

#csw-payment-modal-overlay .csw-modal-close:hover {
    background: #B91C1C !important;
    color: #FFF !important;
    filter: none;
}

#csw-payment-modal-overlay .csw-modal-close:active {
    transform: none;
}

#csw-payment-modal-overlay .csw-modal-close:focus-visible {
    outline: 2px solid rgba(220, 38, 38, 0.30);
    outline-offset: 2px;
}

#csw-payment-modal-overlay .csw-modal-close svg {
    width: 13px !important;
    height: 13px !important;
    color: #FFF !important;
    stroke: #FFF !important;
}

.csw-modal-body {
    overflow-y: auto;
    padding: 20px;
    flex: 1;
}

.csw-payment-tabs {
    display: none;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px;
    margin: 0 0 14px;
    padding: 4px;
    background: #F1F3F5;
    border: 1px solid var(--csw-border-color, var(--csw-border));
    border-radius: var(--csw-border-radius, var(--csw-radius));
}

.csw-payment-tabs.is-ready {
    display: grid;
}

#csw-payment-modal-overlay .csw-payment-tab {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-height: 40px;
    margin: 0 !important;
    padding: 8px 14px !important;
    border: 1px solid transparent !important;
    border-radius: calc(var(--csw-border-radius, var(--csw-radius)) - 3px) !important;
    background: transparent !important;
    color: #64748B !important;
    font-family: inherit;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    box-shadow: none !important;
}

#csw-payment-modal-overlay .csw-payment-tab.is-active {
    background: #FFF !important;
    color: var(--csw-primary-color, var(--csw-primary)) !important;
    border-color: var(--csw-primary-color, var(--csw-primary)) !important;
    box-shadow: 0 1px 3px rgba(0,0,0,0.08) !important;
}

#csw-payment-modal-overlay .csw-payment-tab:focus-visible {
    outline: 2px solid var(--csw-primary-color, var(--csw-primary));
    outline-offset: 1px;
}

#csw-payment-modal-overlay ul.payment_methods.csw-tabs-ready > li {
    display: none !important;
}

#csw-payment-modal-overlay ul.payment_methods.csw-tabs-ready > li.csw-tab-payment-active {
    display: block !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
}

#csw-payment-modal-overlay ul.payment_methods.csw-tabs-ready > li.csw-tab-payment-active > input.input-radio,
#csw-payment-modal-overlay ul.payment_methods.csw-tabs-ready > li.csw-tab-payment-active > label {
    display: none !important;
}

#csw-payment-modal-overlay ul.payment_methods.csw-tabs-ready > li.csw-tab-payment-active > .payment_box {
    margin: 0 !important;
    border: 1px solid var(--csw-border-color, var(--csw-border)) !important;
    border-radius: var(--csw-border-radius, var(--csw-radius)) !important;
}

.csw-pix-result-loading {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 260px;
    color: var(--csw-text, #334155);
    text-align: center;
}

.csw-pix-result-loading .csw-spinner {
    position: static;
    width: 28px;
    height: 28px;
}

.csw-pix-result-loading small {
    color: var(--csw-text-muted, #64748B);
}

.csw-pix-result > .mp-details-title {
    margin: 0 0 16px;
    font-size: 19px;
    font-weight: 700;
    text-align: center;
}

.csw-pix-result .mp-row-checkout-pix {
    display: grid;
    grid-template-columns: minmax(210px, 0.7fr) minmax(320px, 1.3fr);
    gap: 24px;
}

.csw-pix-result .mp-col-md-4,
.csw-pix-result .mp-col-md-8 {
    min-width: 0;
    padding: 18px;
    border: 1px solid var(--csw-border-color, var(--csw-border));
    border-radius: var(--csw-border-radius, var(--csw-radius));
    background: #FFF;
}

.csw-pix-result .mp-details-pix-img {
    display: block;
    width: auto;
    max-width: 150px;
    max-height: 70px;
    margin: 0 auto 18px;
}

.csw-pix-result .mp-details-pix-title,
.csw-pix-result .mp-details-pix-qr-title,
.csw-pix-result .mp-details-pix-amount {
    font-weight: 700;
    text-align: center;
}

.csw-pix-result .mp-steps-congrats {
    margin: 14px 0 0;
    padding: 0;
    list-style: none;
}

.csw-pix-result .mp-details-list {
    display: flex;
    align-items: center;
    gap: 9px;
    margin: 9px 0;
}

.csw-pix-result .mp-details-pix-number-p {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 24px;
    width: 24px;
    height: 24px;
    margin: 0;
    color: var(--csw-primary-color, var(--csw-primary));
    border: 1px solid var(--csw-primary-color, var(--csw-primary));
    border-radius: 50%;
}

.csw-pix-result .mp-details-list-description {
    margin: 0;
    font-size: 13px;
}

.csw-pix-result .mp-text-center {
    text-align: center;
}

.csw-pix-result .mp-details-pix-qr-img {
    display: block;
    width: 190px;
    max-width: 100%;
    height: auto;
    margin: 12px auto;
}

.csw-pix-result .mp-details-pix-qr-subtitle,
.csw-pix-result .mp-details-pix-qr-description {
    color: var(--csw-text-muted, #64748B);
    font-size: 12.5px;
    text-align: center;
}

.csw-pix-result .mp-row-checkout-pix-container {
    display: flex;
    gap: 8px;
    margin-top: 12px;
}

.csw-pix-result #mp-qr-code {
    flex: 1;
    min-width: 0;
    height: 42px;
    padding: 8px 10px;
    border: 1px solid var(--csw-border-color, var(--csw-border));
    border-radius: var(--csw-border-radius, var(--csw-radius));
}

#csw-payment-modal-overlay .csw-pix-result .mp-details-pix-button,
.csw-pix-order-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 9px 16px !important;
    color: #FFF !important;
    background: var(--csw-primary-color, var(--csw-primary)) !important;
    border: 0 !important;
    border-radius: var(--csw-border-radius, var(--csw-radius)) !important;
    font-size: 13px;
    font-weight: 600;
    text-decoration: none !important;
    cursor: pointer;
}

.csw-pix-result-actions {
    display: flex;
    justify-content: center;
    margin-top: 16px;
}

.csw-card-payment-result {
    padding: 10px;
    text-align: center;
}

.csw-card-payment-result .woocommerce-thankyou-order-received,
.csw-card-payment-result .woocommerce-notice--success {
    margin: 0 0 18px;
    color: var(--csw-success-color, #16A34A);
    font-size: 18px;
    font-weight: 700;
}

.csw-card-payment-result .woocommerce-order-overview {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin: 0 0 18px !important;
    padding: 0 !important;
    list-style: none;
    text-align: left;
}

.csw-card-payment-result .woocommerce-order-overview li {
    margin: 0 !important;
    padding: 12px !important;
    border: 1px solid var(--csw-border-color, var(--csw-border));
    border-radius: var(--csw-border-radius, var(--csw-radius));
}

@media (max-width: 640px) {
    .csw-pix-result .mp-row-checkout-pix { grid-template-columns: 1fr; }
    .csw-pix-result .mp-row-checkout-pix-container { flex-direction: column; }
    .csw-card-payment-result .woocommerce-order-overview { grid-template-columns: 1fr; }
}

/* Garante que o botão Finalizar dentro do modal ocupe 100% */
.csw-modal-body #place_order,
.csw-modal-body .woocommerce-checkout-payment .button {
    width: 100% !important;
    background-color: var(--csw-btn-bg-color, var(--csw-primary)) !important;
    color: var(--csw-btn-text-color, #FFF) !important;
    border: none !important;
    border-radius: var(--csw-border-radius, var(--csw-radius)) !important;
    padding: 14px 20px !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    letter-spacing: 0.4px !important;
    text-transform: uppercase !important;
    cursor: pointer !important;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15) !important;
    transition: filter 0.2s !important;
    display: block !important;
}

.csw-modal-body #place_order:hover {
    filter: brightness(1.08) !important;
}

@media (min-width: 1024px) {
    .csw-sticky-active .csw-sidebar-sticky {
        position: sticky;
        top: 16px;
    }
}

/* ─── Mobile ──────────────────────────────────────────────────────────────── */
@media (max-width: 768px) {
    .csw-row-flex { flex-direction: column; gap: 0; }
    .csw-col-one-third, .csw-col-two-thirds { flex: 1 1 100%; }
    .csw-cep-row { flex-wrap: wrap; }
    .csw-btn-recalc-shipping { width: 100% !important; justify-content: center !important; }
    .csw-checkout-wrapper { padding: 0 0 20px 0; }
    .csw-modal-overlay { padding: 10px; }
    #csw-payment-modal-overlay .csw-modal-container {
        width: calc(100vw - 20px) !important;
        max-width: 100% !important;
        max-height: 84vh;
    }
    .csw-modal-header { padding: 14px 16px; }
    .csw-modal-body { padding: 16px; }
}

/* ─── Campo País ──────────────────────────────────────────────────────────── */
/* Garante que o select de país herde o estilo dos demais selects do plugin */
.csw-checkout-wrapper #billing_country {
    width: 100% !important;
    border: 1px solid var(--csw-border-color, var(--csw-border)) !important;
    border-radius: var(--csw-border-radius, var(--csw-radius)) !important;
    padding: 10px 12px !important;
    font-size: 14px !important;
    background-color: #fff !important;
    color: var(--csw-text) !important;
    transition: border-color 0.2s ease !important;
    box-sizing: border-box !important;
}

.csw-checkout-wrapper #billing_country:focus {
    border-color: var(--csw-primary-color, var(--csw-primary)) !important;
    outline: none !important;
    box-shadow: 0 0 0 2px rgba(22, 163, 74, 0.15) !important;
}

/* ─── Toggle CPF / CNPJ ──────────────────────────────────────────────────── */
.csw-doc-type-toggle {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px 20px;
    margin-bottom: 10px;
    width: 100%;
    box-sizing: border-box;
}

.csw-checkout-wrapper .csw-doc-type-option {
    display: inline-flex !important;
    align-items: center;
    gap: 7px;
    margin: 0 !important;
    padding: 0 !important;
    color: var(--csw-text, #334155) !important;
    font-family: inherit;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.4;
    cursor: pointer;
}

.csw-checkout-wrapper .csw-doc-type-option input[type="radio"] {
    width: 16px !important;
    height: 16px !important;
    min-width: 16px;
    margin: 0 !important;
    accent-color: var(--csw-primary-color, var(--csw-primary));
    cursor: pointer;
}

.csw-checkout-wrapper .csw-doc-type-option input[type="radio"]:focus-visible,
.csw-checkout-wrapper .csw-btn-open-payment:focus-visible {
    outline: 2px solid var(--csw-primary-color, var(--csw-primary));
    outline-offset: 2px;
}

/* Carrinho no mesmo padrão visual do checkout */
.csw-cart-wrapper,
.csw-cart-wrapper * {
    font-family: var(--csw-font-family, inherit) !important;
    box-sizing: border-box;
}

.csw-cart-wrapper {
    max-width: 1240px;
    margin: 24px auto 40px auto !important;
    background-color: var(--csw-bg-color, var(--csw-bg));
    padding: 20px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 20px;
    align-items: start;
}

.csw-cart-form,
.csw-cart-collaterals {
    min-width: 0;
}

.csw-cart-wrapper .csw-card {
    background: var(--csw-card-bg-color, var(--csw-card-bg));
    border: 1px solid var(--csw-border-color, var(--csw-border));
    border-radius: var(--csw-border-radius, var(--csw-radius));
    overflow: hidden;
}

.csw-cart-items-card {
    padding: 18px;
}

.csw-cart-table {
    display: grid;
    gap: 0;
}

.csw-cart-table-head,
.csw-cart-row {
    display: grid;
    grid-template-columns: minmax(260px, 1fr) 82px 62px 90px 28px;
    column-gap: 16px;
    row-gap: 0;
    align-items: center;
}

.csw-cart-table-head {
    grid-auto-flow: column;
    grid-auto-rows: 0;
    min-height: 38px;
    padding: 12px 0;
    border-bottom: 1px solid var(--csw-border-color, var(--csw-border));
    color: var(--csw-text-muted);
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    line-height: 1.2;
}

.csw-cart-table-head span {
    display: block;
    white-space: nowrap;
    min-width: 0;
    overflow: visible;
}

.csw-cart-head-product { grid-column: 1; text-align: left; }
.csw-cart-head-price { grid-column: 2; text-align: right; }
.csw-cart-head-quantity { grid-column: 3; text-align: center; }
.csw-cart-head-total { grid-column: 4; text-align: right; }
.csw-cart-head-remove { grid-column: 5; }

.csw-cart-row {
    padding: 16px 0;
    border-bottom: 1px solid rgba(224,224,224,0.7);
}

.csw-cart-row:last-child {
    border-bottom: 0;
}

.csw-cart-remove {
    color: var(--csw-error-color, #DC2626) !important;
    font-size: 22px;
    line-height: 1;
    text-decoration: none !important;
    text-align: center;
}

.csw-cart-remove-cell {
    text-align: center;
}

.csw-cart-product {
    display: grid;
    grid-template-columns: 50px minmax(0, 1fr);
    gap: 12px;
    align-items: center;
    min-width: 0;
}

.csw-cart-thumb img {
    width: 50px !important;
    height: 50px !important;
    object-fit: cover;
    border-radius: 6px;
    border: 1px solid var(--csw-border-color, var(--csw-border));
}

.csw-cart-product-name {
    display: block;
    color: var(--csw-text, #222) !important;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.35;
    text-decoration: none !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
    hyphens: none !important;
}

.csw-cart-product-info {
    min-width: 0;
}

.csw-cart-price,
.csw-cart-subtotal {
    color: var(--csw-text, #222);
    font-size: 14px;
    font-weight: 600;
    text-align: right;
    white-space: nowrap;
}

.csw-cart-quantity {
    text-align: center;
}

.csw-cart-quantity .quantity {
    margin: 0;
}

.csw-cart-quantity input.qty {
    width: 58px !important;
    min-height: 42px;
    border: 1px solid var(--csw-border-color, var(--csw-border)) !important;
    border-radius: var(--csw-border-radius, var(--csw-radius)) !important;
    text-align: center;
}

.csw-cart-actions {
    display: grid;
    grid-template-columns: minmax(260px, 1fr) auto;
    gap: 16px;
    align-items: end;
    padding-top: 16px;
    border-top: 1px solid var(--csw-border-color, var(--csw-border));
}

.csw-cart-coupon label {
    display: block;
    margin-bottom: 6px;
    color: var(--csw-text, #222);
    font-size: 13px;
    font-weight: 700;
}

.csw-cart-coupon-row {
    display: flex;
    gap: 8px;
}

.csw-cart-coupon input#coupon_code {
    width: 100%;
    min-height: 42px;
    border: 1px solid var(--csw-border-color, var(--csw-border)) !important;
    border-radius: var(--csw-border-radius, var(--csw-radius)) !important;
    padding: 10px 12px !important;
}

.csw-cart-update,
.csw-cart-wrapper .csw-btn-coupon-apply,
.csw-cart-wrapper .wc-proceed-to-checkout .checkout-button {
    min-height: 44px !important;
    border: 0 !important;
    border-radius: var(--csw-border-radius, var(--csw-radius)) !important;
    font-weight: 700 !important;
}

.csw-cart-wrapper .csw-btn-coupon-apply,
.csw-cart-wrapper .wc-proceed-to-checkout .checkout-button {
    background: var(--csw-btn-bg-color, #111827) !important;
    color: var(--csw-btn-text-color, #fff) !important;
}

.csw-cart-update {
    background: #F3F4F6 !important;
    color: var(--csw-text, #222) !important;
    padding: 0 18px !important;
}

.csw-cart-collaterals {
    display: block;
    margin-top: 0;
    position: sticky;
    top: 20px;
}

.csw-cart-collaterals .cart_totals {
    width: 100% !important;
    float: none !important;
}

.csw-cart-totals-card {
    padding: 18px;
}

.csw-cart-totals-card .csw-payment-totals {
    padding: 0 !important;
    margin: 0 !important;
}

.csw-cart-shipping {
    border-top: 1px solid var(--csw-border-color, var(--csw-border));
    border-bottom: 1px solid var(--csw-border-color, var(--csw-border));
    padding: 12px 0;
    margin: 8px 0;
}

.csw-cart-shipping table,
.csw-cart-shipping tbody,
.csw-cart-shipping tr,
.csw-cart-shipping th,
.csw-cart-shipping td {
    display: block !important;
    width: 100% !important;
    border: 0 !important;
    padding: 0 !important;
    background: transparent !important;
}

.csw-cart-shipping th {
    margin-bottom: 8px;
    color: var(--csw-text, #222);
    font-size: 13px;
    font-weight: 700;
}

.csw-cart-shipping ul#shipping_method {
    margin: 0 0 10px 0 !important;
    padding: 0 !important;
}

.csw-cart-shipping ul#shipping_method li {
    margin: 0 0 8px 0 !important;
    padding: 0 !important;
    list-style: none !important;
    color: var(--csw-text, #222);
    font-size: 13px;
}

.csw-cart-shipping .shipping-calculator-button {
    color: var(--csw-primary-color, var(--csw-primary)) !important;
    font-size: 13px;
    font-weight: 700;
    text-decoration: none !important;
}

.csw-cart-shipping .shipping-calculator-form {
    margin-top: 10px !important;
}

.csw-cart-checkout {
    margin-top: 18px;
}

.csw-cart-wrapper .wc-proceed-to-checkout .checkout-button {
    display: inline-flex !important;
    align-items: center !important;
    align-content: center !important;
    justify-content: center !important;
    justify-items: center !important;
    width: 100%;
    min-height: 56px !important;
    height: auto !important;
    padding: 14px 18px !important;
    font-size: 16px !important;
    line-height: 1.25 !important;
    text-align: center !important;
    white-space: normal !important;
    vertical-align: middle !important;
    box-sizing: border-box !important;
    text-decoration: none !important;
    overflow: visible !important;
    background: var(--csw-cart-checkout-btn-bg-color, var(--csw-btn-bg-color, #111827)) !important;
    color: var(--csw-cart-checkout-btn-text-color, var(--csw-btn-text-color, #fff)) !important;
}

.csw-cart-wrapper .wc-proceed-to-checkout .checkout-button:hover,
.csw-cart-wrapper .wc-proceed-to-checkout .checkout-button:focus {
    background: var(--csw-cart-checkout-btn-bg-color, var(--csw-btn-bg-color, #111827)) !important;
    color: var(--csw-cart-checkout-btn-text-color, var(--csw-btn-text-color, #fff)) !important;
}

@media (max-width: 980px) {
    .csw-cart-wrapper {
        grid-template-columns: 1fr;
    }
    .csw-cart-collaterals {
        position: static;
    }
}

@media (max-width: 860px) {
    .csw-cart-table-head { display: none; }
    .csw-cart-table {
        gap: 12px;
    }
    .csw-cart-row {
        grid-template-columns: minmax(0, 1fr) 28px;
        grid-template-areas:
            "product remove"
            "price price"
            "quantity quantity"
            "subtotal subtotal";
        gap: 10px 12px;
        padding: 14px;
        border: 1px solid var(--csw-border-color, var(--csw-border));
        border-radius: var(--csw-border-radius, var(--csw-radius));
        background: var(--csw-card-bg-color, #fff);
    }
    .csw-cart-product {
        grid-area: product;
    }
    .csw-cart-price {
        grid-area: price;
    }
    .csw-cart-quantity {
        grid-area: quantity;
    }
    .csw-cart-subtotal {
        grid-area: subtotal;
    }
    .csw-cart-remove-cell {
        grid-area: remove;
        align-self: start;
        justify-self: end;
    }
    .csw-cart-price,
    .csw-cart-quantity,
    .csw-cart-subtotal {
        display: grid;
        grid-template-columns: 90px minmax(0, 1fr);
        gap: 12px;
        align-items: center;
        text-align: left;
        padding-top: 8px;
        border-top: 1px dashed var(--csw-border-color, var(--csw-border));
    }
    .csw-cart-price,
    .csw-cart-subtotal {
        text-align: right;
    }
    .csw-cart-quantity {
        text-align: right;
    }
    .csw-cart-quantity .quantity {
        justify-self: end;
    }
    .csw-cart-remove-cell {
        display: block;
    }
    .csw-cart-price::before,
    .csw-cart-quantity::before,
    .csw-cart-subtotal::before {
        content: attr(data-title);
        color: var(--csw-text-muted);
        font-size: 12px;
        font-weight: 700;
        text-transform: uppercase;
        text-align: left;
    }
    .csw-cart-remove-cell::before {
        content: none;
    }
    .csw-cart-actions {
        grid-template-columns: 1fr;
    }
    .csw-cart-coupon-row {
        flex-direction: column;
    }
}

@media (max-width: 640px) {
    .csw-cart-wrapper {
        padding: 10px;
        margin-top: 0 !important;
        gap: 12px;
    }
    .csw-cart-items-card {
        padding: 14px;
    }
    .csw-cart-totals-card {
        padding: 14px;
    }
    .csw-cart-thumb img {
        width: 56px !important;
        height: 56px !important;
    }
    .csw-cart-product {
        grid-template-columns: 56px minmax(0, 1fr);
        gap: 10px;
    }
    .csw-cart-product-name {
        font-size: 13px;
    }
    .csw-cart-wrapper .wc-proceed-to-checkout .checkout-button {
        min-height: 54px !important;
        padding: 13px 14px !important;
        font-size: 15px !important;
        line-height: 1.25 !important;
    }
}
