/* Boutique da Preta — Inovarti OneStepCheckout presentation layer.
   No checkout endpoints, form names or payment logic are changed here. */

.onestepcheckout-index-index .bp-announcement,
.onestepcheckout-index-index .bp-nav-wrap,
.onestepcheckout-index-index .bp-menu-trigger,
.onestepcheckout-index-index .bp-mobile-search,
.onestepcheckout-index-index .bp-search,
.onestepcheckout-index-index .bp-header-actions > .bp-icon-link[href*="wishlist"],
.onestepcheckout-index-index .bp-theme-toggle { display: none !important; }
.onestepcheckout-index-index .bp-header-main { grid-template-columns: minmax(150px, 220px) 1fr auto; min-height: 76px; }
.onestepcheckout-index-index .bp-logo img { height: 58px; }
.onestepcheckout-index-index .main-container { max-width: 1480px; padding-top: clamp(28px, 5vw, 58px); }
.onestepcheckout-index-index .breadcrumbs { display: none; }

.onestepcheckout { color: var(--bp-text); margin: 0 auto; max-width: 1420px; }
.onestepcheckout * { box-sizing: border-box; }

/* Checkout introduction and progress */
.bp-osc-intro { margin: 0 0 clamp(26px, 4vw, 44px); text-align: left; }
.bp-osc-intro-top { align-items: center; display: flex; justify-content: space-between; margin-bottom: 8px; }
.bp-osc-intro .bp-eyebrow { margin: 0; }
.bp-osc-intro h1 { font-family: var(--bp-display); font-size: clamp(2.35rem, 5vw, 4.7rem); font-weight: 500; letter-spacing: -.035em; line-height: 1; margin: 0; text-transform: none; }
#onestepcheckout-title-description { color: var(--bp-muted); font-size: 1rem; margin: 12px 0 0; max-width: 720px; }
.bp-osc-back { align-items: center; color: var(--bp-muted); display: inline-flex; font-size: .78rem; font-weight: 750; gap: 7px; text-decoration: none; }
.bp-osc-back:hover { color: var(--bp-primary); }
.bp-osc-progress { display: grid; gap: 10px; grid-template-columns: repeat(4, minmax(0, 1fr)); list-style: none; margin: 30px 0 0; max-width: 760px; padding: 0; }
.bp-osc-progress li { margin: 0; position: relative; }
.bp-osc-progress li::after { background: var(--bp-border); content: ""; height: 2px; left: calc(50% + 22px); position: absolute; right: calc(-50% + 22px); top: 19px; }
.bp-osc-progress li:last-child::after { display: none; }
.bp-osc-progress a { align-items: center; color: var(--bp-muted); display: flex; flex-direction: column; font-size: .7rem; font-weight: 800; gap: 7px; letter-spacing: .03em; position: relative; text-decoration: none; text-transform: uppercase; z-index: 1; }
.bp-osc-progress a span { align-items: center; background: var(--bp-card); border: 2px solid var(--bp-border); border-radius: 50%; color: var(--bp-muted); display: inline-flex; height: 40px; justify-content: center; transition: .2s ease; width: 40px; }
.bp-osc-progress li.is-complete a span { background: var(--bp-primary); border-color: var(--bp-primary); color: var(--bp-on-primary); }
.bp-osc-progress li.is-complete a span::before { content: "✓"; }
.bp-osc-progress li.is-complete a span { font-size: 0; }
.bp-osc-progress li.is-complete a span::before { font-size: .9rem; }
.bp-osc-progress li.is-current a { color: var(--bp-text); }
.bp-osc-progress li.is-current a span { border-color: var(--bp-primary); box-shadow: 0 0 0 5px var(--bp-soft); color: var(--bp-primary); }

