/*!
 * Plugin Energia · checkout.css
 * Porta b-checkout-flow.jsx (cart -> checkout -> payment/pix -> thankyou).
 * Mobile responsivo em mobile.css (outro arquivo).
 *
 * Contrato BEM (consumido por PHP/JS agents):
 *   Stepper:
 *     .pe-checkout-stepper, .pe-checkout-stepper__step,
 *     .pe-checkout-stepper__bullet[--completed|--active|--pending],
 *     .pe-checkout-stepper__label, .pe-checkout-stepper__connector
 *
 *   Cart (step 1):
 *     .pe-cart-grid, .pe-cart-list, .pe-cart-row,
 *     .pe-cart-row__thumb, .pe-cart-row__brand, .pe-cart-row__name,
 *     .pe-cart-row__sku, .pe-cart-row__tags,
 *     .pe-cart-row__qty, .pe-cart-row__price-old, .pe-cart-row__price,
 *     .pe-cart-row__price-pix, .pe-cart-row__remove,
 *     .pe-cart-cross-sells
 *
 *   Summary (right rail, all steps):
 *     .pe-summary, .pe-summary__header, .pe-summary__items-count,
 *     .pe-summary__coupon, .pe-summary__mini-items,
 *     .pe-summary__line, .pe-summary__line-free,
 *     .pe-summary__total, .pe-summary__total-value,
 *     .pe-summary__pix-hint, .pe-summary__cta, .pe-summary__trust,
 *     .pe-summary__shipping-banner
 *
 *   Checkout flow (step 2 — identificacao + endereco + envio + pagamento):
 *     .pe-checkout-step[--current|--collapsed],
 *     .pe-checkout-step__bullet, .pe-checkout-step__eyebrow,
 *     .pe-checkout-step__title,
 *     .pe-checkout-shipping-modes, .pe-checkout-shipping-mode,
 *     .pe-checkout-address-card,
 *     .pe-checkout-shipping-options, .pe-checkout-shipping-option,
 *     .pe-checkout-payment-methods, .pe-checkout-payment-card,
 *     .pe-checkout-payment-card__badge, .pe-checkout-payment-radio
 *
 *   Pix step:
 *     .pe-checkout-pix, .pe-checkout-pix__qr-card, .pe-checkout-pix__timer,
 *     .pe-checkout-pix__steps, .pe-checkout-pix__step-bullet,
 *     .pe-checkout-pix__copy-row, .pe-checkout-pix__savings
 *
 *   Thank-you (step 4):
 *     .pe-thankyou-hero, .pe-thankyou-hero__check,
 *     .pe-thankyou-grid, .pe-thankyou-tracking__list,
 *     .pe-thankyou-tracking__bullet[--done|--active],
 *     .pe-thankyou-tracking__support
 */

/* ======================================================
 * STEPPER (header — same on all 4 steps)
 * ====================================================== */
