/* 0.4.0 — Flujo de compra y avisos con la imagen del sitio. Solo presentación. */
:root { --bf-navy: #02233e; --bf-deep: #00182b; --bf-teal: #11a3a5; --bf-teal-dark: #0a7375; --bf-yellow: #fcf089; --bf-orange: #f89a44; --bf-paper: #f4f1e8; --bf-line: #d5dee3; --bf-muted: #4a5d6b; --bf-err: #b42318; --bf-ok: #0f7a4f;
  --bf-impact: var(--cmj-impact, "Agressive Latin", "Arial Black", Arial, sans-serif); --bf-display: var(--cmj-display, "Amazing Grotesk", "Arial Black", Arial, sans-serif); --bf-body: var(--cmj-body, "Amazing Grotesk", Arial, Helvetica, sans-serif); }

/* ---------- Banda de título ---------- */
.cmj-flow-hero { background: var(--bf-deep); color: #fff; }
.cmj-flow-hero__inner { width: min(1080px, calc(100% - 40px)); margin: 0 auto; padding: clamp(40px, 6vw, 72px) 0 clamp(32px, 4vw, 48px); }
.cmj-flow-hero__eyebrow { margin: 0 0 14px; padding: 0; color: var(--bf-teal); font-family: var(--bf-body); font-size: 12px; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }
.cmj-flow-hero__title { margin: 0 !important; padding: 0 !important; color: #fff !important; font-family: var(--bf-impact) !important; font-weight: 700 !important; font-size: clamp(36px, 6vw, 72px) !important; line-height: .95 !important; text-transform: uppercase; letter-spacing: 0; overflow-wrap: anywhere; }
.cmj-flow-hero__text { margin: 18px 0 0; padding: 0; max-width: 640px; color: rgba(255,255,255,.82); font-family: var(--bf-body); font-size: 17px; line-height: 1.6; }
.cmj-flow-steps { list-style: none; margin: 28px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 10px; counter-reset: none; }
.cmj-flow-steps li { list-style: none; margin: 0; padding: 0; }
.cmj-flow-steps li > a, .cmj-flow-steps li > span:first-child { text-decoration: none; }
.cmj-flow-steps li > a, .cmj-flow-steps li { display: inline-flex; align-items: center; gap: 8px; color: rgba(255,255,255,.7); font-family: var(--bf-body); font-size: 14px; font-weight: 600; }
.cmj-flow-steps li > a { min-height: 44px; color: rgba(255,255,255,.85) !important; }
.cmj-flow-steps li > a:hover .cmj-flow-steps__label { text-decoration: underline; }
.cmj-flow-steps li:not(:last-child)::after { content: ""; width: 22px; height: 2px; background: rgba(255,255,255,.25); margin-left: 2px; }
.cmj-flow-steps__n { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%; border: 2px solid rgba(255,255,255,.35); font-size: 13px; font-weight: 800; line-height: 1; }
.cmj-flow-steps li.is-done .cmj-flow-steps__n { background: var(--bf-teal); border-color: var(--bf-teal); color: var(--bf-navy); }
.cmj-flow-steps li.is-current { color: #fff; }
.cmj-flow-steps li.is-current .cmj-flow-steps__n { background: var(--bf-yellow); border-color: var(--bf-yellow); color: var(--bf-navy); }
@media (max-width: 600px) {
  .cmj-flow-steps { gap: 6px; }
  .cmj-flow-steps li:not(:last-child)::after { width: 10px; }
  .cmj-flow-steps li:not(.is-current) .cmj-flow-steps__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .cmj-flow-hero__text { font-size: 16px; }
}
/* Títulos por defecto ocultos: la banda ya tiene el h1 */
body.cmj-flow #main-content .entry-title.main_title, body.cmj-flow #main-content .et_pb_post_title { display: none !important; }
body.cmj-flow #main-content { background: #fff; font-family: var(--bf-body); color: var(--bf-navy); }
body.cmj-flow #main-content .container { padding-top: 40px; }
body.cmj-flow--cart #main-content .et_pb_section_0 { padding-top: 40px !important; }
body.cmj-flow #main-content .et_pb_row { padding-top: 0 !important; }
body.cmj-flow #left-area { padding-bottom: 56px; }

/* ---------- Avisos (en todo el sitio) ---------- */
.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-notices-wrapper .woocommerce-message, .et_pb_wc_cart_notice .woocommerce-message {
  position: relative; display: flex !important; flex-wrap: wrap; align-items: center; gap: 10px 16px; margin: 0 0 24px !important; padding: 16px 18px 16px 20px !important;
  background: #fff !important; color: var(--bf-navy) !important; border: 1px solid var(--bf-line) !important; border-left: 6px solid var(--bf-teal) !important; border-radius: 10px !important;
  font-family: var(--bf-body) !important; font-size: 15px !important; line-height: 1.5 !important; box-shadow: 0 2px 0 rgba(2,35,62,.04); list-style: none;
}
.woocommerce-message::before, .woocommerce-info::before, .woocommerce-error::before { display: none !important; }
.woocommerce-info { border-left-color: var(--bf-yellow) !important; background: #fffdf0 !important; }
.woocommerce-error { display: block !important; border-left-color: var(--bf-err) !important; background: #fff6f5 !important; }
.woocommerce-error li { margin: 0 0 4px !important; padding: 0 !important; list-style: none !important; }
.woocommerce-error li:last-child { margin-bottom: 0 !important; }
.woocommerce-message a:not(.button), .woocommerce-info a:not(.button), .woocommerce-error a:not(.button) { color: var(--bf-teal-dark) !important; text-decoration: underline; font-weight: 700; }
.woocommerce-message .button, .woocommerce-info .button, .woocommerce-error .button, body .woocommerce-notices-wrapper .woocommerce-message a.button, body .et_pb_text .woocommerce-message a.button {
  order: 2; margin: 0 0 0 auto !important; float: none !important; display: inline-flex !important; align-items: center; min-height: 44px; padding: 0 20px !important;
  background: var(--bf-navy) !important; color: #fff !important; border: 0 !important; border-radius: 0 !important; font-family: var(--bf-body) !important; font-size: 13px !important; font-weight: 800 !important; letter-spacing: .08em; text-transform: uppercase; box-shadow: 4px 4px 0 var(--bf-yellow); line-height: 1 !important;
}
.woocommerce-message .button::after, .woocommerce-info .button::after { display: none !important; }
.woocommerce-message .button:hover, .woocommerce-info .button:hover, body .woocommerce-notices-wrapper .woocommerce-message a.button:hover { background: var(--bf-teal) !important; color: var(--bf-navy) !important; }
@media (max-width: 600px) { .woocommerce-message .button, .woocommerce-info .button { margin: 4px 0 0 !important; width: 100%; justify-content: center; } }

/* ---------- Botones de WooCommerce en el flujo ---------- */
body.cmj-flow #main-content .button, body.cmj-flow #main-content button.button, body.cmj-flow #main-content a.button {
  font-family: var(--bf-body) !important; border-radius: 0 !important; font-weight: 800 !important; letter-spacing: .06em; text-transform: uppercase; font-size: 14px !important; line-height: 1.2 !important;
  padding: 14px 24px !important; border: 2px solid var(--bf-navy) !important; background: #fff !important; color: var(--bf-navy) !important; min-height: 48px;
}
body.cmj-flow #main-content .button::after { display: none !important; }
body.cmj-flow #main-content .button:hover { background: var(--bf-navy) !important; color: #fff !important; }
body.cmj-flow #main-content .button.alt, body.cmj-flow #main-content .checkout-button, body.cmj-flow #main-content #place_order, body.cmj-flow #main-content .return-to-shop .button {
  background: var(--bf-teal) !important; border-color: var(--bf-teal) !important; color: var(--bf-navy) !important; box-shadow: 8px 8px 0 var(--bf-yellow) !important; font-size: 15px !important; padding: 18px 28px !important;
}
body.cmj-flow #main-content .button.alt:hover, body.cmj-flow #main-content .checkout-button:hover, body.cmj-flow #main-content #place_order:hover, body.cmj-flow #main-content .return-to-shop .button:hover { background: var(--bf-orange) !important; border-color: var(--bf-orange) !important; color: var(--bf-navy) !important; }

/* ---------- Carrito ---------- */
body.cmj-flow--cart .woocommerce-cart-form { margin: 0 0 8px; }
body.cmj-flow--cart table.shop_table.cart { border: 1px solid var(--bf-line) !important; border-radius: 14px !important; border-collapse: separate !important; overflow: hidden; background: #fff; margin: 0 !important; }
body.cmj-flow--cart table.shop_table.cart thead th { background: #f6f9fa; color: var(--bf-muted); font-size: 12px !important; font-weight: 800 !important; letter-spacing: .12em; text-transform: uppercase; padding: 14px 16px !important; border: 0 !important; }
body.cmj-flow--cart table.shop_table.cart td { padding: 18px 16px !important; border-top: 1px solid var(--bf-line) !important; vertical-align: middle; font-size: 16px; color: var(--bf-navy); }
body.cmj-flow--cart table.shop_table.cart td.actions { padding: 0 !important; border: 0 !important; }
body.cmj-flow--cart table.shop_table.cart tr:has(> td.actions) { display: none; }
body.cmj-flow--cart .product-thumbnail img { width: 84px !important; height: 84px !important; object-fit: cover; border-radius: 10px; box-shadow: 4px 4px 0 var(--bf-yellow); display: block; }
body.cmj-flow--cart td.product-name { font-weight: 700; }
@media (min-width: 769px) { body.cmj-flow--cart table.shop_table.cart { table-layout: auto !important; } body.cmj-flow--cart table.shop_table.cart .product-name { width: 36% !important; } body.cmj-flow--cart table.shop_table.cart .product-thumbnail { width: 110px !important; padding-right: 0 !important; } body.cmj-flow--cart table.shop_table.cart .product-remove { width: 64px !important; } }
body.cmj-flow--cart .cmj-cart-name { display: block; font-family: var(--bf-display); font-weight: 800; font-size: 17px; line-height: 1.25; color: var(--bf-navy); }
body.cmj-flow--cart .cmj-cart-meta { display: block; margin-top: 4px; font-size: 13px; font-weight: 400; color: var(--bf-muted); }
body.cmj-flow--cart td.product-subtotal { font-weight: 800; }
body.cmj-flow--cart td.product-remove { width: 64px; }
body.cmj-flow--cart table.shop_table.cart td.product-thumbnail { width: 110px; }
body.cmj-flow--cart a.remove { display: inline-flex !important; align-items: center; justify-content: center; width: 44px !important; height: 44px !important; border-radius: 50% !important; border: 1px solid var(--bf-line); background: #fff; color: var(--bf-navy) !important; font-size: 24px !important; font-weight: 400 !important; line-height: 1 !important; text-decoration: none !important; }
body.cmj-flow--cart a.remove:hover { background: #fff1ef !important; border-color: var(--bf-err); color: var(--bf-err) !important; }
/* Selector de cantidad */
body.cmj-flow--cart .quantity.cmj-stepper { width: auto !important; float: none !important; margin: 0 !important; display: inline-flex !important; align-items: stretch; border: 2px solid var(--bf-navy); border-radius: 10px; overflow: hidden; background: #fff; height: 48px; }
body.cmj-flow--cart .cmj-stepper__btn { flex: 0 0 44px; width: 44px; min-width: 44px; border: 0; background: #eef5f6; color: var(--bf-navy); font-size: 22px; font-weight: 700; line-height: 1; cursor: pointer; padding: 0; }
body.cmj-flow--cart .cmj-stepper__btn:hover:not(:disabled) { background: #a6d5dd; }
body.cmj-flow--cart .cmj-stepper__btn:disabled { color: #8b9ba7; cursor: not-allowed; }
body.cmj-flow--cart table.shop_table .quantity.cmj-stepper input.qty { flex: 0 0 56px; min-width: 56px; width: 56px !important; height: 100% !important; border: 0 !important; border-left: 1px solid var(--bf-line) !important; border-right: 1px solid var(--bf-line) !important; border-radius: 0 !important; padding: 0 !important; text-align: center; font-size: 18px !important; font-weight: 800; color: var(--bf-navy) !important; background: #fff !important; -moz-appearance: textfield; }
body.cmj-flow--cart .quantity.cmj-stepper input.qty::-webkit-outer-spin-button, body.cmj-flow--cart .quantity.cmj-stepper input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
/* Columna de cross-sells vacía: el resumen ocupa su lugar a la derecha */
body.cmj-flow--cart .et_pb_wc_cross_sells:has(.et_pb_module_inner:empty) { display: none; }
body.cmj-flow--cart .cart-collaterals:empty { display: none; }
/* Resumen */
body.cmj-flow--cart .cart_totals { float: none !important; width: 100% !important; max-width: 460px; margin: 0 0 0 auto; background: #fff; border: 2px solid var(--bf-navy); border-radius: 14px; padding: 24px; box-shadow: 10px 10px 0 var(--bf-yellow); }
body.cmj-flow--cart .cart_totals h2 { margin: 0 0 12px !important; padding: 0 !important; font-family: var(--bf-display) !important; font-weight: 800 !important; font-size: 22px !important; color: var(--bf-navy) !important; text-transform: uppercase; letter-spacing: .02em; }
body.cmj-flow--cart .cart_totals table.shop_table { border: 0 !important; margin: 0 0 20px !important; border-radius: 0 !important; }
body.cmj-flow--cart .cart_totals table.shop_table th, body.cmj-flow--cart .cart_totals table.shop_table td { border: 0 !important; border-top: 1px solid var(--bf-line) !important; padding: 12px 0 !important; background: transparent !important; font-size: 15px; color: var(--bf-navy); }
body.cmj-flow--cart .cart_totals table.shop_table td { text-align: right; }
body.cmj-flow--cart .cart_totals .order-total th, body.cmj-flow--cart .cart_totals .order-total td { font-size: 18px !important; font-weight: 800; padding-top: 16px !important; }
body.cmj-flow--cart .cart_totals .order-total .cmj-usd { display: block; font-size: 13px; font-weight: 400; color: var(--bf-muted); margin-top: 2px; }
body.cmj-flow--cart .wc-proceed-to-checkout { padding: 0 !important; display: flex; flex-direction: column; align-items: stretch; gap: 14px; }
body.cmj-flow--cart .wc-proceed-to-checkout .checkout-button { display: flex !important; justify-content: center; align-items: center; width: calc(100% - 8px) !important; margin: 0 !important; text-align: center; }
body.cmj-flow--cart .cmj-keep-browsing { align-self: center; display: inline-flex; align-items: center; min-height: 44px; color: var(--bf-teal-dark) !important; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
/* Carrito vacío */
body.cmj-flow--cart .cart-empty.woocommerce-info { display: none !important; }
.cmj-cart-empty { margin: 8px auto 20px; max-width: 640px; text-align: center; padding: 40px 24px 8px; border: 2px dashed var(--bf-line); border-radius: 14px; border-bottom: 0; border-bottom-left-radius: 0; border-bottom-right-radius: 0; }
.cmj-cart-empty__title { margin: 0 0 10px; padding: 0; font-family: var(--bf-display); font-weight: 800; font-size: 24px; line-height: 1.2; color: var(--bf-navy); }
.cmj-cart-empty__text { margin: 0 auto; padding: 0; max-width: 460px; color: var(--bf-muted); font-size: 16px; line-height: 1.6; }
body.cmj-flow--cart .return-to-shop { max-width: 640px; margin: -20px auto 0 !important; padding: 24px 24px 40px; text-align: center; border: 2px dashed var(--bf-line); border-top: 0; border-radius: 0 0 14px 14px; }
/* Carrito en móvil: tarjeta */
@media (max-width: 768px) {
  body.cmj-flow--cart table.shop_table.cart thead { display: none; }
  body.cmj-flow--cart table.shop_table.cart tr.cart_item { display: grid !important; grid-template-columns: 84px minmax(0, 1fr); gap: 0 14px; position: relative; padding: 18px 16px 6px; }
  body.cmj-flow--cart table.shop_table.cart tr.cart_item td { display: block !important; border: 0 !important; padding: 0 !important; text-align: left !important; background: transparent !important; }
  body.cmj-flow--cart table.shop_table.cart tr.cart_item td::before { display: none !important; }
  body.cmj-flow--cart table.shop_table.cart tr.cart_item td.product-remove { position: absolute; top: 12px; right: 12px; width: auto; }
  body.cmj-flow--cart table.shop_table.cart tr.cart_item td.product-thumbnail { grid-row: 1; grid-column: 1; }
  body.cmj-flow--cart table.shop_table.cart tr.cart_item td.product-name { grid-row: 1; grid-column: 2; padding-right: 50px !important; align-self: center; }
  body.cmj-flow--cart table.shop_table.cart tr.cart_item td.product-price,
  body.cmj-flow--cart table.shop_table.cart tr.cart_item td.product-quantity,
  body.cmj-flow--cart table.shop_table.cart tr.cart_item td.product-subtotal { grid-column: 1 / -1; display: flex !important; justify-content: space-between; align-items: center; gap: 12px; padding: 12px 0 !important; border-top: 1px solid var(--bf-line) !important; }
  body.cmj-flow--cart table.shop_table.cart tr.cart_item td.product-price { margin-top: 16px; }
  body.cmj-flow--cart table.shop_table.cart tr.cart_item td.product-price::before,
  body.cmj-flow--cart table.shop_table.cart tr.cart_item td.product-quantity::before,
  body.cmj-flow--cart table.shop_table.cart tr.cart_item td.product-subtotal::before { content: attr(data-title) !important; display: block !important; float: none !important; font-weight: 600; color: var(--bf-muted); font-size: 14px; }
  body.cmj-flow--cart table.shop_table.cart tr.cart_item td.product-subtotal { font-size: 18px; }
  body.cmj-flow--cart .cart_totals { max-width: none; box-shadow: 6px 6px 0 var(--bf-yellow); padding: 20px; width: calc(100% - 6px) !important; }
}

/* ---------- Checkout ---------- */
body.cmj-flow--checkout form.checkout h3, body.cmj-flow--pay #main-content h3 { font-family: var(--bf-display) !important; font-weight: 800 !important; color: var(--bf-navy) !important; }
body.cmj-flow--checkout #order_review table.shop_table, body.cmj-flow--pay table.shop_table { border: 1px solid var(--bf-line) !important; border-radius: 14px !important; border-collapse: separate !important; overflow: hidden; background: #fff; }
body.cmj-flow--checkout #order_review table.shop_table th, body.cmj-flow--checkout #order_review table.shop_table td, body.cmj-flow--pay table.shop_table th, body.cmj-flow--pay table.shop_table td { padding: 14px 16px !important; border-top: 1px solid var(--bf-line) !important; color: var(--bf-navy); font-size: 15px; }
body.cmj-flow--checkout #order_review table.shop_table thead th, body.cmj-flow--pay table.shop_table thead th { border-top: 0 !important; background: #f6f9fa; color: var(--bf-muted); font-size: 12px !important; letter-spacing: .12em; text-transform: uppercase; font-weight: 800 !important; }
body.cmj-flow--checkout #order_review .order-total th, body.cmj-flow--checkout #order_review .order-total td { font-size: 18px !important; font-weight: 800 !important; background: #fffbe0; }
body.cmj-flow--checkout #order_review .order-total .cmj-usd { display: block; font-size: 13px; font-weight: 400; color: var(--bf-muted); }
body.cmj-flow #payment { background: #fff !important; border: 2px solid var(--bf-navy); border-radius: 14px !important; margin-top: 24px; overflow: hidden; }
body.cmj-flow #payment ul.payment_methods { padding: 18px 20px !important; border-bottom: 1px solid var(--bf-line) !important; }
body.cmj-flow #payment ul.payment_methods li { list-style: none; margin: 0 !important; }
body.cmj-flow #payment ul.payment_methods li > label { display: inline-flex !important; align-items: center; gap: 12px; flex-wrap: wrap; font-weight: 800; color: var(--bf-navy); font-size: 16px; }
body.cmj-flow #payment ul.payment_methods li img { max-height: 30px !important; width: auto !important; max-width: 120px !important; margin: 0 !important; vertical-align: middle; float: none !important; }
/* El PNG de Wompi trae mucho margen transparente (307×173, contenido 219×75): se recorta con márgenes negativos. */
body.cmj-flow #payment ul.payment_methods li img[src*="wompi-logo"] { height: 50px !important; max-height: none !important; max-width: none !important; margin: -14px -12px -14px -8px !important; }
body.cmj-flow #payment div.payment_box { background: #f6f9fa !important; color: var(--bf-navy) !important; border-radius: 10px; margin: 12px 0 0 !important; padding: 12px 14px !important; font-size: 14px; }
body.cmj-flow #payment div.payment_box::before { display: none !important; }
body.cmj-flow #payment div.form-row.place-order { padding: 20px !important; margin: 0 !important; background: #fff; }
body.cmj-flow #payment .woocommerce-terms-and-conditions-wrapper { margin-bottom: 14px; font-size: 15px; }
body.cmj-flow #payment #place_order { width: calc(100% - 8px) !important; float: none !important; }

/* ---------- Confirmación y estados ---------- */
body.cmj-flow--received .woocommerce-order { font-family: var(--bf-body); color: var(--bf-navy); }
body.cmj-flow--received p.woocommerce-thankyou-order-received, body.cmj-flow--received p.woocommerce-notice--success { font-size: 18px; font-weight: 700; margin: 0 0 18px; }
body.cmj-flow--received ul.woocommerce-order-overview { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 10px; margin: 0 0 28px !important; padding: 0 !important; list-style: none; }
body.cmj-flow--received ul.woocommerce-order-overview li { margin: 0 !important; padding: 14px 16px !important; border: 1px solid var(--bf-line) !important; border-radius: 10px; background: #f6f9fa; font-size: 11px !important; letter-spacing: .1em; text-transform: uppercase; color: var(--bf-muted); line-height: 1.4; float: none !important; }
body.cmj-flow--received ul.woocommerce-order-overview li strong { display: block; margin-top: 4px; font-size: 16px !important; letter-spacing: 0; text-transform: none; color: var(--bf-navy); }
body.cmj-flow--received .woocommerce-notice--error.woocommerce-thankyou-order-failed { padding: 16px 20px; border: 1px solid var(--bf-line); border-left: 6px solid var(--bf-err); border-radius: 10px; background: #fff6f5; font-size: 16px; }
body.cmj-flow--received .woocommerce-thankyou-order-failed-actions { display: flex; flex-wrap: wrap; gap: 14px; margin: 0 0 24px; }
body.cmj-flow--received h2, body.cmj-flow--received .woocommerce-order h2, body.cmj-flow--received .cmj-order-attendees h2, body.cmj-flow--pay h2 { font-family: var(--bf-display) !important; font-weight: 800 !important; color: var(--bf-navy) !important; font-size: 22px !important; text-transform: uppercase; letter-spacing: .02em; margin: 32px 0 14px !important; }
body.cmj-flow--received table.shop_table { border: 1px solid var(--bf-line) !important; border-radius: 14px !important; border-collapse: separate !important; overflow: hidden; }
body.cmj-flow--received table.shop_table th, body.cmj-flow--received table.shop_table td { padding: 14px 16px !important; border-top: 1px solid var(--bf-line) !important; color: var(--bf-navy); }
body.cmj-flow--received table.shop_table thead th { border-top: 0 !important; background: #f6f9fa; color: var(--bf-muted); font-size: 12px !important; letter-spacing: .12em; text-transform: uppercase; }
body.cmj-flow--received .woocommerce-customer-details address { border: 1px solid var(--bf-line) !important; border-radius: 10px; padding: 16px 18px !important; }
.cmj-next { margin: 8px 0 28px; padding: 24px; background: #fffbe0; border: 2px solid var(--bf-navy); border-radius: 14px; box-shadow: 8px 8px 0 var(--bf-teal); }
.cmj-next--error { background: #fff6f5; box-shadow: 8px 8px 0 var(--bf-orange); }
.cmj-next__title { margin: 0 0 14px !important; padding: 0 !important; font-family: var(--bf-display) !important; font-weight: 800 !important; font-size: 22px !important; color: var(--bf-navy) !important; text-transform: uppercase; }
.cmj-next__list { margin: 0 !important; padding: 0 !important; list-style: none !important; display: grid; gap: 12px; counter-reset: cmjnext; }
.cmj-next__list li { position: relative; margin: 0 !important; padding: 0 0 0 44px !important; font-size: 16px; line-height: 1.55; color: var(--bf-navy); list-style: none !important; }
.cmj-next__list li::before { counter-increment: cmjnext; content: counter(cmjnext); position: absolute; left: 0; top: -2px; width: 30px; height: 30px; border-radius: 50%; background: var(--bf-navy); color: #fff; font-weight: 800; font-size: 14px; display: flex; align-items: center; justify-content: center; }
.cmj-next--error .cmj-next__list li::before { content: "→"; }
.cmj-next a { color: var(--bf-teal-dark) !important; font-weight: 700; text-decoration: underline; overflow-wrap: anywhere; }
@media (max-width: 600px) { .cmj-next { padding: 18px; box-shadow: 5px 5px 0 var(--bf-teal); width: calc(100% - 5px); } }

/* ---------- Mi cuenta ---------- */
body.cmj-flow--account .woocommerce form.login, body.cmj-flow--account .woocommerce form.register, body.cmj-flow--account .woocommerce form.lost_reset_password { border: 1px solid var(--bf-line) !important; border-radius: 14px !important; padding: 24px !important; background: #fff; max-width: 520px; }
body.cmj-flow--account .woocommerce h2 { font-family: var(--bf-display) !important; font-weight: 800 !important; color: var(--bf-navy) !important; text-transform: uppercase; font-size: 22px !important; }
body.cmj-flow--account .woocommerce input.input-text { min-height: 48px; border: 1px solid #8b9ba7 !important; border-radius: 8px !important; padding: 10px 12px !important; font-size: 16px !important; color: var(--bf-navy) !important; background: #fff !important; }
body.cmj-flow--account .woocommerce-form-login__rememberme { display: inline-flex !important; align-items: center; gap: 8px; min-height: 44px; }
body.cmj-flow--account .lost_password a { display: inline-flex; min-height: 44px; align-items: center; color: var(--bf-teal-dark) !important; text-decoration: underline; }
/* Estado del pago (frontend.js) con colores de marca */
body.cmj-flow .cmj-payment-status { border-radius: 10px !important; padding: 14px 18px !important; font-family: var(--bf-body); font-size: 15px !important; font-weight: 700; background: var(--bf-navy) !important; color: #fff !important; border-left: 6px solid var(--bf-yellow); }
body.cmj-flow .cmj-payment-status.cmj-payment-success { background: var(--bf-ok) !important; border-left-color: var(--bf-teal); }
body.cmj-flow .cmj-payment-status.cmj-payment-error { background: var(--bf-err) !important; border-left-color: var(--bf-orange); }
body.cmj-flow--received ul.woocommerce-order-overview { width: 100%; justify-content: start; }
body.cmj-flow--received ul.woocommerce-order-overview::before, body.cmj-flow--received ul.woocommerce-order-overview::after { display: none !important; }
@media (max-width: 600px) {
  body.cmj-flow--pay table.shop_table, body.cmj-flow--received table.shop_table { table-layout: fixed; width: 100% !important; }
  body.cmj-flow--pay table.shop_table th, body.cmj-flow--pay table.shop_table td, body.cmj-flow--received table.shop_table th, body.cmj-flow--received table.shop_table td { padding: 10px 8px !important; font-size: 13px !important; overflow-wrap: anywhere; word-break: break-word; }
  body.cmj-flow--pay table.shop_table .product-quantity { width: 64px; }
}

/* ---------- Página /tour/ ---------- */
.cmj-tp { --tp-shell: min(1080px, calc(100% - 40px)); color: var(--bf-navy); font-family: var(--bf-body); overflow-x: clip; }
.cmj-tp *, .cmj-tp *::before, .cmj-tp *::after { box-sizing: border-box; }
.cmj-tp p { padding: 0; }
.cmj-tp-shell { width: var(--tp-shell); margin-left: auto; margin-right: auto; }
.cmj-tp-hero { position: relative; width: 100vw; margin-left: calc(50% - 50vw); background: var(--bf-deep) url("img/tour-bogota.webp") center 40% / cover no-repeat; color: #fff; }
.cmj-tp-hero::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0,24,43,.94) 0%, rgba(0,24,43,.78) 45%, rgba(0,24,43,.35) 100%); }
.cmj-tp-hero .cmj-tp-shell { position: relative; padding: clamp(72px, 10vw, 140px) 0 clamp(64px, 8vw, 110px); }
.cmj-tp-eyebrow { margin: 0 0 18px; color: var(--bf-teal); font-size: 12px; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }
.cmj-tp-title { margin: 0 !important; padding: 0 !important; max-width: 860px; color: #fff !important; font-family: var(--bf-impact) !important; font-weight: 700 !important; font-size: clamp(40px, 7vw, 88px) !important; line-height: .92 !important; text-transform: uppercase; letter-spacing: 0; overflow-wrap: anywhere; }
.cmj-tp-lead { margin: 22px 0 0; max-width: 560px; color: rgba(255,255,255,.88); font-size: 18px; line-height: 1.6; }
.cmj-tp-actions { display: flex; flex-wrap: wrap; gap: 16px 22px; margin: 34px 0 0; }
.cmj-tp-btn { display: inline-flex; align-items: center; justify-content: center; text-align: center; min-height: 54px; padding: 0 28px; font-family: var(--bf-body); font-size: 15px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; text-decoration: none !important; border: 2px solid transparent; transition: background .15s, color .15s; }
.cmj-tp-btn--primary { background: var(--bf-teal); color: var(--bf-navy) !important; box-shadow: 8px 8px 0 var(--bf-yellow); }
.cmj-tp-btn--primary:hover, .cmj-tp-btn--primary:focus-visible { background: var(--bf-orange); }
.cmj-tp-btn--ghost { border-color: #fff; color: #fff !important; }
.cmj-tp-btn--ghost:hover { background: #fff; color: var(--bf-navy) !important; }
.cmj-tp-section { padding: clamp(48px, 6vw, 72px) 0 0; }
.cmj-tp-h2 { margin: 0 0 22px !important; padding: 0 !important; color: var(--bf-navy) !important; font-family: var(--bf-impact) !important; font-weight: 700 !important; font-size: clamp(28px, 3.6vw, 44px) !important; line-height: 1 !important; text-transform: uppercase; }
.cmj-tp-h3 { margin: 0 0 14px !important; padding: 0 !important; color: var(--bf-navy) !important; font-family: var(--bf-display) !important; font-weight: 800 !important; font-size: 20px !important; line-height: 1.2 !important; text-transform: uppercase; letter-spacing: .02em; }
.cmj-tp .cmj-tp-cards { list-style: none !important; margin: 0 !important; padding: 0 !important; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }

.cmj-tp .cmj-tp-cards--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cmj-tp-card { list-style: none; margin: 0; padding: 22px; border-radius: 12px; border: 1px solid var(--bf-line); background: #fff; font-size: 17px; line-height: 1.5; }
.cmj-tp-card p { margin: 0; }
.cmj-tp-card--navy { background: var(--bf-navy); border-color: var(--bf-navy); color: #fff; }
.cmj-tp-card__label { display: block; margin: 0 0 8px; color: var(--bf-teal-dark); font-size: 12px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.cmj-tp-card--navy .cmj-tp-card__label { color: var(--bf-yellow); }
.cmj-tp-card__value { font-weight: 700; font-size: 18px; line-height: 1.4; }
.cmj-tp-card__num { margin: 0 0 10px !important; font-family: var(--bf-impact); font-size: 34px; line-height: 1; color: var(--bf-teal); }
.cmj-tp-note { margin: 16px 0 0; color: var(--bf-muted); font-size: 15px; }
.cmj-tp-price { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px 40px; padding: clamp(24px, 4vw, 40px); background: var(--bf-yellow); border-radius: 14px; }
.cmj-tp-price .cmj-tp-h2 { margin-bottom: 10px !important; }
.cmj-tp-price__cop { margin: 0; font-size: clamp(34px, 4.4vw, 52px); font-weight: 800; line-height: 1.05; }
.cmj-tp-price__usd { margin: 6px 0 0; font-weight: 700; font-size: 17px; }
.cmj-tp-price__note { margin: 12px 0 0; max-width: 520px; font-size: 15px; color: var(--bf-navy); }
.cmj-tp-price__cta { margin: 0; }
.cmj-tp-costs { scroll-margin-top: 120px; }
.cmj-tp-intro { margin: 0 0 22px; max-width: 760px; font-size: 17px; line-height: 1.6; }
.cmj-tp-card--cost { display: flex; flex-direction: column; justify-content: space-between; gap: 14px; border: 2px solid var(--bf-navy); box-shadow: 6px 6px 0 var(--bf-teal); }
.cmj-tp-card--cost .cmj-tp-card__label { color: var(--bf-navy); font-size: 13px; letter-spacing: .08em; }
.cmj-tp-card__amount { font-size: 28px; font-weight: 800; line-height: 1.1; color: var(--bf-navy); }
.cmj-tp-card__amount--text { font-size: 20px; }
.cmj-tp-cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.cmj-tp-box { padding: 26px; border-radius: 12px; background: #f6f9fa; border: 1px solid var(--bf-line); }
.cmj-tp-list { margin: 0 !important; padding: 0 !important; list-style: none !important; display: grid; gap: 10px; }
.cmj-tp-list li { position: relative; margin: 0; padding: 0 0 0 26px !important; list-style: none !important; font-size: 16px; line-height: 1.55; }
.cmj-tp-list li::before { content: ""; position: absolute; left: 0; top: .5em; width: 12px; height: 12px; border-radius: 3px; background: var(--bf-teal); }
.cmj-tp a:not(.cmj-tp-btn) { color: var(--bf-teal-dark); text-decoration: underline; text-underline-offset: 3px; overflow-wrap: anywhere; }
.cmj-tp-card--soft { background: var(--bf-paper); border-color: transparent; font-weight: 600; }
.cmj-tp-final { margin-top: clamp(56px, 7vw, 88px); width: 100vw; margin-left: calc(50% - 50vw); background: var(--bf-deep); color: #fff; }
.cmj-tp-final .cmj-tp-shell { padding: clamp(40px, 5vw, 64px) 0; text-align: center; }
.cmj-tp-final .cmj-tp-actions { justify-content: center; margin: 0; }
.cmj-tp-links { margin: 26px 0 0; color: rgba(255,255,255,.7); font-size: 15px; }
.cmj-tp .cmj-tp-final a:not(.cmj-tp-btn) { color: #fff; display: inline-flex; min-height: 44px; align-items: center; }
@media (max-width: 860px) {
  .cmj-tp .cmj-tp-cards, .cmj-tp .cmj-tp-cards--2, .cmj-tp-cols { grid-template-columns: minmax(0, 1fr); }
  .cmj-tp-hero { background-image: url("img/tour-bogota-800.webp"); }
  .cmj-tp-hero::before { background: linear-gradient(180deg, rgba(0,24,43,.80) 0%, rgba(0,24,43,.92) 100%); }
  .cmj-tp-btn { width: calc(100% - 8px); padding: 12px 18px; letter-spacing: .05em; line-height: 1.25; }
  .cmj-tp-lead { font-size: 17px; }
}