/* Main layout */
.onestepcheckout .col3-set { margin: 0; }
.onestepcheckout .col3-set::after { display: none; }
.onestepcheckout .col3-set > form {
    align-items: start;
    display: grid;
    gap: clamp(16px, 2vw, 26px);
    grid-template-columns: minmax(0, 1.06fr) minmax(0, .96fr) minmax(330px, .9fr);
}
.onestepcheckout .col3-set .col-1,
.onestepcheckout .col3-set .col-2,
.onestepcheckout .col3-set .col-3 {
    background: var(--bp-card);
    border: 1px solid var(--bp-border);
    border-radius: var(--bp-radius);
    box-shadow: 0 12px 40px rgba(45, 24, 31, .06);
    float: none !important;
    margin: 0 !important;
    min-width: 0;
    overflow: hidden;
    padding: clamp(18px, 2.2vw, 28px);
    width: auto !important;
}
.onestepcheckout .col-3 { position: sticky; top: 96px; }
.onestepcheckout .opc,
.onestepcheckout .opc .section,
.onestepcheckout .opc .step { background: transparent; border: 0; margin: 0; padding: 0; }
.onestepcheckout .col-2 #onestepcheckout-payment-method-wrapper { border-top: 1px solid var(--bp-border); margin-top: 28px; padding-top: 28px; }

/* Section headings */
.onestepcheckout .step-title { align-items: center; background: transparent; border: 0; display: flex; gap: 11px; margin: 0 0 20px; padding: 0; }
.onestepcheckout .step-title h2 { color: var(--bp-text); font-family: var(--bp-sans); font-size: .96rem; font-weight: 850; letter-spacing: .01em; line-height: 1.2; margin: 0; text-transform: none; }
.onestepcheckout .onestepcheckout-number { align-items: center; background: var(--bp-primary); border: 0; border-radius: 50%; color: var(--bp-on-primary); display: inline-flex; flex: 0 0 32px; font-size: .78rem; height: 32px; justify-content: center; width: 32px; }
.onestepcheckout .osc-title { border: 0; color: var(--bp-muted); float: none; font-size: .7rem; font-weight: 850; height: auto; letter-spacing: .1em; line-height: 1.3; margin: 25px 0 12px; padding: 0; text-transform: uppercase; width: 100%; }
.onestepcheckout p.required { color: var(--bp-muted); float: none; font-size: .68rem; margin: -8px 0 14px; text-align: right; }