.pe-checkout-stepper {
    display: flex; align-items: center;
    gap: 0;
    padding: 28px 80px 24px;
    background: #fff;
}
.pe-checkout-stepper__step {
    display: inline-flex; align-items: center; gap: 12px;
    color: #6B7280;
    font-size: 13.5px;
}
.pe-checkout-stepper__bullet {
    width: 28px; height: 28px;
    border-radius: 50%;
    display: inline-flex; align-items: center; justify-content: center;
    font-family: 'JetBrains Mono', monospace;
    font-size: 12px; font-weight: 700;
    background: #F1F3F5;
    color: #9CA3AF;
    transition: background .2s, color .2s, transform .2s;
    flex-shrink: 0;
}
.pe-checkout-stepper__bullet--pending {
    background: #F1F3F5; color: #9CA3AF;
}
.pe-checkout-stepper__bullet--active {
    background: #0B0D10; color: #fff;
    transform: scale(1.05);
    box-shadow: 0 6px 16px rgba(11,13,16,0.2);
}
.pe-checkout-stepper__bullet--completed {
    background: #0E9F6E; color: #fff;
}
.pe-checkout-stepper__label {
    font-weight: 600;
}
.pe-checkout-stepper__step--active .pe-checkout-stepper__label { color: #0B0D10; }
.pe-checkout-stepper__step--completed .pe-checkout-stepper__label { color: #0B0D10; }
.pe-checkout-stepper__connector {
    flex: 1;
    height: 2px;
    background: #F1F3F5;
    margin: 0 16px;
    border-radius: 2px;
}
.pe-checkout-stepper__connector--done { background: #0E9F6E; }

/* ======================================================
 * CART (step 1) — grid 1fr + 380px summary
 * ====================================================== */
.pe-cart-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 32px;
    align-items: flex-start;
    padding: 16px 80px 80px;
}
.pe-cart-grid { grid-template-columns: 1fr 380px; gap: 40px; }

.pe-cart-list {
    border: 1px solid #F1F3F5;
    border-radius: 18px;
    padding: 4px 24px 8px;
    background: #fff;
}

/* Cart row — grid 90/1fr/140/130/32 */
.pe-cart-grid .pe-cart-row {
    display: grid;
    grid-template-columns: 90px 1fr 140px 130px 32px;
    gap: 18px;
    align-items: center;
    padding: 18px 0;
    background: transparent;
    border: 0;
    border-bottom: 1px solid #F1F3F5;
    border-radius: 0;
}
.pe-cart-grid .pe-cart-list .pe-cart-row:last-child { border-bottom: 0; }

.pe-cart-row__thumb {
    width: 90px; height: 90px;
    background: #F7F8FA;
    border-radius: 12px;
    overflow: hidden;
    padding: 6px;
}
.pe-cart-row__thumb img {
    width: 100%; height: 100%;
    object-fit: contain;
}

.pe-cart-row__body {
    display: flex; flex-direction: column; gap: 4px; min-width: 0;
}
.pe-cart-row__brand {
    font-family: 'JetBrains Mono', monospace;
    font-size: 10.5px; font-weight: 700;
    letter-spacing: 0.06em; text-transform: uppercase;
    color: #9CA3AF;
}
.pe-cart-row__name {
    font-size: 14px; line-height: 1.4;
    font-weight: 500;
    color: #0B0D10;
}
.pe-cart-row__name a { color: #0B0D10; transition: color .15s; }
.pe-cart-row__name a:hover { color: #0E7FBF; }
.pe-cart-row__sku {
    font-family: 'JetBrains Mono', monospace;
    font-size: 10.5px; color: #9CA3AF;
    margin-top: 2px;
}
.pe-cart-row__tags {
    display: flex; gap: 6px; flex-wrap: wrap;
    margin-top: 4px;
}

/* Qty stepper inside cart row */
.pe-cart-row__qty {
    display: inline-flex; align-items: stretch;
    border: 1px solid #E5E7EB;
    background: #fff;
    border-radius: 10px;
    overflow: hidden;
    height: 38px;
    width: 120px;
    justify-self: start;
}
.pe-cart-row__qty button {
    width: 38px;
    display: inline-flex; align-items: center; justify-content: center;
    background: transparent;
    color: #0B0D10;
    cursor: pointer;
    transition: background .15s;
}
.pe-cart-row__qty button:hover { background: #F7F8FA; }
.pe-cart-row__qty input {
    flex: 1; width: 44px;
    border: 0; outline: 0;
    background: transparent;
    text-align: center;
    font-family: 'JetBrains Mono', monospace;
    font-size: 14px; font-weight: 600;
    color: #0B0D10;
}

/* Price column */
.pe-cart-row__price-col {
    display: flex; flex-direction: column; align-items: flex-end;
    gap: 2px;
}
.pe-cart-row__price-old {
    font-size: 12px; color: #9CA3AF;
    text-decoration: line-through;
}
.pe-cart-row__price {
    font-family: 'Cambay', sans-serif;
    font-weight: 700; font-size: 20px;
    line-height: 1; color: #0B0D10;
    letter-spacing: -0.01em;
}
.pe-cart-row__price-pix {
    font-size: 11px; color: #0E7FBF; font-weight: 600;
    display: inline-flex; align-items: center; gap: 4px;
}

.pe-cart-row__remove {
    width: 32px; height: 32px;
    display: inline-flex; align-items: center; justify-content: center;
    border-radius: 50%;
    color: #9CA3AF;
    background: transparent;
    cursor: pointer;
    transition: background .15s, color .15s;
}
.pe-cart-row__remove:hover { background: #FDECEA; color: #E53935; }

/* Cross-sells (Complementa seu pedido) */
.pe-cart-cross-sells {
    margin-top: 32px;
}
.pe-cart-cross-sells__title {
    font-family: 'Cambay', sans-serif;
    font-weight: 700; font-size: 24px;
    color: #0B0D10;
    margin: 0 0 18px;
    letter-spacing: -0.01em;
}
.pe-cart-cross-sells__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
}
.pe-cart-cross-sells__grid { grid-template-columns: repeat(3, 1fr); gap: 16px; }

/* ======================================================
 * SUMMARY (right rail) — sticky 380px
 * ====================================================== */
.pe-summary {
    position: sticky; top: 20px;
    background: #fff;
    border: 1px solid #F1F3F5;
    border-radius: 18px;
    padding: 24px;
    display: flex; flex-direction: column; gap: 18px;
}

.pe-summary__header {
    display: flex; justify-content: space-between; align-items: baseline;
    gap: 12px;
}
.pe-summary__title {
    font-family: 'Cambay', sans-serif;
    font-weight: 700; font-size: 18px;
    color: #0B0D10;
    margin: 0;
}
.pe-summary__items-count {
    font-family: 'JetBrains Mono', monospace;
    font-size: 11.5px; color: #6B7280;
}

/* Coupon dashed pill */
.pe-summary__coupon {
    display: flex; align-items: center; gap: 8px;
    padding: 10px 12px;
    border: 1px dashed #C9CED6;
    background: #fff;
    border-radius: 8px;
}
.pe-summary__coupon input {
    flex: 1;
    border: 0; outline: 0;
    background: transparent;
    font-family: 'JetBrains Mono', monospace;
    font-size: 13px; font-weight: 600;
    text-transform: uppercase; letter-spacing: 0.04em;
    color: #0B0D10;
}
.pe-summary__coupon input::placeholder { color: #9CA3AF; }
.pe-summary__coupon-apply {
    font-size: 12px; font-weight: 600;
    color: #0E7FBF;
    cursor: pointer;
}
.pe-summary__coupon-apply:hover { color: #0B0D10; }

/* Mini items list (used on step 2+) */
.pe-summary__mini-items {
    display: flex; flex-direction: column; gap: 10px;
    padding: 14px 0;
    border-top: 1px solid #F1F3F5;
    border-bottom: 1px solid #F1F3F5;
    max-height: 220px;
    overflow-y: auto;
}
.pe-summary__mini-item {
    display: grid;
    grid-template-columns: 36px 1fr auto;
    gap: 10px;
    align-items: center;
    font-size: 12.5px;
}
.pe-summary__mini-item-thumb {
    width: 36px; height: 36px;
    background: #F7F8FA;
    border-radius: 8px;
    padding: 2px;
    overflow: hidden;
}
.pe-summary__mini-item-thumb img { width: 100%; height: 100%; object-fit: contain; }
.pe-summary__mini-item-body { min-width: 0; }
.pe-summary__mini-item-name {
    color: #0B0D10;
    font-weight: 500;
    overflow: hidden; text-overflow: ellipsis;
    white-space: nowrap;
}
.pe-summary__mini-item-qty {
    font-family: 'JetBrains Mono', monospace;
    font-size: 10.5px; color: #9CA3AF;
}
.pe-summary__mini-item-price {
    font-family: 'Cambay', sans-serif;
    font-weight: 700; font-size: 13px;
    color: #0B0D10;
}

/* Lines (subtotal, frete, desconto) */
.pe-summary__lines {
    display: flex; flex-direction: column; gap: 10px;
}
.pe-summary__line {
    display: flex; justify-content: space-between; align-items: baseline;
    font-size: 13.5px;
    color: #6B7280;
}
.pe-summary__line-value {
    color: #0B0D10; font-weight: 600;
}
.pe-summary__line-free .pe-summary__line-value { color: #0E9F6E; }
.pe-summary__line--coupon .pe-summary__line-value { color: #0E9F6E; }

/* Total */
.pe-summary__total {
    display: flex; justify-content: space-between; align-items: baseline;
    padding-top: 14px;
    border-top: 1px solid #E5E7EB;
}
.pe-summary__total-label {
    font-family: 'Cambay', sans-serif;
    font-weight: 700; font-size: 18px;
    color: #0B0D10;
}
.pe-summary__total-value {
    font-family: 'Cambay', sans-serif;
    font-weight: 700; font-size: 30px;
    line-height: 1; color: #0B0D10;
    letter-spacing: -0.02em;
}
.pe-summary__pix-hint {
    font-size: 12px; color: #0E7FBF; font-weight: 600;
    text-align: right;
}

/* CTA */
.pe-summary__cta {
    display: flex; align-items: center; justify-content: center; gap: 8px;
    width: 100%;
    padding: 14px 18px;
    background: #0B0D10; color: #fff;
    border: 1px solid #0B0D10;
    border-radius: 12px;
    font-size: 15px; font-weight: 600;
    cursor: pointer;
    transition: background .15s, transform .15s, box-shadow .15s;
}
.pe-summary__cta:hover {
    background: #000;
    transform: translateY(-1px);
    box-shadow: 0 10px 24px rgba(11,13,16,0.20);
}

.pe-summary__trust {
    display: flex; align-items: center; gap: 8px;
    font-size: 11.5px; color: #6B7280;
    justify-content: center;
}
.pe-summary__trust svg { color: #0E9F6E; }

/* "Faltam R$X para frete grátis" banner */
.pe-summary__shipping-banner {
    background: #F7F8FA;
    border-radius: 10px;
    padding: 12px 14px;
    font-size: 12px; color: #2B2F36;
    display: flex; flex-direction: column; gap: 6px;
}
.pe-summary__shipping-banner-progress {
    height: 4px;
    background: #E5E7EB;
    border-radius: 999px;
    overflow: hidden;
}
.pe-summary__shipping-banner-fill {
    height: 100%;
    background: #0E9F6E;
    border-radius: 999px;
    transition: width .3s;
}

/* ======================================================
 * CHECKOUT FLOW (step 2) — accordion of steps
 * ====================================================== */
.pe-checkout-flow {
    display: grid;
    grid-template-columns: 1fr;
    gap: 32px;
    align-items: flex-start;
    padding: 16px 80px 80px;
}
.pe-checkout-flow { grid-template-columns: 1fr 380px; gap: 40px; }

.pe-checkout-steps {
    display: flex; flex-direction: column; gap: 14px;
}

.pe-checkout-step {
    background: #fff;
    border: 1px solid #F1F3F5;
    border-radius: 18px;
    padding: 26px;
    transition: border-color .2s, box-shadow .2s, opacity .2s;
}
.pe-checkout-step--current {
    border: 2px solid #0B0D10;
    box-shadow: 0 12px 32px rgba(11,13,16,0.06);
    padding: 25px;
}
.pe-checkout-step--collapsed {
    opacity: 0.5;
}
.pe-checkout-step__header {
    display: flex; align-items: center; gap: 14px;
}
.pe-checkout-step__bullet {
    width: 24px; height: 24px;
    border-radius: 50%;
    background: #F1F3F5;
    color: #9CA3AF;
    display: inline-flex; align-items: center; justify-content: center;
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px; font-weight: 700;
    flex-shrink: 0;
}
.pe-checkout-step--completed .pe-checkout-step__bullet {
    background: #0E9F6E; color: #fff;
}
.pe-checkout-step--current .pe-checkout-step__bullet {
    background: #0B0D10; color: #fff;
}
.pe-checkout-step__meta { flex: 1; min-width: 0; }
.pe-checkout-step__eyebrow {
    font-size: 11px; font-weight: 700;
    letter-spacing: 0.06em; text-transform: uppercase;
    color: #9CA3AF;
    margin-bottom: 4px;
}
.pe-checkout-step__title {
    font-family: 'Cambay', sans-serif;
    font-weight: 700; font-size: 22px;
    color: #0B0D10;
    margin: 0; letter-spacing: -0.01em;
}
.pe-checkout-step__title { font-size: 26px; }
.pe-checkout-step__edit {
    font-size: 12px; font-weight: 600;
    color: #0E7FBF;
    cursor: pointer;
}
.pe-checkout-step__edit:hover { color: #0B0D10; }
.pe-checkout-step__body {
    margin-top: 22px;
    display: flex; flex-direction: column; gap: 18px;
}

/* Field rows (used inside steps) */
.pe-checkout-field-row {
    display: grid; gap: 14px;
    grid-template-columns: 1fr;
}
.pe-checkout-field-row--two { grid-template-columns: 1fr 1fr; }
.pe-checkout-field-row--three { grid-template-columns: 1fr 1fr 1fr; }
.pe-checkout-field {
    display: flex; flex-direction: column; gap: 6px;
}
.pe-checkout-field label {
    font-size: 12px; font-weight: 600;
    color: #0B0D10;
}
.pe-checkout-field input,
.pe-checkout-field select,
.pe-checkout-field textarea {
    height: 44px;
    padding: 0 14px;
    border: 1px solid #E5E7EB;
    border-radius: 10px;
    background: #fff;
    font: inherit;
    font-size: 14px;
    color: #0B0D10;
    outline: 0;
    transition: border-color .15s, box-shadow .15s;
}
.pe-checkout-field textarea { height: auto; padding: 12px 14px; min-height: 80px; }
.pe-checkout-field input:focus,
.pe-checkout-field select:focus,
.pe-checkout-field textarea:focus {
    border-color: #1FB6FF;
    box-shadow: 0 0 0 3px #E6F4FB;
}

/* Shipping modes (Retirada/Entrega cards 2-col) */
.pe-checkout-shipping-modes {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}
.pe-checkout-shipping-mode {
    display: flex; flex-direction: column; gap: 6px;
    padding: 18px 20px;
    background: #fff;
    border: 1.5px solid #E5E7EB;
    border-radius: 12px;
    cursor: pointer;
    transition: border-color .15s, background .15s;
}
.pe-checkout-shipping-mode:hover { border-color: #0B0D10; }
.pe-checkout-shipping-mode--active {
    border-color: #1FB6FF;
    background: #F0FAFF;
}
.pe-checkout-shipping-mode__title {
    font-size: 14px; font-weight: 600;
    color: #0B0D10;
}
.pe-checkout-shipping-mode__sub {
    font-size: 12px; color: #6B7280;
}

/* Address card (currently selected) */
.pe-checkout-address-card {
    border: 1.5px solid #1FB6FF;
    background: #F0FAFF;
    border-radius: 12px;
    padding: 16px 18px;
    display: flex; flex-direction: column; gap: 6px;
}
.pe-checkout-address-card__label {
    font-size: 11px; font-weight: 700;
    letter-spacing: 0.06em; text-transform: uppercase;
    color: #0E7FBF;
}
.pe-checkout-address-card__lines {
    font-size: 13.5px; color: #0B0D10;
    line-height: 1.5;
}
.pe-checkout-address-card__edit {
    font-size: 12px; font-weight: 600;
    color: #0E7FBF; align-self: flex-start;
    cursor: pointer;
}

/* Shipping options (PAC, SEDEX, etc) */
.pe-checkout-shipping-options {
    display: flex; flex-direction: column; gap: 10px;
}
.pe-checkout-shipping-option {
    display: flex; align-items: center; gap: 12px;
    padding: 14px 18px;
    background: #fff;
    border: 1.5px solid #E5E7EB;
    border-radius: 12px;
    cursor: pointer;
    transition: border-color .15s, background .15s;
}
.pe-checkout-shipping-option:hover { border-color: #0B0D10; }
.pe-checkout-shipping-option--active {
    border-color: #1FB6FF;
    background: #F0FAFF;
}
.pe-checkout-shipping-option__body { flex: 1; min-width: 0; }
.pe-checkout-shipping-option__name {
    font-size: 13.5px; font-weight: 600;
    color: #0B0D10;
}
.pe-checkout-shipping-option__eta {
    font-size: 12px; color: #6B7280;
    margin-top: 2px;
}
.pe-checkout-shipping-option__price {
    font-family: 'Cambay', sans-serif;
    font-weight: 700; font-size: 16px;
    color: #0B0D10;
}
.pe-checkout-shipping-option__price--free {
    color: #0E9F6E;
}

/* ======================================================
 * PAYMENT METHODS — 3-col cards (PIX, Cartão, Boleto)
 * ====================================================== */
.pe-checkout-payment-methods {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
}
.pe-checkout-payment-methods { grid-template-columns: repeat(3, 1fr); }

.pe-checkout-payment-card {
    position: relative;
    display: flex; flex-direction: column; gap: 8px;
    padding: 18px;
    background: #fff;
    border: 2px solid #E5E7EB;
    border-radius: 12px;
    cursor: pointer;
    transition: border-color .15s, background .15s, transform .15s;
}
.pe-checkout-payment-card:hover { border-color: #0B0D10; transform: translateY(-1px); }
.pe-checkout-payment-card--active {
    border-color: #0E7FBF;
    background: #F0FAFF;
}
.pe-checkout-payment-card__head {
    display: flex; align-items: center; justify-content: space-between;
    gap: 10px;
}
.pe-checkout-payment-card__icon {
    width: 36px; height: 36px;
    border-radius: 8px;
    background: #F7F8FA;
    display: inline-flex; align-items: center; justify-content: center;
    color: #0B0D10;
}
.pe-checkout-payment-card--active .pe-checkout-payment-card__icon {
    background: #fff;
    color: #0E7FBF;
}
.pe-checkout-payment-card__title {
    font-size: 14.5px; font-weight: 700;
    color: #0B0D10;
    margin: 0;
}
.pe-checkout-payment-card__sub {
    font-size: 12px; color: #6B7280;
    line-height: 1.4;
}
.pe-checkout-payment-card__badge {
    position: absolute; top: -10px; right: 14px;
    background: #FFC829;
    color: #2A1F00;
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 10.5px; font-weight: 700;
    letter-spacing: 0.04em; text-transform: uppercase;
}
.pe-checkout-payment-radio {
    width: 16px; height: 16px;
    border: 1.5px solid #E5E7EB;
    border-radius: 50%;
    background: #fff;
    appearance: none; -webkit-appearance: none;
    cursor: pointer;
    transition: border-color .15s;
    position: relative;
    flex-shrink: 0;
}
.pe-checkout-payment-radio:checked {
    border-color: #0E7FBF;
    border-width: 5px;
}

/* ======================================================
 * PIX STEP (after place order, before approval)
 * ====================================================== */
.pe-checkout-pix {
    display: grid;
    grid-template-columns: 1fr;
    gap: 28px;
    padding: 20px 80px 56px;
    align-items: flex-start;
}
.pe-checkout-pix { grid-template-columns: 280px 1fr; gap: 36px; }

.pe-checkout-pix__qr-card {
    background: #F7F8FA;
    border-radius: 14px;
    padding: 18px;
    display: flex; flex-direction: column; gap: 14px;
    align-items: center;
}
.pe-checkout-pix__qr-image {
    width: 244px; height: 244px;
    background: #fff;
    border-radius: 10px;
    padding: 14px;
    display: flex; align-items: center; justify-content: center;
}
.pe-checkout-pix__qr-image img { width: 100%; height: 100%; object-fit: contain; }
.pe-checkout-pix__amount {
    font-family: 'Cambay', sans-serif;
    font-weight: 700; font-size: 30px;
    line-height: 1; color: #0B0D10;
    letter-spacing: -0.02em;
}
.pe-checkout-pix__amount-label {
    font-size: 11px; font-weight: 700;
    letter-spacing: 0.06em; text-transform: uppercase;
    color: #9CA3AF;
}
.pe-checkout-pix__timer {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 6px 12px;
    background: #fff;
    border: 1px solid #E5E7EB;
    border-radius: 999px;
    font-family: 'JetBrains Mono', monospace;
    font-size: 12.5px; font-weight: 700;
    color: #0B0D10;
}
.pe-checkout-pix__timer svg { color: #D9A400; }
.pe-checkout-pix__timer--expiring { color: #C62828; border-color: #FBD2D0; background: #FDECEA; }
.pe-checkout-pix__timer--expiring svg { color: #C62828; }

.pe-checkout-pix__body {
    display: flex; flex-direction: column; gap: 24px;
}
.pe-checkout-pix__head h2 {
    font-family: 'Cambay', sans-serif;
    font-weight: 700; font-size: 28px;
    color: #0B0D10;
    margin: 0; letter-spacing: -0.01em;
}
.pe-checkout-pix__head p {
    font-size: 14px; color: #6B7280;
    margin: 8px 0 0;
    line-height: 1.5;
}

.pe-checkout-pix__steps {
    list-style: none; padding: 0; margin: 0;
    display: flex; flex-direction: column; gap: 14px;
}
.pe-checkout-pix__steps li {
    display: grid;
    grid-template-columns: 26px 1fr;
    gap: 12px;
    align-items: flex-start;
    font-size: 13.5px; line-height: 1.5;
    color: #2B2F36;
}
.pe-checkout-pix__step-bullet {
    width: 26px; height: 26px;
    border-radius: 50%;
    background: #0B0D10; color: #fff;
    display: inline-flex; align-items: center; justify-content: center;
    font-family: 'JetBrains Mono', monospace;
    font-size: 12px; font-weight: 700;
}

/* Copy code row */
.pe-checkout-pix__copy-row {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 8px;
    align-items: stretch;
}
.pe-checkout-pix__copy-input {
    border: 1px solid #E5E7EB;
    background: #F7F8FA;
    border-radius: 10px;
    padding: 12px 14px;
    font-family: 'JetBrains Mono', monospace;
    font-size: 12px;
    color: #2B2F36;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    outline: 0;
}
.pe-checkout-pix__copy-btn {
    display: inline-flex; align-items: center; gap: 8px;
    padding: 0 18px;
    background: #0B0D10; color: #fff;
    border: 1px solid #0B0D10;
    border-radius: 10px;
    font-size: 13px; font-weight: 600;
    cursor: pointer;
    transition: background .15s;
    white-space: nowrap;
}
.pe-checkout-pix__copy-btn:hover { background: #000; }
.pe-checkout-pix__copy-btn.is-copied {
    background: #0E9F6E; border-color: #0E9F6E;
}

.pe-checkout-pix__savings {
    background: #DCF5EA;
    color: #0E6E5C;
    border-radius: 12px;
    padding: 14px 16px;
    display: flex; align-items: center; gap: 10px;
    font-size: 13px;
}
.pe-checkout-pix__savings strong { color: #0E6E5C; font-weight: 700; }
.pe-checkout-pix__savings svg { color: #0E9F6E; flex-shrink: 0; }

/* ======================================================
 * THANK YOU (step 4 — order confirmation)
 * ====================================================== */
.pe-thankyou-hero {
    text-align: center;
    padding: 72px 80px 24px;
    display: flex; flex-direction: column;
    align-items: center; gap: 16px;
}
.pe-thankyou-hero__check {
    width: 84px; height: 84px;
    border-radius: 50%;
    background: #DCF5EA;
    color: #0E9F6E;
    display: inline-flex; align-items: center; justify-content: center;
    margin-bottom: 8px;
}
.pe-thankyou-hero__eyebrow {
    font-size: 11px; font-weight: 700;
    letter-spacing: 0.08em; text-transform: uppercase;
    color: #0E9F6E;
}
.pe-thankyou-hero__title {
    font-family: 'Cambay', sans-serif;
    font-weight: 400;
    font-size: clamp(36px, 5vw, 48px);
    line-height: 1.05; letter-spacing: -0.02em;
    color: #0B0D10;
    margin: 0;
    max-width: 720px;
}
.pe-thankyou-hero__title em { font-style: normal; font-weight: 700; }
.pe-thankyou-hero__sub {
    font-size: 15px; line-height: 1.55;
    color: #6B7280;
    margin: 0; max-width: 560px;
}
.pe-thankyou-hero__order {
    font-family: 'JetBrains Mono', monospace;
    font-size: 13px; font-weight: 700;
    color: #0B0D10;
    margin-top: 8px;
}

.pe-thankyou-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 24px;
    max-width: 1080px;
    margin: 0 auto;
    padding: 40px 80px 80px;
}
.pe-thankyou-grid { grid-template-columns: 1fr 1fr; gap: 32px; }

.pe-thankyou-card {
    background: #fff;
    border: 1px solid #F1F3F5;
    border-radius: 16px;
    padding: 24px 26px;
}
.pe-thankyou-card__title {
    font-family: 'Cambay', sans-serif;
    font-weight: 700; font-size: 20px;
    color: #0B0D10;
    margin: 0 0 16px;
    letter-spacing: -0.01em;
}

/* Tracking timeline */
.pe-thankyou-tracking__list {
    list-style: none; padding: 0; margin: 0;
    display: flex; flex-direction: column; gap: 16px;
    position: relative;
}
.pe-thankyou-tracking__list::before {
    content: "";
    position: absolute;
    left: 10px; top: 14px; bottom: 14px;
    width: 2px;
    background: #F1F3F5;
    z-index: 0;
}
.pe-thankyou-tracking__item {
    display: grid;
    grid-template-columns: 22px 1fr auto;
    gap: 14px;
    align-items: center;
    position: relative;
    z-index: 1;
}
.pe-thankyou-tracking__bullet {
    width: 22px; height: 22px;
    border-radius: 50%;
    background: #E5E7EB;
    color: #fff;
    display: inline-flex; align-items: center; justify-content: center;
    flex-shrink: 0;
    box-shadow: 0 0 0 4px #fff;
}
.pe-thankyou-tracking__bullet--done {
    background: #0E9F6E;
}
.pe-thankyou-tracking__bullet--active {
    background: #1FB6FF;
    animation: pe-pulse 2s ease-in-out infinite;
}
@keyframes pe-pulse {
    0%, 100% { box-shadow: 0 0 0 4px #fff, 0 0 0 6px rgba(31,182,255,0.20); }
    50%      { box-shadow: 0 0 0 4px #fff, 0 0 0 10px rgba(31,182,255,0.10); }
}
.pe-thankyou-tracking__body { min-width: 0; }
.pe-thankyou-tracking__label {
    font-size: 13.5px; font-weight: 600;
    color: #0B0D10;
}
.pe-thankyou-tracking__item--pending .pe-thankyou-tracking__label { color: #9CA3AF; }
.pe-thankyou-tracking__sub {
    font-size: 11.5px; color: #6B7280;
    margin-top: 2px;
}
.pe-thankyou-tracking__time {
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px; color: #9CA3AF;
}

.pe-thankyou-tracking__support {
    margin-top: 20px;
    background: #F7F8FA;
    border-radius: 14px;
    padding: 18px 20px;
    display: flex; gap: 14px; align-items: center;
}
.pe-thankyou-tracking__support-icon {
    width: 40px; height: 40px;
    border-radius: 50%;
    background: #fff;
    color: #0E9F6E;
    display: inline-flex; align-items: center; justify-content: center;
    flex-shrink: 0;
}
.pe-thankyou-tracking__support-text { font-size: 13px; line-height: 1.45; color: #2B2F36; }
.pe-thankyou-tracking__support-text strong { color: #0B0D10; }
.pe-thankyou-tracking__support a { color: #0E9F6E; font-weight: 700; }

/* Summary mini-list (right side of thankyou) */
.pe-thankyou-summary__rows {
    display: flex; flex-direction: column; gap: 10px;
}
.pe-thankyou-summary__row {
    display: flex; justify-content: space-between; align-items: baseline;
    font-size: 13.5px;
    color: #6B7280;
}
.pe-thankyou-summary__row-value { color: #0B0D10; font-weight: 600; }
.pe-thankyou-summary__row--total {
    padding-top: 14px; margin-top: 6px;
    border-top: 1px solid #E5E7EB;
}
.pe-thankyou-summary__row--total .pe-thankyou-summary__row-label {
    font-family: 'Cambay', sans-serif;
    font-weight: 700; font-size: 16px;
    color: #0B0D10;
}
.pe-thankyou-summary__row--total .pe-thankyou-summary__row-value {
    font-family: 'Cambay', sans-serif;
    font-size: 24px; font-weight: 700;
    color: #0B0D10;
}

/* ======================================================
 * CHECKOUT LAYOUT (WooCommerce form-checkout) — grid 1fr 380px
 * ====================================================== */
.pe-checkout {
    width: 100%;
}
.pe-checkout__grid {
    display: grid;
    grid-template-columns: 1fr 380px;
    gap: 40px;
    align-items: flex-start;
    padding-top: 8px;
    padding-bottom: 40px;
}
.pe-checkout__main {
    display: flex;
    flex-direction: column;
    gap: 18px;
    min-width: 0;
}
.pe-summary--checkout {
    position: sticky;
    top: 20px;
    background: #fff;
    border: 1px solid #F1F3F5;
    border-radius: 18px;
    padding: 24px;
    display: flex;
    flex-direction: column;
    gap: 18px;
}

/* Aliases do PHP head/num para CSS header/bullet do step card */
.pe-checkout-step__head {
    display: flex; align-items: center; gap: 14px;
    margin: 0 0 6px;
}
.pe-checkout-step__num {
    width: 26px; height: 26px;
    border-radius: 50%;
    background: #F1F3F5;
    color: #9CA3AF;
    display: inline-flex; align-items: center; justify-content: center;
    font-family: 'JetBrains Mono', monospace;
    font-size: 12px; font-weight: 700;
    flex-shrink: 0;
}
.pe-checkout-step--current .pe-checkout-step__num {
    background: #0B0D10; color: #fff;
}

/* Customer / shipping wrappers */
.pe-checkout__customer,
.pe-checkout__shipping {
    display: flex; flex-direction: column; gap: 14px;
}

/* WC native form-row → estilizar como .pe-checkout-field */
.pe-checkout .form-row {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin: 0;
    padding: 0;
    width: 100%;
}
.pe-checkout .form-row label {
    font-size: 12px; font-weight: 600;
    color: #0B0D10;
    margin: 0;
}
.pe-checkout .form-row label .required,
.pe-checkout .form-row label .optional {
    margin-left: 4px;
    font-weight: 500;
    color: #9CA3AF;
}
.pe-checkout .form-row label .required {
    color: #C62828;
    text-decoration: none;
}
.pe-checkout .form-row input.input-text,
.pe-checkout .form-row textarea,
.pe-checkout .form-row select,
.pe-checkout .form-row .woocommerce-input-wrapper > input {
    width: 100%;
    height: 44px;
    padding: 0 14px;
    border: 1px solid #E5E7EB;
    border-radius: 10px;
    background: #fff;
    font-family: inherit;
    font-size: 14px;
    color: #0B0D10;
    outline: 0;
    box-shadow: none;
    transition: border-color .15s, box-shadow .15s;
    box-sizing: border-box;
}
.pe-checkout .form-row textarea,
.pe-checkout .form-row .woocommerce-input-wrapper > textarea {
    height: auto;
    min-height: 84px;
    padding: 12px 14px;
}
.pe-checkout .form-row input.input-text:focus,
.pe-checkout .form-row textarea:focus,
.pe-checkout .form-row select:focus {
    border-color: #1FB6FF;
    box-shadow: 0 0 0 3px #E6F4FB;
}
.pe-checkout .form-row .woocommerce-input-wrapper {
    width: 100%;
}
.pe-checkout .form-row-first,
.pe-checkout .form-row-last {
    float: none;
    width: 100%;
}

/* Select2 alignment (WC native country/state select) */
.pe-checkout .select2-container .select2-selection--single {
    height: 44px;
    border: 1px solid #E5E7EB;
    border-radius: 10px;
    background: #fff;
}
.pe-checkout .select2-container--default .select2-selection--single .select2-selection__rendered {
    line-height: 44px;
    padding-left: 14px;
    color: #0B0D10;
    font-size: 14px;
}
.pe-checkout .select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 44px;
    right: 6px;
}

/* Layout fields em duas colunas dentro do customer e shipping */
.pe-checkout__customer .woocommerce-billing-fields__field-wrapper,
.pe-checkout__shipping .woocommerce-shipping-fields__field-wrapper,
.pe-checkout__shipping .woocommerce-additional-fields {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px 18px;
}
.pe-checkout__customer .woocommerce-billing-fields__field-wrapper > .form-row-wide,
.pe-checkout__customer .woocommerce-billing-fields__field-wrapper > #billing_address_1_field,
.pe-checkout__customer .woocommerce-billing-fields__field-wrapper > #billing_address_2_field,
.pe-checkout__shipping .woocommerce-shipping-fields__field-wrapper > .form-row-wide,
.pe-checkout__shipping .woocommerce-additional-fields > .form-row-wide,
.pe-checkout .form-row.notes {
    grid-column: 1 / -1;
}

/* Heading dentro de shipping fields */
.pe-checkout__customer h3,
.pe-checkout__shipping h3 {
    font-family: 'Cambay', sans-serif;
    font-weight: 700; font-size: 16px;
    color: #0B0D10;
    margin: 0 0 4px;
    letter-spacing: -0.01em;
}

/* WC login form / coupon row inside checkout */
.pe-checkout .woocommerce-form-login,
.pe-checkout .woocommerce-form-coupon {
    background: #F7F8FA;
    border-radius: 12px;
    padding: 16px 18px;
    margin: 0 0 10px;
    border: 1px solid #F1F3F5;
}

/* ======================================================
 * SUMMARY (right rail) — aliases PHP head/rows/row/val/pix
 * ====================================================== */
.pe-summary__head {
    display: flex; justify-content: space-between; align-items: baseline;
    gap: 12px;
}
.pe-summary__rows {
    display: flex; flex-direction: column; gap: 10px;
    padding-top: 14px;
    border-top: 1px solid #F1F3F5;
}
.pe-summary__row {
    display: flex; justify-content: space-between; align-items: baseline;
    font-size: 13.5px;
    color: #6B7280;
    gap: 12px;
}
.pe-summary__row .pe-summary__val,
.pe-summary__row > .pe-summary__val {
    color: #0B0D10; font-weight: 600;
    text-align: right;
}
.pe-summary__row--total {
    padding-top: 14px; margin-top: 6px;
    border-top: 1px solid #E5E7EB;
    align-items: baseline;
}
.pe-summary__row--total > span:first-child {
    font-family: 'Cambay', sans-serif;
    font-weight: 700; font-size: 18px;
    color: #0B0D10;
}
.pe-summary__row--total .pe-summary__val {
    font-family: 'Cambay', sans-serif;
    font-weight: 700; font-size: 28px;
    color: #0B0D10;
    letter-spacing: -0.02em;
}
.pe-summary__pix {
    display: flex; align-items: center; gap: 6px;
    font-size: 12px;
    color: #0E7FBF;
    justify-content: flex-end;
}
.pe-summary__pix strong { color: #0E7FBF; font-weight: 700; }

/* Resetar tabela WC dentro do summary (shipping totals) */
.pe-summary__line-price table,
.pe-summary__val table {
    width: auto;
    margin: 0;
    border: 0;
    background: transparent;
}
.pe-summary__line-price table tr,
.pe-summary__val table tr,
.pe-summary__line-price table td,
.pe-summary__val table td {
    border: 0;
    background: transparent;
    padding: 0;
    font-size: 13px;
}

/* ======================================================
 * PAYMENT METHODS (step 3) — radios estilizadas
 * ====================================================== */
.pe-checkout-payment__title {
    font-family: 'Cambay', sans-serif;
    font-weight: 700; font-size: 18px;
    color: #0B0D10;
    margin: 0 0 14px;
    letter-spacing: -0.01em;
}
.pe-checkout-payment {
    background: transparent;
    border: 0;
    padding: 0;
}
.pe-checkout-payment-methods {
    list-style: none;
    margin: 0 0 18px;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.pe-checkout-payment-card {
    list-style: none;
    margin: 0;
    position: relative;
}
.pe-checkout-payment-card__label {
    display: flex; align-items: center; gap: 12px;
    padding: 14px 16px;
    background: #fff;
    border: 1.5px solid #E5E7EB;
    border-radius: 12px;
    cursor: pointer;
    transition: border-color .15s, background .15s;
}
.pe-checkout-payment-card__label input[type="radio"] {
    width: 18px; height: 18px;
    margin: 0;
    accent-color: #0E7FBF;
    flex-shrink: 0;
}
.pe-checkout-payment-card__title {
    flex: 1; min-width: 0;
    font-size: 14px; font-weight: 600;
    color: #0B0D10;
    display: inline-flex; align-items: center; gap: 8px;
}
.pe-checkout-payment-card__title img {
    max-height: 22px; width: auto;
}
.pe-checkout-payment-card__label:hover { border-color: #0B0D10; }
.pe-checkout-payment-card--recommended .pe-checkout-payment-card__label {
    border-color: #0E7FBF;
}
.pe-checkout-payment-card:has(input[type="radio"]:checked) .pe-checkout-payment-card__label {
    background: #F0FAFF;
    border-color: #0E7FBF;
    box-shadow: 0 0 0 3px #E6F4FB;
}
.pe-checkout-payment-card__box {
    background: #F7F8FA;
    border-radius: 10px;
    padding: 14px 16px;
    margin: 8px 0 0;
    font-size: 13px;
    color: #2B2F36;
    line-height: 1.5;
}
.pe-checkout-payment-card__box p { margin: 0 0 8px; }
.pe-checkout-payment-card__box p:last-child { margin-bottom: 0; }
.pe-checkout-payment-card__badge {
    margin-left: auto;
    font-size: 10px;
    font-weight: 700;
    padding: 3px 8px;
    border-radius: 999px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.pe-checkout-place-order {
    margin-top: 18px;
    padding: 0;
    border: 0;
    background: transparent;
}
.pe-checkout-place-order .woocommerce-terms-and-conditions-wrapper {
    margin-bottom: 14px;
    font-size: 12px;
    color: #6B7280;
}
.pe-checkout-place-order #place_order {
    display: inline-flex; align-items: center; justify-content: center;
    width: 100%;
    padding: 16px 22px;
    background: #0B0D10;
    color: #fff;
    border: 1px solid #0B0D10;
    border-radius: 12px;
    font-size: 16px; font-weight: 700;
    cursor: pointer;
    transition: background .15s, transform .15s, box-shadow .15s;
}
.pe-checkout-place-order #place_order:hover {
    background: #000;
    transform: translateY(-1px);
    box-shadow: 0 10px 24px rgba(11,13,16,0.20);
}

/* Tabela de review (Resumo dentro do step 3) */
.pe-checkout-review {
    margin: 0 0 18px;
}
.pe-checkout-review table.shop_table {
    border: 0;
    background: transparent;
    margin: 0 0 14px;
    width: 100%;
    border-collapse: collapse;
}
.pe-checkout-review table.shop_table th,
.pe-checkout-review table.shop_table td {
    border: 0;
    background: transparent;
    padding: 10px 0;
    font-size: 13px;
    color: #2B2F36;
    border-bottom: 1px solid #F1F3F5;
}
.pe-checkout-review table.shop_table tfoot th {
    font-family: 'Cambay', sans-serif;
    font-weight: 700;
    font-size: 14px;
    color: #0B0D10;
}
.pe-checkout-review table.shop_table tfoot .order-total td {
    font-size: 18px;
    color: #0B0D10;
    font-weight: 700;
}

/* WC notices */
.pe-checkout .woocommerce-NoticeGroup,
.pe-checkout > .woocommerce-error,
.pe-checkout > .woocommerce-info,
.pe-checkout > .woocommerce-message {
    grid-column: 1 / -1;
}

/* Connector entre steps no stepper */
.pe-checkout-stepper {
    flex-wrap: wrap;
    padding: 18px 0 8px;
}
.pe-checkout-stepper__connector {
    flex: 1;
    height: 1px;
    min-width: 24px;
    background: #E5E7EB;
    margin: 0 4px;
}
.pe-checkout-stepper__connector--done { background: #0E9F6E; }

/* ======================================================
 * ID FIX — Identificação / Detalhes de cobrança
 * Corrige espaçamentos absurdos no form-checkout.
 * Causa raiz:
 *   1) WC injeta padding 3px + margin 0 0 6px no <p class="form-row">.
 *   2) theme.css usa .woocommerce form .form-row input.input-text
 *      (specificity 0,3,2) que VENCE checkout.css (0,3,1) e força
 *      padding 12px 14px nos inputs (height 44 + padding 24 =
 *      conteudo de apenas 20px).
 *   3) Label herda line-height 24px do body sobre fonte 12px.
 *   4) .pe-checkout-step--current padding 25 + step__body margin-top
 *      22 + flex gap 18 empilham espacos demais.
 *
 * Estrategia: usar form.pe-checkout (0,3,2) para igualar theme.css
 * e .woocommerce form.pe-checkout (0,4,2) para vencer.
 * ====================================================== */

/* Form rows: zerar padding 3px e margin 6px do WC default */
form.pe-checkout .form-row,
form.pe-checkout p.form-row {
    margin: 0;
    padding: 0;
    line-height: 1.3;
}

/* Labels: 13px, cinza, margin-bottom 6 */
form.pe-checkout .form-row > label,
form.pe-checkout p.form-row > label {
    display: block;
    margin: 0 0 6px;
    padding: 0;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.3;
    color: #6B7280;
}
form.pe-checkout .form-row > label .required {
    color: #C62828;
    text-decoration: none;
    margin-left: 2px;
}
form.pe-checkout .form-row > label .optional {
    color: #9CA3AF;
    font-weight: 500;
    margin-left: 4px;
}

/* Inputs/selects/textareas: vencer theme.css (specificity 0,4,2) */
.woocommerce form.pe-checkout .form-row input.input-text,
.woocommerce form.pe-checkout .form-row textarea,
.woocommerce form.pe-checkout .form-row select,
.woocommerce form.pe-checkout .form-row .woocommerce-input-wrapper > input,
.woocommerce form.pe-checkout .form-row .woocommerce-input-wrapper > select {
    box-sizing: border-box;
    width: 100%;
    height: 44px;
    min-height: 44px;
    padding: 0 14px;
    margin: 0;
    border: 1px solid #E5E7EB;
    border-radius: 10px;
    background: #fff;
    font-family: inherit;
    font-size: 14px;
    line-height: 1.4;
    color: #0B0D10;
    outline: 0;
    box-shadow: none;
    transition: border-color .15s, box-shadow .15s;
}
.woocommerce form.pe-checkout .form-row textarea,
.woocommerce form.pe-checkout .form-row .woocommerce-input-wrapper > textarea {
    height: auto;
    min-height: 84px;
    padding: 10px 14px;
    line-height: 1.5;
}
.woocommerce form.pe-checkout .form-row input.input-text:focus,
.woocommerce form.pe-checkout .form-row textarea:focus,
.woocommerce form.pe-checkout .form-row select:focus,
.woocommerce form.pe-checkout .form-row .woocommerce-input-wrapper > input:focus {
    border-color: #1FB6FF;
    box-shadow: 0 0 0 3px #E6F4FB;
}

/* Wrapper interno do WC */
form.pe-checkout .form-row .woocommerce-input-wrapper {
    display: block;
    width: 100%;
    margin: 0;
    padding: 0;
}

/* Grid de billing/shipping: gap controlado + zero margem nas rows */
form.pe-checkout .pe-checkout__customer .woocommerce-billing-fields__field-wrapper,
form.pe-checkout .pe-checkout__shipping .woocommerce-shipping-fields__field-wrapper,
form.pe-checkout .pe-checkout__shipping .woocommerce-additional-fields__field-wrapper,
form.pe-checkout .pe-checkout__shipping .woocommerce-additional-fields {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px 18px;
    margin: 0;
    padding: 0;
}

/* Campos full-width dentro do grid */
form.pe-checkout .woocommerce-billing-fields__field-wrapper > .form-row-wide,
form.pe-checkout .woocommerce-billing-fields__field-wrapper > #billing_address_1_field,
form.pe-checkout .woocommerce-billing-fields__field-wrapper > #billing_address_2_field,
form.pe-checkout .woocommerce-billing-fields__field-wrapper > #billing_company_field,
form.pe-checkout .woocommerce-billing-fields__field-wrapper > #billing_cpf_field,
form.pe-checkout .woocommerce-billing-fields__field-wrapper > #billing_cnpj_field,
form.pe-checkout .woocommerce-shipping-fields__field-wrapper > .form-row-wide,
form.pe-checkout .woocommerce-additional-fields > .form-row-wide,
form.pe-checkout .woocommerce-additional-fields__field-wrapper > .form-row-wide,
form.pe-checkout .form-row.notes {
    grid-column: 1 / -1;
}

/* Containers verticais */
form.pe-checkout .woocommerce-billing-fields,
form.pe-checkout .woocommerce-shipping-fields,
form.pe-checkout .woocommerce-additional-fields {
    margin: 0;
    padding: 0;
}

/* Headings compactos */
form.pe-checkout .pe-checkout__customer h3,
form.pe-checkout .pe-checkout__shipping h3,
form.pe-checkout .woocommerce-additional-fields h3 {
    font-family: 'Cambay', sans-serif;
    font-weight: 700; font-size: 16px;
    line-height: 1.3;
    color: #0B0D10;
    margin: 0 0 4px;
    padding: 0;
    letter-spacing: -0.01em;
}

/* Step card: padding mais enxuto */
.pe-checkout .pe-checkout-step {
    padding: 22px 24px;
}
.pe-checkout .pe-checkout-step--current {
    padding: 21px 23px;
}
.pe-checkout .pe-checkout-step__body {
    margin-top: 16px;
    gap: 14px;
}
.pe-checkout .pe-checkout-step__header {
    gap: 12px;
}

/* Select2 alinhado a 44px */
.woocommerce form.pe-checkout .select2-container .select2-selection--single {
    height: 44px;
    min-height: 44px;
    border: 1px solid #E5E7EB;
    border-radius: 10px;
    background: #fff;
    box-sizing: border-box;
}
.woocommerce form.pe-checkout .select2-container--default .select2-selection--single .select2-selection__rendered {
    line-height: 42px;
    padding-left: 14px;
    color: #0B0D10;
    font-size: 14px;
}
.woocommerce form.pe-checkout .select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 42px;
    right: 6px;
}

/* form-row-first / form-row-last: grid controla largura */
form.pe-checkout .form-row.form-row-first,
form.pe-checkout .form-row.form-row-last {
    float: none;
    width: auto;
    margin: 0;
    padding: 0;
}

/* Customer/shipping wrappers */
form.pe-checkout .pe-checkout__customer,
form.pe-checkout .pe-checkout__shipping {
    gap: 12px;
}

/* ======================================================
 * CART CTA — "Continuar para Finalização" no BSummary
 * Vence a.button.alt.wc-forward (Storefront/WC default, 0,3,0)
 * usando selector com 5 classes (0,5,1) — sem !important.
 *
 * O template proceed-to-checkout-button.php emite:
 *   class="checkout-button button alt wc-forward pe-btn pe-btn--brand
 *          pe-btn--lg pe-btn--block pe-summary__cta"
 * ====================================================== */
a.checkout-button.pe-btn.pe-btn--brand.pe-summary__cta,
.pe-summary a.checkout-button.pe-btn.pe-btn--brand
{
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    height: 54px;
    line-height: 1;
    padding: 0 18px;
    margin: 0;
    background: #1FB6FF;
    color: #ffffff;
    border: 0;
    border-radius: 12px;
    font-family: inherit;
    font-size: 15px;
    font-weight: 700;
    text-align: center;
    text-decoration: none;
    text-shadow: none;
    box-shadow: none;
    cursor: pointer;
    transition: background .15s, transform .15s, box-shadow .15s;
}
a.checkout-button.pe-btn.pe-btn--brand.pe-summary__cta:hover,
.pe-summary a.checkout-button.pe-btn.pe-btn--brand:hover
{
    background: #0E9FE5;
    color: #ffffff;
    transform: translateY(-1px);
    box-shadow: 0 10px 24px rgba(31, 182, 255, 0.25);
}
a.checkout-button.pe-btn.pe-btn--brand.pe-summary__cta svg
{
    flex-shrink: 0;
}

/* ======================================================
 * CART FIX — Qty stepper (90/120x40, 2 botões − / + + input)
 * O CSS pe-cart-row__qty já existe (linha 172 deste arquivo).
 * Aqui complementamos com regras para o input nativo do WC
 * (input[name^="cart["]) e os botões injetados via JS.
 * ====================================================== */
.pe-cart-row__qty .quantity {
    display: inline-flex;
    align-items: stretch;
    width: 100%;
    height: 100%;
    background: transparent;
}
.pe-cart-row__qty .quantity .screen-reader-text,
.pe-cart-row__qty .quantity label.screen-reader-text {
    position: absolute !important;
    width: 1px; height: 1px;
    padding: 0; margin: -1px; overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap; border: 0;
}
.pe-cart-row__qty .pe-qty-btn {
    width: 38px;
    height: 100%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    border: 0;
    padding: 0;
    cursor: pointer;
    font-size: 18px;
    font-weight: 700;
    line-height: 1;
    color: #0B0D10;
    -webkit-appearance: none;
    appearance: none;
    transition: background .15s;
}
.pe-cart-row__qty .pe-qty-btn:hover { background: #F7F8FA; }
.pe-cart-row__qty .pe-qty-btn:disabled { opacity: 0.4; cursor: not-allowed; }
.pe-cart-row__qty .quantity input[type="number"].qty,
.pe-cart-row__qty .quantity input.qty,
.pe-cart-row__qty input[type="number"] {
    flex: 1;
    width: 44px;
    min-width: 0;
    height: 100%;
    padding: 0;
    margin: 0;
    border: 0;
    outline: 0;
    background: transparent;
    text-align: center;
    font-family: 'JetBrains Mono', monospace;
    font-size: 14px;
    font-weight: 600;
    color: #0B0D10;
    -moz-appearance: textfield;
    appearance: textfield;
    box-shadow: none;
}
.pe-cart-row__qty .quantity input[type="number"]::-webkit-outer-spin-button,
.pe-cart-row__qty .quantity input[type="number"]::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* ======================================================
 * CHECKOUT PAYMENT + SUMMARY MOBILE FIX
 * Overrides para grid 3-col de payment methods e sticky
 * summary. Append-only (última regra ganha). Cobre tanto
 * .pe-checkout-payment-methods (container custom) quanto
 * ul.wc_payment_methods.payment_methods (template WC native).
 * ====================================================== */

/* 1. Payment methods grid 3-col (desktop).
 * O !important em `display` é necessário porque o WC core injeta inline
 * style="display: block" na <ul.wc_payment_methods> via JS após
 * "updated_checkout". As demais propriedades não precisam.
 * Cobre ambos os containers: .pe-checkout-payment-methods (custom) e
 * ul.wc_payment_methods (template default).
 */
ul.wc_payment_methods.payment_methods,
.pe-checkout-payment-methods,
.pe-checkout-payment .wc_payment_methods,
.pe-checkout-review .wc_payment_methods
{
    display: grid !important;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    padding: 0;
    margin: 0 0 18px;
    list-style: none;
}

/* 2. Card visual — neutro default; outline brand quando selecionado */
ul.wc_payment_methods.payment_methods > li.wc_payment_method,
.pe-checkout-payment-methods > li.wc_payment_method,
.pe-checkout-payment-methods > li.pe-checkout-payment-card {
    border: 1px solid #E5E7EB;
    border-radius: 14px;
    padding: 14px;
    background: #fff;
    list-style: none;
    cursor: pointer;
    position: relative;
    transition: border-color 0.15s, box-shadow 0.15s, background 0.15s;
    margin: 0;
}
ul.wc_payment_methods.payment_methods > li.wc_payment_method:hover,
.pe-checkout-payment-methods > li.wc_payment_method:hover {
    border-color: #0B0D10;
}
ul.wc_payment_methods.payment_methods > li.wc_payment_method:has(input[type="radio"]:checked),
.pe-checkout-payment-methods > li:has(input[type="radio"]:checked) {
    border-color: #1FB6FF;
    background: #F0FAFF;
    box-shadow: 0 0 0 3px rgba(31,182,255,0.12);
}

/* 3. Label do método — horizontal, sem alterar peso do h3 interno */
ul.wc_payment_methods.payment_methods > li.wc_payment_method > label {
    display: flex;
    align-items: center;
    gap: 10px;
    font-weight: 600;
    font-size: 14px;
    color: #0B0D10;
    cursor: pointer;
    margin: 0;
}

/* 4. Payment_box (expandido) — ocupa toda a linha do grid
 *    quando o método selecionado expande, em vez de fazer o
 *    card ficar gigante na sua coluna. */
ul.wc_payment_methods.payment_methods > li.wc_payment_method .payment_box {
    margin-top: 12px;
    padding: 12px;
    background: #F7F8FA;
    border-radius: 10px;
    font-size: 13px;
    color: #2B2F36;
    line-height: 1.5;
}
ul.wc_payment_methods.payment_methods > li.wc_payment_method .payment_box::before
{
    display: none;
    content: none;
    border: 0;
}
ul.wc_payment_methods.payment_methods > li.wc_payment_method:has(input[type="radio"]:checked) {
    grid-column: 1 / -1;
}

/* 5. Sticky summary — desktop. Specificity 0,3,0 vence .pe-summary (0,1,0)
 *    sem !important. Mobile.css restaura position:static em <=879px. */
@media (min-width: 880px)
{
    .pe-checkout__grid > .pe-summary,
    .pe-checkout__grid > .pe-summary--checkout,
    .pe-summary.pe-summary--checkout
    {
        position: sticky;
        top: 20px;
        align-self: start;
    }
}

/* CART CROSS-SELLS
 * Bloco "Complementa seu pedido" abaixo do BCart.
 * O template usa .pe-cart-crosssells (sem hifen — vs. legado .pe-cart-cross-sells)
 * + .pe-section-head + .pe-shop-grid (compartilhado com /loja/).
 * Grid 4 colunas desktop reusando .pe-shop-grid ul.products definido em shop.css.
 * Mobile (<=879px) cai para 2 colunas via mobile.css. */
.pe-cart-crosssells
{
    padding-top: 16px;
}
.pe-cart-crosssells .pe-section-head
{
    margin-bottom: 20px;
}
.pe-cart-crosssells .pe-section-head .pe-h2
{
    font-family: 'Cambay', sans-serif;
    font-weight: 700;
    font-size: 28px;
    line-height: 1.1;
    letter-spacing: -0.01em;
    color: #0B0D10;
    margin: 0 0 6px 0;
}
.pe-cart-crosssells .pe-section-head p
{
    color: #6B7280;
    font-size: 14px;
    margin: 0;
}
/* Override do default .pe-shop-grid (4 col, gap 20) caso queiramos gap menor
 * dentro do cart. Mantemos 4 colunas no desktop para alinhar com BShop. */
.pe-cart-crosssells .pe-shop-grid ul.products
{
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
}

/* AUTO CART UPDATE FEEDBACK
 * Estado visual durante atualizacao AJAX do carrinho.
 * Aplica opacidade + bloqueia pointer no grid e mostra um spinner
 * sutil no canto. Nao bloqueia scroll nem usa overlay full-screen
 * para preservar percepcao de fluidez.
 */
.pe-cart-grid
{
    position: relative;
    transition: opacity 0.18s ease;
}
.pe-cart-grid.is-loading
{
    opacity: 0.6;
    pointer-events: none;
}
.pe-cart-grid.is-loading::after
{
    content: "";
    position: absolute;
    top: 12px;
    right: 12px;
    width: 22px;
    height: 22px;
    border: 2px solid rgba(11, 13, 16, 0.15);
    border-top-color: #0B0D10;
    border-radius: 50%;
    animation: pe-cart-spin 0.7s linear infinite;
    pointer-events: none;
    z-index: 5;
}
@keyframes pe-cart-spin
{
    to
    {
        transform: rotate(360deg);
    }
}
/* Linha que esta sendo removida — fade out rapido para feedback imediato
 * antes da resposta AJAX substituir o DOM. */
.pe-cart-row.is-removing
{
    opacity: 0.4;
    transition: opacity 0.18s ease;
}
/* Acessibilidade: respeitar reduced-motion. */
@media (prefers-reduced-motion: reduce)
{
    .pe-cart-grid,
    .pe-cart-row.is-removing
    {
        transition: none;
    }
    .pe-cart-grid.is-loading::after
    {
        animation: none;
    }
}

/* ======================================================
 * CHECKOUT LOGIN+REGISTER FLOW
 * Renderizado por template-parts/checkout/login-prompt.php
 * Override em woocommerce/checkout/form-login.php.
 * Padrão Stripe Link / Shopify: prompt discreto colapsado
 * que expande para mini-form sem redirecionar.
 * Mobile-first: 1col, gap 12, h44. Tablet+ 2col input pair.
 * ====================================================== */

.pe-checkout-login-prompt
{
    background: linear-gradient(180deg, #F8FAFB 0%, #FFFFFF 100%);
    border: 1px solid #E5E7EB;
    border-radius: 14px;
    padding: 14px 16px;
    box-shadow: 0 1px 2px rgba(11,13,16,0.03);
    transition: border-color 0.18s ease, box-shadow 0.18s ease;
}
.pe-checkout-login-prompt.is-expanded
{
    border-color: #1FB6FF;
    box-shadow: 0 6px 18px rgba(31,182,255,0.10);
    padding-bottom: 18px;
}

.pe-checkout-login-prompt__bar
{
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}
.pe-checkout-login-prompt__icon
{
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: #EBF7FE;
    color: #0E7FBF;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.pe-checkout-login-prompt__text
{
    flex: 1;
    margin: 0;
    font-size: 14px;
    font-weight: 500;
    color: #2A2E35;
    line-height: 1.35;
}
.pe-checkout-login-prompt__toggle
{
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 36px;
    padding: 0 14px;
    background: #fff;
    border: 1px solid #0B0D10;
    border-radius: 999px;
    color: #0B0D10;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.15s, color 0.15s, transform 0.15s;
}
.pe-checkout-login-prompt__toggle:hover
{
    background: #0B0D10;
    color: #fff;
    transform: translateY(-1px);
}
.pe-checkout-login-prompt__chevron
{
    transition: transform 0.2s ease;
}
.pe-checkout-login-prompt.is-expanded .pe-checkout-login-prompt__chevron
{
    transform: rotate(180deg);
}

.pe-checkout-login-prompt__form
{
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px dashed #E5E7EB;
}
.pe-checkout-login-prompt__hint
{
    margin: 0;
    font-size: 13px;
    color: #6B7280;
    line-height: 1.45;
}
.pe-checkout-login-prompt__fields
{
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
}
.pe-checkout-login-prompt__field
{
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.pe-checkout-login-prompt__label
{
    font-size: 12px;
    font-weight: 600;
    color: #0B0D10;
    letter-spacing: 0.01em;
}
.pe-checkout-login-prompt__label-row
{
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 8px;
}
.pe-checkout-login-prompt__lostpw
{
    font-size: 11.5px;
    font-weight: 600;
    color: #0E7FBF;
    text-decoration: none;
    transition: color 0.15s;
}
.pe-checkout-login-prompt__lostpw:hover
{
    color: #0B0D10;
    text-decoration: underline;
}
.pe-checkout-login-prompt__input
{
    height: 44px;
    padding: 0 14px;
    border: 1px solid #E5E7EB;
    background: #fff;
    border-radius: 10px;
    font: inherit;
    font-size: 14px;
    color: #0B0D10;
    outline: 0;
    transition: border-color 0.15s, box-shadow 0.15s;
    width: 100%;
}
.pe-checkout-login-prompt__input:focus
{
    border-color: #1FB6FF;
    box-shadow: 0 0 0 3px #E6F4FB;
}
.pe-checkout-login-prompt__password-wrap
{
    position: relative;
    display: block;
}
.pe-checkout-login-prompt__input--password
{
    padding-right: 44px;
}
.pe-checkout-login-prompt__pw-toggle
{
    position: absolute;
    right: 6px;
    top: 50%;
    transform: translateY(-50%);
    width: 34px;
    height: 34px;
    border: 0;
    background: transparent;
    color: #9CA3AF;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    transition: color 0.15s, background 0.15s;
}
.pe-checkout-login-prompt__pw-toggle:hover
{
    color: #0B0D10;
    background: #F1F3F5;
}
.pe-checkout-login-prompt__pw-toggle.is-visible
{
    color: #1FB6FF;
}

.pe-checkout-login-prompt__row
{
    display: flex;
    flex-direction: column;
    gap: 10px;
    align-items: stretch;
}
.pe-checkout-login-prompt__remember
{
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: #2A2E35;
    cursor: pointer;
    user-select: none;
}
.pe-checkout-login-prompt__remember input
{
    width: 16px;
    height: 16px;
    accent-color: #1FB6FF;
}

.pe-checkout-login-prompt__submit,
button.pe-btn.pe-btn--brand.pe-checkout-login-prompt__submit
{
    height: 44px;
    padding: 0 22px;
    background: #1FB6FF;
    border: 1px solid #1FB6FF;
    color: #fff;
    font-size: 14px;
    font-weight: 600;
    border-radius: 10px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    transition: background 0.15s, transform 0.15s, box-shadow 0.15s;
    width: 100%;
}
.pe-checkout-login-prompt__submit:hover
{
    background: #0E7FBF;
    border-color: #0E7FBF;
    transform: translateY(-1px);
    box-shadow: 0 8px 20px rgba(14,127,191,0.20);
}
.pe-checkout-login-prompt__submit.is-loading,
.pe-checkout-login-prompt__submit:disabled
{
    opacity: 0.65;
    cursor: wait;
    transform: none;
    box-shadow: none;
}
.pe-checkout-login-prompt__spinner
{
    width: 14px;
    height: 14px;
    border: 2px solid rgba(255,255,255,0.35);
    border-top-color: #fff;
    border-radius: 50%;
    animation: peCheckoutLoginSpin 0.7s linear infinite;
}
@keyframes peCheckoutLoginSpin
{
    to { transform: rotate(360deg); }
}

.pe-checkout-login-prompt__feedback
{
    margin: 0;
    padding: 10px 12px;
    border-radius: 8px;
    font-size: 13px;
    line-height: 1.45;
}
.pe-checkout-login-prompt__feedback.is-error
{
    background: #FEF1F1;
    color: #B91C1C;
    border: 1px solid #FECACA;
}
.pe-checkout-login-prompt__feedback.is-success
{
    background: #ECFDF5;
    color: #047857;
    border: 1px solid #A7F3D0;
}

/* Tablet+ — fields lado a lado (e-mail / senha) */
@media (min-width: 600px)
{
    .pe-checkout-login-prompt
    {
        padding: 16px 20px;
    }
    .pe-checkout-login-prompt__fields
    {
        grid-template-columns: 1fr 1fr;
        gap: 14px;
    }
    .pe-checkout-login-prompt__row
    {
        flex-direction: row;
        justify-content: space-between;
        align-items: center;
    }
    .pe-checkout-login-prompt__submit
    {
        width: auto;
        min-width: 180px;
    }
}

/* Desktop — refinamento visual */
@media (min-width: 1024px)
{
    .pe-checkout-login-prompt
    {
        padding: 18px 22px;
    }
    .pe-checkout-login-prompt__text
    {
        font-size: 14.5px;
    }
}

/* ======================================================
 * CHECKOUT REGISTER POLISH (form-design)
 * Compactar campos de cadastro inline no checkout
 * (renderizados por woocommerce_signup_for_this_purchase_text
 * dentro do step 1). Reduzir gap + altura sem perder legibilidade.
 * ====================================================== */
.pe-checkout .create-account
{
    background: #F7F8FA;
    border: 1px solid #E5E7EB;
    border-radius: 12px;
    padding: 14px 16px;
    margin-top: 14px;
}
.pe-checkout .create-account .woocommerce-form__label-for-checkbox
{
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 13.5px;
    font-weight: 600;
    color: #0B0D10;
    margin: 0;
}
.pe-checkout .create-account .woocommerce-form__input-checkbox
{
    width: 16px;
    height: 16px;
    accent-color: #1FB6FF;
}
.pe-checkout .create-account .form-row
{
    margin-top: 10px;
}
.pe-checkout .create-account label
{
    font-size: 12px;
    font-weight: 600;
    color: #0B0D10;
    margin-bottom: 4px;
    display: block;
}
.pe-checkout .create-account input[type="password"],
.pe-checkout .create-account input[type="text"]
{
    height: 44px;
    padding: 0 14px;
    border: 1px solid #E5E7EB;
    background: #fff;
    border-radius: 10px;
    font-size: 14px;
    color: #0B0D10;
    width: 100%;
    transition: border-color 0.15s, box-shadow 0.15s;
}
.pe-checkout .create-account input[type="password"]:focus,
.pe-checkout .create-account input[type="text"]:focus
{
    border-color: #1FB6FF;
    box-shadow: 0 0 0 3px #E6F4FB;
    outline: 0;
}
