/* Fibay Checkout · Carrito y Finalizar compra con la identidad de Fibay Merchan.
   Paleta: azul noche #0d1340 · azul #5271ff · lima #c2fb76 · borde #dce0ff · fondo suave #f5f6ff */
body.fb-woo { --fb-navy:#0d1340; --fb-blue:#5271ff; --fb-blue-d:#3a57e8; --fb-lime:#c2fb76; --fb-line:#dce0ff; --fb-soft:#f5f6ff; --fb-mute:#8890c0; --fb-text:#3d4475; --fb-red:#e11d48; background:#fff; }
body.fb-woo,
body.fb-woo .woocommerce { font-family:'Poppins',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif; color:var(--fb-text); }

/* contenedor y título */
body.fb-woo .site-content > .ast-container,
body.fb-woo #content > .ast-container { max-width:1180px; padding-left:20px; padding-right:20px; }
body.fb-woo #primary { margin:0; padding:0; width:100%; }
body.fb-woo .entry-header { margin:0 0 6px; }
body.fb-woo .entry-title { font-family:'Poppins',sans-serif; font-weight:800; font-size:clamp(28px,4vw,40px); line-height:1.1; letter-spacing:-.02em; color:var(--fb-navy); margin:34px 0 18px; }
body.fb-woo .entry-title::after { content:""; display:block; width:54px; height:5px; border-radius:99px; background:var(--fb-lime); margin-top:12px; }
body.fb-woo .entry-content { margin-bottom:56px; }

/* avisos */
body.fb-woo .woocommerce-info,
body.fb-woo .woocommerce-message,
body.fb-woo .woocommerce-error { border:1.5px solid var(--fb-line); border-top:1.5px solid var(--fb-line); border-radius:16px; background:var(--fb-soft); color:var(--fb-navy); padding:14px 18px 14px 48px; font-weight:500; margin:0 0 22px; }
body.fb-woo .woocommerce-info::before,
body.fb-woo .woocommerce-message::before { color:var(--fb-blue); top:14px; left:18px; }
body.fb-woo .woocommerce-error { background:#fff1f3; border-color:#ffc9d2; color:#8f1230; }
body.fb-woo .woocommerce-error::before { color:var(--fb-red); }
body.fb-woo .woocommerce-info a,
body.fb-woo .woocommerce-message a { color:var(--fb-blue); font-weight:700; }
body.fb-woo .woocommerce-message a.button { color:var(--fb-navy); }

/* botones */
body.fb-woo .woocommerce a.button,
body.fb-woo .woocommerce button.button,
body.fb-woo .woocommerce input.button,
body.fb-woo .woocommerce #respond input#submit,
body.fb-woo #place_order,
body.fb-woo .wc-proceed-to-checkout a.checkout-button { font-family:'Poppins',sans-serif; font-weight:700; font-size:14.5px; line-height:1.2; border:0; border-radius:999px; padding:14px 26px; background:var(--fb-navy); color:#fff; cursor:pointer; transition:transform .15s,box-shadow .2s,background .2s,color .2s; box-shadow:none; }
body.fb-woo .woocommerce a.button:hover,
body.fb-woo .woocommerce button.button:hover,
body.fb-woo .woocommerce input.button:hover { background:var(--fb-blue); color:#fff; transform:translateY(-1px); box-shadow:0 8px 20px rgba(82,113,255,.28); }
body.fb-woo .woocommerce button.button:disabled,
body.fb-woo .woocommerce button.button[disabled] { opacity:.45; cursor:not-allowed; transform:none; box-shadow:none; background:var(--fb-navy); color:#fff; }
/* acción principal: lima */
body.fb-woo #place_order,
body.fb-woo .wc-proceed-to-checkout a.checkout-button { display:block; width:100%; text-align:center; background:var(--fb-lime); color:var(--fb-navy); font-size:16px; font-weight:800; padding:17px 24px; }
body.fb-woo #place_order:hover,
body.fb-woo .wc-proceed-to-checkout a.checkout-button:hover { background:#d4ff98; color:var(--fb-navy); transform:translateY(-1px); box-shadow:0 10px 24px rgba(194,251,118,.5); }
body.fb-woo .woocommerce .return-to-shop a.button { background:var(--fb-lime); color:var(--fb-navy); }

/* campos */
body.fb-woo .woocommerce form .form-row { margin:0 0 16px; padding:0; }
body.fb-woo .woocommerce form .form-row label { font-weight:600; font-size:13px; color:var(--fb-navy); margin-bottom:6px; line-height:1.3; }
body.fb-woo .woocommerce form .form-row .required { color:var(--fb-red); text-decoration:none; }
body.fb-woo .woocommerce form .form-row input.input-text,
body.fb-woo .woocommerce form .form-row textarea,
body.fb-woo .woocommerce form .form-row select,
body.fb-woo .woocommerce .coupon .input-text,
body.fb-woo .woocommerce-cart table.cart td.actions .coupon .input-text,
body.fb-woo .select2-container--default .select2-selection--single { width:100%; box-sizing:border-box; height:auto; min-height:48px; padding:12px 14px; border:1.5px solid var(--fb-line); border-radius:12px; background:#fff; color:var(--fb-navy); font-family:inherit; font-size:15px; box-shadow:none; transition:border-color .2s,box-shadow .2s; }
body.fb-woo .woocommerce form .form-row textarea { min-height:96px; resize:vertical; }
body.fb-woo .select2-container--default .select2-selection--single { display:flex; align-items:center; padding:0 14px; }
body.fb-woo .select2-container--default .select2-selection--single .select2-selection__rendered { padding:0; line-height:1.4; color:var(--fb-navy); }
body.fb-woo .select2-container--default .select2-selection--single .select2-selection__arrow { height:46px; right:10px; }
body.fb-woo .woocommerce form .form-row input.input-text:focus,
body.fb-woo .woocommerce form .form-row textarea:focus,
body.fb-woo .woocommerce form .form-row select:focus,
body.fb-woo .woocommerce .coupon .input-text:focus,
body.fb-woo .select2-container--open .select2-selection--single { outline:0; border-color:var(--fb-blue); box-shadow:0 0 0 4px rgba(82,113,255,.14); }
body.fb-woo .woocommerce form .form-row.woocommerce-invalid input.input-text,
body.fb-woo .woocommerce form .form-row.woocommerce-invalid select { border-color:var(--fb-red); }
body.fb-woo .select2-dropdown { border:1.5px solid var(--fb-line); border-radius:12px; overflow:hidden; box-shadow:0 14px 34px rgba(13,19,64,.14); }
body.fb-woo .select2-results__option--highlighted[aria-selected],
body.fb-woo .select2-results__option--highlighted { background:var(--fb-blue)!important; color:#fff!important; }
body.fb-woo ::placeholder { color:#aab0d6; }
body.fb-woo input[type=checkbox],
body.fb-woo input[type=radio] { accent-color:var(--fb-blue); }

/* ─── CARRITO ─── */
body.fb-woo .woocommerce-cart-form { margin:0 0 28px; }
body.fb-woo table.shop_table { border:1.5px solid var(--fb-line)!important; border-radius:20px!important; border-collapse:separate!important; border-spacing:0; overflow:hidden; background:#fff; margin:0; }
body.fb-woo table.shop_table th { background:var(--fb-soft); color:var(--fb-navy); font-size:12px; font-weight:700; letter-spacing:.8px; text-transform:uppercase; padding:14px 16px; border:0; border-bottom:1.5px solid var(--fb-line); }
body.fb-woo table.shop_table td { padding:16px; border:0; border-top:1px solid #eceeff; color:var(--fb-text); vertical-align:middle; background:transparent; }
body.fb-woo table.shop_table tr:first-child td { border-top:0; }
body.fb-woo table.cart td.product-name a { color:var(--fb-navy); font-weight:700; text-decoration:none; }
body.fb-woo table.cart td.product-name a:hover { color:var(--fb-blue); }
body.fb-woo table.cart td.product-name dl.variation { margin:6px 0 0; font-size:12.5px; color:var(--fb-mute); }
body.fb-woo table.cart td.product-name dl.variation dt { font-weight:600; color:var(--fb-text); }
body.fb-woo table.cart td.product-name dl.variation dd a { color:var(--fb-blue); font-weight:600; }
body.fb-woo table.cart td.product-thumbnail img { width:72px; height:72px; object-fit:contain; border-radius:14px; background:var(--fb-soft); padding:4px; }
body.fb-woo table.cart td.product-price,
body.fb-woo table.cart td.product-subtotal { font-weight:700; color:var(--fb-navy); white-space:nowrap; }
body.fb-woo table.cart td.product-subtotal { color:var(--fb-blue); }
body.fb-woo table.cart td.product-remove a.remove { display:inline-flex; align-items:center; justify-content:center; width:28px; height:28px; border-radius:50%; background:var(--fb-soft); color:var(--fb-mute)!important; font-size:18px; line-height:1; font-weight:600; transition:all .2s; }
body.fb-woo table.cart td.product-remove a.remove:hover { background:var(--fb-red); color:#fff!important; }
body.fb-woo .quantity .qty { width:84px; min-height:44px; padding:8px 10px; text-align:center; border:1.5px solid var(--fb-line); border-radius:12px; font-weight:700; color:var(--fb-navy); font-family:inherit; }
body.fb-woo .quantity .qty:focus { outline:0; border-color:var(--fb-blue); box-shadow:0 0 0 4px rgba(82,113,255,.14); }
body.fb-woo table.cart td.actions { background:var(--fb-soft); padding:16px; }
body.fb-woo table.cart td.actions .coupon { display:inline-flex; gap:10px; align-items:center; float:left; }
body.fb-woo table.cart td.actions .coupon .input-text { width:200px; min-height:46px; }
body.fb-woo table.cart td.actions > .button { float:right; background:#fff; color:var(--fb-navy); border:1.5px solid var(--fb-line); }
body.fb-woo table.cart td.actions > .button:hover { background:var(--fb-navy); color:#fff; border-color:var(--fb-navy); }
body.fb-woo .cart-collaterals { display:flex; justify-content:flex-end; }
body.fb-woo .cart-collaterals .cart_totals { float:none; width:100%; max-width:430px; border:1.5px solid var(--fb-line); border-radius:20px; background:var(--fb-soft); padding:22px 22px 24px; }
body.fb-woo .cart_totals h2 { font-family:'Poppins',sans-serif; font-size:20px; font-weight:800; color:var(--fb-navy); margin:0 0 8px; padding:0; background:transparent; border:0; }
body.fb-woo .cart_totals table.shop_table { border:0!important; border-radius:0!important; background:transparent; }
body.fb-woo .cart_totals table.shop_table th,
body.fb-woo .cart_totals table.shop_table td { background:transparent; padding:12px 0; text-transform:none; letter-spacing:0; font-size:14px; border-top:1px solid #e0e4ff; border-bottom:0; }
body.fb-woo .cart_totals table.shop_table tr:first-child th,
body.fb-woo .cart_totals table.shop_table tr:first-child td { border-top:0; }
body.fb-woo .cart_totals .order-total th,
body.fb-woo .cart_totals .order-total td { font-size:18px; font-weight:800; color:var(--fb-navy); }
body.fb-woo .cart_totals .order-total td { color:var(--fb-blue); }
body.fb-woo .wc-proceed-to-checkout { padding:18px 0 0; }
body.fb-woo .cart-empty { font-size:17px; font-weight:600; color:var(--fb-navy); }

/* ─── FINALIZAR COMPRA ─── */
body.fb-woo form.checkout { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); gap:0 36px; align-items:start; }
body.fb-woo form.checkout #customer_details { grid-column:1; float:none; width:100%; }
body.fb-woo form.checkout #customer_details .col-1,
body.fb-woo form.checkout #customer_details .col-2 { float:none; width:100%; max-width:none; padding:0; }
body.fb-woo form.checkout #order_review_heading { grid-column:2; grid-row:1; margin:0; }
body.fb-woo form.checkout #order_review { grid-column:2; grid-row:1; float:none; width:100%; position:sticky; top:96px; border:1.5px solid var(--fb-line); border-radius:22px; background:var(--fb-soft); padding:24px; }
body.fb-woo form.checkout #order_review_heading { display:none; }
body.fb-woo form.checkout #order_review::before { content:"Tu pedido"; display:block; font-weight:800; font-size:20px; color:var(--fb-navy); margin-bottom:14px; }
body.fb-woo .woocommerce-billing-fields h3,
body.fb-woo .woocommerce-additional-fields h3,
body.fb-woo .woocommerce-shipping-fields h3 { font-family:'Poppins',sans-serif; font-size:20px; font-weight:800; color:var(--fb-navy); margin:0 0 16px; padding:0 0 12px; border-bottom:1.5px solid var(--fb-line); }
body.fb-woo .woocommerce-billing-fields__field-wrapper,
body.fb-woo .woocommerce-additional-fields__field-wrapper { display:grid; grid-template-columns:1fr 1fr; gap:0 16px; }
body.fb-woo .woocommerce-billing-fields__field-wrapper .form-row { float:none; width:auto; grid-column:span 2; }
body.fb-woo .woocommerce-billing-fields__field-wrapper .form-row-first,
body.fb-woo .woocommerce-billing-fields__field-wrapper .form-row-last { grid-column:span 1; }
body.fb-woo .woocommerce-additional-fields { margin-top:10px; }
body.fb-woo .woocommerce-checkout-review-order-table { border:0!important; border-radius:0!important; background:transparent; }
body.fb-woo .woocommerce-checkout-review-order-table th,
body.fb-woo .woocommerce-checkout-review-order-table td { background:transparent; padding:12px 0; border-top:1px solid #e0e4ff; font-size:14px; text-transform:none; letter-spacing:0; }
body.fb-woo .woocommerce-checkout-review-order-table thead th { border-top:0; font-size:12px; text-transform:uppercase; letter-spacing:.8px; color:var(--fb-mute); font-weight:700; padding-top:0; }
body.fb-woo .woocommerce-checkout-review-order-table td.product-name { color:var(--fb-navy); font-weight:600; }
body.fb-woo .woocommerce-checkout-review-order-table dl.variation { margin:6px 0 0; font-size:12.5px; color:var(--fb-mute); font-weight:400; }
body.fb-woo .woocommerce-checkout-review-order-table dl.variation dt { font-weight:600; color:var(--fb-text); }
body.fb-woo .woocommerce-checkout-review-order-table .order-total th,
body.fb-woo .woocommerce-checkout-review-order-table .order-total td { font-size:18px; font-weight:800; color:var(--fb-navy); }
body.fb-woo .woocommerce-checkout-review-order-table .order-total td { color:var(--fb-blue); }
body.fb-woo #payment { background:transparent; border-radius:0; margin-top:6px; }
body.fb-woo #payment ul.payment_methods { padding:0 0 4px; border:0; margin:0; }
body.fb-woo #payment ul.payment_methods li { list-style:none; margin:0 0 10px; padding:14px 16px; border:1.5px solid var(--fb-line); border-radius:14px; background:#fff; font-weight:600; color:var(--fb-navy); }
body.fb-woo #payment ul.payment_methods li label { display:inline; font-weight:700; margin:0; }
body.fb-woo #payment div.payment_box { background:var(--fb-soft); color:var(--fb-text); border-radius:12px; margin:10px 0 0; font-size:13.5px; font-weight:400; }
body.fb-woo #payment div.payment_box::before { display:none; }
body.fb-woo #payment .woocommerce-notice,
body.fb-woo #payment li.woocommerce-info { border-radius:14px; padding:14px 18px; margin:0 0 12px; }
body.fb-woo #payment .form-row.place-order { padding:6px 0 0; margin:0; }
body.fb-woo .woocommerce-privacy-policy-text p { font-size:12.5px; line-height:1.55; color:var(--fb-mute); margin:6px 0 14px; }
body.fb-woo .woocommerce-privacy-policy-text a,
body.fb-woo .woocommerce-terms-and-conditions-checkbox-text a { color:var(--fb-blue); font-weight:700; }
body.fb-woo .woocommerce-terms-and-conditions-wrapper .form-row { margin:0 0 14px; }
body.fb-woo .woocommerce-terms-and-conditions-wrapper label { font-weight:500; font-size:13px; }
body.fb-woo .woocommerce-form-coupon-toggle .woocommerce-info { margin-bottom:18px; }
body.fb-woo form.checkout_coupon { border:1.5px solid var(--fb-line); border-radius:16px; padding:18px; background:var(--fb-soft); margin:0 0 22px; }

/* pedido recibido */
body.fb-woo .woocommerce-order-received .woocommerce-notice--success,
body.fb-woo .woocommerce-thankyou-order-received { font-size:18px; font-weight:700; color:var(--fb-navy); background:#f1ffe0; border:1.5px solid var(--fb-lime); border-radius:16px; padding:16px 20px; }
body.fb-woo ul.order_details { display:flex; flex-wrap:wrap; gap:14px; padding:0; margin:0 0 26px; list-style:none; }
body.fb-woo ul.order_details li { border:1.5px solid var(--fb-line); border-radius:14px; padding:12px 16px; background:var(--fb-soft); font-size:12px; text-transform:uppercase; letter-spacing:.6px; color:var(--fb-mute); border-right:1.5px solid var(--fb-line); margin:0; }
body.fb-woo ul.order_details li strong { display:block; margin-top:4px; font-size:15px; text-transform:none; letter-spacing:0; color:var(--fb-navy); }

/* móvil */
@media (max-width:860px) {
	body.fb-woo form.checkout { display:block; }
	body.fb-woo form.checkout #order_review { position:static; margin-top:26px; padding:20px 18px; }
	body.fb-woo .woocommerce-billing-fields__field-wrapper { grid-template-columns:1fr; }
	body.fb-woo .woocommerce-billing-fields__field-wrapper .form-row-first,
	body.fb-woo .woocommerce-billing-fields__field-wrapper .form-row-last { grid-column:span 1; }
	body.fb-woo .cart-collaterals .cart_totals { max-width:none; }
}
@media (max-width:768px) {
	body.fb-woo table.shop_table_responsive tr { display:block; border-top:1px solid #eceeff; padding:10px 6px; }
	body.fb-woo table.shop_table_responsive tr:first-child { border-top:0; }
	body.fb-woo table.shop_table_responsive tr td { display:flex; justify-content:space-between; align-items:center; gap:14px; border:0; padding:8px 10px; text-align:right!important; }
	body.fb-woo table.shop_table_responsive tr td::before { color:var(--fb-mute); font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.6px; text-align:left; float:none; }
	body.fb-woo table.cart td.product-thumbnail { display:none; }
	body.fb-woo table.cart td.actions .coupon { float:none; display:flex; width:100%; margin-bottom:10px; }
	body.fb-woo table.cart td.actions .coupon .input-text { flex:1; width:auto; }
	body.fb-woo table.cart td.actions > .button { float:none; width:100%; }
}

/* ─── refuerzos de especificidad frente a Astra/WooCommerce ─── */
body.fb-woo.woocommerce-cart .cart-collaterals .cart_totals > h2 { margin:0 0 8px!important; padding:0 0 12px!important; border:0!important; background:transparent!important; font-size:20px!important; }
body.fb-woo.woocommerce-cart .cart-collaterals .cart_totals { padding:24px 26px 26px!important; }
body.fb-woo.woocommerce-checkout form.checkout { display:grid!important; grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr)!important; gap:0 40px!important; align-items:start; }
body.fb-woo.woocommerce-checkout form.checkout > .woocommerce-NoticeGroup,
body.fb-woo.woocommerce-checkout form.checkout > .woocommerce-error { grid-column:1 / -1; }
body.fb-woo.woocommerce-checkout form.checkout #customer_details,
body.fb-woo.woocommerce-checkout form.checkout #customer_details .col-1,
body.fb-woo.woocommerce-checkout form.checkout #customer_details .col-2 { float:none!important; width:100%!important; max-width:none!important; margin:0!important; padding:0!important; }
body.fb-woo.woocommerce-checkout form.checkout #customer_details { grid-column:1; grid-row:1; }
body.fb-woo.woocommerce-checkout form.checkout #order_review { grid-column:2!important; grid-row:1!important; float:none!important; width:100%!important; margin:0!important; box-sizing:border-box; }
body.fb-woo.woocommerce-checkout .woocommerce-billing-fields__field-wrapper { display:grid!important; grid-template-columns:1fr 1fr; gap:0 16px; }
body.fb-woo.woocommerce-checkout .woocommerce-billing-fields__field-wrapper .form-row { float:none!important; width:auto!important; grid-column:span 2; margin:0 0 16px!important; }
body.fb-woo.woocommerce-checkout .woocommerce-billing-fields__field-wrapper .form-row-first,
body.fb-woo.woocommerce-checkout .woocommerce-billing-fields__field-wrapper .form-row-last { grid-column:span 1; }
body.fb-woo.woocommerce-checkout .woocommerce-billing-fields h3,
body.fb-woo.woocommerce-checkout .woocommerce-additional-fields h3 { width:100%!important; }
body.fb-woo.woocommerce-checkout .woocommerce form .form-row label,
body.fb-woo.woocommerce-checkout form .form-row label { display:block; }
body.fb-woo.woocommerce-checkout #order_review .woocommerce-checkout-review-order-table th,
body.fb-woo.woocommerce-checkout #order_review .woocommerce-checkout-review-order-table td { background:transparent!important; }
@media (max-width:860px) {
	body.fb-woo.woocommerce-checkout form.checkout { display:block!important; }
	body.fb-woo.woocommerce-checkout .woocommerce-billing-fields__field-wrapper { grid-template-columns:1fr; }
	body.fb-woo.woocommerce-checkout .woocommerce-billing-fields__field-wrapper .form-row-first,
	body.fb-woo.woocommerce-checkout .woocommerce-billing-fields__field-wrapper .form-row-last { grid-column:span 1; }
	body.fb-woo.woocommerce-checkout form.checkout #order_review { margin-top:26px!important; position:static; }
}
body.fb-woo table.shop_table.woocommerce-checkout-review-order-table,
body.fb-woo .cart_totals table.shop_table { border:0!important; border-radius:0!important; background:transparent!important; overflow:visible; }
body.fb-woo table.shop_table.woocommerce-checkout-review-order-table th,
body.fb-woo table.shop_table.woocommerce-checkout-review-order-table td,
body.fb-woo .cart_totals table.shop_table th,
body.fb-woo .cart_totals table.shop_table td { background:transparent!important; padding:12px 0!important; }
body.fb-woo table.shop_table.woocommerce-checkout-review-order-table thead th { padding-top:0!important; border-bottom:0!important; }
body.fb-woo.woocommerce-checkout form.checkout #order_review::before { margin:0 0 12px; }
body.fb-woo.woocommerce-checkout .woocommerce-additional-fields__field-wrapper { display:block!important; }
body.fb-woo.woocommerce-checkout .woocommerce-additional-fields__field-wrapper .form-row { float:none!important; width:100%!important; }
@media (max-width:768px) {
	body.fb-woo table.cart td.product-thumbnail { display:none!important; }
	body.fb-woo table.cart td.product-name { display:block!important; text-align:left!important; padding:6px 10px 10px!important; }
	body.fb-woo table.cart td.product-name::before { display:none!important; }
	body.fb-woo table.cart td.product-name a { font-size:16px; }
	body.fb-woo table.cart td.product-name dl.variation { display:block; text-align:left; margin-top:8px; }
	body.fb-woo table.cart td.product-name dl.variation dt,
	body.fb-woo table.cart td.product-name dl.variation dd { display:inline; margin:0; float:none; }
	body.fb-woo table.cart td.product-name dl.variation dt { margin-right:4px; }
	body.fb-woo table.cart td.product-name dl.variation dd { margin-right:10px; }
	body.fb-woo table.cart td.product-name dl.variation dd p { display:inline; margin:0; }
	body.fb-woo table.cart td.product-remove { justify-content:flex-end; padding-bottom:0!important; }
	body.fb-woo table.cart td.product-remove::before { display:none!important; }
	body.fb-woo.woocommerce-cart .cart-collaterals .cart_totals { padding:20px 18px!important; }
}