/* Form fields */
.onestepcheckout .form-list { margin: 0; padding: 0; }
.onestepcheckout .form-list li { margin: 0 0 14px; }
.onestepcheckout .form-list li.fields { display: grid; gap: 12px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.onestepcheckout .form-list .field,
.onestepcheckout .form-list .wide,
.onestepcheckout .form-list .input-box { float: none; margin: 0; width: 100%; }
.onestepcheckout .form-list label { color: var(--bp-text); float: none; font-size: .76rem; font-weight: 760; margin: 0 0 6px; padding: 0; text-align: left; }
.onestepcheckout .form-list label em { color: #C83D5C; float: none; margin-right: 3px; position: static; }
.onestepcheckout .form-list input.input-text,
.onestepcheckout .form-list input[type="email"],
.onestepcheckout .form-list input[type="password"],
.onestepcheckout .form-list input[type="tel"],
.onestepcheckout .form-list input[type="text"],
.onestepcheckout .form-list select,
.onestepcheckout .form-list textarea {
    background: var(--bp-page);
    border: 1px solid var(--bp-border);
    border-radius: 12px;
    color: var(--bp-text);
    font-size: .9rem;
    height: 50px;
    margin: 0 !important;
    max-width: none;
    padding: 11px 13px;
    width: 100% !important;
}
.onestepcheckout .form-list textarea { height: auto; min-height: 100px; resize: vertical; }
.onestepcheckout .form-list input:focus,
.onestepcheckout .form-list select:focus,
.onestepcheckout .form-list textarea:focus { background: var(--bp-card); border-color: var(--bp-primary); box-shadow: 0 0 0 4px var(--bp-soft); outline: 0; }
.onestepcheckout .form-list input.validation-failed,
.onestepcheckout .form-list select.validation-failed,
.onestepcheckout .form-list textarea.validation-failed { border-color: #C83D5C; box-shadow: 0 0 0 3px rgba(200, 61, 92, .12); }
.onestepcheckout .validation-advice { background: transparent; color: #B52E4C; font-size: .7rem; font-weight: 700; margin: 5px 0 0; min-height: 0; padding: 0; }
.onestepcheckout .form-list li.control { align-items: flex-start; display: flex; gap: 9px; }
.onestepcheckout .form-list li.control input.checkbox,
.onestepcheckout .form-list li.control input.radio { flex: 0 0 auto; float: none; height: 20px; margin: 1px 0 0 !important; width: 20px; }
.onestepcheckout .form-list li.control label { background: transparent !important; line-height: 1.45; margin: 0; min-width: 0 !important; padding: 0 !important; }
.onestepcheckout .form-list li.tipopessoa { background: var(--bp-soft); border-radius: 12px; display: flex; flex-wrap: wrap; gap: 8px 18px; padding: 12px; }
.onestepcheckout .form-list li.tipopessoa input { height: 20px; margin: 0; width: 20px; }
.onestepcheckout .form-list li.tipopessoa label { margin: 0; }
.onestepcheckout .nao-sei-cep { color: var(--bp-primary); display: inline-block; font-size: .72rem; margin: 8px 0 0; padding: 0; }
.onestepcheckout .customer-dob .dob-day,
.onestepcheckout .customer-dob .dob-month,
.onestepcheckout .customer-dob .dob-year { padding-right: 8px; width: 33.333% !important; }

/* Login for returning customers */
#onestepcheckout-authentification { background: var(--bp-soft); border: 1px solid var(--bp-border); border-radius: var(--bp-radius); margin: 0 0 24px; min-height: 0; padding: 18px; }
#onestepcheckout-authentification-container { height: auto; min-height: 80px; }
#onestepcheckout-login-form,
#onestepcheckout-forgot-password-form,
#onestepcheckout-forgot-password-success { min-height: 0; padding: 0; }
.onestepcheckout-auth-form-block { display: inline-block; margin: 0 10px 8px 0; padding: 0; vertical-align: bottom; }
.onestepcheckout-auth-form-block .input-box { width: 220px; }
.onestepcheckout-auth-form-block input.input-text { height: 46px; width: 220px !important; }
#onestepcheckout-authentification .button { min-height: 46px; }
#onestepcheckout-login-forgot-link,
.onestepcheckout-forgot-password-back { color: var(--bp-primary); font-size: .75rem; }

/* Shipping and payment choices */
.onestepcheckout .sp-methods { margin: 0; }
.onestepcheckout .sp-methods dt { color: var(--bp-muted); font-size: .72rem; font-weight: 850; letter-spacing: .06em; margin: 16px 0 7px; text-transform: uppercase; }
#onestepcheckout-shipping-method .sp-methods dt:first-child { margin-top: 0; }
#onestepcheckout-shipping-method .sp-methods dd { margin: 0; }
#onestepcheckout-shipping-method .sp-methods li { margin: 0 0 8px; position: relative; }
#onestepcheckout-shipping-method input.radio { height: 20px; left: 14px; margin: 0; position: absolute; top: 15px; width: 20px; z-index: 1; }
#onestepcheckout-shipping-method input.radio + label {
    align-items: center;
    background: var(--bp-page) !important;
    border: 1px solid var(--bp-border);
    border-radius: 12px;
    color: var(--bp-text);
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    line-height: 1.35;
    min-height: 50px;
    min-width: 0 !important;
    padding: 11px 13px 11px 46px !important;
    transition: border .2s ease, background .2s ease, box-shadow .2s ease;
}
#onestepcheckout-shipping-method input.radio:checked + label { background: var(--bp-soft) !important; border-color: var(--bp-primary); box-shadow: 0 0 0 2px var(--bp-soft); }

#onestepcheckout-payment-method .sp-methods > dt {
    align-items: center;
    background: var(--bp-page);
    border: 1px solid var(--bp-border);
    border-radius: 12px;
    display: flex;
    letter-spacing: 0;
    margin: 0 0 8px;
    min-height: 52px;
    padding: 8px 12px;
    text-transform: none;
    transition: .2s ease;
}
#onestepcheckout-payment-method .sp-methods > dt.bp-method-selected { background: var(--bp-soft); border-color: var(--bp-primary); }
#onestepcheckout-payment-method .sp-methods > dt input.radio { flex: 0 0 20px; height: 20px; margin: 0 10px 0 0; width: 20px; }
#onestepcheckout-payment-method .sp-methods > dt label { background: transparent !important; color: var(--bp-text); cursor: pointer; flex: 1; font-size: .82rem; font-weight: 800; min-width: 0 !important; padding: 7px 0 !important; }
#onestepcheckout-payment-method .sp-methods > dd { background: var(--bp-page); border: 1px solid var(--bp-border); border-radius: 12px; margin: -2px 0 12px; padding: 15px; }
#onestepcheckout-payment-method .sp-methods > dd:empty { display: none; }

/* PagBank fields */
.onestepcheckout .form-list.ricardomartins-pagbank { padding: 0; }
.onestepcheckout .form-list.ricardomartins-pagbank li { margin-bottom: 13px; }
.onestepcheckout .form-list.ricardomartins-pagbank input,
.onestepcheckout .form-list.ricardomartins-pagbank select { background: var(--bp-card) !important; border: 1px solid var(--bp-border) !important; border-radius: 12px !important; color: var(--bp-text); font-size: .88rem !important; height: 50px !important; padding: 10px 12px; width: 100% !important; }
.onestepcheckout .ricardomartins-pagbank-cc .ricardomartins-pagbank-cc-exp-cvv-row { column-gap: 12px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.onestepcheckout .ricardomartins-pagbank-cc-exp-cvv-row > div { min-width: 0; }
.onestepcheckout .ricardomartins-pagbank-cc-exp-cvv-row .input-text { width: 100% !important; }
.onestepcheckout .ricardomartins-pagbank .payment-info { background: var(--bp-soft); border-radius: 12px; color: var(--bp-text); font-size: .8rem; line-height: 1.6; padding: 14px; }
.onestepcheckout .ricardomartins-pagbank .payment-info p { margin: 0; }
.onestepcheckout .cvv-what-is-this { color: var(--bp-primary); display: inline-block; font-size: .7rem; margin-top: 5px; }
#card-brand { color: var(--bp-muted); font-size: .7rem; }
#card-msg { color: #B52E4C !important; font-size: .7rem; }

/* Order summary */
#onestepcheckout-review-table-cart-wrapper { overflow-x: auto; }
.onestepcheckout-cart-table { border: 0; color: var(--bp-text); font-size: .75rem; table-layout: auto; width: 100%; }
.onestepcheckout-cart-table thead th { border: 0; border-bottom: 1px solid var(--bp-border); color: var(--bp-muted); font-size: .64rem; font-weight: 850; padding: 7px 5px; text-transform: uppercase; }
.onestepcheckout-cart-table tbody td { border: 0; border-bottom: 1px solid var(--bp-border); padding: 12px 5px; vertical-align: middle; }
.onestepcheckout-cart-table .bp-osc-thumbnail { width: 58px; }
.onestepcheckout-cart-table .bp-osc-thumbnail img { border-radius: 9px; display: block; height: 68px; object-fit: cover; width: 54px; }
.onestepcheckout-cart-table .bp-osc-product { min-width: 120px; }
.onestepcheckout-cart-table .product-name { color: var(--bp-text); font-family: var(--bp-sans); font-size: .76rem; font-weight: 800; line-height: 1.35; margin: 0; }
.onestepcheckout-cart-table .item-options { color: var(--bp-muted); font-size: .65rem; margin: 4px 0 0; }
.onestepcheckout-cart-table .item-options dt,
.onestepcheckout-cart-table .item-options dd { display: inline; float: none; margin: 0 3px 0 0; }
.onestepcheckout-cart-table .bp-osc-qty { color: var(--bp-muted); text-align: center; white-space: nowrap; }
.onestepcheckout-cart-table .bp-osc-total { font-weight: 800; text-align: right; white-space: nowrap; }
.onestepcheckout-cart-table .bp-osc-remove { width: 24px; }
.onestepcheckout-cart-table .btn-remove2 { background: transparent !important; color: #B52E4C; display: block; font-size: 0; height: 32px; line-height: 32px; overflow: visible; text-align: center; text-indent: 0; width: 24px; }
.onestepcheckout-cart-table .btn-remove2::before { content: "×"; font-size: 1.35rem; }
.onestepcheckout-cart-table tfoot td,
.onestepcheckout-cart-table tfoot th { border: 0; color: var(--bp-muted); font-size: .72rem; padding: 6px 5px; }
.onestepcheckout-cart-table tfoot tr:last-child td,
.onestepcheckout-cart-table tfoot tr:last-child th,
.onestepcheckout-cart-table tfoot .grand-total td,
.onestepcheckout-cart-table tfoot .grand-total th { color: var(--bp-text); font-size: 1rem; font-weight: 900; padding-top: 13px; }

/* Coupon, notes, agreements and action */
#onestepcheckout-order-review-coupon-wrapper,
#onestepcheckout-order-review-comments-wrapper,
#onestepcheckout-order-review-terms-wrapper,
#onestepcheckout-order-review-newsletter-wrapper { border-top: 1px solid var(--bp-border); margin-top: 18px; padding-top: 16px; }
#onestepcheckout-review-coupon label,
#onestepcheckout-review-comments label { color: var(--bp-text); display: block; font-size: .72rem; font-weight: 800; margin-bottom: 7px; }
#onestepcheckout-review-coupon .field-row { display: flex; gap: 8px; }
#onestepcheckout-review-coupon .input-text { flex: 1; min-width: 0; }
#onestepcheckout-review-coupon .button { min-height: 48px; padding-inline: 16px; }
#onestepcheckout-review-terms ol { list-style: none; margin: 0; padding: 0; }
#onestepcheckout-review-terms li { align-items: flex-start; display: grid; gap: 8px; grid-template-columns: 20px 1fr; margin: 0 0 10px; }
#onestepcheckout-review-terms input { height: 20px; margin: 1px 0 0; width: 20px; }
#onestepcheckout-review-terms label { font-size: .72rem; line-height: 1.45; }
#onestepcheckout-review-newsletter label { font-size: .72rem; line-height: 1.45; }
#onestepcheckout-place-order { background: var(--bp-soft); border: 1px solid var(--bp-border); border-radius: 16px; margin-top: 18px; padding: 16px; }
#onestepcheckout-place-order::before { color: var(--bp-muted); content: "🔒 Ambiente seguro para finalizar sua compra"; display: block; font-size: .68rem; font-weight: 750; margin-bottom: 10px; text-align: center; }
#onestepcheckout-place-order-button { box-shadow: 0 12px 26px rgba(217, 79, 112, .22); font-size: .96rem; min-height: 56px; width: 100%; }
#onestepcheckout-place-order-button:hover { box-shadow: 0 15px 32px rgba(217, 79, 112, .28); }
.onestepcheckout-place-order-button-disabled { cursor: wait !important; opacity: .62; }
.onestepcheckout-place-order-please-wait { color: var(--bp-muted); float: none; font-size: .72rem; margin-top: 9px; text-align: center; }
.onestepcheckout-place-order-please-wait img { height: 16px; width: 16px; }

/* Feedback, AJAX and modal layers */
.onestepcheckout-error-msg,
.onestepcheckout-success-msg { border: 1px solid transparent; border-radius: 12px; font-size: .75rem; margin: 8px 0; padding: 11px 13px; }
.onestepcheckout-error-msg { background: #FFF0F3; border-color: #F3B8C6; color: #92243E; }
.onestepcheckout-success-msg { background: #EDF8F0; border-color: #B9DFC4; color: #286A3B; }
.onestepcheckout-overlay { background-color: rgba(255, 255, 255, .78); border-radius: 12px; }
html.bp-theme-dark .onestepcheckout-overlay { background-color: rgba(23, 17, 20, .78); }
.onestepcheckout-popup { background: var(--bp-card); border: 1px solid var(--bp-border); border-radius: var(--bp-radius); box-shadow: var(--bp-shadow); color: var(--bp-text); max-height: min(80vh, 720px); max-width: 680px; overflow: auto; padding: 24px; width: calc(100% - 32px); }
.onestepcheckout-popup-overlay { background: rgba(23, 17, 20, .66); }
.onestepcheckout-popup-accept { align-items: center; display: flex; gap: 14px; justify-content: flex-end; margin-top: 18px; }

@media (max-width: 1180px) {
    .onestepcheckout .col3-set > form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .onestepcheckout .col-3 { grid-column: 1 / -1; position: static; }
    #onestepcheckout-order-review { display: grid; gap: 0 24px; grid-template-columns: minmax(0, 1.2fr) minmax(280px, .8fr); }
    #onestepcheckout-order-review-cart-wrapper { grid-row: 1 / span 5; }
}

@media (max-width: 770px) {
    .onestepcheckout-index-index .bp-header-main { grid-template-columns: 1fr auto; padding-inline: 14px; }
    .onestepcheckout-index-index .bp-header-actions .skip-account { display: inline-flex; }
    .onestepcheckout-index-index .main-container { padding: 24px 14px 56px; }
    .bp-osc-intro-top { align-items: flex-start; }
    .bp-osc-intro h1 { font-size: clamp(2.25rem, 11vw, 3.7rem); }
    .bp-osc-progress { gap: 3px; margin-top: 24px; }
    .bp-osc-progress li::after { left: calc(50% + 18px); right: calc(-50% + 18px); top: 17px; }
    .bp-osc-progress a { font-size: .59rem; }
    .bp-osc-progress a span { height: 36px; width: 36px; }
    .onestepcheckout .col3-set > form { display: block; }
    .onestepcheckout .col3-set .col-1,
    .onestepcheckout .col3-set .col-2,
    .onestepcheckout .col3-set .col-3 { border-radius: 16px; margin-bottom: 14px !important; padding: 18px 15px; }
    #onestepcheckout-order-review { display: block; }
    #onestepcheckout-authentification { border-radius: 16px; }
    .onestepcheckout-auth-form-block { display: block; margin-right: 0; }
    .onestepcheckout-auth-form-block .input-box,
    .onestepcheckout-auth-form-block input.input-text { width: 100% !important; }
    #onestepcheckout-login-form .button { width: 100%; }
}

@media (max-width: 520px) {
    .bp-osc-intro-top { gap: 14px; }
    .bp-osc-back { font-size: .68rem; }
    .onestepcheckout .form-list li.fields { grid-template-columns: 1fr; }
    .onestepcheckout .ricardomartins-pagbank-cc .ricardomartins-pagbank-cc-exp-cvv-row { grid-template-columns: 1fr; }
    .onestepcheckout-cart-table { font-size: .68rem; }
    .onestepcheckout-cart-table thead .thumbnail { display: none; }
    .onestepcheckout-cart-table .bp-osc-thumbnail { width: 46px; }
    .onestepcheckout-cart-table .bp-osc-thumbnail img { height: 56px; width: 44px; }
    .onestepcheckout-cart-table .bp-osc-product { min-width: 92px; }
    .onestepcheckout-cart-table .product-name { font-size: .7rem; }
    .onestepcheckout-cart-table tbody td { padding-inline: 3px; }
    #onestepcheckout-review-coupon .field-row { align-items: stretch; flex-direction: column; }
    #onestepcheckout-review-coupon .button { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
    .bp-osc-progress a span,
    #onestepcheckout-shipping-method input.radio + label,
    #onestepcheckout-payment-method .sp-methods > dt { transition: none; }
}
